anchor.diff:      _targetSize += (_isTargetNextSibling ? -delta : delta);
       _targetSize = _targetSize.clamp(minTargetSize, maxTargetSize);
       _commitTargetSize(_targetSize);
  -  }
  -
  -  /// Set the size to the actual target to the specified value.
  -  _commitTargetSize(int val) {
  -    final sizeStr = '${val}px';
  -    if (_isHorizontal) {
  -      _target.style.height = sizeStr;
  -    } else {
  -      _target.style.width = sizeStr;
  -    }
     }
   
     /// When dragging starts, cache the target's size and temporarily subscribe
  
positive.code: @CustomTag('spark-splitter')
  class SparkSplitter extends SparkWidget {
    static const _MIN_DRAGGABLE_SIZE = 6;
    
    /// Possible values are "left", "right", "up" and "down".
    /// The direction specifies:
    /// 1) whether the split is horizontal or vertical;
  
negative.code:     }
    }
  
    /// Extract the current size of the actual target.
    int _extractTargetSize() {
      final style = _target.getComputedStyle();
      final sizeStr = _isHorizontal ? style.height : style.width;
      return int.parse(_sizeRe.firstMatch(sizeStr).group(1));
    }
  
    /// Set the size of the actual target to the specified value.
    void _commitTargetSize(int val) {
      final sizeStr = '${val}px';
      if (_isHorizontal) {
        _target.style.height = sizeStr;
      } else {
        _target.style.width = sizeStr;
      }
    }
  
    /// Cache the current actual size of the target.
    void _cacheTargetSize() {
      _targetSize = _extractTargetSize();
    }
  
    /// Update the cached and the actual size of the target.
  