anchor.diff:  class _BottomSheetState extends State<_BottomSheet> {
   
     final _BottomSheetLayout _layout = new _BottomSheetLayout();
  +  bool _dragEnabled = false;
  +
  +  void _handleDragStart(Point position) {
  +    _dragEnabled = !config.performance.isAnimating;
  +  }
  +
  +  void _handleDragUpdate(double delta) {
  +    if (!_dragEnabled)
  +      return;
  +    config.performance.progress -= delta / _layout.childTop.end;
  +  }
  +
  +  void _handleDragEnd(Offset velocity) {
  +    if (!_dragEnabled)
  +      return;
  +    if (velocity.dy > _kMinFlingVelocity)
  +      config.performance.fling(velocity: -velocity.dy * _kFlingVelocityScale);
  +    else
  +      config.performance.forward();
  +  }
   
     Widget build(BuildContext context) {
       return new BuilderTransition(
  
positive.code: import 'material.dart';
  
  const Duration _kBottomSheetDuration = const Duration(milliseconds: 200);
  
  class _BottomSheet extends StatefulComponent {
    _BottomSheet({
  
negative.code:     );
    }
  
    void didPush(NavigatorState navigator) {
      super.didPush(navigator);
      _performance?.forward();
    }
  
    void didPop([dynamic result]) {
      completer.complete(result);
      super.didPop(result);
      if (_performance.status != PerformanceStatus.dismissed)
        _performance?.reverse();
    }
  }
  
  