// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'guru_dialog.dart';

// **************************************************************************
// DesignSpecGenerator
// **************************************************************************

class _GuruDialogContainerDesignSpec extends GuruDialogContainerDesignSpec {
  _GuruDialogContainerDesignSpec._(
    this.measuredMetrics,
    this.specOffset,
    this.minHeight,
    this.defaultDialogRadius,
    this.dialogSpec,
    this.spotlightDialogSpec,
    this.extendDialogSpec,
    this.confirmDialogSpec,
    this.alertDialogSpec,
  );

  static final designMetrics = DesignMetrics.create(const Size(750.0, 1624.0));

  static final Map<String, _GuruDialogContainerDesignSpec> _cache = {};

  @override
  final double minHeight;

  @override
  final BorderRadius defaultDialogRadius;

  @override
  final GuruDialogDesignSpec dialogSpec;

  @override
  final GuruSpotlightDialogDesignSpec spotlightDialogSpec;

  @override
  final GuruExtendDialogDesignSpec extendDialogSpec;

  @override
  final GuruConfirmDialogDesignSpec confirmDialogSpec;

  @override
  final GuruAlertDialogDesignSpec alertDialogSpec;

  @override
  final MeasuredMetrics measuredMetrics;

  @override
  final Offset specOffset;

  @override
  Size get measuredSize => measuredMetrics.size;

  static _GuruDialogContainerDesignSpec _create(
    Size measuredSize, {
    Offset offset = Offset.zero,
  }) {
    final _measuredMetrics = designMetrics.measure(measuredSize);
    return _GuruDialogContainerDesignSpec._(
      _measuredMetrics, offset,
      _measuredMetrics.measureHeight(48.0, consistent: false), // minHeight
      BorderRadius.circular(_measuredMetrics.measureHeight(40.0)),
      GuruDialogDesignSpec.create(
          Size(
              (_measuredMetrics.measuredWidth * 0.872).clamp(0.0, 400.0),
              (_measuredMetrics.measuredWidth * 0.872).clamp(0.0, 400.0) /
                  (0.9732142857142857)),
          offset: offset),
      GuruSpotlightDialogDesignSpec.create(
          Size(
              (_measuredMetrics.measuredWidth * 0.872).clamp(0.0, 400.0),
              (_measuredMetrics.measuredWidth * 0.872).clamp(0.0, 400.0) /
                  (0.9732142857142857)),
          offset: offset),
      GuruExtendDialogDesignSpec.create(
          Size(_measuredMetrics.measureWidth(654.0),
              _measuredMetrics.measureWidth(654.0) * 1.60244),
          offset: offset), // extendDialogSpec
      GuruConfirmDialogDesignSpec.create(
          Size(_measuredMetrics.measureWidth(654.0),
              _measuredMetrics.measureWidth(654.0) * 0.57492355),
          offset: offset), // confirmDialogSpec
      GuruAlertDialogDesignSpec.create(
          Size(_measuredMetrics.measureWidth(590.0),
              _measuredMetrics.measureWidth(590.0) * 0.55668359),
          offset: offset), // alertDialogSpec
    );
  }

  static GuruDialogContainerDesignSpec get({Offset offset = Offset.zero}) {
    final Size measuredSize = Get.size;
    final key = BasicDesignSpec.buildSpecKey(measuredSize, offset);
    _GuruDialogContainerDesignSpec? designSpec = _cache[key];
    if (kDebugMode || designSpec == null) {
      designSpec = _create(measuredSize, offset: offset);
      _cache[key] = designSpec;
    }
    return designSpec;
  }
}

