anchor.diff:  bool _isInAccessibilityMode(BuildContext context) {
     final MediaQueryData data = MediaQuery.of(context, nullOk: true);
     return data != null && data.textScaleFactor > _kMaxRegularTextScaleFactor;
  -}
  -
  -/// An iOS-style dialog.
  -///
  -/// This dialog widget does not have any opinion about the contents of the
  -/// dialog. Rather than using this widget directly, consider using
  -/// [CupertinoAlertDialog], which implement a specific kind of dialog.
  -///
  -/// Push with `Navigator.of(..., rootNavigator: true)` when using with
  -/// [CupertinoTabScaffold] to ensure that the dialog appears above the tabs.
  -///
  -/// See also:
  -///
  -///  * [CupertinoAlertDialog], which is a dialog with title, contents, and
  -///    actions.
  -///  * <https://developer.apple.com/ios/human-interface-guidelines/views/alerts/>
  -class CupertinoDialog extends StatelessWidget {
  -  /// Creates an iOS-style dialog.
  -  const CupertinoDialog({
  -    Key key,
  -    this.child,
  -  }) : super(key: key);
  -
  -  /// The widget below this widget in the tree.
  -  final Widget child;
  -
  -  @override
  -  Widget build(BuildContext context) {
  -    return new Center(
  -      child: new ClipRRect(
  -        borderRadius: BorderRadius.circular(_kDialogCornerRadius),
  -        child: new BackdropFilter(
  -          filter: new ImageFilter.blur(sigmaX: _kBlurAmount, sigmaY: _kBlurAmount),
  -          child: new Container(
  -            width: _kCupertinoDialogWidth,
  -            decoration: _kCupertinoDialogBlurOverlayDecoration,
  -            child: new Container(
  -              color: _kDialogColor,
  -              child: child,
  -            ),
  -          ),
  -        ),
  -      ),
  -    );
  -  }
   }
   
   /// An iOS-style alert dialog.
  
positive.code: ///
  /// See also:
  ///
  ///  * [CupertinoDialog], which is a generic iOS-style dialog.
  ///  * [CupertinoDialogAction], which is an iOS-style dialog button.
  ///  * <https://developer.apple.com/ios/human-interface-guidelines/views/alerts/>
  class CupertinoAlertDialog extends StatelessWidget {
  
negative.code:               width: isInAccessibilityMode
                    ? _kAccessibilityCupertinoDialogWidth
                    : _kCupertinoDialogWidth,
                child: new CupertinoPopupSurface(
                  isSurfacePainted: false,
                  child: new _CupertinoDialogRenderWidget(
                    contentSection: _buildContent(),
                    actionsSection: _buildActions(),
                  ),
                ),
              ),
            );
          },
        ),
      );
    }
  }
  
  /// An iOS-style dialog.
  ///
  /// This dialog widget does not have any opinion about the contents of the
  /// dialog. Rather than using this widget directly, consider using
  /// [CupertinoAlertDialog], which implement a specific kind of dialog.
  ///
  /// Push with `Navigator.of(..., rootNavigator: true)` when using with
  /// [CupertinoTabScaffold] to ensure that the dialog appears above the tabs.
  ///
  /// See also:
  ///
  ///  * [CupertinoAlertDialog], which is a dialog with title, contents, and
  ///    actions.
  ///  * <https://developer.apple.com/ios/human-interface-guidelines/views/alerts/>
  @Deprecated('Use CupertinoAlertDialog for alert dialogs. Use CupertinoPopupSurface for custom popups.')
  class CupertinoDialog extends StatelessWidget {
    /// Creates an iOS-style dialog.
    const CupertinoDialog({
      Key key,
      this.child,
    }) : super(key: key);
  
    /// The widget below this widget in the tree.
    final Widget child;
  
    @override
    Widget build(BuildContext context) {
      return new Center(
        child: new SizedBox(
          width: _kCupertinoDialogWidth,
          child: new CupertinoPopupSurface(
            child: child,
          ),
        ),
      );
    }
  }
  
  /// Rounded rectangle surface that looks like an iOS popup surface, e.g., alert dialog
  /// and action sheet.
  ///
  /// A [CupertinoPopupSurface] can be configured to paint or not paint a white
  /// color on top of its blurred area. Typical usage should paint white on top
  /// of the blur. However, the white paint can be disabled for the purpose of
  /// rendering divider gaps for a more complicated layout, e.g., [CupertinoAlertDialog].
  /// Additionally, the white paint can be disabled to render a blurred rounded
  /// rectangle without any color (similar to iOS's volume control popup).
  ///
  /// See also:
  ///  * [CupertinoAlertDialog], which is a dialog with a title, content, and
  ///    actions.
  ///  * <https://developer.apple.com/ios/human-interface-guidelines/views/alerts/>
  class CupertinoPopupSurface extends StatelessWidget {
    /// Creates an iOS-style rounded rectangle popup surface.
    const CupertinoPopupSurface({
      Key key,
      this.isSurfacePainted = true,
      this.child,
    }) : super(key: key);
  
    /// Whether or not to paint a translucent white on top of this surface's
    /// blurred background. [isSurfacePainted] should be true for a typical popup
    /// that contains content without any dividers. A popup that requires dividers
    /// should set [isSurfacePainted] to false and then paint its own surface area.
    ///
    /// Some popups, like iOS's volume control popup, choose to render a blurred
    /// area without any white paint covering it. To achieve this effect,
    /// [isSurfacePainted] should be set to false.
    final bool isSurfacePainted;
  
    /// The widget below this widget in the tree.
    final Widget child;
  
    @override
    Widget build(BuildContext context) {
      return new ClipRRect(
        borderRadius: BorderRadius.circular(_kDialogCornerRadius),
        child: new BackdropFilter(
          filter: new ImageFilter.blur(sigmaX: _kBlurAmount, sigmaY: _kBlurAmount),
          child: new Container(
            decoration: _kCupertinoDialogBlurOverlayDecoration,
            child: new Container(
              color: isSurfacePainted ? _kDialogColor : null,
              child: child,
            ),
          ),
        ),
      );
    }
  