import 'package:design/design.dart';
part 'dialog_image_double_button_alert_design_model.g.dart';

@DesignSpec(width: 750, height: 1624)
abstract class DialogImageDoubleButtonAlertDesignSpec implements BasicDesignSpec {
  @NestedAspectSpec(654.0 / 964.0, 654.0 / 750.0, widthUpperLimit: 400)
  DialogImageDoubleButtonAlertContentDesignSpec get contentSpec;

  static DialogImageDoubleButtonAlertDesignSpec get() =>
      _DialogImageDoubleButtonAlertDesignSpec.get();
}

@DesignSpec(width: 654.0, height: 964.0, nestedSpec: true)
abstract class DialogImageDoubleButtonAlertContentDesignSpec implements BasicDesignSpec {
  @SpecRadius.circular(SpecHeight(40))
  BorderRadius get cardRadius;

  @SpecEdgeInsets.only(top: SpecVertical(40), start: SpecHorizontal(32))
  EdgeInsets get closeIconInsets;

  @SpecSize(SpecWidth(48), SpecWidth(48))
  Size get closeIconSize;

  @SpecEdgeInsets.only(top: SpecVertical(80), start: SpecHorizontal(96), end: SpecHorizontal(96))
  EdgeInsets get mainTitleInsets;

  @SpecAbsoluteFontSize(36)
  double get mainTitleFontSize;

  @SpecEdgeInsets.only(top: SpecVertical(24), start: SpecHorizontal(96), end: SpecHorizontal(96))
  EdgeInsets get subTitleInsets;

  @SpecAbsoluteFontSize(28)
  double get subTitleFontSize;

  @SpecEdgeInsets.only(top: SpecVertical(24), start: SpecHorizontal(63), end: SpecHorizontal(63))
  EdgeInsets get contentImageInsets;

  @SpecHeight(320)
  double get imageContainerHeight;

  @SpecEdgeInsets.only(top: SpecVertical(24), start: SpecHorizontal(56), end: SpecHorizontal(56))
  EdgeInsets get descriptionTextInsets;

  @SpecAbsoluteFontSize(28)
  double get descriptionTextFontSize;

  @SpecHeight(48)
  double get upButtonTopSpace;

  @SpecHeight(96)
  double get upButtonHeight;

  @SpecWidth(542)
  double get upButtonWidth;

  @SpecAbsoluteFontSize(32)
  double get upButtonFontSize;

  @SpecSize(SpecHeight(56), SpecHeight(56))
  Size get upButtonImageSize;

  @SpecWidth(12)
  double get buttonImageRightSpace;

  @SpecRadius.circular(SpecHeight(48))
  BorderRadius get upButtonRadius;

  @SpecHeight(44)
  double get downButtonTopSpace;

  @SpecAbsoluteFontSize(32)
  double get downButtonFontSize;

  @SpecHeight(64)
  double get downButtonBottomSpace;

  static DialogImageDoubleButtonAlertContentDesignSpec create(Size measuredSize,
          {Offset offset = Offset.zero}) =>
      _DialogImageDoubleButtonAlertContentDesignSpec._create(measuredSize, offset: offset);
}