class _GuruDialogDesignSpec extends GuruDialogDesignSpec {
  _GuruDialogDesignSpec._(
    this.measuredMetrics,
    this.specOffset,
    this.closeButtonMargin,
    this.contentPadding,
    this.closeButtonSize,
    this.closeIconSize,
    this.titlePadding,
    this.titleFontSize,
    this.subtitlePadding,
    this.subtitleFontSize,
    this.illustrationPadding,
    this.illustrationSize,
    this.summaryPadding,
    this.summaryFontSize,
    this.primaryButtonPadding,
    this.primaryButtonSize,
    this.secondaryButtonPadding,
    this.secondaryButtonFontSize,
  );

  static final designMetrics = DesignMetrics.create(const Size(654.0, 672.0));

  static final Map<String, _GuruDialogDesignSpec> _cache = {};

  @override
  final EdgeInsetsDirectional closeButtonMargin;

  @override
  final EdgeInsets contentPadding;

  @override
  final double closeButtonSize;

  @override
  final double closeIconSize;

  @override
  final EdgeInsets titlePadding;

  @override
  final double titleFontSize;

  @override
  final EdgeInsets subtitlePadding;

  @override
  final double subtitleFontSize;

  @override
  final EdgeInsets illustrationPadding;

  @override
  final Size illustrationSize;

  @override
  final EdgeInsets summaryPadding;

  @override
  final double summaryFontSize;

  @override
  final EdgeInsets primaryButtonPadding;

  @override
  final Size primaryButtonSize;

  @override
  final EdgeInsets secondaryButtonPadding;

  @override
  final double secondaryButtonFontSize;

  @override
  final MeasuredMetrics measuredMetrics;

  @override
  final Offset specOffset;

  @override
  Size get measuredSize => measuredMetrics.size;

  static _GuruDialogDesignSpec _create(
    Size measuredSize, {
    Offset offset = Offset.zero,
  }) {
    final _measuredMetrics = designMetrics.measure(measuredSize);
    return _GuruDialogDesignSpec._(
      _measuredMetrics, offset,
      EdgeInsetsDirectional.only(
          start: _measuredMetrics.measureHorizontal(20.0),
          end: 0.0,
          top: _measuredMetrics.measureVertical(28.0),
          bottom: 0.0), // closeButtonMargin
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: _measuredMetrics.measureVertical(64.0),
          bottom: _measuredMetrics.measureVertical(64.0)),
      _measuredMetrics.measureHeight(72.0,
          consistent: false), // closeButtonSize
      _measuredMetrics.measureHeight(48.0, consistent: false), // closeIconSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(96.0),
          right: _measuredMetrics.measureHorizontal(96.0),
          top: _measuredMetrics.measureVertical(16.0),
          bottom: _measuredMetrics.measureVertical(8.0)),
      _measuredMetrics.measureAbsoluteFontSize(36.0,
          consistent: false), // titleFontSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(96.0),
          right: _measuredMetrics.measureHorizontal(96.0),
          top: _measuredMetrics.measureVertical(16.0),
          bottom: 0.0),
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // subtitleFontSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(63.0),
          right: _measuredMetrics.measureHorizontal(63.0),
          top: _measuredMetrics.measureVertical(24.0),
          bottom: _measuredMetrics.measureVertical(24.0)),
      Size(_measuredMetrics.measureHeight(320.0) * 1.65,
          _measuredMetrics.measureHeight(320.0)), // illustrationSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(24.0)),
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // summaryFontSize
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: _measuredMetrics.measureVertical(24.0),
          bottom: _measuredMetrics.measureVertical(16.0)),
      Size(_measuredMetrics.measureHeight(96.0) * 5.64583333,
          _measuredMetrics.measureHeight(96.0)), // primaryButtonSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(28.0),
          bottom: 0.0),
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // secondaryButtonFontSize
    );
  }

  static GuruDialogDesignSpec from(
    Size size, {
    Offset offset = Offset.zero,
  }) {
    final Size measuredSize = size;
    final key = BasicDesignSpec.buildSpecKey(measuredSize, offset);
    _GuruDialogDesignSpec? designSpec = _cache[key];
    if (kDebugMode || designSpec == null) {
      designSpec = _create(measuredSize, offset: offset);
      _cache[key] = designSpec;
    }
    return designSpec;
  }
}

