diff --git a/examples/movie_app/pubspec.yaml b/examples/movie_app/pubspec.yaml index 7b936bd5..cb8a7eb6 100644 --- a/examples/movie_app/pubspec.yaml +++ b/examples/movie_app/pubspec.yaml @@ -34,7 +34,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 - stac: + stac: ^1.0.0-dev.6 stac_core: dio: ^5.8.0+1 smooth_page_indicator: ^1.2.1 diff --git a/packages/stac/lib/src/parsers/actions/stac_dialog_action/stac_dialog_action_parser.dart b/packages/stac/lib/src/parsers/actions/stac_dialog_action/stac_dialog_action_parser.dart index e145805f..e49f3a47 100644 --- a/packages/stac/lib/src/parsers/actions/stac_dialog_action/stac_dialog_action_parser.dart +++ b/packages/stac/lib/src/parsers/actions/stac_dialog_action/stac_dialog_action_parser.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_traversal_edge_behavior_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; @@ -52,7 +52,7 @@ class StacDialogActionParser extends StacActionParser { barrierColor: model.barrierColor.toColor(context), barrierLabel: model.barrierLabel, useSafeArea: model.useSafeArea ?? true, - traversalEdgeBehavior: model.traversalEdgeBehavior.parse, + traversalEdgeBehavior: model.traversalEdgeBehavior?.parse, ); } } diff --git a/packages/stac/lib/src/parsers/actions/stac_modal_bottom_sheet_action/stac_modal_bottom_sheet_action_parser.dart b/packages/stac/lib/src/parsers/actions/stac_modal_bottom_sheet_action/stac_modal_bottom_sheet_action_parser.dart index 4cba571d..f070e834 100644 --- a/packages/stac/lib/src/parsers/actions/stac_modal_bottom_sheet_action/stac_modal_bottom_sheet_action_parser.dart +++ b/packages/stac/lib/src/parsers/actions/stac_modal_bottom_sheet_action/stac_modal_bottom_sheet_action_parser.dart @@ -3,7 +3,8 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/actions/stac_snack_bar/stac_snack_bar_parser.dart b/packages/stac/lib/src/parsers/actions/stac_snack_bar/stac_snack_bar_parser.dart index 7e43a851..eb81418f 100644 --- a/packages/stac/lib/src/parsers/actions/stac_snack_bar/stac_snack_bar_parser.dart +++ b/packages/stac/lib/src/parsers/actions/stac_snack_bar/stac_snack_bar_parser.dart @@ -3,8 +3,13 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/animation/stac_duration_parsers.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_dismiss_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_snack_bar_behavior_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; @@ -42,7 +47,7 @@ class StacSnackBarParser extends StacActionParser { duration: model.duration?.parse ?? const Duration(milliseconds: 4000), onVisible: () => Stac.onCallFromJson(model.onVisible, context), dismissDirection: model.dismissDirection?.parse, - clipBehavior: model.clipBehavior.parse, + clipBehavior: model.clipBehavior?.parse ?? Clip.hardEdge, ), ); } diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_directional_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_directional_parser.dart new file mode 100644 index 00000000..aec19835 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_directional_parser.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacAlignmentDirectionalParser on StacAlignmentDirectional { + AlignmentDirectional get parse { + switch (this) { + case StacAlignmentDirectional.topStart: + return AlignmentDirectional.topStart; + case StacAlignmentDirectional.topCenter: + return AlignmentDirectional.topCenter; + case StacAlignmentDirectional.topEnd: + return AlignmentDirectional.topEnd; + case StacAlignmentDirectional.centerStart: + return AlignmentDirectional.centerStart; + case StacAlignmentDirectional.center: + return AlignmentDirectional.center; + case StacAlignmentDirectional.centerEnd: + return AlignmentDirectional.centerEnd; + case StacAlignmentDirectional.bottomStart: + return AlignmentDirectional.bottomStart; + case StacAlignmentDirectional.bottomCenter: + return AlignmentDirectional.bottomCenter; + case StacAlignmentDirectional.bottomEnd: + return AlignmentDirectional.bottomEnd; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_geometry_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_geometry_parser.dart new file mode 100644 index 00000000..938d0b48 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_geometry_parser.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacAlignmentGeometryParser on StacAlignmentGeometry { + Alignment get parse { + return Alignment(dx, dy); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_parser.dart new file mode 100644 index 00000000..15868dda --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_parser.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacAlignmentParser on StacAlignment { + Alignment get parse { + switch (this) { + case StacAlignment.topLeft: + return Alignment.topLeft; + case StacAlignment.topCenter: + return Alignment.topCenter; + case StacAlignment.topRight: + return Alignment.topRight; + case StacAlignment.centerLeft: + return Alignment.centerLeft; + case StacAlignment.center: + return Alignment.center; + case StacAlignment.centerRight: + return Alignment.centerRight; + case StacAlignment.bottomLeft: + return Alignment.bottomLeft; + case StacAlignment.bottomCenter: + return Alignment.bottomCenter; + case StacAlignment.bottomRight: + return Alignment.bottomRight; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_cross_axis_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_cross_axis_alignment_parser.dart new file mode 100644 index 00000000..d384c9f4 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_cross_axis_alignment_parser.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacCrossAxisAlignmentParser on StacCrossAxisAlignment { + CrossAxisAlignment get parse { + switch (this) { + case StacCrossAxisAlignment.start: + return CrossAxisAlignment.start; + case StacCrossAxisAlignment.end: + return CrossAxisAlignment.end; + case StacCrossAxisAlignment.center: + return CrossAxisAlignment.center; + case StacCrossAxisAlignment.stretch: + return CrossAxisAlignment.stretch; + case StacCrossAxisAlignment.baseline: + return CrossAxisAlignment.baseline; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_icon_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_icon_alignment_parser.dart new file mode 100644 index 00000000..188c68ff --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_icon_alignment_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacIconAlignmentParser on StacIconAlignment { + IconAlignment get parse { + switch (this) { + case StacIconAlignment.start: + return IconAlignment.start; + case StacIconAlignment.end: + return IconAlignment.end; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_alignment_parser.dart new file mode 100644 index 00000000..0abd24c1 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_alignment_parser.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacMainAxisAlignmentParser on StacMainAxisAlignment { + MainAxisAlignment get parse { + switch (this) { + case StacMainAxisAlignment.start: + return MainAxisAlignment.start; + case StacMainAxisAlignment.end: + return MainAxisAlignment.end; + case StacMainAxisAlignment.center: + return MainAxisAlignment.center; + case StacMainAxisAlignment.spaceBetween: + return MainAxisAlignment.spaceBetween; + case StacMainAxisAlignment.spaceAround: + return MainAxisAlignment.spaceAround; + case StacMainAxisAlignment.spaceEvenly: + return MainAxisAlignment.spaceEvenly; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_size_parser.dart b/packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_size_parser.dart new file mode 100644 index 00000000..df496c99 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_size_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacMainAxisSizeParser on StacMainAxisSize { + MainAxisSize get parse { + switch (this) { + case StacMainAxisSize.min: + return MainAxisSize.min; + case StacMainAxisSize.max: + return MainAxisSize.max; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/animation/stac_duration_parsers.dart b/packages/stac/lib/src/parsers/foundation/animation/stac_duration_parsers.dart new file mode 100644 index 00000000..e12be5d2 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/animation/stac_duration_parsers.dart @@ -0,0 +1,14 @@ +import 'package:stac_core/stac_core.dart'; + +extension StacDurationParser on StacDuration { + Duration get parse { + return Duration( + days: days ?? 0, + hours: hours ?? 0, + minutes: minutes ?? 0, + seconds: seconds ?? 0, + milliseconds: milliseconds ?? 0, + microseconds: microseconds ?? 0, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/animation/stac_rect_tween_parser.dart b/packages/stac/lib/src/parsers/foundation/animation/stac_rect_tween_parser.dart new file mode 100644 index 00000000..05865c01 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/animation/stac_rect_tween_parser.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import '../geometry/stac_rect_parser.dart'; + +extension StacRectTweenParser on StacRectTween { + RectTween parse(BuildContext context) { + final begin = this.begin?.parse; + final end = this.end?.parse; + + switch (type) { + case 'materialRectArcTween': + return MaterialRectArcTween(begin: begin, end: end); + case 'materialRectCenterArcTween': + return MaterialRectCenterArcTween(begin: begin, end: end); + default: + return RectTween(begin: begin, end: end); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_beveled_rectangle_border_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_beveled_rectangle_border_parser.dart new file mode 100644 index 00000000..00ac1301 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_beveled_rectangle_border_parser.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_border_side_parser.dart'; + +extension StacBeveledRectangleBorderParser on StacBeveledRectangleBorder { + BeveledRectangleBorder parse(BuildContext context) { + return BeveledRectangleBorder( + side: side?.parse(context) ?? BorderSide.none, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_border_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_border_parser.dart new file mode 100644 index 00000000..7a65732f --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_border_parser.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_border_side_parser.dart'; +import 'stac_border_style_parser.dart'; + +extension StacBorderParser on StacBorder { + Border parse(BuildContext context) { + final hasIndividualSides = + top != null || right != null || bottom != null || left != null; + + if (hasIndividualSides) { + return Border( + top: top?.parse(context) ?? BorderSide.none, + right: right?.parse(context) ?? BorderSide.none, + bottom: bottom?.parse(context) ?? BorderSide.none, + left: left?.parse(context) ?? BorderSide.none, + ); + } else { + return Border.all( + color: color.toColor(context) ?? const Color(0xFF000000), + width: width ?? 1.0, + style: borderStyle?.parse ?? BorderStyle.solid, + strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside, + ); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_border_radius_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_border_radius_parser.dart new file mode 100644 index 00000000..dd3997be --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_border_radius_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBorderRadiusParser on StacBorderRadius { + BorderRadius get parse { + return BorderRadius.only( + topLeft: Radius.circular(topLeft ?? 0.0), + topRight: Radius.circular(topRight ?? 0.0), + bottomLeft: Radius.circular(bottomLeft ?? 0.0), + bottomRight: Radius.circular(bottomRight ?? 0.0), + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_border_side_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_border_side_parser.dart new file mode 100644 index 00000000..6d306111 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_border_side_parser.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_border_style_parser.dart'; + +extension StacBorderSideParser on StacBorderSide { + BorderSide parse(BuildContext context) { + return BorderSide( + color: color?.toColor(context) ?? const Color(0xFF000000), + width: width ?? 1.0, + style: borderStyle?.parse ?? BorderStyle.solid, + strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_border_style_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_border_style_parser.dart new file mode 100644 index 00000000..be612da9 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_border_style_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBorderStyleParser on StacBorderStyle { + BorderStyle get parse { + switch (this) { + case StacBorderStyle.none: + return BorderStyle.none; + case StacBorderStyle.solid: + return BorderStyle.solid; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_circle_border_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_circle_border_parser.dart new file mode 100644 index 00000000..d95a047d --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_circle_border_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_border_side_parser.dart'; + +extension StacCircleBorderParser on StacCircleBorder { + CircleBorder parse(BuildContext context) { + return CircleBorder( + side: side?.parse(context) ?? BorderSide.none, + eccentricity: eccentricity ?? 0.0, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_continuous_rectangle_border_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_continuous_rectangle_border_parser.dart new file mode 100644 index 00000000..a0357ab1 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_continuous_rectangle_border_parser.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_border_radius_parser.dart'; +import 'stac_border_side_parser.dart'; + +extension StacContinuousRectangleBorderParser on StacContinuousRectangleBorder { + ContinuousRectangleBorder parse(BuildContext context) { + return ContinuousRectangleBorder( + side: side?.parse(context) ?? BorderSide.none, + borderRadius: borderRadius?.parse ?? BorderRadius.zero, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_rounded_rectangle_border_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_rounded_rectangle_border_parser.dart new file mode 100644 index 00000000..7d902dac --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_rounded_rectangle_border_parser.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_border_radius_parser.dart'; +import 'stac_border_side_parser.dart'; + +extension StacRoundedRectangleBorderParser on StacRoundedRectangleBorder { + RoundedRectangleBorder parse(BuildContext context) { + return RoundedRectangleBorder( + side: side?.parse(context) ?? BorderSide.none, + borderRadius: borderRadius?.parse ?? BorderRadius.zero, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/borders/stac_shape_border_parser.dart b/packages/stac/lib/src/parsers/foundation/borders/stac_shape_border_parser.dart new file mode 100644 index 00000000..19e17c6f --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/borders/stac_shape_border_parser.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_circle_border_parser.dart'; +import 'stac_rounded_rectangle_border_parser.dart'; + +extension StacShapeBorderParser on StacShapeBorder { + OutlinedBorder parse(BuildContext context) { + switch (this) { + case StacRoundedRectangleBorder(): + return (this as StacRoundedRectangleBorder).parse(context); + case StacCircleBorder(): + return (this as StacCircleBorder).parse(context); + default: + return RoundedRectangleBorder( + side: BorderSide.none, + borderRadius: BorderRadius.zero, + ); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/colors/stac_blend_mode_parser.dart b/packages/stac/lib/src/parsers/foundation/colors/stac_blend_mode_parser.dart new file mode 100644 index 00000000..6f5b7551 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/colors/stac_blend_mode_parser.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBlendModeParser on StacBlendMode { + BlendMode get parse { + switch (this) { + case StacBlendMode.clear: + return BlendMode.clear; + case StacBlendMode.src: + return BlendMode.src; + case StacBlendMode.dst: + return BlendMode.dst; + case StacBlendMode.srcOver: + return BlendMode.srcOver; + case StacBlendMode.dstOver: + return BlendMode.dstOver; + case StacBlendMode.srcIn: + return BlendMode.srcIn; + case StacBlendMode.dstIn: + return BlendMode.dstIn; + case StacBlendMode.srcOut: + return BlendMode.srcOut; + case StacBlendMode.dstOut: + return BlendMode.dstOut; + case StacBlendMode.srcATop: + return BlendMode.srcATop; + case StacBlendMode.dstATop: + return BlendMode.dstATop; + case StacBlendMode.xor: + return BlendMode.xor; + case StacBlendMode.plus: + return BlendMode.plus; + case StacBlendMode.modulate: + return BlendMode.modulate; + case StacBlendMode.screen: + return BlendMode.screen; + case StacBlendMode.overlay: + return BlendMode.overlay; + case StacBlendMode.darken: + return BlendMode.darken; + case StacBlendMode.lighten: + return BlendMode.lighten; + case StacBlendMode.colorDodge: + return BlendMode.colorDodge; + case StacBlendMode.colorBurn: + return BlendMode.colorBurn; + case StacBlendMode.hardLight: + return BlendMode.hardLight; + case StacBlendMode.softLight: + return BlendMode.softLight; + case StacBlendMode.difference: + return BlendMode.difference; + case StacBlendMode.exclusion: + return BlendMode.exclusion; + case StacBlendMode.multiply: + return BlendMode.multiply; + case StacBlendMode.hue: + return BlendMode.hue; + case StacBlendMode.saturation: + return BlendMode.saturation; + case StacBlendMode.color: + return BlendMode.color; + case StacBlendMode.luminosity: + return BlendMode.luminosity; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/colors/stac_brightness_parser.dart b/packages/stac/lib/src/parsers/foundation/colors/stac_brightness_parser.dart new file mode 100644 index 00000000..ce24d62e --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/colors/stac_brightness_parser.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBrightnessParser on StacBrightness { + Brightness get parse { + switch (this) { + case StacBrightness.light: + return Brightness.light; + case StacBrightness.dark: + return Brightness.dark; + case StacBrightness.system: + return Brightness.light; + } + } +} diff --git a/packages/stac/lib/src/parsers/painting/stac_box_decoration_parser.dart b/packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart similarity index 53% rename from packages/stac/lib/src/parsers/painting/stac_box_decoration_parser.dart rename to packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart index b87796ca..a01f4930 100644 --- a/packages/stac/lib/src/parsers/painting/stac_box_decoration_parser.dart +++ b/packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart @@ -1,6 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_radius_parser.dart'; +import 'package:stac/src/parsers/foundation/colors/stac_blend_mode_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_gradient_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_shadow_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_box_shape_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/foundation/decoration/stac_box_decoration/stac_box_decoration.dart'; diff --git a/packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser.dart b/packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser.dart similarity index 100% rename from packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser.dart rename to packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser.dart diff --git a/packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser_io.dart b/packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser_io.dart similarity index 71% rename from packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser_io.dart rename to packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser_io.dart index 5ca050e6..6df54f95 100644 --- a/packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser_io.dart +++ b/packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser_io.dart @@ -1,7 +1,11 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_effects_parsers.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_rect_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_box_fit_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_image_repeat_parser.dart'; import 'package:stac_core/stac_core.dart'; extension StacDecorationImageParser on StacDecorationImage { diff --git a/packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser_web.dart b/packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser_web.dart similarity index 72% rename from packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser_web.dart rename to packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser_web.dart index 53926706..02167740 100644 --- a/packages/stac/lib/src/parsers/painting/stac_decoration_image/stac_decoration_image_parser_web.dart +++ b/packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser_web.dart @@ -1,5 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_effects_parsers.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_rect_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_box_fit_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_image_repeat_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_logger/stac_logger.dart'; diff --git a/packages/stac/lib/src/parsers/foundation/decoration/stac_input_decoration_parser.dart b/packages/stac/lib/src/parsers/foundation/decoration/stac_input_decoration_parser.dart new file mode 100644 index 00000000..5b86d22f --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/decoration/stac_input_decoration_parser.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacInputDecorationParser on StacInputDecoration { + InputDecoration parse(BuildContext context) { + return InputDecoration( + icon: icon?.parse(context), + labelText: labelText, + labelStyle: labelStyle?.parse(context), + hintText: hintText, + hintStyle: hintStyle?.parse(context), + helperText: helperText, + helperStyle: helperStyle?.parse(context), + errorText: errorText, + errorStyle: errorStyle?.parse(context), + prefixIcon: prefixIcon?.parse(context), + prefixText: prefixText, + prefixStyle: prefixStyle?.parse(context), + suffixIcon: suffixIcon.parse(context), + suffixText: suffixText, + suffixStyle: suffixStyle?.parse(context), + isDense: isDense, + contentPadding: contentPadding?.parse, + filled: filled, + fillColor: fillColor?.toColor(context), + alignLabelWithHint: alignLabelWithHint, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/effects/stac_blur_style_parser.dart b/packages/stac/lib/src/parsers/foundation/effects/stac_blur_style_parser.dart new file mode 100644 index 00000000..28e922fc --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/effects/stac_blur_style_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBlurStyleParser on StacBlurStyle { + BlurStyle get parse { + switch (this) { + case StacBlurStyle.normal: + return BlurStyle.normal; + case StacBlurStyle.solid: + return BlurStyle.solid; + case StacBlurStyle.outer: + return BlurStyle.outer; + case StacBlurStyle.inner: + return BlurStyle.inner; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/effects/stac_effects_parsers.dart b/packages/stac/lib/src/parsers/foundation/effects/stac_effects_parsers.dart new file mode 100644 index 00000000..4029f831 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/effects/stac_effects_parsers.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacFilterQualityParser on StacFilterQuality { + FilterQuality get parse { + switch (this) { + case StacFilterQuality.none: + return FilterQuality.none; + case StacFilterQuality.low: + return FilterQuality.low; + case StacFilterQuality.medium: + return FilterQuality.medium; + case StacFilterQuality.high: + return FilterQuality.high; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/effects/stac_gradient_parser.dart b/packages/stac/lib/src/parsers/foundation/effects/stac_gradient_parser.dart new file mode 100644 index 00000000..0fc70439 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/effects/stac_gradient_parser.dart @@ -0,0 +1,50 @@ +import 'dart:math' as math; + +import 'package:flutter/material.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_tile_mode_parser.dart'; + +extension StacGradientParser on StacGradient { + Gradient? parse(BuildContext context) { + Gradient linearGradient() => LinearGradient( + colors: colors?.map((e) => e.toColor(context)!).toList() ?? [], + begin: begin?.parse ?? Alignment.centerLeft, + end: end?.parse ?? Alignment.centerRight, + stops: stops, + tileMode: tileMode?.parse ?? TileMode.clamp, + ); + + Gradient radialGradient() => RadialGradient( + colors: colors?.map((e) => e.toColor(context)!).toList() ?? [], + stops: stops, + tileMode: tileMode?.parse ?? TileMode.clamp, + focal: focal?.parse, + focalRadius: focalRadius ?? 0.0, + radius: radius ?? 0.5, + center: center?.parse ?? Alignment.center, + ); + + Gradient sweepGradient() => SweepGradient( + colors: colors?.map((e) => e.toColor(context)!).toList() ?? [], + stops: stops, + center: center?.parse ?? Alignment.center, + startAngle: startAngle ?? 0.0, + endAngle: endAngle ?? math.pi * 2, + tileMode: tileMode?.parse ?? TileMode.clamp, + ); + + switch (gradientType) { + case StacGradientType.linear: + return linearGradient(); + case StacGradientType.radial: + return radialGradient(); + case StacGradientType.sweep: + return sweepGradient(); + default: + return null; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/effects/stac_image_filter_parsers.dart b/packages/stac/lib/src/parsers/foundation/effects/stac_image_filter_parsers.dart new file mode 100644 index 00000000..4f66bfa9 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/effects/stac_image_filter_parsers.dart @@ -0,0 +1,35 @@ +import 'dart:typed_data'; +import 'dart:ui'; + +import 'package:stac_core/stac_core.dart'; + +extension StacImageFilterParser on StacImageFilter { + ImageFilter get parse { + switch (type) { + case StacImageFilterType.blur: + final sx = sigmaX ?? 0.0; + final sy = sigmaY ?? sx; + return ImageFilter.blur(sigmaX: sx, sigmaY: sy); + case StacImageFilterType.matrix: + if (matrix != null && matrix!.length == 16) { + return ImageFilter.matrix(Float64List.fromList(matrix!)); + } + return ImageFilter.matrix(Float64List.fromList(List.filled(16, 0))); + case StacImageFilterType.dilate: + final rx = radiusX ?? 0.0; + final ry = radiusY ?? rx; + return ImageFilter.dilate(radiusX: rx, radiusY: ry); + case StacImageFilterType.erode: + final rx = radiusX ?? 0.0; + final ry = radiusY ?? rx; + return ImageFilter.erode(radiusX: rx, radiusY: ry); + case StacImageFilterType.compose: + final innerFilter = inner?.parse; + final outerFilter = outer?.parse; + if (innerFilter != null && outerFilter != null) { + return ImageFilter.compose(inner: innerFilter, outer: outerFilter); + } + return ImageFilter.blur(sigmaX: 0, sigmaY: 0); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/effects/stac_shadow_parser.dart b/packages/stac/lib/src/parsers/foundation/effects/stac_shadow_parser.dart new file mode 100644 index 00000000..c954f433 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/effects/stac_shadow_parser.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_offset_parser.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacShadowParser on StacShadow { + Shadow parse(BuildContext context) { + return Shadow( + color: color.toColor(context) ?? Colors.transparent, + offset: (offset)?.parse ?? Offset.zero, + blurRadius: (blurRadius) ?? 0.0, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/effects/stac_tile_mode_parser.dart b/packages/stac/lib/src/parsers/foundation/effects/stac_tile_mode_parser.dart new file mode 100644 index 00000000..5ed3bf7d --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/effects/stac_tile_mode_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTileModeParser on StacTileMode { + TileMode get parse { + switch (this) { + case StacTileMode.clamp: + return TileMode.clamp; + case StacTileMode.repeated: + return TileMode.repeated; + case StacTileMode.mirror: + return TileMode.mirror; + case StacTileMode.decal: + return TileMode.decal; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/forms/stac_autovalidate_mode_parser.dart b/packages/stac/lib/src/parsers/foundation/forms/stac_autovalidate_mode_parser.dart new file mode 100644 index 00000000..396c2fdb --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/forms/stac_autovalidate_mode_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacAutovalidateMode] to provide parsing functionality. +extension StacAutovalidateModeParser on StacAutovalidateMode { + /// Parses this [StacAutovalidateMode] into a Flutter [AutovalidateMode]. + AutovalidateMode get parse { + switch (this) { + case StacAutovalidateMode.disabled: + return AutovalidateMode.disabled; + case StacAutovalidateMode.always: + return AutovalidateMode.always; + case StacAutovalidateMode.onUserInteraction: + return AutovalidateMode.onUserInteraction; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/forms/stac_input_formatter_type_parser.dart b/packages/stac/lib/src/parsers/foundation/forms/stac_input_formatter_type_parser.dart new file mode 100644 index 00000000..59798dac --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/forms/stac_input_formatter_type_parser.dart @@ -0,0 +1,13 @@ +import 'package:stac/src/utils/input_formatters.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacInputFormatterTypeCoreParser on StacInputFormatterType { + InputFormatterType get parse { + switch (this) { + case StacInputFormatterType.allow: + return InputFormatterType.allow; + case StacInputFormatterType.deny: + return InputFormatterType.deny; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/forms/stac_max_length_enforcement_parser.dart b/packages/stac/lib/src/parsers/foundation/forms/stac_max_length_enforcement_parser.dart new file mode 100644 index 00000000..685df4be --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/forms/stac_max_length_enforcement_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/services.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacMaxLengthEnforcementParser on StacMaxLengthEnforcement { + MaxLengthEnforcement get parse { + switch (this) { + case StacMaxLengthEnforcement.none: + return MaxLengthEnforcement.none; + case StacMaxLengthEnforcement.enforced: + return MaxLengthEnforcement.enforced; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/forms/stac_text_input_type_parser.dart b/packages/stac/lib/src/parsers/foundation/forms/stac_text_input_type_parser.dart new file mode 100644 index 00000000..f1c18dc7 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/forms/stac_text_input_type_parser.dart @@ -0,0 +1,31 @@ +import 'package:flutter/services.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextInputTypeParser on StacTextInputType { + TextInputType get parse { + switch (this) { + case StacTextInputType.text: + return TextInputType.text; + case StacTextInputType.multiline: + return TextInputType.multiline; + case StacTextInputType.number: + return TextInputType.number; + case StacTextInputType.phone: + return TextInputType.phone; + case StacTextInputType.datetime: + return TextInputType.datetime; + case StacTextInputType.emailAddress: + return TextInputType.emailAddress; + case StacTextInputType.url: + return TextInputType.url; + case StacTextInputType.visiblePassword: + return TextInputType.visiblePassword; + case StacTextInputType.name: + return TextInputType.name; + case StacTextInputType.streetAddress: + return TextInputType.streetAddress; + case StacTextInputType.none: + return TextInputType.none; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/foundation.dart b/packages/stac/lib/src/parsers/foundation/foundation.dart new file mode 100644 index 00000000..6742483d --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/foundation.dart @@ -0,0 +1,109 @@ +library; + +export 'alignment/stac_alignment_directional_parser.dart'; +export 'alignment/stac_alignment_geometry_parser.dart'; +// Alignment and positioning parsers +export 'alignment/stac_alignment_parser.dart'; +export 'alignment/stac_cross_axis_alignment_parser.dart'; +export 'alignment/stac_icon_alignment_parser.dart'; +export 'alignment/stac_main_axis_alignment_parser.dart'; +export 'alignment/stac_main_axis_size_parser.dart'; +// Animation and timing parsers +export 'animation/stac_duration_parsers.dart'; +export 'animation/stac_rect_tween_parser.dart'; +export 'borders/stac_beveled_rectangle_border_parser.dart'; +// Border and shape parsers +export 'borders/stac_border_parser.dart'; +export 'borders/stac_border_radius_parser.dart'; +export 'borders/stac_border_side_parser.dart'; +export 'borders/stac_border_style_parser.dart'; +export 'borders/stac_circle_border_parser.dart'; +export 'borders/stac_continuous_rectangle_border_parser.dart'; +export 'borders/stac_rounded_rectangle_border_parser.dart'; +export 'borders/stac_shape_border_parser.dart'; +// Color parsers +export 'colors/stac_blend_mode_parser.dart'; +export 'colors/stac_brightness_parser.dart'; +// Decoration parsers +export 'decoration/stac_box_decoration_parser.dart'; +export 'decoration/stac_decoration_image/stac_decoration_image_parser.dart'; +export 'decoration/stac_input_decoration_parser.dart'; +// Effect parsers +export 'effects/stac_blur_style_parser.dart'; +export 'effects/stac_effects_parsers.dart'; +export 'effects/stac_gradient_parser.dart'; +export 'effects/stac_image_filter_parsers.dart'; +export 'effects/stac_shadow_parser.dart'; +export 'effects/stac_tile_mode_parser.dart'; +// Form parsers +export 'forms/stac_autovalidate_mode_parser.dart'; +export 'forms/stac_input_formatter_type_parser.dart'; +export 'forms/stac_max_length_enforcement_parser.dart'; +export 'forms/stac_text_input_type_parser.dart'; +// Geometry parsers +export 'geometry/stac_box_constraints_parser.dart'; +export 'geometry/stac_box_shadow_parser.dart'; +export 'geometry/stac_edge_insets_parser.dart'; +export 'geometry/stac_offset_parser.dart'; +export 'geometry/stac_rect_parser.dart'; +export 'geometry/stac_size_parser.dart'; +export 'geometry/stac_visual_density_parser.dart'; +// Interaction parsers +export 'interaction/stac_drag_start_behavior_parser.dart'; +export 'interaction/stac_hit_test_behavior_parser.dart'; +export 'interaction/stac_mouse_cursor_parser.dart'; +export 'interaction/stac_scroll_physics_parser.dart'; +export 'interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart'; +export 'interaction/stac_slider_interaction_parser.dart'; +export 'interaction/stac_switch_type_parser.dart'; +export 'interaction/stac_traversal_edge_behavior_parser.dart'; +// Layout parsers +export 'layout/stac_axis_parser.dart'; +export 'layout/stac_box_fit_parser.dart'; +export 'layout/stac_box_shape_parser.dart'; +export 'layout/stac_clip_parser.dart'; +export 'layout/stac_flex_fit_parser.dart'; +export 'layout/stac_material_tap_target_size_parser.dart'; +export 'layout/stac_stack_fit_parser.dart'; +export 'layout/stac_vertical_direction_parser.dart'; +export 'layout/stac_wrap_alignment_parser.dart'; +export 'layout/stac_wrap_cross_alignment_parser.dart'; +// Navigation parsers +export 'navigation/stac_bottom_navigation_bar_landscape_layout_parser.dart'; +export 'navigation/stac_bottom_navigation_bar_type_parser.dart'; +export 'navigation/stac_floating_action_button_location_parser.dart'; +export 'navigation/stac_tab_alignment_parser.dart'; +export 'navigation/stac_tab_bar_indicator_size_parser.dart'; +// Text parsers +export 'text/stac_font_style_parser.dart'; +export 'text/stac_font_weight_parser.dart'; +export 'text/stac_smart_dashes_type_parser.dart'; +export 'text/stac_smart_quotes_type_parser.dart'; +export 'text/stac_stroke_cap_parser.dart'; +export 'text/stac_text_align_parser.dart'; +export 'text/stac_text_baseline_parser.dart'; +export 'text/stac_text_capitalization_parser.dart'; +export 'text/stac_text_decoration_style_parser.dart'; +export 'text/stac_text_direction_parser.dart'; +export 'text/stac_text_input_action_parser.dart'; +export 'text/stac_text_leading_distribution_parser.dart'; +export 'text/stac_text_overflow_parser.dart'; +export 'text/stac_text_style_parser.dart'; +export 'text/stac_text_width_basis_parser.dart'; +// Theme parsers +export 'theme/stac_input_decoration_theme_parser.dart'; +// UI component parsers +export 'ui_components/stac_dismiss_direction_parser.dart'; +export 'ui_components/stac_dropdown_menu_entry_parser.dart'; +export 'ui_components/stac_image_repeat_parser.dart'; +export 'ui_components/stac_list_tile_style_parser.dart'; +export 'ui_components/stac_list_tile_title_alignment_parser.dart'; +export 'ui_components/stac_options_view_open_direction_parser.dart'; +export 'ui_components/stac_overflow_bar_alignment_parser.dart'; +export 'ui_components/stac_refresh_indicator_trigger_mode_parser.dart'; +export 'ui_components/stac_snack_bar_behavior_parser.dart'; +export 'ui_components/stac_system_ui_overlay_style_parser.dart'; +export 'ui_components/stac_table_border_parser.dart'; +export 'ui_components/stac_table_cell_vertical_alignment_parser.dart'; +export 'ui_components/stac_table_column_width_parser.dart'; +export 'ui_components/stac_table_row_parser.dart'; diff --git a/packages/stac/lib/src/parsers/foundation/geometry/stac_box_constraints_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_box_constraints_parser.dart new file mode 100644 index 00000000..38fddbfb --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/geometry/stac_box_constraints_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBoxConstraintsParser on StacBoxConstraints { + BoxConstraints get parse { + return BoxConstraints( + minWidth: minWidth ?? 0.0, + maxWidth: maxWidth ?? double.infinity, + minHeight: minHeight ?? 0.0, + maxHeight: maxHeight ?? double.infinity, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/geometry/stac_box_shadow_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_box_shadow_parser.dart new file mode 100644 index 00000000..396e45b4 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/geometry/stac_box_shadow_parser.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +import '../effects/stac_blur_style_parser.dart'; +import 'stac_offset_parser.dart'; + +extension StacBoxShadowParser on StacBoxShadow { + BoxShadow parse(BuildContext context) { + return BoxShadow( + color: color.toColor(context) ?? const Color(0xFF000000), + blurRadius: blurRadius ?? 0.0, + offset: offset?.parse ?? Offset.zero, + spreadRadius: spreadRadius ?? 0.0, + blurStyle: blurStyle?.parse ?? BlurStyle.normal, + ); + } +} diff --git a/packages/stac/lib/src/parsers/painting/stac_edge_insets_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_edge_insets_parser.dart similarity index 100% rename from packages/stac/lib/src/parsers/painting/stac_edge_insets_parser.dart rename to packages/stac/lib/src/parsers/foundation/geometry/stac_edge_insets_parser.dart diff --git a/packages/stac/lib/src/parsers/foundation/geometry/stac_offset_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_offset_parser.dart new file mode 100644 index 00000000..47b862b6 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/geometry/stac_offset_parser.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacOffsetParser on StacOffset { + Offset get parse { + return Offset(dx, dy); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/geometry/stac_rect_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_rect_parser.dart new file mode 100644 index 00000000..6e70f866 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/geometry/stac_rect_parser.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +import 'stac_offset_parser.dart'; + +extension StacRectParser on StacRect { + Rect? get parse { + Rect fromCenter() => Rect.fromCenter( + center: center?.parse ?? Offset.zero, + width: width ?? 0.0, + height: height ?? 0.0, + ); + Rect fromCircle() => Rect.fromCircle( + center: center?.parse ?? Offset.zero, + radius: radius ?? 0.0, + ); + Rect fromLTRB() => Rect.fromLTRB( + left ?? 0.0, + top ?? 0.0, + right ?? 0.0, + bottom ?? 0.0, + ); + Rect fromLTWH() => Rect.fromLTWH( + left ?? 0.0, + top ?? 0.0, + width ?? 0.0, + height ?? 0.0, + ); + Rect fromPoints() => Rect.fromPoints( + a?.parse ?? Offset.zero, + b?.parse ?? Offset.zero, + ); + + switch (rectType) { + case StacRectType.fromCenter: + return fromCenter(); + case StacRectType.fromCircle: + return fromCircle(); + case StacRectType.fromLTRB: + return fromLTRB(); + case StacRectType.fromLTWH: + return fromLTWH(); + case StacRectType.fromPoints: + return fromPoints(); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/geometry/stac_size_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_size_parser.dart new file mode 100644 index 00000000..f8f2e21b --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/geometry/stac_size_parser.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacSizeParser on StacSize { + Size get parse { + return Size(width, height); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/geometry/stac_visual_density_parser.dart b/packages/stac/lib/src/parsers/foundation/geometry/stac_visual_density_parser.dart new file mode 100644 index 00000000..1dc43079 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/geometry/stac_visual_density_parser.dart @@ -0,0 +1,11 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacVisualDensityParser on StacVisualDensity { + VisualDensity get parse { + return VisualDensity( + horizontal: horizontal ?? 0.0, + vertical: vertical ?? 0.0, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart new file mode 100644 index 00000000..d61265b3 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/gestures.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacDragStartBehaviorParser on StacDragStartBehavior { + DragStartBehavior get parse { + switch (this) { + case StacDragStartBehavior.down: + return DragStartBehavior.down; + case StacDragStartBehavior.start: + return DragStartBehavior.start; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart new file mode 100644 index 00000000..47a04b10 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacHitTestBehavior] to provide parsing functionality. +extension StacHitTestBehaviorParser on StacHitTestBehavior { + /// Parses this [StacHitTestBehavior] into a Flutter [HitTestBehavior]. + HitTestBehavior get parse { + switch (this) { + case StacHitTestBehavior.deferToChild: + return HitTestBehavior.deferToChild; + case StacHitTestBehavior.opaque: + return HitTestBehavior.opaque; + case StacHitTestBehavior.translucent: + return HitTestBehavior.translucent; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart new file mode 100644 index 00000000..c8996b4f --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart @@ -0,0 +1,81 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacMouseCursorParser on StacMouseCursor { + MouseCursor get parse { + switch (this) { + case StacMouseCursor.none: + return SystemMouseCursors.basic; + case StacMouseCursor.basic: + return SystemMouseCursors.basic; + case StacMouseCursor.click: + return SystemMouseCursors.click; + case StacMouseCursor.forbidden: + return SystemMouseCursors.forbidden; + case StacMouseCursor.wait: + return SystemMouseCursors.wait; + case StacMouseCursor.progress: + return SystemMouseCursors.progress; + case StacMouseCursor.contextMenu: + return SystemMouseCursors.contextMenu; + case StacMouseCursor.help: + return SystemMouseCursors.help; + case StacMouseCursor.text: + return SystemMouseCursors.text; + case StacMouseCursor.verticalText: + return SystemMouseCursors.verticalText; + case StacMouseCursor.cell: + return SystemMouseCursors.cell; + case StacMouseCursor.precise: + return SystemMouseCursors.precise; + case StacMouseCursor.move: + return SystemMouseCursors.move; + case StacMouseCursor.grab: + return SystemMouseCursors.grab; + case StacMouseCursor.grabbing: + return SystemMouseCursors.grabbing; + case StacMouseCursor.noDrop: + return SystemMouseCursors.noDrop; + case StacMouseCursor.alias: + return SystemMouseCursors.alias; + case StacMouseCursor.copy: + return SystemMouseCursors.copy; + case StacMouseCursor.disappearing: + return SystemMouseCursors.disappearing; + case StacMouseCursor.allScroll: + return SystemMouseCursors.allScroll; + case StacMouseCursor.resizeLeftRight: + return SystemMouseCursors.resizeLeftRight; + case StacMouseCursor.resizeUpDown: + return SystemMouseCursors.resizeUpDown; + case StacMouseCursor.resizeUpLeftDownRight: + return SystemMouseCursors.resizeUpLeftDownRight; + case StacMouseCursor.resizeUpRightDownLeft: + return SystemMouseCursors.resizeUpRightDownLeft; + case StacMouseCursor.resizeUp: + return SystemMouseCursors.resizeUp; + case StacMouseCursor.resizeDown: + return SystemMouseCursors.resizeDown; + case StacMouseCursor.resizeLeft: + return SystemMouseCursors.resizeLeft; + case StacMouseCursor.resizeRight: + return SystemMouseCursors.resizeRight; + case StacMouseCursor.resizeUpLeft: + return SystemMouseCursors.resizeUpLeft; + case StacMouseCursor.resizeUpRight: + return SystemMouseCursors.resizeUpRight; + case StacMouseCursor.resizeDownLeft: + return SystemMouseCursors.resizeDownLeft; + case StacMouseCursor.resizeDownRight: + return SystemMouseCursors.resizeDownRight; + case StacMouseCursor.resizeColumn: + return SystemMouseCursors.resizeColumn; + case StacMouseCursor.resizeRow: + return SystemMouseCursors.resizeRow; + case StacMouseCursor.zoomIn: + return SystemMouseCursors.zoomIn; + case StacMouseCursor.zoomOut: + return SystemMouseCursors.zoomOut; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart new file mode 100644 index 00000000..8540d153 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacScrollPhysics] enum to provide parsing functionality. +extension StacScrollPhysicsEnumParser on StacScrollPhysics { + /// Parses this [StacScrollPhysics] enum into a Flutter [ScrollPhysics] object. + ScrollPhysics get parse { + switch (this) { + case StacScrollPhysics.never: + return const NeverScrollableScrollPhysics(); + case StacScrollPhysics.bouncing: + return const BouncingScrollPhysics(); + case StacScrollPhysics.clamping: + return const ClampingScrollPhysics(); + case StacScrollPhysics.fixed: + return const FixedExtentScrollPhysics(); + case StacScrollPhysics.page: + return const PageScrollPhysics(); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart new file mode 100644 index 00000000..ab1afd80 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacScrollViewKeyboardDismissBehavior] to provide parsing functionality. +extension StacScrollViewKeyboardDismissBehaviorParser + on StacScrollViewKeyboardDismissBehavior { + /// Parses this [StacScrollViewKeyboardDismissBehavior] into a Flutter [ScrollViewKeyboardDismissBehavior] object. + ScrollViewKeyboardDismissBehavior get parse { + switch (this) { + case StacScrollViewKeyboardDismissBehavior.manual: + return ScrollViewKeyboardDismissBehavior.manual; + case StacScrollViewKeyboardDismissBehavior.onDrag: + return ScrollViewKeyboardDismissBehavior.onDrag; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_slider_interaction_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_slider_interaction_parser.dart new file mode 100644 index 00000000..ec51a352 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_slider_interaction_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacSliderInteractionParser on StacSliderInteraction { + SliderInteraction get parse { + switch (this) { + case StacSliderInteraction.tapAndSlide: + return SliderInteraction.tapAndSlide; + case StacSliderInteraction.tapOnly: + return SliderInteraction.tapOnly; + case StacSliderInteraction.slideOnly: + return SliderInteraction.slideOnly; + case StacSliderInteraction.slideThumb: + return SliderInteraction.slideThumb; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_switch_type_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_switch_type_parser.dart new file mode 100644 index 00000000..c55c83a3 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_switch_type_parser.dart @@ -0,0 +1,14 @@ +import 'package:stac_core/stac_core.dart'; + +extension StacSwitchTypeParser on StacSwitchType { + StacSwitchType get parse { + switch (this) { + case StacSwitchType.adaptive: + return StacSwitchType.adaptive; + case StacSwitchType.cupertino: + return StacSwitchType.cupertino; + case StacSwitchType.material: + return StacSwitchType.material; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/interaction/stac_traversal_edge_behavior_parser.dart b/packages/stac/lib/src/parsers/foundation/interaction/stac_traversal_edge_behavior_parser.dart new file mode 100644 index 00000000..2cbda6d5 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/interaction/stac_traversal_edge_behavior_parser.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacTraversalEdgeBehavior] to provide parsing functionality. +extension StacTraversalEdgeBehaviorParser on StacTraversalEdgeBehavior? { + /// Parses this [StacTraversalEdgeBehavior] into Flutter's [TraversalEdgeBehavior]. + TraversalEdgeBehavior? get parse { + switch (this) { + case StacTraversalEdgeBehavior.closedLoop: + return TraversalEdgeBehavior.closedLoop; + case StacTraversalEdgeBehavior.leaveFlutterView: + return TraversalEdgeBehavior.leaveFlutterView; + case StacTraversalEdgeBehavior.parentScope: + return TraversalEdgeBehavior.parentScope; + case StacTraversalEdgeBehavior.stop: + return TraversalEdgeBehavior.stop; + default: + return null; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_axis_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_axis_parser.dart new file mode 100644 index 00000000..a1a2d9f1 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_axis_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacAxisParser on StacAxis { + Axis get parse { + switch (this) { + case StacAxis.horizontal: + return Axis.horizontal; + case StacAxis.vertical: + return Axis.vertical; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_box_fit_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_box_fit_parser.dart new file mode 100644 index 00000000..6ec4c1bc --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_box_fit_parser.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBoxFitParser on StacBoxFit { + BoxFit get parse { + switch (this) { + case StacBoxFit.fill: + return BoxFit.fill; + case StacBoxFit.contain: + return BoxFit.contain; + case StacBoxFit.cover: + return BoxFit.cover; + case StacBoxFit.fitWidth: + return BoxFit.fitWidth; + case StacBoxFit.fitHeight: + return BoxFit.fitHeight; + case StacBoxFit.scaleDown: + return BoxFit.scaleDown; + case StacBoxFit.none: + return BoxFit.none; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_box_shape_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_box_shape_parser.dart new file mode 100644 index 00000000..77894f58 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_box_shape_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBoxShapeParser on StacBoxShape { + BoxShape get parse { + switch (this) { + case StacBoxShape.rectangle: + return BoxShape.rectangle; + case StacBoxShape.circle: + return BoxShape.circle; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_clip_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_clip_parser.dart new file mode 100644 index 00000000..4299136a --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_clip_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacClipParser on StacClip { + Clip get parse { + switch (this) { + case StacClip.none: + return Clip.none; + case StacClip.hardEdge: + return Clip.hardEdge; + case StacClip.antiAlias: + return Clip.antiAlias; + case StacClip.antiAliasWithSaveLayer: + return Clip.antiAliasWithSaveLayer; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_flex_fit_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_flex_fit_parser.dart new file mode 100644 index 00000000..a1117d0e --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_flex_fit_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacFlexFitParser on StacFlexFit { + FlexFit get parse { + switch (this) { + case StacFlexFit.tight: + return FlexFit.tight; + case StacFlexFit.loose: + return FlexFit.loose; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart new file mode 100644 index 00000000..535b9594 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacMaterialTapTargetSizeParser on StacMaterialTapTargetSize { + MaterialTapTargetSize get parse { + switch (this) { + case StacMaterialTapTargetSize.padded: + return MaterialTapTargetSize.padded; + case StacMaterialTapTargetSize.shrinkWrap: + return MaterialTapTargetSize.shrinkWrap; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_stack_fit_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_stack_fit_parser.dart new file mode 100644 index 00000000..57f37ab6 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_stack_fit_parser.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacStackFitParser on StacStackFit { + StackFit get parse { + switch (this) { + case StacStackFit.loose: + return StackFit.loose; + case StacStackFit.expand: + return StackFit.expand; + case StacStackFit.passthrough: + return StackFit.passthrough; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_vertical_direction_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_vertical_direction_parser.dart new file mode 100644 index 00000000..39d5f0cf --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_vertical_direction_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacVerticalDirectionParser on StacVerticalDirection { + VerticalDirection get parse { + switch (this) { + case StacVerticalDirection.up: + return VerticalDirection.up; + case StacVerticalDirection.down: + return VerticalDirection.down; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_wrap_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_wrap_alignment_parser.dart new file mode 100644 index 00000000..4fb152b7 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_wrap_alignment_parser.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacWrapAlignmentParser on StacWrapAlignment { + WrapAlignment get parse { + switch (this) { + case StacWrapAlignment.start: + return WrapAlignment.start; + case StacWrapAlignment.end: + return WrapAlignment.end; + case StacWrapAlignment.center: + return WrapAlignment.center; + case StacWrapAlignment.spaceBetween: + return WrapAlignment.spaceBetween; + case StacWrapAlignment.spaceAround: + return WrapAlignment.spaceAround; + case StacWrapAlignment.spaceEvenly: + return WrapAlignment.spaceEvenly; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/layout/stac_wrap_cross_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/layout/stac_wrap_cross_alignment_parser.dart new file mode 100644 index 00000000..f325d98a --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/layout/stac_wrap_cross_alignment_parser.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacWrapCrossAlignmentParser on StacWrapCrossAlignment { + WrapCrossAlignment get parse { + switch (this) { + case StacWrapCrossAlignment.start: + return WrapCrossAlignment.start; + case StacWrapCrossAlignment.end: + return WrapCrossAlignment.end; + case StacWrapCrossAlignment.center: + return WrapCrossAlignment.center; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_landscape_layout_parser.dart b/packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_landscape_layout_parser.dart new file mode 100644 index 00000000..af8c245c --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_landscape_layout_parser.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBottomNavigationBarLandscapeLayoutParser + on StacBottomNavigationBarLandscapeLayout { + BottomNavigationBarLandscapeLayout get parse { + switch (this) { + case StacBottomNavigationBarLandscapeLayout.spread: + return BottomNavigationBarLandscapeLayout.spread; + case StacBottomNavigationBarLandscapeLayout.centered: + return BottomNavigationBarLandscapeLayout.centered; + case StacBottomNavigationBarLandscapeLayout.linear: + return BottomNavigationBarLandscapeLayout.linear; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_type_parser.dart b/packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_type_parser.dart new file mode 100644 index 00000000..607e464e --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_type_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacBottomNavigationBarTypeParser on StacBottomNavigationBarType { + BottomNavigationBarType get parse { + switch (this) { + case StacBottomNavigationBarType.fixed: + return BottomNavigationBarType.fixed; + case StacBottomNavigationBarType.shifting: + return BottomNavigationBarType.shifting; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/navigation/stac_floating_action_button_location_parser.dart b/packages/stac/lib/src/parsers/foundation/navigation/stac_floating_action_button_location_parser.dart new file mode 100644 index 00000000..cc3f5c8f --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/navigation/stac_floating_action_button_location_parser.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacFloatingActionButtonLocationParser + on StacFloatingActionButtonLocation { + FloatingActionButtonLocation get parse { + switch (this) { + case StacFloatingActionButtonLocation.startTop: + return FloatingActionButtonLocation.startTop; + case StacFloatingActionButtonLocation.miniStartTop: + return FloatingActionButtonLocation.miniStartTop; + case StacFloatingActionButtonLocation.centerTop: + return FloatingActionButtonLocation.centerTop; + case StacFloatingActionButtonLocation.miniCenterTop: + return FloatingActionButtonLocation.miniCenterTop; + case StacFloatingActionButtonLocation.endTop: + return FloatingActionButtonLocation.endTop; + case StacFloatingActionButtonLocation.miniEndTop: + return FloatingActionButtonLocation.miniEndTop; + case StacFloatingActionButtonLocation.startFloat: + return FloatingActionButtonLocation.startFloat; + case StacFloatingActionButtonLocation.miniStartFloat: + return FloatingActionButtonLocation.miniStartFloat; + case StacFloatingActionButtonLocation.centerFloat: + return FloatingActionButtonLocation.centerFloat; + case StacFloatingActionButtonLocation.miniCenterFloat: + return FloatingActionButtonLocation.miniCenterFloat; + case StacFloatingActionButtonLocation.endFloat: + return FloatingActionButtonLocation.endFloat; + case StacFloatingActionButtonLocation.miniEndFloat: + return FloatingActionButtonLocation.miniEndFloat; + case StacFloatingActionButtonLocation.startDocked: + return FloatingActionButtonLocation.startDocked; + case StacFloatingActionButtonLocation.miniStartDocked: + return FloatingActionButtonLocation.miniStartDocked; + case StacFloatingActionButtonLocation.centerDocked: + return FloatingActionButtonLocation.centerDocked; + case StacFloatingActionButtonLocation.miniCenterDocked: + return FloatingActionButtonLocation.miniCenterDocked; + case StacFloatingActionButtonLocation.endDocked: + return FloatingActionButtonLocation.endDocked; + case StacFloatingActionButtonLocation.miniEndDocked: + return FloatingActionButtonLocation.miniEndDocked; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/navigation/stac_tab_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/navigation/stac_tab_alignment_parser.dart new file mode 100644 index 00000000..bc42e26f --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/navigation/stac_tab_alignment_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTabAlignmentParser on StacTabAlignment { + TabAlignment get parse { + switch (this) { + case StacTabAlignment.center: + return TabAlignment.center; + case StacTabAlignment.fill: + return TabAlignment.fill; + case StacTabAlignment.startOffset: + return TabAlignment.startOffset; + case StacTabAlignment.start: + return TabAlignment.start; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/navigation/stac_tab_bar_indicator_size_parser.dart b/packages/stac/lib/src/parsers/foundation/navigation/stac_tab_bar_indicator_size_parser.dart new file mode 100644 index 00000000..1772ff74 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/navigation/stac_tab_bar_indicator_size_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTabBarIndicatorSizeParser on StacTabBarIndicatorSize { + TabBarIndicatorSize get parse { + switch (this) { + case StacTabBarIndicatorSize.label: + return TabBarIndicatorSize.label; + case StacTabBarIndicatorSize.tab: + return TabBarIndicatorSize.tab; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_font_style_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_font_style_parser.dart new file mode 100644 index 00000000..69a22264 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_font_style_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacFontStyleParser on StacFontStyle { + FontStyle get parse { + switch (this) { + case StacFontStyle.normal: + return FontStyle.normal; + case StacFontStyle.italic: + return FontStyle.italic; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_font_weight_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_font_weight_parser.dart new file mode 100644 index 00000000..1c91b17a --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_font_weight_parser.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacFontWeightParser on StacFontWeight { + FontWeight get parse { + switch (this) { + case StacFontWeight.w100: + return FontWeight.w100; + case StacFontWeight.w200: + return FontWeight.w200; + case StacFontWeight.w300: + return FontWeight.w300; + case StacFontWeight.w400: + return FontWeight.w400; + case StacFontWeight.w500: + return FontWeight.w500; + case StacFontWeight.w600: + return FontWeight.w600; + case StacFontWeight.w700: + return FontWeight.w700; + case StacFontWeight.w800: + return FontWeight.w800; + case StacFontWeight.w900: + return FontWeight.w900; + case StacFontWeight.normal: + return FontWeight.normal; + case StacFontWeight.bold: + return FontWeight.bold; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_smart_dashes_type_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_smart_dashes_type_parser.dart new file mode 100644 index 00000000..593619f7 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_smart_dashes_type_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacSmartDashesTypeParser on StacSmartDashesType { + SmartDashesType get parse { + switch (this) { + case StacSmartDashesType.disabled: + return SmartDashesType.disabled; + case StacSmartDashesType.enabled: + return SmartDashesType.enabled; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_smart_quotes_type_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_smart_quotes_type_parser.dart new file mode 100644 index 00000000..f7b0f22d --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_smart_quotes_type_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacSmartQuotesTypeParser on StacSmartQuotesType { + SmartQuotesType get parse { + switch (this) { + case StacSmartQuotesType.disabled: + return SmartQuotesType.disabled; + case StacSmartQuotesType.enabled: + return SmartQuotesType.enabled; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_stroke_cap_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_stroke_cap_parser.dart new file mode 100644 index 00000000..7204a45b --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_stroke_cap_parser.dart @@ -0,0 +1,18 @@ +import 'dart:ui'; + +import 'package:stac_core/stac_core.dart'; + +extension StacStrokeCapParser on StacStrokeCap? { + StrokeCap? get parse { + switch (this) { + case StacStrokeCap.butt: + return StrokeCap.butt; + case StacStrokeCap.round: + return StrokeCap.round; + case StacStrokeCap.square: + return StrokeCap.square; + default: + return null; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_align_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_align_parser.dart new file mode 100644 index 00000000..8b729e49 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_align_parser.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextAlignParser on StacTextAlign { + TextAlign get parse { + switch (this) { + case StacTextAlign.left: + return TextAlign.left; + case StacTextAlign.right: + return TextAlign.right; + case StacTextAlign.center: + return TextAlign.center; + case StacTextAlign.justify: + return TextAlign.justify; + case StacTextAlign.start: + return TextAlign.start; + case StacTextAlign.end: + return TextAlign.end; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_baseline_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_baseline_parser.dart new file mode 100644 index 00000000..824df100 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_baseline_parser.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Maps [StacTextBaseline] to Flutter's [TextBaseline]. +extension StacTextBaselineParser on StacTextBaseline { + /// Parses this [StacTextBaseline] into a Flutter [TextBaseline]. + TextBaseline get parse { + switch (this) { + case StacTextBaseline.alphabetic: + return TextBaseline.alphabetic; + case StacTextBaseline.ideographic: + return TextBaseline.ideographic; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_capitalization_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_capitalization_parser.dart new file mode 100644 index 00000000..7d0fb0f5 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_capitalization_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/services.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextCapitalizationParser on StacTextCapitalization { + TextCapitalization get parse { + switch (this) { + case StacTextCapitalization.none: + return TextCapitalization.none; + case StacTextCapitalization.characters: + return TextCapitalization.characters; + case StacTextCapitalization.words: + return TextCapitalization.words; + case StacTextCapitalization.sentences: + return TextCapitalization.sentences; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_decoration_style_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_decoration_style_parser.dart new file mode 100644 index 00000000..bfeccb0d --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_decoration_style_parser.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextDecorationStyleParser on StacTextDecorationStyle { + TextDecorationStyle get parse { + switch (this) { + case StacTextDecorationStyle.solid: + return TextDecorationStyle.solid; + case StacTextDecorationStyle.double: + return TextDecorationStyle.double; + case StacTextDecorationStyle.dotted: + return TextDecorationStyle.dotted; + case StacTextDecorationStyle.dashed: + return TextDecorationStyle.dashed; + case StacTextDecorationStyle.wavy: + return TextDecorationStyle.wavy; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_direction_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_direction_parser.dart new file mode 100644 index 00000000..4bd1509a --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_direction_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextDirectionParser on StacTextDirection { + TextDirection get parse { + switch (this) { + case StacTextDirection.rtl: + return TextDirection.rtl; + case StacTextDirection.ltr: + return TextDirection.ltr; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_input_action_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_input_action_parser.dart new file mode 100644 index 00000000..be5945e1 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_input_action_parser.dart @@ -0,0 +1,35 @@ +import 'package:flutter/services.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextInputActionParser on StacTextInputAction { + TextInputAction get parse { + switch (this) { + case StacTextInputAction.none: + return TextInputAction.none; + case StacTextInputAction.unspecified: + return TextInputAction.unspecified; + case StacTextInputAction.done: + return TextInputAction.done; + case StacTextInputAction.go: + return TextInputAction.go; + case StacTextInputAction.search: + return TextInputAction.search; + case StacTextInputAction.send: + return TextInputAction.send; + case StacTextInputAction.next: + return TextInputAction.next; + case StacTextInputAction.previous: + return TextInputAction.previous; + case StacTextInputAction.continueAction: + return TextInputAction.continueAction; + case StacTextInputAction.join: + return TextInputAction.join; + case StacTextInputAction.route: + return TextInputAction.route; + case StacTextInputAction.emergencyCall: + return TextInputAction.emergencyCall; + case StacTextInputAction.newline: + return TextInputAction.newline; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_input_type_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_input_type_parser.dart new file mode 100644 index 00000000..f1c18dc7 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_input_type_parser.dart @@ -0,0 +1,31 @@ +import 'package:flutter/services.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextInputTypeParser on StacTextInputType { + TextInputType get parse { + switch (this) { + case StacTextInputType.text: + return TextInputType.text; + case StacTextInputType.multiline: + return TextInputType.multiline; + case StacTextInputType.number: + return TextInputType.number; + case StacTextInputType.phone: + return TextInputType.phone; + case StacTextInputType.datetime: + return TextInputType.datetime; + case StacTextInputType.emailAddress: + return TextInputType.emailAddress; + case StacTextInputType.url: + return TextInputType.url; + case StacTextInputType.visiblePassword: + return TextInputType.visiblePassword; + case StacTextInputType.name: + return TextInputType.name; + case StacTextInputType.streetAddress: + return TextInputType.streetAddress; + case StacTextInputType.none: + return TextInputType.none; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_leading_distribution_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_leading_distribution_parser.dart new file mode 100644 index 00000000..41caf67c --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_leading_distribution_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextLeadingDistributionParser on StacTextLeadingDistribution { + TextLeadingDistribution get parse { + switch (this) { + case StacTextLeadingDistribution.proportional: + return TextLeadingDistribution.proportional; + case StacTextLeadingDistribution.even: + return TextLeadingDistribution.even; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_overflow_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_overflow_parser.dart new file mode 100644 index 00000000..9223b639 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_overflow_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextOverflowParser on StacTextOverflow { + TextOverflow get parse { + switch (this) { + case StacTextOverflow.clip: + return TextOverflow.clip; + case StacTextOverflow.fade: + return TextOverflow.fade; + case StacTextOverflow.ellipsis: + return TextOverflow.ellipsis; + case StacTextOverflow.visible: + return TextOverflow.visible; + } + } +} diff --git a/packages/stac/lib/src/parsers/painting/stac_text_style_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_style_parser.dart similarity index 67% rename from packages/stac/lib/src/parsers/painting/stac_text_style_parser.dart rename to packages/stac/lib/src/parsers/foundation/text/stac_text_style_parser.dart index 3bf1ce33..65007d2f 100644 --- a/packages/stac/lib/src/parsers/painting/stac_text_style_parser.dart +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_style_parser.dart @@ -1,5 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_font_style_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_font_weight_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_baseline_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_decoration_style_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_leading_distribution_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_overflow_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; @@ -67,54 +72,3 @@ extension StacTextStyleParser on StacTextStyle { } } } - -extension StacFontWeightParser on StacFontWeight { - FontWeight get parse { - switch (this) { - case StacFontWeight.w100: - return FontWeight.w100; - case StacFontWeight.w200: - return FontWeight.w200; - case StacFontWeight.w300: - return FontWeight.w300; - case StacFontWeight.w400: - return FontWeight.w400; - case StacFontWeight.w500: - return FontWeight.w500; - case StacFontWeight.w600: - return FontWeight.w600; - case StacFontWeight.w700: - return FontWeight.w700; - case StacFontWeight.w800: - return FontWeight.w800; - case StacFontWeight.w900: - return FontWeight.w900; - case StacFontWeight.normal: - return FontWeight.normal; - case StacFontWeight.bold: - return FontWeight.bold; - } - } -} - -extension StacFontStyleParser on StacFontStyle { - FontStyle get parse { - switch (this) { - case StacFontStyle.normal: - return FontStyle.normal; - case StacFontStyle.italic: - return FontStyle.italic; - } - } -} - -extension StacTextBaselineParser on StacTextBaseline { - TextBaseline get parse { - switch (this) { - case StacTextBaseline.alphabetic: - return TextBaseline.alphabetic; - case StacTextBaseline.ideographic: - return TextBaseline.ideographic; - } - } -} diff --git a/packages/stac/lib/src/parsers/foundation/text/stac_text_width_basis_parser.dart b/packages/stac/lib/src/parsers/foundation/text/stac_text_width_basis_parser.dart new file mode 100644 index 00000000..f5e6e208 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/text/stac_text_width_basis_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacTextWidthBasisParser on StacTextWidthBasis { + TextWidthBasis get parse { + switch (this) { + case StacTextWidthBasis.parent: + return TextWidthBasis.parent; + case StacTextWidthBasis.longestLine: + return TextWidthBasis.longestLine; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/theme/stac_input_decoration_theme_parser.dart b/packages/stac/lib/src/parsers/foundation/theme/stac_input_decoration_theme_parser.dart new file mode 100644 index 00000000..279d1d3a --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/theme/stac_input_decoration_theme_parser.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/parsers/foundation/foundation.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacInputDecorationThemeParser on StacInputDecorationTheme? { + InputDecorationTheme parse(BuildContext context) { + FloatingLabelBehavior parseFloatingLabelBehavior(String? behavior) { + switch (behavior) { + case 'always': + return FloatingLabelBehavior.always; + case 'never': + return FloatingLabelBehavior.never; + case 'auto': + default: + return FloatingLabelBehavior.auto; + } + } + + FloatingLabelAlignment parseFloatingLabelAlignment(String? alignment) { + switch (alignment) { + case 'center': + return FloatingLabelAlignment.center; + case 'start': + default: + return FloatingLabelAlignment.start; + } + } + + return InputDecorationTheme( + labelStyle: this?.labelStyle?.parse(context), + floatingLabelStyle: this?.floatingLabelStyle?.parse(context), + helperStyle: this?.helperStyle?.parse(context), + helperMaxLines: this?.helperMaxLines, + hintStyle: this?.hintStyle?.parse(context), + errorStyle: this?.errorStyle?.parse(context), + errorMaxLines: this?.errorMaxLines, + floatingLabelBehavior: + parseFloatingLabelBehavior(this?.floatingLabelBehavior), + floatingLabelAlignment: + parseFloatingLabelAlignment(this?.floatingLabelAlignment), + isDense: this?.isDense ?? false, + contentPadding: this?.contentPadding?.parse, + isCollapsed: this?.isCollapsed ?? false, + iconColor: this?.iconColor.toColor(context), + prefixStyle: this?.prefixStyle?.parse(context), + prefixIconColor: this?.prefixIconColor.toColor(context), + suffixStyle: this?.suffixStyle?.parse(context), + suffixIconColor: this?.suffixIconColor.toColor(context), + counterStyle: this?.counterStyle?.parse(context), + filled: this?.filled ?? false, + fillColor: this?.fillColor.toColor(context), + alignLabelWithHint: this?.alignLabelWithHint ?? false, + constraints: this?.constraints?.parse, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_dismiss_direction_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_dismiss_direction_parser.dart new file mode 100644 index 00000000..3322cc0b --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_dismiss_direction_parser.dart @@ -0,0 +1,24 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacDismissDirection] to map to Flutter's [DismissDirection]. +extension StacDismissDirectionParser on StacDismissDirection? { + DismissDirection? get parse { + switch (this) { + case StacDismissDirection.horizontal: + return DismissDirection.horizontal; + case StacDismissDirection.vertical: + return DismissDirection.vertical; + case StacDismissDirection.down: + return DismissDirection.down; + case StacDismissDirection.up: + return DismissDirection.up; + case StacDismissDirection.endToStart: + return DismissDirection.endToStart; + case StacDismissDirection.startToEnd: + return DismissDirection.startToEnd; + default: + return null; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_dropdown_menu_entry_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_dropdown_menu_entry_parser.dart new file mode 100644 index 00000000..3a272393 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_dropdown_menu_entry_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacDropdownMenuEntryParser on StacDropdownMenuEntry? { + DropdownMenuEntry? parse(BuildContext context) { + return DropdownMenuEntry( + value: this?.value, + label: this?.label ?? '', + labelWidget: this?.labelWidget?.parse(context), + leadingIcon: this?.leadingIcon?.parse(context), + enabled: this?.enabled ?? true, + style: this?.style?.parseTextButton(context), + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_image_repeat_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_image_repeat_parser.dart new file mode 100644 index 00000000..97ffd697 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_image_repeat_parser.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacImageRepeatParser on StacImageRepeat { + ImageRepeat get parse { + switch (this) { + case StacImageRepeat.repeat: + return ImageRepeat.repeat; + case StacImageRepeat.repeatX: + return ImageRepeat.repeatX; + case StacImageRepeat.repeatY: + return ImageRepeat.repeatY; + case StacImageRepeat.noRepeat: + return ImageRepeat.noRepeat; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_style_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_style_parser.dart new file mode 100644 index 00000000..e0b319ac --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_style_parser.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacListTileStyle] to provide parsing functionality. +extension StacListTileStyleParser on StacListTileStyle { + /// Parses this [StacListTileStyle] into a Flutter [ListTileStyle]. + ListTileStyle get parse { + switch (this) { + case StacListTileStyle.list: + return ListTileStyle.list; + case StacListTileStyle.drawer: + return ListTileStyle.drawer; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_title_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_title_alignment_parser.dart new file mode 100644 index 00000000..e3f9e47a --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_title_alignment_parser.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacListTileTitleAlignment] to provide parsing functionality. +extension StacListTileTitleAlignmentParser on StacListTileTitleAlignment { + /// Parses this [StacListTileTitleAlignment] into a Flutter [ListTileTitleAlignment]. + ListTileTitleAlignment get parse { + switch (this) { + case StacListTileTitleAlignment.titleHeight: + return ListTileTitleAlignment.titleHeight; + case StacListTileTitleAlignment.threeLine: + return ListTileTitleAlignment.threeLine; + case StacListTileTitleAlignment.bottom: + return ListTileTitleAlignment.bottom; + case StacListTileTitleAlignment.center: + return ListTileTitleAlignment.center; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_options_view_open_direction_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_options_view_open_direction_parser.dart new file mode 100644 index 00000000..4347385b --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_options_view_open_direction_parser.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacOptionsViewOpenDirectionParser on StacOptionsViewOpenDirection { + OptionsViewOpenDirection get parse { + switch (this) { + case StacOptionsViewOpenDirection.up: + return OptionsViewOpenDirection.up; + case StacOptionsViewOpenDirection.down: + return OptionsViewOpenDirection.down; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_overflow_bar_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_overflow_bar_alignment_parser.dart new file mode 100644 index 00000000..2e4da091 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_overflow_bar_alignment_parser.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +extension StacOverflowBarAlignmentParser on StacOverflowBarAlignment { + OverflowBarAlignment get parse { + switch (this) { + case StacOverflowBarAlignment.start: + return OverflowBarAlignment.start; + case StacOverflowBarAlignment.end: + return OverflowBarAlignment.end; + case StacOverflowBarAlignment.center: + return OverflowBarAlignment.center; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_refresh_indicator_trigger_mode_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_refresh_indicator_trigger_mode_parser.dart new file mode 100644 index 00000000..f5cf3eed --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_refresh_indicator_trigger_mode_parser.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacRefreshIndicatorTriggerMode] to provide parsing functionality. +extension StacRefreshIndicatorTriggerModeParser + on StacRefreshIndicatorTriggerMode { + /// Parses this [StacRefreshIndicatorTriggerMode] into a Flutter [RefreshIndicatorTriggerMode]. + RefreshIndicatorTriggerMode get parse { + switch (this) { + case StacRefreshIndicatorTriggerMode.onEdge: + return RefreshIndicatorTriggerMode.onEdge; + case StacRefreshIndicatorTriggerMode.anywhere: + return RefreshIndicatorTriggerMode.anywhere; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_snack_bar_behavior_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_snack_bar_behavior_parser.dart new file mode 100644 index 00000000..8503d005 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_snack_bar_behavior_parser.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Extends [StacSnackBarBehavior] to map to Flutter's [SnackBarBehavior]. +extension StacSnackBarBehaviorParser on StacSnackBarBehavior? { + SnackBarBehavior? get parse { + switch (this) { + case StacSnackBarBehavior.fixed: + return SnackBarBehavior.fixed; + case StacSnackBarBehavior.floating: + return SnackBarBehavior.floating; + default: + return null; + } + } +} diff --git a/packages/stac/lib/src/parsers/painting/stac_system_ui_overlay_style_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_system_ui_overlay_style_parser.dart similarity index 92% rename from packages/stac/lib/src/parsers/painting/stac_system_ui_overlay_style_parser.dart rename to packages/stac/lib/src/parsers/foundation/ui_components/stac_system_ui_overlay_style_parser.dart index e86dd7c3..6e363406 100644 --- a/packages/stac/lib/src/parsers/painting/stac_system_ui_overlay_style_parser.dart +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_system_ui_overlay_style_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/colors/stac_brightness_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_border_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_border_parser.dart new file mode 100644 index 00000000..6565cca4 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_border_parser.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/utils/color_utils.dart'; +import 'package:stac_core/stac_core.dart'; + +import '../borders/stac_border_radius_parser.dart'; +import '../borders/stac_border_style_parser.dart'; + +/// Parses a [StacTableBorder] to a Flutter [TableBorder]. +extension StacTableBorderParser on StacTableBorder { + TableBorder parse(BuildContext context) { + return TableBorder.all( + color: color?.toColor(context) ?? Colors.black, + width: width ?? 1.0, + style: style?.parse ?? BorderStyle.solid, + borderRadius: borderRadius?.parse ?? BorderRadius.zero, + ); + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_cell_vertical_alignment_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_cell_vertical_alignment_parser.dart new file mode 100644 index 00000000..60e02f8e --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_cell_vertical_alignment_parser.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Maps [StacTableCellVerticalAlignment] to Flutter's [TableCellVerticalAlignment]. +extension StacTableCellVerticalAlignmentParser + on StacTableCellVerticalAlignment? { + TableCellVerticalAlignment get parse { + switch (this) { + case StacTableCellVerticalAlignment.top: + return TableCellVerticalAlignment.top; + case StacTableCellVerticalAlignment.middle: + return TableCellVerticalAlignment.middle; + case StacTableCellVerticalAlignment.bottom: + return TableCellVerticalAlignment.bottom; + case StacTableCellVerticalAlignment.baseline: + return TableCellVerticalAlignment.baseline; + case StacTableCellVerticalAlignment.fill: + return TableCellVerticalAlignment.fill; + default: + return TableCellVerticalAlignment.top; + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_column_width_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_column_width_parser.dart new file mode 100644 index 00000000..76aa0155 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_column_width_parser.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Parses a [StacTableColumnWidth] to a Flutter [TableColumnWidth]. +extension StacTableColumnWidthParser on StacTableColumnWidth { + TableColumnWidth get parse { + switch (type) { + case StacTableColumnWidthType.fixedColumnWidth: + return FixedColumnWidth(value ?? 0.0); + case StacTableColumnWidthType.flexColumnWidth: + return FlexColumnWidth(value ?? 1.0); + case StacTableColumnWidthType.fractionColumnWidth: + return FractionColumnWidth(value ?? 0.5); + case StacTableColumnWidthType.intrinsicColumnWidth: + return IntrinsicColumnWidth(flex: value ?? 1.0); + } + } +} diff --git a/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_row_parser.dart b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_row_parser.dart new file mode 100644 index 00000000..d19168b8 --- /dev/null +++ b/packages/stac/lib/src/parsers/foundation/ui_components/stac_table_row_parser.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_box_decoration_parser.dart'; +import 'package:stac_core/stac_core.dart'; + +/// Parses a [StacTableRow] to a Flutter [TableRow]. +extension StacTableRowParser on StacTableRow { + TableRow parse(BuildContext context) { + return TableRow( + decoration: decoration?.parse(context), + children: children.parseList(context) ?? const [], + ); + } +} diff --git a/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.dart b/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.dart index 651f5fbb..3c612975 100644 --- a/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_system_ui_overlay_style_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_system_ui_overlay_style_parser.dart'; import 'package:stac/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.g.dart b/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.g.dart index 00ea702a..ad0447f7 100644 --- a/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.g.dart @@ -31,12 +31,10 @@ _StacAppBarTheme _$StacAppBarThemeFromJson(Map json) => toolbarHeight: (json['toolbarHeight'] as num?)?.toDouble(), toolbarTextStyle: json['toolbarTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['toolbarTextStyle'] as Map), + : StacTextStyle.fromJson(json['toolbarTextStyle']), titleTextStyle: json['titleTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['titleTextStyle'] as Map), + : StacTextStyle.fromJson(json['titleTextStyle']), systemOverlayStyle: json['systemOverlayStyle'] == null ? null : StacSystemUIOverlayStyle.fromJson( diff --git a/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.dart index 0c25f3f5..fd562c77 100644 --- a/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_geometry_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_offset_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.g.dart index 5da16b17..f6ad8c21 100644 --- a/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.g.dart @@ -14,7 +14,7 @@ _StacBadgeThemeData _$StacBadgeThemeDataFromJson(Map json) => largeSize: (json['largeSize'] as num?)?.toDouble(), textStyle: json['textStyle'] == null ? null - : StacTextStyle.fromJson(json['textStyle'] as Map), + : StacTextStyle.fromJson(json['textStyle']), padding: json['padding'] == null ? null : StacEdgeInsets.fromJson(json['padding']), diff --git a/packages/stac/lib/src/parsers/theme/stac_bottom_app_bar_theme/stac_bottom_app_bar_theme.dart b/packages/stac/lib/src/parsers/theme/stac_bottom_app_bar_theme/stac_bottom_app_bar_theme.dart index a6a9503c..a1914ad9 100644 --- a/packages/stac/lib/src/parsers/theme/stac_bottom_app_bar_theme/stac_bottom_app_bar_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_bottom_app_bar_theme/stac_bottom_app_bar_theme.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.dart b/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.dart index 9240d2e8..8668c3d8 100644 --- a/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.g.dart b/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.g.dart index 313ef30f..6b0ef88d 100644 --- a/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_bottom_nav_bar_theme/stac_bottom_nav_bar_theme.g.dart @@ -23,12 +23,10 @@ _StacBottomNavBarThemeData _$StacBottomNavBarThemeDataFromJson( unselectedItemColor: json['unselectedItemColor'] as String?, selectedLabelStyle: json['selectedLabelStyle'] == null ? null - : StacTextStyle.fromJson( - json['selectedLabelStyle'] as Map), + : StacTextStyle.fromJson(json['selectedLabelStyle']), unselectedLabelStyle: json['unselectedLabelStyle'] == null ? null - : StacTextStyle.fromJson( - json['unselectedLabelStyle'] as Map), + : StacTextStyle.fromJson(json['unselectedLabelStyle']), showSelectedLabels: json['showSelectedLabels'] as bool?, showUnselectedLabels: json['showUnselectedLabels'] as bool?, type: $enumDecodeNullable(_$BottomNavigationBarTypeEnumMap, json['type']), diff --git a/packages/stac/lib/src/parsers/theme/stac_bottom_sheet_theme/stac_bottom_sheet_theme.dart b/packages/stac/lib/src/parsers/theme/stac_bottom_sheet_theme/stac_bottom_sheet_theme.dart index b7f1f1a7..960f6809 100644 --- a/packages/stac/lib/src/parsers/theme/stac_bottom_sheet_theme/stac_bottom_sheet_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_bottom_sheet_theme/stac_bottom_sheet_theme.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_size_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_button_style/stac_button_style_parser.dart b/packages/stac/lib/src/parsers/theme/stac_button_style/stac_button_style_parser.dart index f44e6a15..1692cb1d 100644 --- a/packages/stac/lib/src/parsers/theme/stac_button_style/stac_button_style_parser.dart +++ b/packages/stac/lib/src/parsers/theme/stac_button_style/stac_button_style_parser.dart @@ -1,7 +1,15 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_icon_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/animation/stac_duration_parsers.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_side_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_size_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_visual_density_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_button_theme_data/stac_button_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_button_theme_data/stac_button_theme_data.dart index 85a6b9c1..007c948f 100644 --- a/packages/stac/lib/src/parsers/theme/stac_button_theme_data/stac_button_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_button_theme_data/stac_button_theme_data.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac/src/parsers/theme/stac_color_scheme/stac_color_scheme.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_card_theme_data/stac_card_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_card_theme_data/stac_card_theme_data.dart index 07d9493e..85c83272 100644 --- a/packages/stac/lib/src/parsers/theme/stac_card_theme_data/stac_card_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_card_theme_data/stac_card_theme_data.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/foundation/borders/stac_border/stac_border.dart'; import 'package:stac_core/foundation/geometry/stac_edge_insets/stac_edge_insets.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_checkbox_theme_data/stac_checkbox_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_checkbox_theme_data/stac_checkbox_theme_data.dart index 4cfae8d5..32ae7820 100644 --- a/packages/stac/lib/src/parsers/theme/stac_checkbox_theme_data/stac_checkbox_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_checkbox_theme_data/stac_checkbox_theme_data.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_side_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_visual_density_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.dart index 28f6d2ca..35a25681 100644 --- a/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_side_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.g.dart index 2c572b29..7e88c5f8 100644 --- a/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_chip_theme_data/stac_chip_theme_data.g.dart @@ -33,11 +33,10 @@ _StacChipThemeData _$StacChipThemeDataFromJson(Map json) => : StacShapeBorder.fromJson(json['shape'] as Map), labelStyle: json['labelStyle'] == null ? null - : StacTextStyle.fromJson(json['labelStyle'] as Map), + : StacTextStyle.fromJson(json['labelStyle']), secondaryLabelStyle: json['secondaryLabelStyle'] == null ? null - : StacTextStyle.fromJson( - json['secondaryLabelStyle'] as Map), + : StacTextStyle.fromJson(json['secondaryLabelStyle']), brightness: $enumDecodeNullable(_$BrightnessEnumMap, json['brightness']), elevation: (json['elevation'] as num?)?.toDouble(), pressElevation: (json['pressElevation'] as num?)?.toDouble(), diff --git a/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.dart index 227e13b3..099af27c 100644 --- a/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_side_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/theme/stac_input_decoration_theme_parser.dart'; import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.g.dart index 96c9e1a0..8306a11b 100644 --- a/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_date_picker_theme_data/stac_date_picker_theme_data.g.dart @@ -20,19 +20,16 @@ _StacDatePickerThemeData _$StacDatePickerThemeDataFromJson( headerForegroundColor: json['headerForegroundColor'] as String?, headerHeadlineStyle: json['headerHeadlineStyle'] == null ? null - : StacTextStyle.fromJson( - json['headerHeadlineStyle'] as Map), + : StacTextStyle.fromJson(json['headerHeadlineStyle']), headerHelpStyle: json['headerHelpStyle'] == null ? null - : StacTextStyle.fromJson( - json['headerHelpStyle'] as Map), + : StacTextStyle.fromJson(json['headerHelpStyle']), weekdayStyle: json['weekdayStyle'] == null ? null - : StacTextStyle.fromJson( - json['weekdayStyle'] as Map), + : StacTextStyle.fromJson(json['weekdayStyle']), dayStyle: json['dayStyle'] == null ? null - : StacTextStyle.fromJson(json['dayStyle'] as Map), + : StacTextStyle.fromJson(json['dayStyle']), dayForegroundColor: json['dayForegroundColor'] as String?, dayBackgroundColor: json['dayBackgroundColor'] as String?, dayOverlayColor: json['dayOverlayColor'] as String?, @@ -47,7 +44,7 @@ _StacDatePickerThemeData _$StacDatePickerThemeDataFromJson( json['todayBorder'] as Map), yearStyle: json['yearStyle'] == null ? null - : StacTextStyle.fromJson(json['yearStyle'] as Map), + : StacTextStyle.fromJson(json['yearStyle']), yearForegroundColor: json['yearForegroundColor'] as String?, yearBackgroundColor: json['yearBackgroundColor'] as String?, yearOverlayColor: json['yearOverlayColor'] as String?, @@ -64,15 +61,13 @@ _StacDatePickerThemeData _$StacDatePickerThemeDataFromJson( json['rangePickerHeaderBackgroundColor'] as String?, rangePickerHeaderForegroundColor: json['rangePickerHeaderForegroundColor'] as String?, - rangePickerHeaderHeadlineStyle: json['rangePickerHeaderHeadlineStyle'] == - null - ? null - : StacTextStyle.fromJson( - json['rangePickerHeaderHeadlineStyle'] as Map), + rangePickerHeaderHeadlineStyle: + json['rangePickerHeaderHeadlineStyle'] == null + ? null + : StacTextStyle.fromJson(json['rangePickerHeaderHeadlineStyle']), rangePickerHeaderHelpStyle: json['rangePickerHeaderHelpStyle'] == null ? null - : StacTextStyle.fromJson( - json['rangePickerHeaderHelpStyle'] as Map), + : StacTextStyle.fromJson(json['rangePickerHeaderHelpStyle']), rangeSelectionBackgroundColor: json['rangeSelectionBackgroundColor'] as String?, rangeSelectionOverlayColor: json['rangeSelectionOverlayColor'] as String?, diff --git a/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.dart b/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.dart index 7485c97c..d25c2323 100644 --- a/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_geometry_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.g.dart b/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.g.dart index 03c2e184..f442db02 100644 --- a/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_dialog_theme/stac_dialog_theme.g.dart @@ -21,12 +21,10 @@ _StacDialogTheme _$StacDialogThemeFromJson(Map json) => json['alignment'] as Map), titleTextStyle: json['titleTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['titleTextStyle'] as Map), + : StacTextStyle.fromJson(json['titleTextStyle']), contentTextStyle: json['contentTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['contentTextStyle'] as Map), + : StacTextStyle.fromJson(json['contentTextStyle']), actionsPadding: json['actionsPadding'] == null ? null : StacEdgeInsets.fromJson(json['actionsPadding']), diff --git a/packages/stac/lib/src/parsers/theme/stac_drawer_theme_data/stac_drawer_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_drawer_theme_data/stac_drawer_theme_data.dart index 0089083a..a8653666 100644 --- a/packages/stac/lib/src/parsers/theme/stac_drawer_theme_data/stac_drawer_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_drawer_theme_data/stac_drawer_theme_data.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.dart index 8823312c..be625706 100644 --- a/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.g.dart index 0fa74b31..16bbee49 100644 --- a/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_floating_action_button_theme_data/stac_floating_action_button_theme_data.g.dart @@ -28,8 +28,7 @@ _StacFloatingActionButtonThemeData _$StacFloatingActionButtonThemeDataFromJson( : StacEdgeInsets.fromJson(json['extendedPadding']), extendedTextStyle: json['extendedTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['extendedTextStyle'] as Map), + : StacTextStyle.fromJson(json['extendedTextStyle']), ); Map _$StacFloatingActionButtonThemeDataToJson( diff --git a/packages/stac/lib/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart index 2aae3517..f273dcd8 100644 --- a/packages/stac/lib/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_shadow_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.dart index 63bcee33..fb09f46e 100644 --- a/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_visual_density_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.g.dart index df513960..b09a1f01 100644 --- a/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_list_tile_theme_data/stac_list_tile_theme_data.g.dart @@ -19,16 +19,13 @@ _StacListTileThemeData _$StacListTileThemeDataFromJson( textColor: json['textColor'] as String?, titleTextStyle: json['titleTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['titleTextStyle'] as Map), + : StacTextStyle.fromJson(json['titleTextStyle']), subtitleTextStyle: json['subtitleTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['subtitleTextStyle'] as Map), + : StacTextStyle.fromJson(json['subtitleTextStyle']), leadingAndTrailingTextStyle: json['leadingAndTrailingTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['leadingAndTrailingTextStyle'] as Map), + : StacTextStyle.fromJson(json['leadingAndTrailingTextStyle']), contentPadding: json['contentPadding'] == null ? null : StacEdgeInsets.fromJson(json['contentPadding']), diff --git a/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.dart index 59fe02d7..c254de38 100644 --- a/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.g.dart index f456098c..f014531c 100644 --- a/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_material_banner_theme_data/stac_material_banner_theme_data.g.dart @@ -15,8 +15,7 @@ _StacMaterialBannerThemeData _$StacMaterialBannerThemeDataFromJson( dividerColor: json['dividerColor'] as String?, contentTextStyle: json['contentTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['contentTextStyle'] as Map), + : StacTextStyle.fromJson(json['contentTextStyle']), elevation: (json['elevation'] as num?)?.toDouble(), padding: json['padding'] == null ? null diff --git a/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.dart index fc3c5200..e73ca3dc 100644 --- a/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.g.dart index 8f321835..81a1e9b5 100644 --- a/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_navigation_bar_theme_data/stac_navigation_bar_theme_data.g.dart @@ -20,8 +20,7 @@ _StacNavigationBarThemeData _$StacNavigationBarThemeDataFromJson( : StacBorder.fromJson(json['indicatorShape'] as Map), labelTextStyle: json['labelTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['labelTextStyle'] as Map), + : StacTextStyle.fromJson(json['labelTextStyle']), iconTheme: json['iconTheme'] == null ? null : StacIconThemeData.fromJson( diff --git a/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.dart index d17b6720..4083b36e 100644 --- a/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_size_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/parsers/theme/stac_icon_theme_data/stac_icon_theme_data.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.g.dart index 58fbc157..25d5825f 100644 --- a/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_navigation_drawer_theme_data/stac_navigation_drawer_theme_data.g.dart @@ -24,8 +24,7 @@ _StacNavigationDrawerThemeData _$StacNavigationDrawerThemeDataFromJson( : StacSize.fromJson(json['indicatorSize'] as Map), labelTextStyle: json['labelTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['labelTextStyle'] as Map), + : StacTextStyle.fromJson(json['labelTextStyle']), iconTheme: json['iconTheme'] == null ? null : StacIconThemeData.fromJson( diff --git a/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.dart index 86d26de6..eafcb02e 100644 --- a/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.g.dart index f660855e..b7e751e8 100644 --- a/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.g.dart @@ -19,8 +19,7 @@ _StacSnackBarThemeData _$StacSnackBarThemeDataFromJson( width: (json['width'] as num?)?.toDouble(), contentTextStyle: json['contentTextStyle'] == null ? null - : StacTextStyle.fromJson( - json['contentTextStyle'] as Map), + : StacTextStyle.fromJson(json['contentTextStyle']), actionTextColor: json['actionTextColor'] as String?, disabledActionTextColor: json['disabledActionTextColor'] as String?, insetPadding: json['insetPadding'] == null diff --git a/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.dart b/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.dart index 424e3711..1cbc95f6 100644 --- a/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.dart +++ b/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_box_decoration_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_box_decoration_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.g.dart b/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.g.dart index 5162e406..45d07e8d 100644 --- a/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.g.dart @@ -22,12 +22,11 @@ _StacTabBarThemeData _$StacTabBarThemeDataFromJson(Map json) => : StacEdgeInsets.fromJson(json['labelPadding']), labelStyle: json['labelStyle'] == null ? null - : StacTextStyle.fromJson(json['labelStyle'] as Map), + : StacTextStyle.fromJson(json['labelStyle']), unselectedLabelColor: json['unselectedLabelColor'] as String?, unselectedLabelStyle: json['unselectedLabelStyle'] == null ? null - : StacTextStyle.fromJson( - json['unselectedLabelStyle'] as Map), + : StacTextStyle.fromJson(json['unselectedLabelStyle']), overlayColor: json['overlayColor'] as String?, ); diff --git a/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.dart b/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.dart index 1bff7b71..8da54736 100644 --- a/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac_core/stac_core.dart'; part 'stac_text_theme.freezed.dart'; diff --git a/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.g.dart b/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.g.dart index 9da70500..4147645e 100644 --- a/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.g.dart +++ b/packages/stac/lib/src/parsers/theme/stac_text_theme/stac_text_theme.g.dart @@ -10,55 +10,49 @@ _StacTextTheme _$StacTextThemeFromJson(Map json) => _StacTextTheme( displayLarge: json['displayLarge'] == null ? null - : StacTextStyle.fromJson( - json['displayLarge'] as Map), + : StacTextStyle.fromJson(json['displayLarge']), displayMedium: json['displayMedium'] == null ? null - : StacTextStyle.fromJson( - json['displayMedium'] as Map), + : StacTextStyle.fromJson(json['displayMedium']), displaySmall: json['displaySmall'] == null ? null - : StacTextStyle.fromJson( - json['displaySmall'] as Map), + : StacTextStyle.fromJson(json['displaySmall']), headlineLarge: json['headlineLarge'] == null ? null - : StacTextStyle.fromJson( - json['headlineLarge'] as Map), + : StacTextStyle.fromJson(json['headlineLarge']), headlineMedium: json['headlineMedium'] == null ? null - : StacTextStyle.fromJson( - json['headlineMedium'] as Map), + : StacTextStyle.fromJson(json['headlineMedium']), headlineSmall: json['headlineSmall'] == null ? null - : StacTextStyle.fromJson( - json['headlineSmall'] as Map), + : StacTextStyle.fromJson(json['headlineSmall']), titleLarge: json['titleLarge'] == null ? null - : StacTextStyle.fromJson(json['titleLarge'] as Map), + : StacTextStyle.fromJson(json['titleLarge']), titleMedium: json['titleMedium'] == null ? null - : StacTextStyle.fromJson(json['titleMedium'] as Map), + : StacTextStyle.fromJson(json['titleMedium']), titleSmall: json['titleSmall'] == null ? null - : StacTextStyle.fromJson(json['titleSmall'] as Map), + : StacTextStyle.fromJson(json['titleSmall']), bodyLarge: json['bodyLarge'] == null ? null - : StacTextStyle.fromJson(json['bodyLarge'] as Map), + : StacTextStyle.fromJson(json['bodyLarge']), bodyMedium: json['bodyMedium'] == null ? null - : StacTextStyle.fromJson(json['bodyMedium'] as Map), + : StacTextStyle.fromJson(json['bodyMedium']), bodySmall: json['bodySmall'] == null ? null - : StacTextStyle.fromJson(json['bodySmall'] as Map), + : StacTextStyle.fromJson(json['bodySmall']), labelLarge: json['labelLarge'] == null ? null - : StacTextStyle.fromJson(json['labelLarge'] as Map), + : StacTextStyle.fromJson(json['labelLarge']), labelMedium: json['labelMedium'] == null ? null - : StacTextStyle.fromJson(json['labelMedium'] as Map), + : StacTextStyle.fromJson(json['labelMedium']), labelSmall: json['labelSmall'] == null ? null - : StacTextStyle.fromJson(json['labelSmall'] as Map), + : StacTextStyle.fromJson(json['labelSmall']), ); Map _$StacTextThemeToJson(_StacTextTheme instance) => diff --git a/packages/stac/lib/src/parsers/theme/stac_theme/stac_theme.dart b/packages/stac/lib/src/parsers/theme/stac_theme/stac_theme.dart index 10eb74d4..b3283be3 100644 --- a/packages/stac/lib/src/parsers/theme/stac_theme/stac_theme.dart +++ b/packages/stac/lib/src/parsers/theme/stac_theme/stac_theme.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; +import 'package:stac/src/parsers/foundation/theme/stac_input_decoration_theme_parser.dart'; import 'package:stac/src/parsers/theme/stac_app_bar_theme/stac_app_bar_theme.dart'; import 'package:stac/src/parsers/theme/stac_badge_theme_data/stac_badge_theme_data.dart'; import 'package:stac/src/parsers/theme/stac_bottom_app_bar_theme/stac_bottom_app_bar_theme.dart'; @@ -26,7 +27,6 @@ import 'package:stac/src/parsers/theme/stac_scrollbar_theme_data/stac_scrollbar_ import 'package:stac/src/parsers/theme/stac_snack_bar_theme_data/stac_snack_bar_theme_data.dart'; import 'package:stac/src/parsers/theme/stac_tab_bar_theme_data/stac_tab_bar_theme_data.dart'; import 'package:stac/src/parsers/theme/stac_text_theme/stac_text_theme.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/types/type_parser.dart b/packages/stac/lib/src/parsers/types/type_parser.dart deleted file mode 100644 index cff2edf3..00000000 --- a/packages/stac/lib/src/parsers/types/type_parser.dart +++ /dev/null @@ -1,1515 +0,0 @@ -import 'dart:math' as math; -import 'dart:typed_data'; -import 'dart:ui'; - -import 'package:flutter/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_box_decoration_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/utils/color_utils.dart'; -import 'package:stac/src/utils/input_formatters.dart'; -import 'package:stac_core/stac_core.dart'; - -extension StacFloatingActionButtonLocationParser - on StacFloatingActionButtonLocation { - FloatingActionButtonLocation get parse { - switch (this) { - case StacFloatingActionButtonLocation.startTop: - return FloatingActionButtonLocation.startTop; - case StacFloatingActionButtonLocation.miniStartTop: - return FloatingActionButtonLocation.miniStartTop; - case StacFloatingActionButtonLocation.centerTop: - return FloatingActionButtonLocation.centerTop; - case StacFloatingActionButtonLocation.miniCenterTop: - return FloatingActionButtonLocation.miniCenterTop; - case StacFloatingActionButtonLocation.endTop: - return FloatingActionButtonLocation.endTop; - case StacFloatingActionButtonLocation.miniEndTop: - return FloatingActionButtonLocation.miniEndTop; - case StacFloatingActionButtonLocation.startFloat: - return FloatingActionButtonLocation.startFloat; - case StacFloatingActionButtonLocation.miniStartFloat: - return FloatingActionButtonLocation.miniStartFloat; - case StacFloatingActionButtonLocation.centerFloat: - return FloatingActionButtonLocation.centerFloat; - case StacFloatingActionButtonLocation.miniCenterFloat: - return FloatingActionButtonLocation.miniCenterFloat; - case StacFloatingActionButtonLocation.endFloat: - return FloatingActionButtonLocation.endFloat; - case StacFloatingActionButtonLocation.miniEndFloat: - return FloatingActionButtonLocation.miniEndFloat; - case StacFloatingActionButtonLocation.startDocked: - return FloatingActionButtonLocation.startDocked; - case StacFloatingActionButtonLocation.miniStartDocked: - return FloatingActionButtonLocation.miniStartDocked; - case StacFloatingActionButtonLocation.centerDocked: - return FloatingActionButtonLocation.centerDocked; - case StacFloatingActionButtonLocation.miniCenterDocked: - return FloatingActionButtonLocation.miniCenterDocked; - case StacFloatingActionButtonLocation.endDocked: - return FloatingActionButtonLocation.endDocked; - case StacFloatingActionButtonLocation.miniEndDocked: - return FloatingActionButtonLocation.miniEndDocked; - } - } -} - -extension StacStrokeCapParser on StacStrokeCap? { - StrokeCap? get parse { - switch (this) { - case StacStrokeCap.butt: - return StrokeCap.butt; - case StacStrokeCap.round: - return StrokeCap.round; - case StacStrokeCap.square: - return StrokeCap.square; - default: - return null; - } - } -} - -extension StacOverflowBarAlignmentParser on StacOverflowBarAlignment { - OverflowBarAlignment get parse { - switch (this) { - case StacOverflowBarAlignment.start: - return OverflowBarAlignment.start; - case StacOverflowBarAlignment.end: - return OverflowBarAlignment.end; - case StacOverflowBarAlignment.center: - return OverflowBarAlignment.center; - } - } -} - -extension StacInputDecorationParser on StacInputDecoration { - InputDecoration parse(BuildContext context) { - return InputDecoration( - icon: icon?.parse(context), - labelText: labelText, - labelStyle: labelStyle?.parse(context), - hintText: hintText, - hintStyle: hintStyle?.parse(context), - helperText: helperText, - helperStyle: helperStyle?.parse(context), - errorText: errorText, - errorStyle: errorStyle?.parse(context), - prefixIcon: prefixIcon?.parse(context), - prefixText: prefixText, - prefixStyle: prefixStyle?.parse(context), - suffixIcon: suffixIcon.parse(context), - suffixText: suffixText, - suffixStyle: suffixStyle?.parse(context), - isDense: isDense, - contentPadding: contentPadding?.parse, - filled: filled, - fillColor: fillColor?.toColor(context), - alignLabelWithHint: alignLabelWithHint, - ); - } -} - -extension StacTextInputTypeParser on StacTextInputType { - TextInputType get parse { - switch (this) { - case StacTextInputType.text: - return TextInputType.text; - case StacTextInputType.multiline: - return TextInputType.multiline; - case StacTextInputType.number: - return TextInputType.number; - case StacTextInputType.phone: - return TextInputType.phone; - case StacTextInputType.datetime: - return TextInputType.datetime; - case StacTextInputType.emailAddress: - return TextInputType.emailAddress; - case StacTextInputType.url: - return TextInputType.url; - case StacTextInputType.visiblePassword: - return TextInputType.visiblePassword; - case StacTextInputType.name: - return TextInputType.name; - case StacTextInputType.streetAddress: - return TextInputType.streetAddress; - case StacTextInputType.none: - return TextInputType.none; - } - } -} - -extension StacTextInputActionParser on StacTextInputAction { - TextInputAction get parse { - switch (this) { - case StacTextInputAction.none: - return TextInputAction.none; - case StacTextInputAction.unspecified: - return TextInputAction.unspecified; - case StacTextInputAction.done: - return TextInputAction.done; - case StacTextInputAction.go: - return TextInputAction.go; - case StacTextInputAction.search: - return TextInputAction.search; - case StacTextInputAction.send: - return TextInputAction.send; - case StacTextInputAction.next: - return TextInputAction.next; - case StacTextInputAction.previous: - return TextInputAction.previous; - case StacTextInputAction.continueAction: - return TextInputAction.continueAction; - case StacTextInputAction.join: - return TextInputAction.join; - case StacTextInputAction.route: - return TextInputAction.route; - case StacTextInputAction.emergencyCall: - return TextInputAction.emergencyCall; - case StacTextInputAction.newline: - return TextInputAction.newline; - } - } -} - -extension StacTextCapitalizationParser on StacTextCapitalization { - TextCapitalization get parse { - switch (this) { - case StacTextCapitalization.none: - return TextCapitalization.none; - case StacTextCapitalization.characters: - return TextCapitalization.characters; - case StacTextCapitalization.words: - return TextCapitalization.words; - case StacTextCapitalization.sentences: - return TextCapitalization.sentences; - } - } -} - -extension StacAlignmentDirectionalParser on StacAlignmentDirectional { - AlignmentDirectional get parse { - switch (this) { - case StacAlignmentDirectional.topStart: - return AlignmentDirectional.topStart; - case StacAlignmentDirectional.topCenter: - return AlignmentDirectional.topCenter; - case StacAlignmentDirectional.topEnd: - return AlignmentDirectional.topEnd; - case StacAlignmentDirectional.centerStart: - return AlignmentDirectional.centerStart; - case StacAlignmentDirectional.center: - return AlignmentDirectional.center; - case StacAlignmentDirectional.centerEnd: - return AlignmentDirectional.centerEnd; - case StacAlignmentDirectional.bottomStart: - return AlignmentDirectional.bottomStart; - case StacAlignmentDirectional.bottomCenter: - return AlignmentDirectional.bottomCenter; - case StacAlignmentDirectional.bottomEnd: - return AlignmentDirectional.bottomEnd; - } - } -} - -extension StacDragStartBehaviorParser on StacDragStartBehavior { - DragStartBehavior get parse { - switch (this) { - case StacDragStartBehavior.down: - return DragStartBehavior.down; - case StacDragStartBehavior.start: - return DragStartBehavior.start; - } - } -} - -extension StacTextOverflowParser on StacTextOverflow { - TextOverflow get parse { - switch (this) { - case StacTextOverflow.clip: - return TextOverflow.clip; - case StacTextOverflow.fade: - return TextOverflow.fade; - case StacTextOverflow.ellipsis: - return TextOverflow.ellipsis; - case StacTextOverflow.visible: - return TextOverflow.visible; - } - } -} - -extension StacTextDecorationStyleParser on StacTextDecorationStyle { - TextDecorationStyle get parse { - switch (this) { - case StacTextDecorationStyle.solid: - return TextDecorationStyle.solid; - case StacTextDecorationStyle.double: - return TextDecorationStyle.double; - case StacTextDecorationStyle.dotted: - return TextDecorationStyle.dotted; - case StacTextDecorationStyle.dashed: - return TextDecorationStyle.dashed; - case StacTextDecorationStyle.wavy: - return TextDecorationStyle.wavy; - } - } -} - -extension StacTextLeadingDistributionParser on StacTextLeadingDistribution { - TextLeadingDistribution get parse { - switch (this) { - case StacTextLeadingDistribution.proportional: - return TextLeadingDistribution.proportional; - case StacTextLeadingDistribution.even: - return TextLeadingDistribution.even; - } - } -} - -extension StacTextAlignParser on StacTextAlign { - TextAlign get parse { - switch (this) { - case StacTextAlign.left: - return TextAlign.left; - case StacTextAlign.right: - return TextAlign.right; - case StacTextAlign.center: - return TextAlign.center; - case StacTextAlign.justify: - return TextAlign.justify; - case StacTextAlign.start: - return TextAlign.start; - case StacTextAlign.end: - return TextAlign.end; - } - } -} - -extension StacTextDirectionParser on StacTextDirection { - TextDirection get parse { - switch (this) { - case StacTextDirection.rtl: - return TextDirection.rtl; - case StacTextDirection.ltr: - return TextDirection.ltr; - } - } -} - -/// Maps [StacTextBaseline] to Flutter's [TextBaseline]. -extension StacTextBaselineParser on StacTextBaseline? { - /// Parses this [StacTextBaseline] into a Flutter [TextBaseline]. - TextBaseline? get parse { - switch (this) { - case StacTextBaseline.alphabetic: - return TextBaseline.alphabetic; - case StacTextBaseline.ideographic: - return TextBaseline.ideographic; - default: - return null; - } - } -} - -extension StacTextWidthBasisParser on StacTextWidthBasis { - TextWidthBasis get parse { - switch (this) { - case StacTextWidthBasis.parent: - return TextWidthBasis.parent; - case StacTextWidthBasis.longestLine: - return TextWidthBasis.longestLine; - } - } -} - -extension StacAlignmentParser on StacAlignment { - Alignment get parse { - switch (this) { - case StacAlignment.topLeft: - return Alignment.topLeft; - case StacAlignment.topCenter: - return Alignment.topCenter; - case StacAlignment.topRight: - return Alignment.topRight; - case StacAlignment.centerLeft: - return Alignment.centerLeft; - case StacAlignment.center: - return Alignment.center; - case StacAlignment.centerRight: - return Alignment.centerRight; - case StacAlignment.bottomLeft: - return Alignment.bottomLeft; - case StacAlignment.bottomCenter: - return Alignment.bottomCenter; - case StacAlignment.bottomRight: - return Alignment.bottomRight; - } - } -} - -extension StacAlignmentGeometryParser on StacAlignmentGeometry { - Alignment get parse { - return Alignment(dx, dy); - } -} - -extension StacClipParser on StacClip { - Clip get parse { - switch (this) { - case StacClip.none: - return Clip.none; - case StacClip.hardEdge: - return Clip.hardEdge; - case StacClip.antiAlias: - return Clip.antiAlias; - case StacClip.antiAliasWithSaveLayer: - return Clip.antiAliasWithSaveLayer; - } - } -} - -extension StacBlendModeParser on StacBlendMode { - BlendMode get parse { - switch (this) { - case StacBlendMode.clear: - return BlendMode.clear; - case StacBlendMode.src: - return BlendMode.src; - case StacBlendMode.dst: - return BlendMode.dst; - case StacBlendMode.srcOver: - return BlendMode.srcOver; - case StacBlendMode.dstOver: - return BlendMode.dstOver; - case StacBlendMode.srcIn: - return BlendMode.srcIn; - case StacBlendMode.dstIn: - return BlendMode.dstIn; - case StacBlendMode.srcOut: - return BlendMode.srcOut; - case StacBlendMode.dstOut: - return BlendMode.dstOut; - case StacBlendMode.srcATop: - return BlendMode.srcATop; - case StacBlendMode.dstATop: - return BlendMode.dstATop; - case StacBlendMode.xor: - return BlendMode.xor; - case StacBlendMode.plus: - return BlendMode.plus; - case StacBlendMode.modulate: - return BlendMode.modulate; - case StacBlendMode.screen: - return BlendMode.screen; - case StacBlendMode.overlay: - return BlendMode.overlay; - case StacBlendMode.darken: - return BlendMode.darken; - case StacBlendMode.lighten: - return BlendMode.lighten; - case StacBlendMode.colorDodge: - return BlendMode.colorDodge; - case StacBlendMode.colorBurn: - return BlendMode.colorBurn; - case StacBlendMode.hardLight: - return BlendMode.hardLight; - case StacBlendMode.softLight: - return BlendMode.softLight; - case StacBlendMode.difference: - return BlendMode.difference; - case StacBlendMode.exclusion: - return BlendMode.exclusion; - case StacBlendMode.multiply: - return BlendMode.multiply; - case StacBlendMode.hue: - return BlendMode.hue; - case StacBlendMode.saturation: - return BlendMode.saturation; - case StacBlendMode.color: - return BlendMode.color; - case StacBlendMode.luminosity: - return BlendMode.luminosity; - } - } -} - -extension StacBoxFitParser on StacBoxFit { - BoxFit get parse { - switch (this) { - case StacBoxFit.fill: - return BoxFit.fill; - case StacBoxFit.contain: - return BoxFit.contain; - case StacBoxFit.cover: - return BoxFit.cover; - case StacBoxFit.fitWidth: - return BoxFit.fitWidth; - case StacBoxFit.fitHeight: - return BoxFit.fitHeight; - case StacBoxFit.scaleDown: - return BoxFit.scaleDown; - case StacBoxFit.none: - return BoxFit.none; - } - } -} - -extension StacOffsetParser on StacOffset { - Offset get parse { - return Offset(dx, dy); - } -} - -extension StacRectParser on StacRect { - Rect? get parse { - Rect fromCenter() => Rect.fromCenter( - center: center?.parse ?? Offset.zero, - width: width ?? 0.0, - height: height ?? 0.0, - ); - Rect fromCircle() => Rect.fromCircle( - center: center?.parse ?? Offset.zero, - radius: radius ?? 0.0, - ); - Rect fromLTRB() => Rect.fromLTRB( - left ?? 0.0, - top ?? 0.0, - right ?? 0.0, - bottom ?? 0.0, - ); - Rect fromLTWH() => Rect.fromLTWH( - left ?? 0.0, - top ?? 0.0, - width ?? 0.0, - height ?? 0.0, - ); - Rect fromPoints() => Rect.fromPoints( - a?.parse ?? Offset.zero, - b?.parse ?? Offset.zero, - ); - - switch (rectType) { - case StacRectType.fromCenter: - return fromCenter(); - case StacRectType.fromCircle: - return fromCircle(); - case StacRectType.fromLTRB: - return fromLTRB(); - case StacRectType.fromLTWH: - return fromLTWH(); - case StacRectType.fromPoints: - return fromPoints(); - } - } -} - -extension StacImageFilterParser on StacImageFilter { - ImageFilter get parse { - switch (type) { - case StacImageFilterType.blur: - final sx = sigmaX ?? 0.0; - final sy = sigmaY ?? sx; - return ImageFilter.blur(sigmaX: sx, sigmaY: sy); - case StacImageFilterType.matrix: - if (matrix != null && matrix!.length == 16) { - return ImageFilter.matrix(Float64List.fromList(matrix!)); - } - return ImageFilter.matrix(Float64List.fromList(List.filled(16, 0))); - case StacImageFilterType.dilate: - final rx = radiusX ?? 0.0; - final ry = radiusY ?? rx; - return ImageFilter.dilate(radiusX: rx, radiusY: ry); - case StacImageFilterType.erode: - final rx = radiusX ?? 0.0; - final ry = radiusY ?? rx; - return ImageFilter.erode(radiusX: rx, radiusY: ry); - case StacImageFilterType.compose: - final innerFilter = inner?.parse; - final outerFilter = outer?.parse; - if (innerFilter != null && outerFilter != null) { - return ImageFilter.compose(inner: innerFilter, outer: outerFilter); - } - return ImageFilter.blur(sigmaX: 0, sigmaY: 0); - } - } -} - -extension StacRectTweenParser on StacRectTween { - RectTween parse(BuildContext context) { - final begin = this.begin?.parse; - final end = this.end?.parse; - - switch (type) { - case 'materialRectArcTween': - return MaterialRectArcTween(begin: begin, end: end); - case 'materialRectCenterArcTween': - return MaterialRectCenterArcTween(begin: begin, end: end); - default: - return RectTween(begin: begin, end: end); - } - } -} - -extension StacImageRepeatParser on StacImageRepeat { - ImageRepeat get parse { - switch (this) { - case StacImageRepeat.repeat: - return ImageRepeat.repeat; - case StacImageRepeat.repeatX: - return ImageRepeat.repeatX; - case StacImageRepeat.repeatY: - return ImageRepeat.repeatY; - case StacImageRepeat.noRepeat: - return ImageRepeat.noRepeat; - } - } -} - -extension StacFilterQualityParser on StacFilterQuality { - FilterQuality get parse { - switch (this) { - case StacFilterQuality.none: - return FilterQuality.none; - case StacFilterQuality.low: - return FilterQuality.low; - case StacFilterQuality.medium: - return FilterQuality.medium; - case StacFilterQuality.high: - return FilterQuality.high; - } - } -} - -extension StacBorderStyleParser on StacBorderStyle { - BorderStyle get parse { - switch (this) { - case StacBorderStyle.none: - return BorderStyle.none; - case StacBorderStyle.solid: - return BorderStyle.solid; - } - } -} - -extension StacBorderSideParser on StacBorderSide { - BorderSide parse(BuildContext context) { - return BorderSide( - color: color?.toColor(context) ?? const Color(0xFF000000), - width: width ?? 1.0, - style: borderStyle?.parse ?? BorderStyle.solid, - strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside, - ); - } -} - -extension StacBorderParser on StacBorder { - Border parse(BuildContext context) { - final hasIndividualSides = - top != null || right != null || bottom != null || left != null; - - if (hasIndividualSides) { - return Border( - top: top?.parse(context) ?? BorderSide.none, - right: right?.parse(context) ?? BorderSide.none, - bottom: bottom?.parse(context) ?? BorderSide.none, - left: left?.parse(context) ?? BorderSide.none, - ); - } else { - return Border.all( - color: color.toColor(context) ?? const Color(0xFF000000), - width: width ?? 1.0, - style: borderStyle?.parse ?? BorderStyle.solid, - strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside, - ); - } - } -} - -extension StacBorderRadiusParser on StacBorderRadius { - BorderRadius get parse { - return BorderRadius.only( - topLeft: Radius.circular(topLeft ?? 0.0), - topRight: Radius.circular(topRight ?? 0.0), - bottomLeft: Radius.circular(bottomLeft ?? 0.0), - bottomRight: Radius.circular(bottomRight ?? 0.0), - ); - } -} - -/// Parses a [StacTableBorder] to a Flutter [TableBorder]. -extension StacTableBorderParser on StacTableBorder { - TableBorder parse(BuildContext context) { - return TableBorder.all( - color: color?.toColor(context) ?? Colors.black, - width: width ?? 1.0, - style: style?.parse ?? BorderStyle.solid, - borderRadius: borderRadius?.parse ?? BorderRadius.zero, - ); - } -} - -/// Parses a [StacTableColumnWidth] to a Flutter [TableColumnWidth]. -extension StacTableColumnWidthParser on StacTableColumnWidth { - TableColumnWidth get parse { - switch (type) { - case StacTableColumnWidthType.fixedColumnWidth: - return FixedColumnWidth(value ?? 0.0); - case StacTableColumnWidthType.flexColumnWidth: - return FlexColumnWidth(value ?? 1.0); - case StacTableColumnWidthType.fractionColumnWidth: - return FractionColumnWidth(value ?? 0.5); - case StacTableColumnWidthType.intrinsicColumnWidth: - return IntrinsicColumnWidth(flex: value ?? 1.0); - } - } -} - -/// Parses a [StacTableRow] to a Flutter [TableRow]. -extension StacTableRowParser on StacTableRow { - TableRow parse(BuildContext context) { - return TableRow( - decoration: decoration?.parse(context), - children: children.parseList(context) ?? const [], - ); - } -} - -extension StacBoxShadowParser on StacBoxShadow { - BoxShadow parse(BuildContext context) { - return BoxShadow( - color: color.toColor(context) ?? const Color(0xFF000000), - blurRadius: blurRadius ?? 0.0, - offset: offset?.parse ?? Offset.zero, - spreadRadius: spreadRadius ?? 0.0, - blurStyle: blurStyle?.parse ?? BlurStyle.normal, - ); - } -} - -extension StacBlurStyleParser on StacBlurStyle { - BlurStyle get parse { - switch (this) { - case StacBlurStyle.normal: - return BlurStyle.normal; - case StacBlurStyle.solid: - return BlurStyle.solid; - case StacBlurStyle.outer: - return BlurStyle.outer; - case StacBlurStyle.inner: - return BlurStyle.inner; - } - } -} - -extension StacBoxShapeParser on StacBoxShape { - BoxShape get parse { - switch (this) { - case StacBoxShape.rectangle: - return BoxShape.rectangle; - case StacBoxShape.circle: - return BoxShape.circle; - } - } -} - -extension StacTileModeParser on StacTileMode { - TileMode get parse { - switch (this) { - case StacTileMode.clamp: - return TileMode.clamp; - case StacTileMode.repeated: - return TileMode.repeated; - case StacTileMode.mirror: - return TileMode.mirror; - case StacTileMode.decal: - return TileMode.decal; - } - } -} - -extension StacBottomNavigationBarLandscapeLayoutParser - on StacBottomNavigationBarLandscapeLayout { - BottomNavigationBarLandscapeLayout get parse { - switch (this) { - case StacBottomNavigationBarLandscapeLayout.spread: - return BottomNavigationBarLandscapeLayout.spread; - case StacBottomNavigationBarLandscapeLayout.centered: - return BottomNavigationBarLandscapeLayout.centered; - case StacBottomNavigationBarLandscapeLayout.linear: - return BottomNavigationBarLandscapeLayout.linear; - } - } -} - -extension StacBottomNavigationBarTypeParser on StacBottomNavigationBarType { - BottomNavigationBarType get parse { - switch (this) { - case StacBottomNavigationBarType.fixed: - return BottomNavigationBarType.fixed; - case StacBottomNavigationBarType.shifting: - return BottomNavigationBarType.shifting; - } - } -} - -extension StacTabBarIndicatorSizeParser on StacTabBarIndicatorSize { - TabBarIndicatorSize get parse { - switch (this) { - case StacTabBarIndicatorSize.label: - return TabBarIndicatorSize.label; - case StacTabBarIndicatorSize.tab: - return TabBarIndicatorSize.tab; - } - } -} - -extension StacTabAlignmentParser on StacTabAlignment { - TabAlignment get parse { - switch (this) { - case StacTabAlignment.center: - return TabAlignment.center; - case StacTabAlignment.fill: - return TabAlignment.fill; - case StacTabAlignment.startOffset: - return TabAlignment.startOffset; - case StacTabAlignment.start: - return TabAlignment.start; - } - } -} - -extension StacGradientParser on StacGradient { - Gradient? parse(BuildContext context) { - Gradient linearGradient() => LinearGradient( - colors: colors?.map((e) => e.toColor(context)!).toList() ?? [], - begin: begin?.parse ?? Alignment.centerLeft, - end: end?.parse ?? Alignment.centerRight, - stops: stops, - tileMode: tileMode?.parse ?? TileMode.clamp, - ); - - Gradient radialGradient() => RadialGradient( - colors: colors?.map((e) => e.toColor(context)!).toList() ?? [], - stops: stops, - tileMode: tileMode?.parse ?? TileMode.clamp, - focal: focal?.parse, - focalRadius: focalRadius ?? 0.0, - radius: radius ?? 0.5, - center: center?.parse ?? Alignment.center, - ); - - Gradient sweepGradient() => SweepGradient( - colors: colors?.map((e) => e.toColor(context)!).toList() ?? [], - stops: stops, - center: center?.parse ?? Alignment.center, - startAngle: startAngle ?? 0.0, - endAngle: endAngle ?? math.pi * 2, - tileMode: tileMode?.parse ?? TileMode.clamp, - ); - - switch (gradientType) { - case StacGradientType.linear: - return linearGradient(); - case StacGradientType.radial: - return radialGradient(); - case StacGradientType.sweep: - return sweepGradient(); - default: - return null; - } - } -} - -extension StacBoxConstraintsParser on StacBoxConstraints { - BoxConstraints get parse { - return BoxConstraints( - minWidth: minWidth ?? 0.0, - maxWidth: maxWidth ?? double.infinity, - minHeight: minHeight ?? 0.0, - maxHeight: maxHeight ?? double.infinity, - ); - } -} - -extension StacMainAxisAlignmentParser on StacMainAxisAlignment { - MainAxisAlignment get parse { - switch (this) { - case StacMainAxisAlignment.start: - return MainAxisAlignment.start; - case StacMainAxisAlignment.end: - return MainAxisAlignment.end; - case StacMainAxisAlignment.center: - return MainAxisAlignment.center; - case StacMainAxisAlignment.spaceBetween: - return MainAxisAlignment.spaceBetween; - case StacMainAxisAlignment.spaceAround: - return MainAxisAlignment.spaceAround; - case StacMainAxisAlignment.spaceEvenly: - return MainAxisAlignment.spaceEvenly; - } - } -} - -extension StacMainAxisSizeParser on StacMainAxisSize { - MainAxisSize get parse { - switch (this) { - case StacMainAxisSize.min: - return MainAxisSize.min; - case StacMainAxisSize.max: - return MainAxisSize.max; - } - } -} - -extension StacCrossAxisAlignmentParser on StacCrossAxisAlignment { - CrossAxisAlignment get parse { - switch (this) { - case StacCrossAxisAlignment.start: - return CrossAxisAlignment.start; - case StacCrossAxisAlignment.end: - return CrossAxisAlignment.end; - case StacCrossAxisAlignment.center: - return CrossAxisAlignment.center; - case StacCrossAxisAlignment.stretch: - return CrossAxisAlignment.stretch; - case StacCrossAxisAlignment.baseline: - return CrossAxisAlignment.baseline; - } - } -} - -extension StacVerticalDirectionParser on StacVerticalDirection { - VerticalDirection get parse { - switch (this) { - case StacVerticalDirection.up: - return VerticalDirection.up; - case StacVerticalDirection.down: - return VerticalDirection.down; - } - } -} - -/// Maps [StacTableCellVerticalAlignment] to Flutter's [TableCellVerticalAlignment]. -extension StacTableCellVerticalAlignmentParser - on StacTableCellVerticalAlignment? { - TableCellVerticalAlignment get parse { - switch (this) { - case StacTableCellVerticalAlignment.top: - return TableCellVerticalAlignment.top; - case StacTableCellVerticalAlignment.middle: - return TableCellVerticalAlignment.middle; - case StacTableCellVerticalAlignment.bottom: - return TableCellVerticalAlignment.bottom; - case StacTableCellVerticalAlignment.baseline: - return TableCellVerticalAlignment.baseline; - case StacTableCellVerticalAlignment.fill: - return TableCellVerticalAlignment.fill; - default: - return TableCellVerticalAlignment.top; - } - } -} - -extension StacBrightnessParser on StacBrightness { - Brightness get parse { - switch (this) { - case StacBrightness.light: - return Brightness.light; - case StacBrightness.dark: - return Brightness.dark; - case StacBrightness.system: - return Brightness.light; - } - } -} - -extension StacSmartDashesTypeParser on StacSmartDashesType { - SmartDashesType get parse { - switch (this) { - case StacSmartDashesType.disabled: - return SmartDashesType.disabled; - case StacSmartDashesType.enabled: - return SmartDashesType.enabled; - } - } -} - -extension StacSmartQuotesTypeParser on StacSmartQuotesType { - SmartQuotesType get parse { - switch (this) { - case StacSmartQuotesType.disabled: - return SmartQuotesType.disabled; - case StacSmartQuotesType.enabled: - return SmartQuotesType.enabled; - } - } -} - -extension StacMaxLengthEnforcementParser on StacMaxLengthEnforcement { - MaxLengthEnforcement get parse { - switch (this) { - case StacMaxLengthEnforcement.none: - return MaxLengthEnforcement.none; - case StacMaxLengthEnforcement.enforced: - return MaxLengthEnforcement.enforced; - } - } -} - -extension StacInputFormatterTypeCoreParser on StacInputFormatterType { - InputFormatterType get parse { - switch (this) { - case StacInputFormatterType.allow: - return InputFormatterType.allow; - case StacInputFormatterType.deny: - return InputFormatterType.deny; - } - } -} - -extension StacStackFitParser on StacStackFit { - StackFit get parse { - switch (this) { - case StacStackFit.loose: - return StackFit.loose; - case StacStackFit.expand: - return StackFit.expand; - case StacStackFit.passthrough: - return StackFit.passthrough; - } - } -} - -extension StacIconAlignmentParser on StacIconAlignment { - IconAlignment get parse { - switch (this) { - case StacIconAlignment.start: - return IconAlignment.start; - case StacIconAlignment.end: - return IconAlignment.end; - } - } -} - -extension StacSizeParser on StacSize { - Size get parse { - return Size(width, height); - } -} - -extension StacMouseCursorParser on StacMouseCursor { - MouseCursor get parse { - switch (this) { - case StacMouseCursor.none: - return SystemMouseCursors.basic; - case StacMouseCursor.basic: - return SystemMouseCursors.basic; - case StacMouseCursor.click: - return SystemMouseCursors.click; - case StacMouseCursor.forbidden: - return SystemMouseCursors.forbidden; - case StacMouseCursor.wait: - return SystemMouseCursors.wait; - case StacMouseCursor.progress: - return SystemMouseCursors.progress; - case StacMouseCursor.contextMenu: - return SystemMouseCursors.contextMenu; - case StacMouseCursor.help: - return SystemMouseCursors.help; - case StacMouseCursor.text: - return SystemMouseCursors.text; - case StacMouseCursor.verticalText: - return SystemMouseCursors.verticalText; - case StacMouseCursor.cell: - return SystemMouseCursors.cell; - case StacMouseCursor.precise: - return SystemMouseCursors.precise; - case StacMouseCursor.move: - return SystemMouseCursors.move; - case StacMouseCursor.grab: - return SystemMouseCursors.grab; - case StacMouseCursor.grabbing: - return SystemMouseCursors.grabbing; - case StacMouseCursor.noDrop: - return SystemMouseCursors.noDrop; - case StacMouseCursor.alias: - return SystemMouseCursors.alias; - case StacMouseCursor.copy: - return SystemMouseCursors.copy; - case StacMouseCursor.disappearing: - return SystemMouseCursors.disappearing; - case StacMouseCursor.allScroll: - return SystemMouseCursors.allScroll; - case StacMouseCursor.resizeLeftRight: - return SystemMouseCursors.resizeLeftRight; - case StacMouseCursor.resizeUpDown: - return SystemMouseCursors.resizeUpDown; - case StacMouseCursor.resizeUpLeftDownRight: - return SystemMouseCursors.resizeUpLeftDownRight; - case StacMouseCursor.resizeUpRightDownLeft: - return SystemMouseCursors.resizeUpRightDownLeft; - case StacMouseCursor.resizeUp: - return SystemMouseCursors.resizeUp; - case StacMouseCursor.resizeDown: - return SystemMouseCursors.resizeDown; - case StacMouseCursor.resizeLeft: - return SystemMouseCursors.resizeLeft; - case StacMouseCursor.resizeRight: - return SystemMouseCursors.resizeRight; - case StacMouseCursor.resizeUpLeft: - return SystemMouseCursors.resizeUpLeft; - case StacMouseCursor.resizeUpRight: - return SystemMouseCursors.resizeUpRight; - case StacMouseCursor.resizeDownLeft: - return SystemMouseCursors.resizeDownLeft; - case StacMouseCursor.resizeDownRight: - return SystemMouseCursors.resizeDownRight; - case StacMouseCursor.resizeColumn: - return SystemMouseCursors.resizeColumn; - case StacMouseCursor.resizeRow: - return SystemMouseCursors.resizeRow; - case StacMouseCursor.zoomIn: - return SystemMouseCursors.zoomIn; - case StacMouseCursor.zoomOut: - return SystemMouseCursors.zoomOut; - } - } -} - -extension StacSliderInteractionParser on StacSliderInteraction { - SliderInteraction get parse { - switch (this) { - case StacSliderInteraction.tapAndSlide: - return SliderInteraction.tapAndSlide; - case StacSliderInteraction.tapOnly: - return SliderInteraction.tapOnly; - case StacSliderInteraction.slideOnly: - return SliderInteraction.slideOnly; - case StacSliderInteraction.slideThumb: - return SliderInteraction.slideThumb; - } - } -} - -extension StacMaterialTapTargetSizeParser on StacMaterialTapTargetSize { - MaterialTapTargetSize get parse { - switch (this) { - case StacMaterialTapTargetSize.padded: - return MaterialTapTargetSize.padded; - case StacMaterialTapTargetSize.shrinkWrap: - return MaterialTapTargetSize.shrinkWrap; - } - } -} - -extension StacDurationParser on StacDuration { - Duration get parse { - return Duration( - days: days ?? 0, - hours: hours ?? 0, - minutes: minutes ?? 0, - seconds: seconds ?? 0, - milliseconds: milliseconds ?? 0, - microseconds: microseconds ?? 0, - ); - } -} - -extension StacVisualDensityParser on StacVisualDensity { - VisualDensity get parse { - return VisualDensity( - horizontal: horizontal ?? 0.0, - vertical: vertical ?? 0.0, - ); - } -} - -extension StacShapeBorderParser on StacShapeBorder { - OutlinedBorder parse(BuildContext context) { - switch (this) { - case StacRoundedRectangleBorder(): - return (this as StacRoundedRectangleBorder).parse(context); - case StacCircleBorder(): - return (this as StacCircleBorder).parse(context); - default: - return RoundedRectangleBorder( - side: BorderSide.none, - borderRadius: BorderRadius.zero, - ); - } - } -} - -extension StacRoundedRectangleBorderParser on StacRoundedRectangleBorder { - RoundedRectangleBorder parse(BuildContext context) { - return RoundedRectangleBorder( - side: side?.parse(context) ?? BorderSide.none, - borderRadius: borderRadius?.parse ?? BorderRadius.zero, - ); - } -} - -extension StacCircleBorderParser on StacCircleBorder { - CircleBorder parse(BuildContext context) { - return CircleBorder( - side: side?.parse(context) ?? BorderSide.none, - eccentricity: eccentricity ?? 0.0, - ); - } -} - -extension StacContinuousRectangleBorderParser on StacContinuousRectangleBorder { - ContinuousRectangleBorder parse(BuildContext context) { - return ContinuousRectangleBorder( - side: side?.parse(context) ?? BorderSide.none, - borderRadius: borderRadius?.parse ?? BorderRadius.zero, - ); - } -} - -extension StacBeveledRectangleBorderParser on StacBeveledRectangleBorder { - BeveledRectangleBorder parse(BuildContext context) { - return BeveledRectangleBorder( - side: side?.parse(context) ?? BorderSide.none, - ); - } -} - -extension StacFlexFitParser on StacFlexFit { - FlexFit get parse { - switch (this) { - case StacFlexFit.tight: - return FlexFit.tight; - case StacFlexFit.loose: - return FlexFit.loose; - } - } -} - -extension StacWrapAlignmentParser on StacWrapAlignment { - WrapAlignment get parse { - switch (this) { - case StacWrapAlignment.start: - return WrapAlignment.start; - case StacWrapAlignment.end: - return WrapAlignment.end; - case StacWrapAlignment.center: - return WrapAlignment.center; - case StacWrapAlignment.spaceBetween: - return WrapAlignment.spaceBetween; - case StacWrapAlignment.spaceAround: - return WrapAlignment.spaceAround; - case StacWrapAlignment.spaceEvenly: - return WrapAlignment.spaceEvenly; - } - } -} - -extension StacWrapCrossAlignmentParser on StacWrapCrossAlignment { - WrapCrossAlignment get parse { - switch (this) { - case StacWrapCrossAlignment.start: - return WrapCrossAlignment.start; - case StacWrapCrossAlignment.end: - return WrapCrossAlignment.end; - case StacWrapCrossAlignment.center: - return WrapCrossAlignment.center; - } - } -} - -extension StacAxisParser on StacAxis { - Axis get parse { - switch (this) { - case StacAxis.horizontal: - return Axis.horizontal; - case StacAxis.vertical: - return Axis.vertical; - } - } -} - -extension StacInputDecorationThemeParser on StacInputDecorationTheme? { - InputDecorationTheme parse(BuildContext context) { - FloatingLabelBehavior parseFloatingLabelBehavior(String? behavior) { - switch (behavior) { - case 'always': - return FloatingLabelBehavior.always; - case 'never': - return FloatingLabelBehavior.never; - case 'auto': - default: - return FloatingLabelBehavior.auto; - } - } - - FloatingLabelAlignment parseFloatingLabelAlignment(String? alignment) { - switch (alignment) { - case 'center': - return FloatingLabelAlignment.center; - case 'start': - default: - return FloatingLabelAlignment.start; - } - } - - return InputDecorationTheme( - labelStyle: this?.labelStyle?.parse(context), - floatingLabelStyle: this?.floatingLabelStyle?.parse(context), - helperStyle: this?.helperStyle?.parse(context), - helperMaxLines: this?.helperMaxLines, - hintStyle: this?.hintStyle?.parse(context), - errorStyle: this?.errorStyle?.parse(context), - errorMaxLines: this?.errorMaxLines, - floatingLabelBehavior: - parseFloatingLabelBehavior(this?.floatingLabelBehavior), - floatingLabelAlignment: - parseFloatingLabelAlignment(this?.floatingLabelAlignment), - isDense: this?.isDense ?? false, - contentPadding: this?.contentPadding?.parse, - isCollapsed: this?.isCollapsed ?? false, - iconColor: this?.iconColor.toColor(context), - prefixStyle: this?.prefixStyle?.parse(context), - prefixIconColor: this?.prefixIconColor.toColor(context), - suffixStyle: this?.suffixStyle?.parse(context), - suffixIconColor: this?.suffixIconColor.toColor(context), - counterStyle: this?.counterStyle?.parse(context), - filled: this?.filled ?? false, - fillColor: this?.fillColor.toColor(context), - alignLabelWithHint: this?.alignLabelWithHint ?? false, - constraints: this?.constraints?.parse, - ); - } -} - -extension StacDropdownMenuEntryParser on StacDropdownMenuEntry? { - DropdownMenuEntry? parse(BuildContext context) { - return DropdownMenuEntry( - value: this?.value, - label: this?.label ?? '', - labelWidget: this?.labelWidget?.parse(context), - leadingIcon: this?.leadingIcon?.parse(context), - enabled: this?.enabled ?? true, - style: this?.style?.parseTextButton(context), - ); - } -} - -extension StacOptionsViewOpenDirectionParser on StacOptionsViewOpenDirection { - OptionsViewOpenDirection get parse { - switch (this) { - case StacOptionsViewOpenDirection.up: - return OptionsViewOpenDirection.up; - case StacOptionsViewOpenDirection.down: - return OptionsViewOpenDirection.down; - } - } -} - -/// Extends [StacRefreshIndicatorTriggerMode] to provide parsing functionality. -extension StacRefreshIndicatorTriggerModeParser - on StacRefreshIndicatorTriggerMode { - /// Parses this [StacRefreshIndicatorTriggerMode] into a Flutter [RefreshIndicatorTriggerMode]. - RefreshIndicatorTriggerMode get parse { - switch (this) { - case StacRefreshIndicatorTriggerMode.onEdge: - return RefreshIndicatorTriggerMode.onEdge; - case StacRefreshIndicatorTriggerMode.anywhere: - return RefreshIndicatorTriggerMode.anywhere; - } - } -} - -/// Extends [StacScrollPhysics] enum to provide parsing functionality. -extension StacScrollPhysicsEnumParser on StacScrollPhysics { - /// Parses this [StacScrollPhysics] enum into a Flutter [ScrollPhysics] object. - ScrollPhysics get parse { - switch (this) { - case StacScrollPhysics.never: - return const NeverScrollableScrollPhysics(); - case StacScrollPhysics.bouncing: - return const BouncingScrollPhysics(); - case StacScrollPhysics.clamping: - return const ClampingScrollPhysics(); - case StacScrollPhysics.fixed: - return const FixedExtentScrollPhysics(); - case StacScrollPhysics.page: - return const PageScrollPhysics(); - } - } -} - -/// Extends [StacScrollViewKeyboardDismissBehavior] to provide parsing functionality. -extension StacScrollViewKeyboardDismissBehaviorParser - on StacScrollViewKeyboardDismissBehavior { - /// Parses this [StacScrollViewKeyboardDismissBehavior] into a Flutter [ScrollViewKeyboardDismissBehavior] object. - ScrollViewKeyboardDismissBehavior get parse { - switch (this) { - case StacScrollViewKeyboardDismissBehavior.manual: - return ScrollViewKeyboardDismissBehavior.manual; - case StacScrollViewKeyboardDismissBehavior.onDrag: - return ScrollViewKeyboardDismissBehavior.onDrag; - } - } -} - -/// Extends [StacListTileStyle] to provide parsing functionality. -extension StacListTileStyleParser on StacListTileStyle { - /// Parses this [StacListTileStyle] into a Flutter [ListTileStyle]. - ListTileStyle get parse { - switch (this) { - case StacListTileStyle.list: - return ListTileStyle.list; - case StacListTileStyle.drawer: - return ListTileStyle.drawer; - } - } -} - -/// Extends [StacListTileTitleAlignment] to provide parsing functionality. -extension StacListTileTitleAlignmentParser on StacListTileTitleAlignment { - /// Parses this [StacListTileTitleAlignment] into a Flutter [ListTileTitleAlignment]. - ListTileTitleAlignment get parse { - switch (this) { - case StacListTileTitleAlignment.titleHeight: - return ListTileTitleAlignment.titleHeight; - case StacListTileTitleAlignment.threeLine: - return ListTileTitleAlignment.threeLine; - case StacListTileTitleAlignment.bottom: - return ListTileTitleAlignment.bottom; - case StacListTileTitleAlignment.center: - return ListTileTitleAlignment.center; - } - } -} - -/// Extends [StacHitTestBehavior] to provide parsing functionality. -extension StacHitTestBehaviorParser on StacHitTestBehavior { - /// Parses this [StacHitTestBehavior] into a Flutter [HitTestBehavior]. - HitTestBehavior get parse { - switch (this) { - case StacHitTestBehavior.deferToChild: - return HitTestBehavior.deferToChild; - case StacHitTestBehavior.opaque: - return HitTestBehavior.opaque; - case StacHitTestBehavior.translucent: - return HitTestBehavior.translucent; - } - } -} - -/// Extends [StacSnackBarBehavior] to map to Flutter's [SnackBarBehavior]. -extension StacSnackBarBehaviorParser on StacSnackBarBehavior? { - SnackBarBehavior? get parse { - switch (this) { - case StacSnackBarBehavior.fixed: - return SnackBarBehavior.fixed; - case StacSnackBarBehavior.floating: - return SnackBarBehavior.floating; - default: - return null; - } - } -} - -/// Extends [StacDismissDirection] to map to Flutter's [DismissDirection]. -extension StacDismissDirectionParser on StacDismissDirection? { - DismissDirection? get parse { - switch (this) { - case StacDismissDirection.horizontal: - return DismissDirection.horizontal; - case StacDismissDirection.vertical: - return DismissDirection.vertical; - case StacDismissDirection.down: - return DismissDirection.down; - case StacDismissDirection.up: - return DismissDirection.up; - case StacDismissDirection.endToStart: - return DismissDirection.endToStart; - case StacDismissDirection.startToEnd: - return DismissDirection.startToEnd; - default: - return null; - } - } -} - -/// Extends [StacClip] to map to Flutter's [Clip]. -extension StacClipNullableParser on StacClip? { - Clip get parse { - switch (this) { - case StacClip.none: - return Clip.none; - case StacClip.hardEdge: - return Clip.hardEdge; - case StacClip.antiAlias: - return Clip.antiAlias; - case StacClip.antiAliasWithSaveLayer: - return Clip.antiAliasWithSaveLayer; - default: - return Clip.hardEdge; - } - } -} - -/// Extends [StacDialogTraversalEdgeBehavior] to provide parsing functionality. -extension StacDialogTraversalEdgeBehaviorParser - on StacDialogTraversalEdgeBehavior? { - /// Parses this [StacDialogTraversalEdgeBehavior] into Flutter's - /// [TraversalEdgeBehavior]. - TraversalEdgeBehavior? get parse { - switch (this) { - case StacDialogTraversalEdgeBehavior.closedLoop: - return TraversalEdgeBehavior.closedLoop; - case StacDialogTraversalEdgeBehavior.leaveFlutterView: - return TraversalEdgeBehavior.leaveFlutterView; - case StacDialogTraversalEdgeBehavior.parentScope: - return TraversalEdgeBehavior.parentScope; - case StacDialogTraversalEdgeBehavior.stop: - return TraversalEdgeBehavior.stop; - default: - return null; - } - } -} - -extension StacSwitchTypeParser on StacSwitchType { - StacSwitchType get parse { - switch (this) { - case StacSwitchType.adaptive: - return StacSwitchType.adaptive; - case StacSwitchType.cupertino: - return StacSwitchType.cupertino; - case StacSwitchType.material: - return StacSwitchType.material; - } - } -} - -extension StacShadowParser on StacShadow { - Shadow parse(BuildContext context) { - return Shadow( - color: color.toColor(context) ?? Colors.transparent, - offset: (offset)?.parse ?? Offset.zero, - blurRadius: (blurRadius) ?? 0.0, - ); - } -} - -/// Extends [StacAutovalidateMode] to provide parsing functionality. -extension StacAutovalidateModeParser on StacAutovalidateMode { - /// Parses this [StacAutovalidateMode] into a Flutter [AutovalidateMode]. - AutovalidateMode get parse { - switch (this) { - case StacAutovalidateMode.disabled: - return AutovalidateMode.disabled; - case StacAutovalidateMode.always: - return AutovalidateMode.always; - case StacAutovalidateMode.onUserInteraction: - return AutovalidateMode.onUserInteraction; - } - } -} diff --git a/packages/stac/lib/src/parsers/widgets/stac_alert_dialog/stac_alert_dialog_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_alert_dialog/stac_alert_dialog_parser.dart index d49f2141..55ee9034 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_alert_dialog/stac_alert_dialog_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_alert_dialog/stac_alert_dialog_parser.dart @@ -1,8 +1,13 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_main_axis_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_vertical_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_overflow_bar_alignment_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart index 25411d2d..3d2c4940 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_system_ui_overlay_style_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_system_ui_overlay_style_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_auto_complete/stac_auto_complete_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_auto_complete/stac_auto_complete_parser.dart index e0da1b08..6c4d59c9 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_auto_complete/stac_auto_complete_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_auto_complete/stac_auto_complete_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_options_view_open_direction_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_backdrop_filter/stac_backdrop_filter_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_backdrop_filter/stac_backdrop_filter_parser.dart index d0e2cd3c..091a7ef6 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_backdrop_filter/stac_backdrop_filter_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_backdrop_filter/stac_backdrop_filter_parser.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/colors/stac_blend_mode_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_image_filter_parsers.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_bottom_navigation_bar/stac_bottom_navigation_bar_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_bottom_navigation_bar/stac_bottom_navigation_bar_parser.dart index 849d68be..24b577d5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_bottom_navigation_bar/stac_bottom_navigation_bar_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_bottom_navigation_bar/stac_bottom_navigation_bar_parser.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/navigation/stac_bottom_navigation_bar_landscape_layout_parser.dart'; +import 'package:stac/src/parsers/foundation/navigation/stac_bottom_navigation_bar_type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/parsers/widgets/stac_default_bottom_navigation_controller/stac_default_bottom_navigation_controller.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_card/stac_card_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_card/stac_card_parser.dart index ff1d43ec..659b5a1f 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_card/stac_card_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_card/stac_card_parser.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_carousel_view/stac_carousel_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_carousel_view/stac_carousel_view_parser.dart index 49e402ac..f0c1d4b5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_carousel_view/stac_carousel_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_carousel_view/stac_carousel_view_parser.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_check_box/stac_check_box_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_check_box/stac_check_box_parser.dart index 036f50fd..37d5509c 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_check_box/stac_check_box_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_check_box/stac_check_box_parser.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:stac/src/framework/stac.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart'; import 'package:stac/src/parsers/widgets/stac_form/stac_form_scope.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_chip/stac_chip_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_chip/stac_chip_parser.dart index 8f45f1f5..84afbcaf 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_chip/stac_chip_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_chip/stac_chip_parser.dart @@ -1,9 +1,14 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_side_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_visual_density_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_circular_progress_indicator/stac_circular_progress_indicator_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_circular_progress_indicator/stac_circular_progress_indicator_parser.dart index 62c68fde..e51cf4f2 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_circular_progress_indicator/stac_circular_progress_indicator_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_circular_progress_indicator/stac_circular_progress_indicator_parser.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_stroke_cap_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; @@ -25,7 +25,7 @@ class StacCircularProgressIndicatorParser strokeAlign: model.strokeAlign ?? 0.0, semanticsLabel: model.semanticsLabel, semanticsValue: model.semanticsValue, - strokeCap: model.strokeCap.parse, + strokeCap: model.strokeCap?.parse, ); } } diff --git a/packages/stac/lib/src/parsers/widgets/stac_clip_oval/stac_clip_oval_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_clip_oval/stac_clip_oval_parser.dart index 6bcac404..8bf81104 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_clip_oval/stac_clip_oval_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_clip_oval/stac_clip_oval_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_clip_rrect/stac_clip_rrect_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_clip_rrect/stac_clip_rrect_parser.dart index 1bd90d2f..2767ed0e 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_clip_rrect/stac_clip_rrect_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_clip_rrect/stac_clip_rrect_parser.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_radius_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart index 67190050..ed6cf964 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_column/stac_column_parser.dart @@ -1,6 +1,10 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_cross_axis_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_main_axis_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_main_axis_size_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_vertical_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart index 2e15dac8..c61e7778 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart @@ -1,8 +1,10 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_box_decoration_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_box_decoration_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_custom_scroll_view/stac_custom_scroll_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_custom_scroll_view/stac_custom_scroll_view_parser.dart index c148b04c..1296aeef 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_custom_scroll_view/stac_custom_scroll_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_custom_scroll_view/stac_custom_scroll_view_parser.dart @@ -1,6 +1,11 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_default_tab_controller/stac_default_tab_controller_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_default_tab_controller/stac_default_tab_controller_parser.dart index 89d23039..e080a5b3 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_default_tab_controller/stac_default_tab_controller_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_default_tab_controller/stac_default_tab_controller_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/animation/stac_duration_parsers.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_drawer/stac_drawer_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_drawer/stac_drawer_parser.dart index dc841601..19cd8053 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_drawer/stac_drawer_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_drawer/stac_drawer_parser.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_dropdown_menu/stac_dropdown_menu_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_dropdown_menu/stac_dropdown_menu_parser.dart index a77ab6e1..863aa856 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_dropdown_menu/stac_dropdown_menu_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_dropdown_menu/stac_dropdown_menu_parser.dart @@ -1,9 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_offset_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_align_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_input_type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/theme/stac_input_decoration_theme_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_dropdown_menu_entry_parser.dart'; import 'package:stac/src/utils/input_formatters.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_elevated_button/stac_elevated_button_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_elevated_button/stac_elevated_button_parser.dart index 620ab10e..a42b429e 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_elevated_button/stac_elevated_button_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_elevated_button/stac_elevated_button_parser.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_filled_button/stac_filled_button_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_filled_button/stac_filled_button_parser.dart index 3fe9d4f6..f1dda597 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_filled_button/stac_filled_button_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_filled_button/stac_filled_button_parser.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_fitted_box/stac_fitted_box_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_fitted_box/stac_fitted_box_parser.dart index 1f6536f4..cf365d54 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_fitted_box/stac_fitted_box_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_fitted_box/stac_fitted_box_parser.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_box_fit_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_flexible/stac_flexible_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_flexible/stac_flexible_parser.dart index 3a9345a7..7126e903 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_flexible/stac_flexible_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_flexible/stac_flexible_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_flex_fit_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_floating_action_button/stac_floating_action_button_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_floating_action_button/stac_floating_action_button_parser.dart index 1cae5cd7..c499b10d 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_floating_action_button/stac_floating_action_button_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_floating_action_button/stac_floating_action_button_parser.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_form/stac_form_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_form/stac_form_parser.dart index 00dc65ff..09445459 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_form/stac_form_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_form/stac_form_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/forms/stac_autovalidate_mode_parser.dart'; import 'package:stac/src/parsers/widgets/stac_form/stac_form_scope.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_fractionally_sized_box/stac_fractionally_sized_box_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_fractionally_sized_box/stac_fractionally_sized_box_parser.dart index 49a266f2..05e09453 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_fractionally_sized_box/stac_fractionally_sized_box_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_fractionally_sized_box/stac_fractionally_sized_box_parser.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; + import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_gesture_detector/stac_gesture_detector_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_gesture_detector/stac_gesture_detector_parser.dart index 5286b572..e91fc6a5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_gesture_detector/stac_gesture_detector_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_gesture_detector/stac_gesture_detector_parser.dart @@ -2,10 +2,11 @@ import 'package:flutter/gestures.dart' show DragStartBehavior; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_hit_test_behavior_parser.dart'; import 'package:stac_core/stac_core.dart'; -import 'package:stac_framework/stac_framework.dart'; import 'package:stac_core/widgets/gesture_detector/stac_gesture_detector.dart'; +import 'package:stac_framework/stac_framework.dart'; class StacGestureDetectorParser extends StacParser { const StacGestureDetectorParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_grid_view/stac_grid_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_grid_view/stac_grid_view_parser.dart index b2b891f9..1dcbb6b5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_grid_view/stac_grid_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_grid_view/stac_grid_view_parser.dart @@ -1,8 +1,12 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_hero/stac_hero_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_hero/stac_hero_parser.dart index 5531de3f..d28547bd 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_hero/stac_hero_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_hero/stac_hero_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/widgets.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/animation/stac_rect_tween_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_icon/stac_icon_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_icon/stac_icon_parser.dart index cadfd90b..a408b17c 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_icon/stac_icon_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_icon/stac_icon_parser.dart @@ -1,6 +1,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/colors/stac_blend_mode_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_shadow_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; import 'package:stac/src/utils/icon_utils.dart'; import 'package:stac/src/utils/utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_icon_button/stac_icon_button_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_icon_button/stac_icon_button_parser.dart index ab77fb64..147f01dc 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_icon_button/stac_icon_button_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_icon_button/stac_icon_button_parser.dart @@ -1,9 +1,11 @@ import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_box_constraints_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart index adbe7ebc..2be2b6e0 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart @@ -3,7 +3,8 @@ import 'dart:io'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_box_fit_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart index 2848e4fe..34729ebb 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_box_fit_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_logger/stac_logger.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart index 8bd897ff..35ec56d9 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart @@ -1,7 +1,10 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/animation/stac_duration_parsers.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_radius_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_input_border/stac_input_border.dart b/packages/stac/lib/src/parsers/widgets/stac_input_border/stac_input_border.dart index 346b557d..1d77530f 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_input_border/stac_input_border.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_input_border/stac_input_border.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:stac/src/framework/ui/stac_outline_input_border.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_radius_parser.dart'; +import 'package:stac/src/parsers/foundation/effects/stac_gradient_parser.dart'; import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart index 9261ebf0..b570d2e0 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_radius_parser.dart'; import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart'; -import 'package:stac_core/stac_core.dart'; import 'package:stac/stac.dart'; +import 'package:stac_core/stac_core.dart'; class StacLinearProgressIndicatorParser extends StacParser { diff --git a/packages/stac/lib/src/parsers/widgets/stac_list_tile/stac_list_tile_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_list_tile/stac_list_tile_parser.dart index 11176a7b..c636c64a 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_list_tile/stac_list_tile_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_list_tile/stac_list_tile_parser.dart @@ -1,12 +1,16 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_visual_density_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_list_tile_style_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_list_tile_title_alignment_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; -import 'package:stac_framework/stac_framework.dart'; import 'package:stac_core/widgets/list_tile/stac_list_tile.dart'; +import 'package:stac_framework/stac_framework.dart'; class StacListTileParser extends StacParser { const StacListTileParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_list_view/stac_list_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_list_view/stac_list_view_parser.dart index fab9a2ae..0f4a79ba 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_list_view/stac_list_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_list_view/stac_list_view_parser.dart @@ -1,11 +1,15 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; -import 'package:stac_framework/stac_framework.dart'; import 'package:stac_core/widgets/list_view/stac_list_view.dart'; -import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac_framework/stac_framework.dart'; class StacListViewParser extends StacParser { const StacListViewParser({this.controller}); diff --git a/packages/stac/lib/src/parsers/widgets/stac_outlined_button/stac_outlined_button_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_outlined_button/stac_outlined_button_parser.dart index a97d8d71..42d3a6c1 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_outlined_button/stac_outlined_button_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_outlined_button/stac_outlined_button_parser.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart index 58443179..c54d1417 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_padding/stac_padding_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_page_view/stac_page_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_page_view/stac_page_view_parser.dart index 58ab1caa..fda4c152 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_page_view/stac_page_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_page_view/stac_page_view_parser.dart @@ -2,7 +2,10 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_radio/stac_radio_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_radio/stac_radio_parser.dart index 58ec13a3..608e76d5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_radio/stac_radio_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_radio/stac_radio_parser.dart @@ -1,6 +1,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_visual_density_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart'; import 'package:stac/src/parsers/widgets/stac_radio_group/stac_radio_group_scope.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_refresh_indicator/stac_refresh_indicator_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_refresh_indicator/stac_refresh_indicator_parser.dart index 3cd9ee5d..5e9d58bb 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_refresh_indicator/stac_refresh_indicator_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_refresh_indicator/stac_refresh_indicator_parser.dart @@ -4,7 +4,7 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_refresh_indicator_trigger_mode_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_rounded_rectangle_border/stac_rounded_rectangle_border.dart b/packages/stac/lib/src/parsers/widgets/stac_rounded_rectangle_border/stac_rounded_rectangle_border.dart index 88200f40..ae73d151 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_rounded_rectangle_border/stac_rounded_rectangle_border.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_rounded_rectangle_border/stac_rounded_rectangle_border.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_radius_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_border_side_parser.dart'; import 'package:stac_core/foundation/borders/stac_border_radius/stac_border_radius.dart'; import 'package:stac_core/foundation/borders/stac_border_side/stac_border_side.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart index bbba3b67..ef59403d 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_row/stac_row_parser.dart @@ -1,6 +1,10 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_cross_axis_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_main_axis_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_main_axis_size_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_vertical_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_safe_area/stac_safe_area_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_safe_area/stac_safe_area_parser.dart index b2d425f9..21f0cbf9 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_safe_area/stac_safe_area_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_safe_area/stac_safe_area_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_scaffold/stac_scaffold_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_scaffold/stac_scaffold_parser.dart index 8d3db67b..406cb077 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_scaffold/stac_scaffold_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_scaffold/stac_scaffold_parser.dart @@ -1,7 +1,9 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_directional_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/navigation/stac_floating_action_button_location_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_single_child_scroll_view/stac_single_child_scroll_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_single_child_scroll_view/stac_single_child_scroll_view_parser.dart index 48296e1c..3a43c9d3 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_single_child_scroll_view/stac_single_child_scroll_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_single_child_scroll_view/stac_single_child_scroll_view_parser.dart @@ -1,8 +1,12 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_slider/stac_slider_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_slider/stac_slider_parser.dart index 973862d2..ea7967f5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_slider/stac_slider_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_slider/stac_slider_parser.dart @@ -1,7 +1,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_slider_interaction_parser.dart'; import 'package:stac/src/parsers/widgets/stac_form/stac_form_scope.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_sliver_app_bar/stac_sliver_app_bar_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_sliver_app_bar/stac_sliver_app_bar_parser.dart index 2c36e443..db83ca4a 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_sliver_app_bar/stac_sliver_app_bar_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_sliver_app_bar/stac_sliver_app_bar_parser.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_system_ui_overlay_style_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/borders/stac_shape_border_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_system_ui_overlay_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_stack/stac_stack_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_stack/stac_stack_parser.dart index 1c77ff2b..b275f639 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_stack/stac_stack_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_stack/stac_stack_parser.dart @@ -1,6 +1,9 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/alignment/stac_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_stack_fit_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart index f652cea0..8dbf2b24 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart @@ -3,7 +3,8 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart'; import 'package:stac/stac.dart'; import 'package:stac_core/stac_core.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_tab/stac_tab_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_tab/stac_tab_parser.dart index 79b2aacc..ec52dd54 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_tab/stac_tab_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_tab/stac_tab_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_tab_bar/stac_tab_bar_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_tab_bar/stac_tab_bar_parser.dart index 321df566..9bf7bce8 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_tab_bar/stac_tab_bar_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_tab_bar/stac_tab_bar_parser.dart @@ -1,10 +1,13 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/painting/stac_box_decoration_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_box_decoration_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/navigation/stac_tab_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/navigation/stac_tab_bar_indicator_size_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_tab_bar_view/stac_tab_bar_view_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_tab_bar_view/stac_tab_bar_view_parser.dart index fc9861a3..b6fff75d 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_tab_bar_view/stac_tab_bar_view_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_tab_bar_view/stac_tab_bar_view_parser.dart @@ -1,7 +1,9 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_table/stac_table_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_table/stac_table_parser.dart index ff9394fe..19bd7811 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_table/stac_table_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_table/stac_table_parser.dart @@ -1,5 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_baseline_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_table_border_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_table_cell_vertical_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_table_column_width_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_table_row_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; @@ -16,16 +21,17 @@ class StacTableParser extends StacParser { Widget parse(BuildContext context, StacTable model) { return Table( children: model.children.map((row) => row.parse(context)).toList(), - columnWidths: model.columnWidths?.map((key, value) => - MapEntry(key, StacTableColumnWidthParser(value).parse)), + columnWidths: + model.columnWidths?.map((key, value) => MapEntry(key, value.parse)), defaultColumnWidth: model.defaultColumnWidth != null - ? StacTableColumnWidthParser(model.defaultColumnWidth!).parse + ? model.defaultColumnWidth!.parse : const FlexColumnWidth(), textDirection: model.textDirection?.parse, border: model.border != null ? StacTableBorderParser(model.border!).parse(context) : null, - defaultVerticalAlignment: model.defaultVerticalAlignment.parse, + defaultVerticalAlignment: model.defaultVerticalAlignment?.parse ?? + TableCellVerticalAlignment.top, textBaseline: model.textBaseline?.parse, ); } diff --git a/packages/stac/lib/src/parsers/widgets/stac_table_cell/stac_table_cell_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_table_cell/stac_table_cell_parser.dart index cb71e0fd..5bc79140 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_table_cell/stac_table_cell_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_table_cell/stac_table_cell_parser.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/ui_components/stac_table_cell_vertical_alignment_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_text/stac_text_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_text/stac_text_parser.dart index 4572bd6d..b52186c2 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_text/stac_text_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_text/stac_text_parser.dart @@ -1,8 +1,11 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_align_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_overflow_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_width_basis_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/foundation/specifications/widget_type.dart'; import 'package:stac_core/foundation/text/stac_text_style/stac_text_style.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_text_button/stac_text_button_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_text_button/stac_text_button_parser.dart index f3b2d2b1..8003bac3 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_text_button/stac_text_button_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_text_button/stac_text_button_parser.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:stac/src/framework/framework.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; import 'package:stac/src/parsers/theme/stac_button_style/stac_button_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_text_field/stac_text_field_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_text_field/stac_text_field_parser.dart index 60360838..95ff46c4 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_text_field/stac_text_field_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_text_field/stac_text_field_parser.dart @@ -1,9 +1,18 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_action_parser.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_input_decoration_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_mouse_cursor_parser.dart'; +import 'package:stac/src/parsers/foundation/interaction/stac_scroll_physics_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_align_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_capitalization_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_input_action_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_input_type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_text_form_field/stac_text_form_field_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_text_form_field/stac_text_form_field_parser.dart index 2a0e3984..5c6a7bb2 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_text_form_field/stac_text_form_field_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_text_form_field/stac_text_form_field_parser.dart @@ -1,7 +1,18 @@ import 'package:flutter/material.dart'; -import 'package:stac/src/parsers/painting/stac_edge_insets_parser.dart'; -import 'package:stac/src/parsers/painting/stac_text_style_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/colors/stac_brightness_parser.dart'; +import 'package:stac/src/parsers/foundation/decoration/stac_input_decoration_parser.dart'; +import 'package:stac/src/parsers/foundation/forms/stac_autovalidate_mode_parser.dart'; +import 'package:stac/src/parsers/foundation/forms/stac_input_formatter_type_parser.dart'; +import 'package:stac/src/parsers/foundation/forms/stac_max_length_enforcement_parser.dart'; +import 'package:stac/src/parsers/foundation/geometry/stac_edge_insets_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_smart_dashes_type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_smart_quotes_type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_align_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_capitalization_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_input_action_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_input_type_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_style_parser.dart'; import 'package:stac/src/parsers/widgets/stac_form/stac_form_scope.dart'; import 'package:stac/src/utils/color_utils.dart'; import 'package:stac/src/utils/input_validations.dart'; diff --git a/packages/stac/lib/src/parsers/widgets/stac_wrap/stac_wrap_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_wrap/stac_wrap_parser.dart index 2edea816..caca83c5 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_wrap/stac_wrap_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_wrap/stac_wrap_parser.dart @@ -1,6 +1,11 @@ import 'package:flutter/material.dart'; import 'package:stac/src/parsers/core/stac_widget_parser.dart'; -import 'package:stac/src/parsers/types/type_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_axis_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_clip_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_vertical_direction_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_wrap_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/layout/stac_wrap_cross_alignment_parser.dart'; +import 'package:stac/src/parsers/foundation/text/stac_text_direction_parser.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac_core/lib/actions/dialog/stac_dialog_action.dart b/packages/stac_core/lib/actions/dialog/stac_dialog_action.dart index 2d6cd1d9..77821a2a 100644 --- a/packages/stac_core/lib/actions/dialog/stac_dialog_action.dart +++ b/packages/stac_core/lib/actions/dialog/stac_dialog_action.dart @@ -2,7 +2,7 @@ import 'package:json_annotation/json_annotation.dart'; import 'package:stac_core/actions/network_request/stac_network_request.dart'; import 'package:stac_core/core/stac_action.dart'; import 'package:stac_core/foundation/specifications/action_type.dart'; -import 'package:stac_core/foundation/ui_components/stac_dialog_traversal_edge_behavior.dart'; +import 'package:stac_core/foundation/ui_components/stac_traversal_edge_behavior.dart'; part 'stac_dialog_action.g.dart'; @@ -77,7 +77,7 @@ class StacDialogAction extends StacAction { /// Traversal behavior for focus traversal at edges. /// /// Type: `StacDialogTraversalEdgeBehavior?`. - final StacDialogTraversalEdgeBehavior? traversalEdgeBehavior; + final StacTraversalEdgeBehavior? traversalEdgeBehavior; /// Unique action type string used for routing. @override diff --git a/packages/stac_core/lib/actions/dialog/stac_dialog_action.g.dart b/packages/stac_core/lib/actions/dialog/stac_dialog_action.g.dart index 77faff99..e49a3d31 100644 --- a/packages/stac_core/lib/actions/dialog/stac_dialog_action.g.dart +++ b/packages/stac_core/lib/actions/dialog/stac_dialog_action.g.dart @@ -20,29 +20,28 @@ StacDialogAction _$StacDialogActionFromJson(Map json) => barrierLabel: json['barrierLabel'] as String?, useSafeArea: json['useSafeArea'] as bool?, traversalEdgeBehavior: $enumDecodeNullable( - _$StacDialogTraversalEdgeBehaviorEnumMap, + _$StacTraversalEdgeBehaviorEnumMap, json['traversalEdgeBehavior'], ), ); -Map _$StacDialogActionToJson( - StacDialogAction instance, -) => { - 'widget': instance.widget, - 'request': instance.request?.toJson(), - 'assetPath': instance.assetPath, - 'barrierDismissible': instance.barrierDismissible, - 'barrierColor': instance.barrierColor, - 'barrierLabel': instance.barrierLabel, - 'useSafeArea': instance.useSafeArea, - 'traversalEdgeBehavior': - _$StacDialogTraversalEdgeBehaviorEnumMap[instance.traversalEdgeBehavior], - 'actionType': instance.actionType, -}; +Map _$StacDialogActionToJson(StacDialogAction instance) => + { + 'widget': instance.widget, + 'request': instance.request?.toJson(), + 'assetPath': instance.assetPath, + 'barrierDismissible': instance.barrierDismissible, + 'barrierColor': instance.barrierColor, + 'barrierLabel': instance.barrierLabel, + 'useSafeArea': instance.useSafeArea, + 'traversalEdgeBehavior': + _$StacTraversalEdgeBehaviorEnumMap[instance.traversalEdgeBehavior], + 'actionType': instance.actionType, + }; -const _$StacDialogTraversalEdgeBehaviorEnumMap = { - StacDialogTraversalEdgeBehavior.closedLoop: 'closedLoop', - StacDialogTraversalEdgeBehavior.leaveFlutterView: 'leaveFlutterView', - StacDialogTraversalEdgeBehavior.parentScope: 'parentScope', - StacDialogTraversalEdgeBehavior.stop: 'stop', +const _$StacTraversalEdgeBehaviorEnumMap = { + StacTraversalEdgeBehavior.closedLoop: 'closedLoop', + StacTraversalEdgeBehavior.leaveFlutterView: 'leaveFlutterView', + StacTraversalEdgeBehavior.parentScope: 'parentScope', + StacTraversalEdgeBehavior.stop: 'stop', }; diff --git a/packages/stac_core/lib/foundation/foundation.dart b/packages/stac_core/lib/foundation/foundation.dart index a4bb4f84..429f40c8 100644 --- a/packages/stac_core/lib/foundation/foundation.dart +++ b/packages/stac_core/lib/foundation/foundation.dart @@ -87,7 +87,7 @@ export 'theme/stac_button_style/stac_button_style.dart'; export 'theme/stac_input_decoration_theme/stac_input_decoration_theme.dart'; // UI components and behavior export 'ui_components/stac_carousel_view_type.dart'; -export 'ui_components/stac_dialog_traversal_edge_behavior.dart'; +export 'ui_components/stac_traversal_edge_behavior.dart'; export 'ui_components/stac_dismiss_direction.dart'; export 'ui_components/stac_dropdown_menu_close_behavior.dart'; export 'ui_components/stac_dropdown_menu_entry/stac_dropdown_menu_entry.dart'; diff --git a/packages/stac_core/lib/foundation/ui_components/stac_dialog_traversal_edge_behavior.dart b/packages/stac_core/lib/foundation/ui_components/stac_traversal_edge_behavior.dart similarity index 93% rename from packages/stac_core/lib/foundation/ui_components/stac_dialog_traversal_edge_behavior.dart rename to packages/stac_core/lib/foundation/ui_components/stac_traversal_edge_behavior.dart index 0bd5522b..f4327fe7 100644 --- a/packages/stac_core/lib/foundation/ui_components/stac_dialog_traversal_edge_behavior.dart +++ b/packages/stac_core/lib/foundation/ui_components/stac_traversal_edge_behavior.dart @@ -7,7 +7,7 @@ /// ```json /// { "traversalEdgeBehavior": "closedLoop" } /// ``` -enum StacDialogTraversalEdgeBehavior { +enum StacTraversalEdgeBehavior { /// Focus wraps from the last to the first (and vice versa). closedLoop,