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

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

  static DialogSingleInputAlertDesignSpec get() => _DialogSingleInputAlertDesignSpec.get();
}

@DesignSpec(width: 654.0, height: 532.0, nestedSpec: true)
abstract class DialogSingleInputAlertContentDesignSpec 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 titleInsets;

  @SpecAbsoluteFontSize(36)
  double get titleFontSize;

  @SpecHeight(55)
  double get inputContainerTopSpace;

  @SpecWidth(542)
  double get inputWidth;

  @SpecEdgeInsets.only(
      top: SpecVertical(38),
      start: SpecHorizontal(34),
      end: SpecHorizontal(34),
      bottom: SpecVertical(38))
  EdgeInsets get inputInsets;

  @SpecHeight(120)
  double get inputHeight;

  @SpecHeight(44)
  double get cursorHeight;

  @SpecOrigin(2.5)
  double get cursorWidth;

  @SpecRadius.circular(SpecHeight(24))
  BorderRadius get inputRadius;

  @SpecAbsoluteFontSize(32)
  double get inputFontSize;

  @SpecAbsoluteFontSize(32)
  double get inputHintFontSize;

  @SpecHeight(48)
  double get buttonTopSpace;

  @SpecHeight(96)
  double get buttonHeight;

  @SpecWidth(542)
  double get buttonWidth;

  @SpecAbsoluteFontSize(32)
  double get buttonFontSize;

  @SpecHeight(88)
  double get buttonBottomSpace;

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

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