class _GuruSpotlightDialogDesignSpec extends GuruSpotlightDialogDesignSpec {
  _GuruSpotlightDialogDesignSpec._(
    this.measuredMetrics,
    this.specOffset,
    this.closeButtonMargin,
    this.contentPadding,
    this.closeButtonSize,
    this.closeIconSize,
    this.titlePadding,
    this.titleFontSize,
    this.subtitlePadding,
    this.subtitleFontSize,
    this.illustrationSize,
    this.summaryPadding,
    this.summaryFontSize,
    this.scrollAbleContentMaxHeight,
    this.primaryButtonPadding,
    this.primaryButtonSize,
    this.secondaryButtonPadding,
    this.secondaryButtonFontSize,
  );

  static final designMetrics = DesignMetrics.create(const Size(654.0, 672.0));

  static final Map<String, _GuruSpotlightDialogDesignSpec> _cache = {};

  @override
  final EdgeInsetsDirectional closeButtonMargin;

  @override
  final EdgeInsets contentPadding;

  @override
  final double closeButtonSize;

  @override
  final double closeIconSize;

  @override
  final EdgeInsets titlePadding;

  @override
  final double titleFontSize;

  @override
  final EdgeInsets subtitlePadding;

  @override
  final double subtitleFontSize;

  @override
  final Size illustrationSize;

  @override
  final EdgeInsets summaryPadding;

  @override
  final double summaryFontSize;

  @override
  final double scrollAbleContentMaxHeight;

  @override
  final EdgeInsets primaryButtonPadding;

  @override
  final Size primaryButtonSize;

  @override
  final EdgeInsets secondaryButtonPadding;

  @override
  final double secondaryButtonFontSize;

  @override
  final MeasuredMetrics measuredMetrics;

  @override
  final Offset specOffset;

  @override
  Size get measuredSize => measuredMetrics.size;

  static _GuruSpotlightDialogDesignSpec _create(
    Size measuredSize, {
    Offset offset = Offset.zero,
  }) {
    final _measuredMetrics = designMetrics.measure(measuredSize);
    return _GuruSpotlightDialogDesignSpec._(
      _measuredMetrics, offset,
      EdgeInsetsDirectional.only(
          start: _measuredMetrics.measureHorizontal(20.0),
          end: 0.0,
          top: _measuredMetrics.measureVertical(28.0),
          bottom: 0.0), // closeButtonMargin
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: _measuredMetrics.measureVertical(32.0),
          bottom: _measuredMetrics.measureVertical(64.0)),
      _measuredMetrics.measureHeight(72.0,
          consistent: false), // closeButtonSize
      _measuredMetrics.measureHeight(48.0, consistent: false), // closeIconSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(0.0),
          bottom: _measuredMetrics.measureVertical(24.0)),
      _measuredMetrics.measureAbsoluteFontSize(36.0,
          consistent: false), // titleFontSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(24.0)),
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // subtitleFontSize
      Size(_measuredMetrics.measureWidth(654.0),
          _measuredMetrics.measureWidth(654.0) * 0.667), // illustrationSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(48.0)),
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // summaryFontSize
      _measuredMetrics.measureHeight(120.0,
          consistent: false), // scrollAbleContentMaxHeight
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(16.0)),
      Size(_measuredMetrics.measureHeight(96.0) * 5.64583333,
          _measuredMetrics.measureHeight(96.0)), // primaryButtonSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(28.0),
          bottom: 0.0),
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // secondaryButtonFontSize
    );
  }

  static GuruSpotlightDialogDesignSpec from(
    Size size, {
    Offset offset = Offset.zero,
  }) {
    final Size measuredSize = size;
    final key = BasicDesignSpec.buildSpecKey(measuredSize, offset);
    _GuruSpotlightDialogDesignSpec? designSpec = _cache[key];
    if (kDebugMode || designSpec == null) {
      designSpec = _create(measuredSize, offset: offset);
      _cache[key] = designSpec;
    }
    return designSpec;
  }
}

