diff --git a/packages/mix/lib/src/attributes/decoration/decoration_dto.dart b/packages/mix/lib/src/attributes/decoration/decoration_dto.dart index e59a05ab8..6ff8b0beb 100644 --- a/packages/mix/lib/src/attributes/decoration/decoration_dto.dart +++ b/packages/mix/lib/src/attributes/decoration/decoration_dto.dart @@ -295,3 +295,12 @@ ShapeBorderDto? _fromBoxShape({ return null; } } + +class DecorationUtility + extends MixUtility { + const DecorationUtility(super.builder); + + BoxDecorationUtility get box => BoxDecorationUtility(builder); + + ShapeDecorationUtility get shape => ShapeDecorationUtility(builder); +} diff --git a/packages/mix/lib/src/attributes/enum/enum_util.dart b/packages/mix/lib/src/attributes/enum/enum_util.dart index be8860661..42c794cf2 100644 --- a/packages/mix/lib/src/attributes/enum/enum_util.dart +++ b/packages/mix/lib/src/attributes/enum/enum_util.dart @@ -164,3 +164,17 @@ final class FilterQualityUtility extends MixUtility with _$FilterQualityUtility { const FilterQualityUtility(super.builder); } + +/// {@macro wrap_alignment_utility} +@MixableEnumUtility() +final class WrapAlignmentUtility + extends MixUtility with _$WrapAlignmentUtility { + const WrapAlignmentUtility(super.builder); +} + +@MixableEnumUtility() +class TableCellVerticalAlignmentUtility + extends MixUtility + with _$TableCellVerticalAlignmentUtility { + const TableCellVerticalAlignmentUtility(super.builder); +} diff --git a/packages/mix/lib/src/attributes/enum/enum_util.g.dart b/packages/mix/lib/src/attributes/enum/enum_util.g.dart index 720e9531e..75947af7e 100644 --- a/packages/mix/lib/src/attributes/enum/enum_util.g.dart +++ b/packages/mix/lib/src/attributes/enum/enum_util.g.dart @@ -557,3 +557,63 @@ mixin _$FilterQualityUtility /// Creates an [Attribute] instance with the specified FilterQuality value. T call(FilterQuality value) => builder(value); } + +/// {@template wrap_alignment_utility} +/// A utility class for creating [Attribute] instances from [WrapAlignment] values. +/// +/// This class extends [MixUtility] and provides methods to create [Attribute] instances +/// from predefined [WrapAlignment] values. +/// {@endtemplate} +mixin _$WrapAlignmentUtility + on MixUtility { + /// Creates an [Attribute] instance with [WrapAlignment.start] value. + T start() => builder(WrapAlignment.start); + + /// Creates an [Attribute] instance with [WrapAlignment.end] value. + T end() => builder(WrapAlignment.end); + + /// Creates an [Attribute] instance with [WrapAlignment.center] value. + T center() => builder(WrapAlignment.center); + + /// Creates an [Attribute] instance with [WrapAlignment.spaceBetween] value. + T spaceBetween() => builder(WrapAlignment.spaceBetween); + + /// Creates an [Attribute] instance with [WrapAlignment.spaceAround] value. + T spaceAround() => builder(WrapAlignment.spaceAround); + + /// Creates an [Attribute] instance with [WrapAlignment.spaceEvenly] value. + T spaceEvenly() => builder(WrapAlignment.spaceEvenly); + + /// Creates an [Attribute] instance with the specified WrapAlignment value. + T call(WrapAlignment value) => builder(value); +} + +/// {@template table_cell_vertical_alignment_utility} +/// A utility class for creating [Attribute] instances from [TableCellVerticalAlignment] values. +/// +/// This class extends [MixUtility] and provides methods to create [Attribute] instances +/// from predefined [TableCellVerticalAlignment] values. +/// {@endtemplate} +mixin _$TableCellVerticalAlignmentUtility + on MixUtility { + /// Creates an [Attribute] instance with [TableCellVerticalAlignment.top] value. + T top() => builder(TableCellVerticalAlignment.top); + + /// Creates an [Attribute] instance with [TableCellVerticalAlignment.middle] value. + T middle() => builder(TableCellVerticalAlignment.middle); + + /// Creates an [Attribute] instance with [TableCellVerticalAlignment.bottom] value. + T bottom() => builder(TableCellVerticalAlignment.bottom); + + /// Creates an [Attribute] instance with [TableCellVerticalAlignment.baseline] value. + T baseline() => builder(TableCellVerticalAlignment.baseline); + + /// Creates an [Attribute] instance with [TableCellVerticalAlignment.fill] value. + T fill() => builder(TableCellVerticalAlignment.fill); + + /// Creates an [Attribute] instance with [TableCellVerticalAlignment.intrinsicHeight] value. + T intrinsicHeight() => builder(TableCellVerticalAlignment.intrinsicHeight); + + /// Creates an [Attribute] instance with the specified TableCellVerticalAlignment value. + T call(TableCellVerticalAlignment value) => builder(value); +} diff --git a/packages/mix/lib/src/attributes/scalars/scalar_util.dart b/packages/mix/lib/src/attributes/scalars/scalar_util.dart index 747fa5ce1..9c3ecd861 100644 --- a/packages/mix/lib/src/attributes/scalars/scalar_util.dart +++ b/packages/mix/lib/src/attributes/scalars/scalar_util.dart @@ -166,3 +166,15 @@ final class TextScalerUtility extends MixUtility with _$TextScalerUtility { const TextScalerUtility(super.builder); } + +@MixableClassUtility() +final class TableColumnWidthUtility + extends MixUtility with _$TableColumnWidthUtility { + const TableColumnWidthUtility(super.builder); +} + +@MixableClassUtility() +class TableBorderUtility extends MixUtility + with _$TableBorderUtility { + const TableBorderUtility(super.builder); +} diff --git a/packages/mix/lib/src/attributes/scalars/scalar_util.g.dart b/packages/mix/lib/src/attributes/scalars/scalar_util.g.dart index e4b33b646..a1da84965 100644 --- a/packages/mix/lib/src/attributes/scalars/scalar_util.g.dart +++ b/packages/mix/lib/src/attributes/scalars/scalar_util.g.dart @@ -617,3 +617,43 @@ mixin _$TextScalerUtility on MixUtility { /// Creates an [Attribute] instance with the specified TextScaler value. T call(TextScaler value) => builder(value); } + +/// {@template table_column_width_utility} +/// A utility class for creating [Attribute] instances from [TableColumnWidth] values. +/// +/// This class extends [MixUtility] and provides methods to create [Attribute] instances +/// from predefined [TableColumnWidth] values. +/// {@endtemplate} +mixin _$TableColumnWidthUtility + on MixUtility { + /// Creates an [Attribute] instance with the specified TableColumnWidth value. + T call(TableColumnWidth value) => builder(value); +} + +/// {@template table_border_utility} +/// A utility class for creating [Attribute] instances from [TableBorder] values. +/// +/// This class extends [MixUtility] and provides methods to create [Attribute] instances +/// from predefined [TableBorder] values. +/// {@endtemplate} +mixin _$TableBorderUtility on MixUtility { + /// Creates an [Attribute] instance using the [TableBorder.all] constructor. + T all( + {Color color = const Color(0xFF000000), + double width = 1.0, + BorderStyle style = BorderStyle.solid, + BorderRadius borderRadius = BorderRadius.zero}) { + return builder(TableBorder.all( + color: color, width: width, style: style, borderRadius: borderRadius)); + } + + /// Creates an [Attribute] instance using the [TableBorder.symmetric] constructor. + T symmetric( + {BorderSide inside = BorderSide.none, + BorderSide outside = BorderSide.none}) { + return builder(TableBorder.symmetric(inside: inside, outside: outside)); + } + + /// Creates an [Attribute] instance with the specified TableBorder value. + T call(TableBorder value) => builder(value); +}