class _GuruExtendDialogDesignSpec extends GuruExtendDialogDesignSpec {
  _GuruExtendDialogDesignSpec._(
    this.measuredMetrics,
    this.specOffset,
    this.closeButtonMargin,
    this.closeButtonSize,
    this.closeIconSize,
    this.illustrationSize,
    this.contentPadding,
    this.titlePadding,
    this.titleFontSize,
    this.subtitlePadding,
    this.subtitleFontSize,
    this.summaryPadding,
    this.summaryFontSize,
    this.primaryButtonPadding,
    this.primaryButtonSize,
    this.secondaryButtonPadding,
    this.secondaryButtonFontSize,
  );

  static final designMetrics = DesignMetrics.create(const Size(654.0, 1048.0));

  static final Map<String, _GuruExtendDialogDesignSpec> _cache = {};

  @override
  final EdgeInsetsDirectional closeButtonMargin;

  @override
  final double closeButtonSize;

  @override
  final double closeIconSize;

  @override
  final Size illustrationSize;

  @override
  final EdgeInsets contentPadding;

  @override
  final EdgeInsets titlePadding;

  @override
  final double titleFontSize;

  @override
  final EdgeInsets subtitlePadding;

  @override
  final double subtitleFontSize;

  @override
  final EdgeInsets summaryPadding;

  @override
  final double summaryFontSize;

  @override
  final EdgeInsets primaryButtonPadding;

  @override
  final Size primaryButtonSize;

  @override
  final EdgeInsets secondaryButtonPadding;

  @override
  final double secondaryButtonFontSize;

  @override
  final MeasuredMetrics measuredMetrics;

  @override
  final Offset specOffset;

  @override
  Size get measuredSize => measuredMetrics.size;

  static _GuruExtendDialogDesignSpec _create(
    Size measuredSize, {
    Offset offset = Offset.zero,
  }) {
    final _measuredMetrics = designMetrics.measure(measuredSize);
    return _GuruExtendDialogDesignSpec._(
      _measuredMetrics, offset,
      EdgeInsetsDirectional.only(
          start: _measuredMetrics.measureHorizontal(20.0),
          end: 0.0,
          top: _measuredMetrics.measureVertical(28.0),
          bottom: 0.0), // closeButtonMargin
      _measuredMetrics.measureHeight(72.0,
          consistent: false), // closeButtonSize
      _measuredMetrics.measureHeight(48.0, consistent: false), // closeIconSize
      Size(_measuredMetrics.measureWidth(654.0),
          _measuredMetrics.measureWidth(654.0) * 1.217), // illustrationSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(83.0),
          bottom: _measuredMetrics.measureVertical(80.0)),
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(24.0),
          right: _measuredMetrics.measureHorizontal(24.0),
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(14.0)),
      _measuredMetrics.measureAbsoluteFontSize(36.0,
          consistent: false), // titleFontSize
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(24.0)),
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // subtitleFontSize
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(64.0)),
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // summaryFontSize
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(16.0)),
      Size(_measuredMetrics.measureHeight(96.0) * 5.64583333,
          _measuredMetrics.measureHeight(96.0)), // primaryButtonSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(28.0),
          bottom: 0.0),
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // secondaryButtonFontSize
    );
  }

  static GuruExtendDialogDesignSpec from(
    Size size, {
    Offset offset = Offset.zero,
  }) {
    final Size measuredSize = size;
    final key = BasicDesignSpec.buildSpecKey(measuredSize, offset);
    _GuruExtendDialogDesignSpec? designSpec = _cache[key];
    if (kDebugMode || designSpec == null) {
      designSpec = _create(measuredSize, offset: offset);
      _cache[key] = designSpec;
    }
    return designSpec;
  }
}

class _GuruConfirmDialogDesignSpec extends GuruConfirmDialogDesignSpec {
  _GuruConfirmDialogDesignSpec._(
    this.measuredMetrics,
    this.specOffset,
    this.contentPadding,
    this.noTitleContentPadding,
    this.titlePadding,
    this.titleFontSize,
    this.summaryPadding,
    this.noTitlesummaryPadding,
    this.noTitleSummaryFontSize,
    this.summaryFontSize,
    this.summaryMinHeight,
    this.noTitleSummaryMinHeight,
    this.adButtonSize,
    this.secondaryButtonPadding,
    this.secondaryButtonFontSize,
    this.buttonSize,
    this.buttonSpacing,
  );

  static final designMetrics = DesignMetrics.create(const Size(654.0, 376.0));

  static final Map<String, _GuruConfirmDialogDesignSpec> _cache = {};

  @override
  final EdgeInsets contentPadding;

  @override
  final EdgeInsets noTitleContentPadding;

  @override
  final EdgeInsets titlePadding;

  @override
  final double titleFontSize;

  @override
  final EdgeInsets summaryPadding;

  @override
  final EdgeInsets noTitlesummaryPadding;

  @override
  final double noTitleSummaryFontSize;

  @override
  final double summaryFontSize;

  @override
  final double summaryMinHeight;

  @override
  final double noTitleSummaryMinHeight;

  @override
  final Size adButtonSize;

  @override
  final EdgeInsets secondaryButtonPadding;

  @override
  final double secondaryButtonFontSize;

  @override
  final Size buttonSize;

  @override
  final double buttonSpacing;

  @override
  final MeasuredMetrics measuredMetrics;

  @override
  final Offset specOffset;

  @override
  Size get measuredSize => measuredMetrics.size;

  static _GuruConfirmDialogDesignSpec _create(
    Size measuredSize, {
    Offset offset = Offset.zero,
  }) {
    final _measuredMetrics = designMetrics.measure(measuredSize);
    return _GuruConfirmDialogDesignSpec._(
      _measuredMetrics, offset,
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(40.0),
          right: _measuredMetrics.measureHorizontal(40.0),
          top: _measuredMetrics.measureHorizontal(64.0),
          bottom: _measuredMetrics.measureHorizontal(64.0)),
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(40.0),
          right: _measuredMetrics.measureHorizontal(40.0),
          top: _measuredMetrics.measureVertical(64.0),
          bottom: _measuredMetrics.measureVertical(48.0)),
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(8.0)),
      _measuredMetrics.measureAbsoluteFontSize(36.0,
          consistent: false), // titleFontSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(16.0),
          right: _measuredMetrics.measureHorizontal(16.0),
          top: _measuredMetrics.measureVertical(16.0),
          bottom: _measuredMetrics.measureVertical(56.0)),
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(16.0),
          right: _measuredMetrics.measureHorizontal(16.0),
          top: _measuredMetrics.measureVertical(16.0),
          bottom: _measuredMetrics.measureVertical(40.0)),
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // noTitleSummaryFontSize
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // summaryFontSize
      _measuredMetrics.measureHeight(88.0,
          consistent: false), // summaryMinHeight
      _measuredMetrics.measureHeight(96.0,
          consistent: false), // noTitleSummaryMinHeight
      Size(_measuredMetrics.measureHeight(96.0) * 5.64583333,
          _measuredMetrics.measureHeight(96.0)), // adButtonSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(44.0),
          bottom: 0.0),
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // secondaryButtonFontSize
      Size(_measuredMetrics.measureHeight(96.0) * 2.83333333,
          _measuredMetrics.measureHeight(96.0)), // buttonSize
      _measuredMetrics.measureHorizontal(29.0), // buttonSpacing
    );
  }

  static GuruConfirmDialogDesignSpec from(
    Size size, {
    Offset offset = Offset.zero,
  }) {
    final Size measuredSize = size;
    final key = BasicDesignSpec.buildSpecKey(measuredSize, offset);
    _GuruConfirmDialogDesignSpec? designSpec = _cache[key];
    if (kDebugMode || designSpec == null) {
      designSpec = _create(measuredSize, offset: offset);
      _cache[key] = designSpec;
    }
    return designSpec;
  }
}

class _GuruAlertDialogDesignSpec extends GuruAlertDialogDesignSpec {
  _GuruAlertDialogDesignSpec._(
    this.measuredMetrics,
    this.specOffset,
    this.contentPadding,
    this.titlePadding,
    this.titleFontSize,
    this.summaryPadding,
    this.noTitleSummaryFontSize,
    this.summaryFontSize,
    this.summaryMinHeight,
    this.noTitleSummaryMinHeight,
    this.buttonHeight,
    this.dividerSize,
    this.buttonFontSize,
  );

  static final designMetrics = DesignMetrics.create(const Size(590.0, 328.0));

  static final Map<String, _GuruAlertDialogDesignSpec> _cache = {};

  @override
  final EdgeInsets contentPadding;

  @override
  final EdgeInsets titlePadding;

  @override
  final double titleFontSize;

  @override
  final EdgeInsets summaryPadding;

  @override
  final double noTitleSummaryFontSize;

  @override
  final double summaryFontSize;

  @override
  final double summaryMinHeight;

  @override
  final double noTitleSummaryMinHeight;

  @override
  final double buttonHeight;

  @override
  final double dividerSize;

  @override
  final double buttonFontSize;

  @override
  final MeasuredMetrics measuredMetrics;

  @override
  final Offset specOffset;

  @override
  Size get measuredSize => measuredMetrics.size;

  static _GuruAlertDialogDesignSpec _create(
    Size measuredSize, {
    Offset offset = Offset.zero,
  }) {
    final _measuredMetrics = designMetrics.measure(measuredSize);
    return _GuruAlertDialogDesignSpec._(
      _measuredMetrics, offset,
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureHorizontal(64.0),
          bottom: _measuredMetrics.measureHorizontal(64.0)),
      EdgeInsets.only(
          left: 0.0,
          right: 0.0,
          top: 0.0,
          bottom: _measuredMetrics.measureVertical(16.0)),
      _measuredMetrics.measureAbsoluteFontSize(36.0,
          consistent: false), // titleFontSize
      EdgeInsets.only(
          left: _measuredMetrics.measureHorizontal(56.0),
          right: _measuredMetrics.measureHorizontal(56.0),
          top: _measuredMetrics.measureVertical(64.0),
          bottom: _measuredMetrics.measureVertical(64.0)),
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // noTitleSummaryFontSize
      _measuredMetrics.measureAbsoluteFontSize(28.0,
          consistent: false), // summaryFontSize
      _measuredMetrics.measureHeight(88.0,
          consistent: false), // summaryMinHeight
      _measuredMetrics.measureHeight(96.0,
          consistent: false), // noTitleSummaryMinHeight
      _measuredMetrics.measureHeight(104.0, consistent: false), // buttonHeight
      _measuredMetrics.measureHeight(1.0, consistent: false), // dividerSize
      _measuredMetrics.measureAbsoluteFontSize(32.0,
          consistent: false), // buttonFontSize
    );
  }

  static GuruAlertDialogDesignSpec from(
    Size size, {
    Offset offset = Offset.zero,
  }) {
    final Size measuredSize = size;
    final key = BasicDesignSpec.buildSpecKey(measuredSize, offset);
    _GuruAlertDialogDesignSpec? designSpec = _cache[key];
    if (kDebugMode || designSpec == null) {
      designSpec = _create(measuredSize, offset: offset);
      _cache[key] = designSpec;
    }
    return designSpec;
  }
}
