From 4ed64050fc86659042031ea0296f2a05bd094836 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira <62367544+tilucasoli@users.noreply.github.com> Date: Fri, 7 Feb 2025 11:40:48 -0300 Subject: [PATCH] feat: Support header on scaffold (#554) --- .../demo/lib/components/header_use_case.dart | 68 ++ .../remix/demo/lib/main.directories.g.dart | 52 +- .../ephemeral/Flutter-Generated.xcconfig | 6 +- .../ephemeral/FlutterInputs.xcfilelist | 683 +++++++++--------- .../ephemeral/FlutterOutputs.xcfilelist | 64 +- .../ephemeral/flutter_export_environment.sh | 6 +- packages/remix/lib/remix.dart | 1 + .../lib/src/components/header/header.dart | 42 ++ .../lib/src/components/header/header.g.dart | 291 ++++++++ .../src/components/header/header_style.dart | 56 ++ .../src/components/header/header_widget.dart | 56 ++ .../components/scaffold/scaffold_widget.dart | 59 +- .../remix/lib/src/core/theme/component.dart | 7 + .../lib/src/themes/fortaleza/components.dart | 3 + .../fortaleza/components/header_theme.dart | 35 + .../scaffold/scafold_widget_test.dart | 161 +++++ 16 files changed, 1191 insertions(+), 399 deletions(-) create mode 100644 packages/remix/demo/lib/components/header_use_case.dart create mode 100644 packages/remix/lib/src/components/header/header.dart create mode 100644 packages/remix/lib/src/components/header/header.g.dart create mode 100644 packages/remix/lib/src/components/header/header_style.dart create mode 100644 packages/remix/lib/src/components/header/header_widget.dart create mode 100644 packages/remix/lib/src/themes/fortaleza/components/header_theme.dart create mode 100644 packages/remix/test/components/scaffold/scafold_widget_test.dart diff --git a/packages/remix/demo/lib/components/header_use_case.dart b/packages/remix/demo/lib/components/header_use_case.dart new file mode 100644 index 000000000..37c055df6 --- /dev/null +++ b/packages/remix/demo/lib/components/header_use_case.dart @@ -0,0 +1,68 @@ +import 'package:flutter/cupertino.dart'; +import 'package:mix/mix.dart'; +import 'package:remix/remix.dart'; +import 'package:remix/themes/fortaleza.dart'; +import 'package:widgetbook/widgetbook.dart'; +import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook; + +@widgetbook.UseCase( + name: 'Header Component', + type: Header, +) +Widget buildCard(BuildContext context) { + final leading = Box( + style: Style( + $box.chain + ..padding(10) + ..color.white10() + ..borderRadius(8) + ..wrap.padding.right(16), + $on.light( + $box.color.black12(), + $icon.color.black(), + ), + ), + child: const StyledIcon( + CupertinoIcons.person, + ), + ); + + final actions = Row( + children: [ + IconButton( + CupertinoIcons.trash, + variants: const [FortalezaIconButtonStyle.ghost], + onPressed: () {}, + ), + const SizedBox( + height: 16, + ), + Button(label: 'Button', onPressed: () {}), + ], + ); + + return Scaffold( + header: Header( + title: context.knobs.string(label: 'Title', initialValue: 'Title'), + subtitle: context.knobs.stringOrNull(label: 'description'), + leading: context.knobs.boolean( + label: 'leading Icons', + initialValue: false, + ) + ? leading + : null, + trailing: context.knobs.boolean( + label: 'Trailing Icons', + initialValue: false, + ) + ? actions + : null, + ), + body: Box( + style: Style( + $box.color.white.withOpacity($on.dark.when(context) ? 0.03 : 1), + // $box.color.$neutral(1), + ), + ), + ); +} diff --git a/packages/remix/demo/lib/main.directories.g.dart b/packages/remix/demo/lib/main.directories.g.dart index f4319a7a6..87fe49e1a 100644 --- a/packages/remix/demo/lib/main.directories.g.dart +++ b/packages/remix/demo/lib/main.directories.g.dart @@ -20,17 +20,18 @@ import 'package:demo/components/chip_use_case.dart' as _i9; import 'package:demo/components/dialog_use_case.dart' as _i10; import 'package:demo/components/divider_use_case.dart' as _i11; import 'package:demo/components/dropdown_menu.dart' as _i12; -import 'package:demo/components/icon_button_use_case.dart' as _i13; -import 'package:demo/components/menu_item_use_case.dart' as _i14; -import 'package:demo/components/progress_use_case.dart' as _i15; -import 'package:demo/components/radio_use_case.dart' as _i16; -import 'package:demo/components/segmented_control_use_case.dart' as _i17; -import 'package:demo/components/select.dart' as _i18; -import 'package:demo/components/slider.dart' as _i19; -import 'package:demo/components/spinner_use_case.dart' as _i20; -import 'package:demo/components/switch_use_case.dart' as _i21; -import 'package:demo/components/textfield_use_case.dart' as _i22; -import 'package:demo/components/toast_use_case.dart' as _i23; +import 'package:demo/components/header_use_case.dart' as _i13; +import 'package:demo/components/icon_button_use_case.dart' as _i14; +import 'package:demo/components/menu_item_use_case.dart' as _i15; +import 'package:demo/components/progress_use_case.dart' as _i16; +import 'package:demo/components/radio_use_case.dart' as _i17; +import 'package:demo/components/segmented_control_use_case.dart' as _i18; +import 'package:demo/components/select.dart' as _i19; +import 'package:demo/components/slider.dart' as _i20; +import 'package:demo/components/spinner_use_case.dart' as _i21; +import 'package:demo/components/switch_use_case.dart' as _i22; +import 'package:demo/components/textfield_use_case.dart' as _i23; +import 'package:demo/components/toast_use_case.dart' as _i24; import 'package:widgetbook/widgetbook.dart' as _i1; final directories = <_i1.WidgetbookNode>[ @@ -114,81 +115,88 @@ final directories = <_i1.WidgetbookNode>[ builder: _i12.buildDropdownMenu, ), ), + _i1.WidgetbookLeafComponent( + name: 'Header', + useCase: _i1.WidgetbookUseCase( + name: 'Header Component', + builder: _i13.buildCard, + ), + ), _i1.WidgetbookLeafComponent( name: 'IconButton', useCase: _i1.WidgetbookUseCase( name: 'Button Component', - builder: _i13.buildButtonUseCase, + builder: _i14.buildButtonUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'MenuItem', useCase: _i1.WidgetbookUseCase( name: 'Menu Item Component', - builder: _i14.buildButtonUseCase, + builder: _i15.buildButtonUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'Progress', useCase: _i1.WidgetbookUseCase( name: 'Progress Component', - builder: _i15.buildProgressUseCase, + builder: _i16.buildProgressUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'Radio', useCase: _i1.WidgetbookUseCase( name: 'Radio Component', - builder: _i16.buildRadioUseCase, + builder: _i17.buildRadioUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'SegmentedControl', useCase: _i1.WidgetbookUseCase( name: 'SegmentedControl Component', - builder: _i17.buildAccordionUseCase, + builder: _i18.buildAccordionUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'Select', useCase: _i1.WidgetbookUseCase( name: 'Select Component', - builder: _i18.buildSelect, + builder: _i19.buildSelect, ), ), _i1.WidgetbookLeafComponent( name: 'Slider', useCase: _i1.WidgetbookUseCase( name: 'Slider Component', - builder: _i19.buildButtonUseCase, + builder: _i20.buildButtonUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'Spinner', useCase: _i1.WidgetbookUseCase( name: 'Spinner Component', - builder: _i20.buildSpinnerUseCase, + builder: _i21.buildSpinnerUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'Switch', useCase: _i1.WidgetbookUseCase( name: 'Switch Component', - builder: _i21.buildSwitchUseCase, + builder: _i22.buildSwitchUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'TextField', useCase: _i1.WidgetbookUseCase( name: 'TextField Component', - builder: _i22.buildButtonUseCase, + builder: _i23.buildButtonUseCase, ), ), _i1.WidgetbookLeafComponent( name: 'Toast', useCase: _i1.WidgetbookUseCase( name: 'Toast Component', - builder: _i23.buildButtonUseCase, + builder: _i24.buildButtonUseCase, ), ), ], diff --git a/packages/remix/demo/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/packages/remix/demo/macos/Flutter/ephemeral/Flutter-Generated.xcconfig index f54e0adff..5379b3a98 100644 --- a/packages/remix/demo/macos/Flutter/ephemeral/Flutter-Generated.xcconfig +++ b/packages/remix/demo/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -1,12 +1,12 @@ // This is a generated file; do not edit or check into version control. FLUTTER_ROOT=/Users/lucasoliveira/fvm/versions/stable -FLUTTER_APPLICATION_PATH=/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo +FLUTTER_APPLICATION_PATH=/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo COCOAPODS_PARALLEL_CODE_SIGN=true -FLUTTER_TARGET=/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/main.dart +FLUTTER_TARGET=/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/main.dart FLUTTER_BUILD_DIR=build FLUTTER_BUILD_NAME=1.0.0 FLUTTER_BUILD_NUMBER=1 DART_OBFUSCATION=false TRACK_WIDGET_CREATION=true TREE_SHAKE_ICONS=false -PACKAGE_CONFIG=/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/.dart_tool/package_config.json +PACKAGE_CONFIG=/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/.dart_tool/package_config.json diff --git a/packages/remix/demo/macos/Flutter/ephemeral/FlutterInputs.xcfilelist b/packages/remix/demo/macos/Flutter/ephemeral/FlutterInputs.xcfilelist index 19306756c..e18f6d5eb 100644 --- a/packages/remix/demo/macos/Flutter/ephemeral/FlutterInputs.xcfilelist +++ b/packages/remix/demo/macos/Flutter/ephemeral/FlutterInputs.xcfilelist @@ -730,344 +730,351 @@ /Users/lucasoliveira/.pub-cache/hosted/pub.dev/widgetbook_annotation-3.2.0/lib/widgetbook_annotation.dart /Users/lucasoliveira/.pub-cache/hosted/pub.dev/widgetbook_generator-3.9.0/LICENSE /Users/lucasoliveira/.pub-cache/hosted/pub.dev/yaml-3.1.2/LICENSE -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/LICENSE -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/mix.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/animated/animated_data.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/animated/animated_data_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/animated/animated_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/border_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/border_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/border_radius_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/border_radius_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/border_radius_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/border_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/shape_border_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/border/shape_border_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/color/color_directives.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/color/color_directives_impl.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/color/color_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/color/color_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/color/material_colors_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/constraints/constraints_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/constraints/constraints_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/decoration/decoration_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/decoration/decoration_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/decoration/image/decoration_image_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/decoration/image/decoration_image_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/enum/enum_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/enum/enum_util.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/gap/gap_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/gap/spacing_side_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/gradient/gradient_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/gradient/gradient_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/modifiers/widget_modifiers_data.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/modifiers/widget_modifiers_data_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/modifiers/widget_modifiers_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/nested_style/nested_style_attribute.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/nested_style/nested_style_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/scalars/curves.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/scalars/scalar_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/scalars/scalar_util.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/shadow/shadow_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/shadow/shadow_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/shadow/shadow_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/spacing/edge_insets_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/spacing/edge_insets_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/spacing/spacing_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/strut_style/strut_style_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/strut_style/strut_style_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/text_height_behavior/text_height_behavior_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/text_height_behavior/text_height_behavior_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/text_style/text_style_dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/text_style/text_style_dto.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/attributes/text_style/text_style_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/attribute.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/attributes_map.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/deprecation_notices.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/directive.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/dto.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/factory/mix_data.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/factory/mix_provider.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/factory/style_mix.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/factory/style_widgets_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/helpers.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/styled_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/utility.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/variant.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/widget_state/internal/gesture_mix_state.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/widget_state/internal/interactive_mix_state.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/widget_state/internal/mix_widget_state_builder.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/widget_state/internal/mouse_region_mix_state.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/core/widget_state/widget_state_controller.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/build_context_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/compare_mixin.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/constants.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/deep_collection_equality.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/diagnostic_properties_builder_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/helper_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/iterable_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/mix_error.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/internal/string_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/align_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/align_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/aspect_ratio_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/aspect_ratio_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/clip_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/clip_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/flexible_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/flexible_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/fractionally_sized_box_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/fractionally_sized_box_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/internal/render_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/internal/reset_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/internal/reset_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/intrinsic_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/intrinsic_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/mouse_cursor_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/mouse_cursor_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/opacity_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/opacity_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/padding_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/padding_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/rotated_box_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/rotated_box_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/scroll_view_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/scroll_view_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/sized_box_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/sized_box_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/transform_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/transform_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/visibility_widget_modifier.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/visibility_widget_modifier.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/modifiers/widget_modifiers_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/box/box_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/box/box_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/box/box_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/flex/flex_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/flex/flex_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/flex/flex_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/flexbox/flexbox_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/flexbox/flexbox_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/flexbox/flexbox_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/icon/icon_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/icon/icon_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/icon/icon_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/image/image_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/image/image_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/image/image_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/spec_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/stack/stack_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/stack/stack_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/stack/stack_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/text/text_directives_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/text/text_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/text/text_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/specs/text/text_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/material/material_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/material/material_tokens.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/mix/mix_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/breakpoints_token.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/color_token.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/mix_token.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/radius_token.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/space_token.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/text_style_token.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/token_resolver.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/theme/tokens/token_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_breakpoint_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_brightness_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_directionality_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_not_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_orientation_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_platform_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_util.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/variant_attribute.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/variants/widget_state_variant.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix/lib/src/widgets/pressable_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix_annotations/LICENSE -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix_annotations/lib/mix_annotations.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/mix_annotations/lib/src/annotations.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/LICENSE -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/addons/brightness_addon.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/addons/icon_data_knob.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/addons/theme_addon.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/accordion_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/avatar_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/badge_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/button_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/callout_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/card_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/checkbox_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/chip_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/dialog_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/divider_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/dropdown_menu.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/icon_button_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/menu_item_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/progress_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/radio_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/segmented_control_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/select.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/slider.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/spinner_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/switch_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/textfield_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/components/toast_use_case.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/helpers/knob_builder.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/helpers/string.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/helpers/use_case_state.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/main.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/main.directories.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/pubspec.yaml -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/remix.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/accordion/accordion.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/accordion/accordion.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/accordion/accordion_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/accordion/accordion_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/accordion/header/accordion_header.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/accordion/header/accordion_header_spec_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/avatar/avatar.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/avatar/avatar.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/avatar/avatar_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/avatar/avatar_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/badge/badge.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/badge/badge.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/badge/badge_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/badge/badge_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/button/button.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/button/button.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/button/button_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/button/button_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/callout/callout.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/callout/callout.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/callout/callout_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/callout/callout_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/card/card.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/card/card.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/card/card_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/card/card_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/checkbox/checkbox.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/checkbox/checkbox.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/checkbox/checkbox_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/checkbox/checkbox_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/chip/chip.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/chip/chip.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/chip/chip_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/chip/chip_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dialog/dialog.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dialog/dialog.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dialog/dialog_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dialog/dialog_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/divider/divider.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/divider/divider.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/divider/divider_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/divider/divider_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dropdown_menu/item/dropdown_menu.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/dropdown_menu/item/dropdown_menu_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/icon_button/icon_button.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/icon_button/icon_button.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/icon_button/icon_button_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/icon_button/icon_button_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/menu_item/menu_item.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/menu_item/menu_item.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/menu_item/menu_item_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/menu_item/menu_item_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/progress/progress.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/progress/progress.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/progress/progress_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/progress/progress_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/radio/radio.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/radio/radio.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/radio/radio_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/radio/radio_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/scaffold/scaffold.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/scaffold/scaffold.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/scaffold/scaffold_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/scaffold/scaffold_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/segmented_control/button/segmented_control_button.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/segmented_control/button/segmented_control_button_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/button/select_button.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/button/select_button_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/item/select_menu.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/item/select_menu_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/select.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/select.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/select_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/select/select_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/slider/slider.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/slider/slider.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/slider/slider_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/slider/slider_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/spinner/spinner.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/spinner/spinner.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/spinner/spinner_painter.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/spinner/spinner_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/spinner/spinner_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/switch/switch.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/switch/switch.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/switch/switch_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/switch/switch_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/textfield/attributes/attributes.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/textfield/attributes/attributes.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/textfield/textfield.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/textfield/textfield.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/textfield/textfield_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/textfield/textfield_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/toast/toast.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/toast/toast.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/toast/toast_layer.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/toast/toast_style.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/components/toast/toast_widget.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/core/remix_app.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/core/theme/component.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/core/theme/remix_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/color_palette.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/color_utils.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/component_builder.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/context_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/object_ext.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/overlay.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/spec/composited_transform_follower_spec.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/spec/composited_transform_follower_spec.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/helpers/utility_extension.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/accordion_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/avatar_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/badge_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/button_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/callout_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/card_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/checkbox_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/chip_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/dialog_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/divider_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/icon_button_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/menu_item_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/progress_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/radio_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/scaffold_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/segmented_control_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/select_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/slider_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/spinner_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/switch_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/textfield_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/components/toast_theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/theme.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/tokens.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/src/themes/fortaleza/tokens.g.dart -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/lib/themes/fortaleza.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/LICENSE +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/mix.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/animated/animated_data.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/animated/animated_data_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/animated/animated_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/border_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/border_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/border_radius_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/border_radius_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/border_radius_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/border_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/shape_border_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/border/shape_border_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/color/color_directives.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/color/color_directives_impl.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/color/color_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/color/color_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/color/material_colors_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/constraints/constraints_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/constraints/constraints_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/decoration/decoration_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/decoration/decoration_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/decoration/image/decoration_image_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/decoration/image/decoration_image_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/enum/enum_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/enum/enum_util.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/gap/gap_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/gap/spacing_side_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/gradient/gradient_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/gradient/gradient_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/modifiers/widget_modifiers_data.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/modifiers/widget_modifiers_data_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/modifiers/widget_modifiers_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/nested_style/nested_style_attribute.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/nested_style/nested_style_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/scalars/curves.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/scalars/scalar_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/scalars/scalar_util.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/shadow/shadow_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/shadow/shadow_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/shadow/shadow_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/spacing/edge_insets_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/spacing/edge_insets_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/spacing/spacing_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/strut_style/strut_style_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/strut_style/strut_style_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/text_height_behavior/text_height_behavior_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/text_height_behavior/text_height_behavior_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/text_style/text_style_dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/text_style/text_style_dto.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/attributes/text_style/text_style_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/attribute.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/attributes_map.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/deprecation_notices.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/directive.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/dto.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/factory/mix_data.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/factory/mix_provider.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/factory/style_mix.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/factory/style_widgets_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/helpers.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/styled_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/utility.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/variant.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/widget_state/internal/gesture_mix_state.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/widget_state/internal/interactive_mix_state.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/widget_state/internal/mix_widget_state_builder.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/widget_state/internal/mouse_region_mix_state.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/core/widget_state/widget_state_controller.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/build_context_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/compare_mixin.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/constants.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/deep_collection_equality.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/diagnostic_properties_builder_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/helper_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/iterable_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/mix_error.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/internal/string_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/align_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/align_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/aspect_ratio_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/aspect_ratio_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/clip_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/clip_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/flexible_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/flexible_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/fractionally_sized_box_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/fractionally_sized_box_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/internal/render_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/internal/reset_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/internal/reset_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/intrinsic_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/intrinsic_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/mouse_cursor_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/mouse_cursor_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/opacity_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/opacity_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/padding_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/padding_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/rotated_box_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/rotated_box_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/scroll_view_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/scroll_view_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/sized_box_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/sized_box_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/transform_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/transform_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/visibility_widget_modifier.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/visibility_widget_modifier.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/modifiers/widget_modifiers_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/box/box_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/box/box_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/box/box_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/flex/flex_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/flex/flex_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/flex/flex_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/flexbox/flexbox_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/flexbox/flexbox_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/flexbox/flexbox_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/icon/icon_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/icon/icon_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/icon/icon_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/image/image_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/image/image_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/image/image_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/spec_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/stack/stack_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/stack/stack_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/stack/stack_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/text/text_directives_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/text/text_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/text/text_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/specs/text/text_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/material/material_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/material/material_tokens.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/mix/mix_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/breakpoints_token.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/color_token.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/mix_token.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/radius_token.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/space_token.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/text_style_token.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/token_resolver.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/theme/tokens/token_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_breakpoint_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_brightness_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_directionality_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_not_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_orientation_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_platform_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/context_variant_util/on_util.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/variant_attribute.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/variants/widget_state_variant.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix/lib/src/widgets/pressable_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix_annotations/LICENSE +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix_annotations/lib/mix_annotations.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/mix_annotations/lib/src/annotations.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/LICENSE +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/addons/brightness_addon.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/addons/icon_data_knob.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/addons/theme_addon.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/accordion_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/avatar_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/badge_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/button_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/callout_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/card_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/checkbox_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/chip_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/dialog_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/divider_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/dropdown_menu.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/header_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/icon_button_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/menu_item_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/progress_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/radio_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/segmented_control_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/select.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/slider.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/spinner_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/switch_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/textfield_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/components/toast_use_case.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/helpers/knob_builder.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/helpers/string.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/helpers/use_case_state.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/main.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/main.directories.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/pubspec.yaml +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/remix.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/accordion/accordion.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/accordion/accordion.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/accordion/accordion_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/accordion/accordion_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/accordion/header/accordion_header.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/accordion/header/accordion_header_spec_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/avatar/avatar.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/avatar/avatar.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/avatar/avatar_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/avatar/avatar_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/badge/badge.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/badge/badge.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/badge/badge_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/badge/badge_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/button/button.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/button/button.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/button/button_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/button/button_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/callout/callout.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/callout/callout.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/callout/callout_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/callout/callout_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/card/card.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/card/card.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/card/card_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/card/card_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/checkbox/checkbox.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/checkbox/checkbox.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/checkbox/checkbox_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/checkbox/checkbox_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/chip/chip.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/chip/chip.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/chip/chip_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/chip/chip_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dialog/dialog.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dialog/dialog.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dialog/dialog_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dialog/dialog_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/divider/divider.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/divider/divider.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/divider/divider_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/divider/divider_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dropdown_menu/dropdown_menu_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dropdown_menu/item/dropdown_menu.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/dropdown_menu/item/dropdown_menu_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/header/header.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/header/header.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/header/header_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/header/header_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/icon_button/icon_button.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/icon_button/icon_button.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/icon_button/icon_button_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/icon_button/icon_button_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/menu_item/menu_item.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/menu_item/menu_item.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/menu_item/menu_item_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/menu_item/menu_item_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/progress/progress.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/progress/progress.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/progress/progress_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/progress/progress_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/radio/radio.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/radio/radio.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/radio/radio_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/radio/radio_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/scaffold/scaffold.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/scaffold/scaffold.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/scaffold/scaffold_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/scaffold/scaffold_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/segmented_control/button/segmented_control_button.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/segmented_control/button/segmented_control_button_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/segmented_control/segmented_control_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/item/select_menu.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/item/select_menu_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/select.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/select.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/select_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/select_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/trigger/select_trigger.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/select/trigger/select_trigger_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/slider/slider.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/slider/slider.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/slider/slider_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/slider/slider_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/spinner/spinner.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/spinner/spinner.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/spinner/spinner_painter.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/spinner/spinner_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/spinner/spinner_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/switch/switch.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/switch/switch.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/switch/switch_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/switch/switch_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/textfield/attributes/attributes.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/textfield/attributes/attributes.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/textfield/textfield.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/textfield/textfield.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/textfield/textfield_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/textfield/textfield_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/toast/toast.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/toast/toast.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/toast/toast_layer.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/toast/toast_style.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/components/toast/toast_widget.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/core/remix_app.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/core/theme/component.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/core/theme/remix_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/color_palette.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/color_utils.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/component_builder.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/context_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/object_ext.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/overlay.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/spec/composited_transform_follower_spec.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/spec/composited_transform_follower_spec.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/helpers/utility_extension.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/accordion_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/avatar_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/badge_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/button_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/callout_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/card_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/checkbox_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/chip_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/dialog_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/divider_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/dropdown_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/header_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/icon_button_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/menu_item_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/progress_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/radio_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/scaffold_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/segmented_control_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/select_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/slider_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/spinner_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/switch_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/textfield_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/components/toast_theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/theme.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/tokens.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/src/themes/fortaleza/tokens.g.dart +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/lib/themes/fortaleza.dart /Users/lucasoliveira/fvm/versions/stable/bin/cache/artifacts/material_fonts/MaterialIcons-Regular.otf /Users/lucasoliveira/fvm/versions/stable/bin/cache/dart-sdk/pkg/_macros/LICENSE /Users/lucasoliveira/fvm/versions/stable/bin/cache/pkg/sky_engine/LICENSE diff --git a/packages/remix/demo/macos/Flutter/ephemeral/FlutterOutputs.xcfilelist b/packages/remix/demo/macos/Flutter/ephemeral/FlutterOutputs.xcfilelist index caff3d440..fa364730d 100644 --- a/packages/remix/demo/macos/Flutter/ephemeral/FlutterOutputs.xcfilelist +++ b/packages/remix/demo/macos/Flutter/ephemeral/FlutterOutputs.xcfilelist @@ -1,32 +1,32 @@ -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/App -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/Info.plist -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/AssetManifest.bin -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/AssetManifest.json -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/FontManifest.json -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/NOTICES.Z -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/fonts/MaterialIcons-Regular.otf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/isolate_snapshot_data -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/kernel_blob.bin -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Black.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-BlackItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Bold.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-BoldItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraBold.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraBoldItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraLight.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraLightItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Italic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Light.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-LightItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Medium.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-MediumItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Regular.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-SemiBold.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-SemiBoldItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Thin.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ThinItalic.ttf -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/logo.png -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/shaders/ink_sparkle.frag -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/vm_snapshot_data -/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/FlutterMacOS.framework/Versions/A/FlutterMacOS +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/App +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/Info.plist +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/AssetManifest.bin +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/AssetManifest.json +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/FontManifest.json +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/NOTICES.Z +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/fonts/MaterialIcons-Regular.otf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/isolate_snapshot_data +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/kernel_blob.bin +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Black.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-BlackItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Bold.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-BoldItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraBold.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraBoldItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraLight.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ExtraLightItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Italic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Light.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-LightItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Medium.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-MediumItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Regular.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-SemiBold.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-SemiBoldItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-Thin.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/fonts/Poppins/Poppins-ThinItalic.ttf +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/packages/widgetbook/assets/logo.png +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/shaders/ink_sparkle.frag +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/vm_snapshot_data +/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/build/macos/Build/Products/Debug/FlutterMacOS.framework/Versions/A/FlutterMacOS diff --git a/packages/remix/demo/macos/Flutter/ephemeral/flutter_export_environment.sh b/packages/remix/demo/macos/Flutter/ephemeral/flutter_export_environment.sh index bc2602b91..75dbf1997 100755 --- a/packages/remix/demo/macos/Flutter/ephemeral/flutter_export_environment.sh +++ b/packages/remix/demo/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -1,13 +1,13 @@ #!/bin/sh # This is a generated file; do not edit or check into version control. export "FLUTTER_ROOT=/Users/lucasoliveira/fvm/versions/stable" -export "FLUTTER_APPLICATION_PATH=/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo" +export "FLUTTER_APPLICATION_PATH=/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/lib/main.dart" +export "FLUTTER_TARGET=/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=/Users/lucasoliveira/Developer/Mix/PoCs/remix_toast/packages/mix/packages/remix/demo/.dart_tool/package_config.json" +export "PACKAGE_CONFIG=/Users/lucasoliveira/Developer/Mix/PoCs/remix_app_poc/packages/mix/packages/remix/demo/.dart_tool/package_config.json" diff --git a/packages/remix/lib/remix.dart b/packages/remix/lib/remix.dart index 83eae72c0..02b877858 100644 --- a/packages/remix/lib/remix.dart +++ b/packages/remix/lib/remix.dart @@ -30,6 +30,7 @@ export 'src/components/chip/chip.dart'; export 'src/components/dialog/dialog.dart'; export 'src/components/divider/divider.dart'; export 'src/components/dropdown_menu/dropdown_menu.dart'; +export 'src/components/header/header.dart'; export 'src/components/icon_button/icon_button.dart'; export 'src/components/menu_item/menu_item.dart'; export 'src/components/progress/progress.dart'; diff --git a/packages/remix/lib/src/components/header/header.dart b/packages/remix/lib/src/components/header/header.dart new file mode 100644 index 000000000..397c55bff --- /dev/null +++ b/packages/remix/lib/src/components/header/header.dart @@ -0,0 +1,42 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:mix/mix.dart'; +import 'package:mix_annotations/mix_annotations.dart'; + +import '../../core/theme/remix_theme.dart'; + +part 'header.g.dart'; +part 'header_style.dart'; +part 'header_widget.dart'; + +@MixableSpec() +base class HeaderSpec extends Spec + with _$HeaderSpec, Diagnosticable { + final FlexBoxSpec container; + final FlexSpec titleGroup; + final TextSpec title; + final TextSpec subtitle; + + /// {@macro header_spec_of} + static const of = _$HeaderSpec.of; + + static const from = _$HeaderSpec.from; + + const HeaderSpec({ + FlexBoxSpec? container, + super.modifiers, + FlexSpec? titleGroup, + TextSpec? title, + TextSpec? subtitle, + super.animated, + }) : container = container ?? const FlexBoxSpec(), + titleGroup = titleGroup ?? const FlexSpec(), + title = title ?? const TextSpec(), + subtitle = subtitle ?? const TextSpec(); + + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + _debugFillProperties(properties); + } +} diff --git a/packages/remix/lib/src/components/header/header.g.dart b/packages/remix/lib/src/components/header/header.g.dart new file mode 100644 index 000000000..8a3bac2be --- /dev/null +++ b/packages/remix/lib/src/components/header/header.g.dart @@ -0,0 +1,291 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'header.dart'; + +// ************************************************************************** +// MixableSpecGenerator +// ************************************************************************** + +mixin _$HeaderSpec on Spec { + static HeaderSpec from(MixData mix) { + return mix.attributeOf()?.resolve(mix) ?? + const HeaderSpec(); + } + + /// {@template header_spec_of} + /// Retrieves the [HeaderSpec] from the nearest [Mix] ancestor in the widget tree. + /// + /// This method uses [Mix.of] to obtain the [Mix] instance associated with the + /// given [BuildContext], and then retrieves the [HeaderSpec] from that [Mix]. + /// If no ancestor [Mix] is found, this method returns an empty [HeaderSpec]. + /// + /// Example: + /// + /// ```dart + /// final headerSpec = HeaderSpec.of(context); + /// ``` + /// {@endtemplate} + static HeaderSpec of(BuildContext context) { + return _$HeaderSpec.from(Mix.of(context)); + } + + /// Creates a copy of this [HeaderSpec] but with the given fields + /// replaced with the new values. + @override + HeaderSpec copyWith({ + FlexBoxSpec? container, + WidgetModifiersData? modifiers, + FlexSpec? titleGroup, + TextSpec? title, + TextSpec? subtitle, + AnimatedData? animated, + }) { + return HeaderSpec( + container: container ?? _$this.container, + modifiers: modifiers ?? _$this.modifiers, + titleGroup: titleGroup ?? _$this.titleGroup, + title: title ?? _$this.title, + subtitle: subtitle ?? _$this.subtitle, + animated: animated ?? _$this.animated, + ); + } + + /// Linearly interpolates between this [HeaderSpec] and another [HeaderSpec] based on the given parameter [t]. + /// + /// The parameter [t] represents the interpolation factor, typically ranging from 0.0 to 1.0. + /// When [t] is 0.0, the current [HeaderSpec] is returned. When [t] is 1.0, the [other] [HeaderSpec] is returned. + /// For values of [t] between 0.0 and 1.0, an interpolated [HeaderSpec] is returned. + /// + /// If [other] is null, this method returns the current [HeaderSpec] instance. + /// + /// The interpolation is performed on each property of the [HeaderSpec] using the appropriate + /// interpolation method: + /// + /// - [FlexBoxSpec.lerp] for [container]. + /// - [FlexSpec.lerp] for [titleGroup]. + /// - [TextSpec.lerp] for [title] and [subtitle]. + + /// For [modifiers] and [animated], the interpolation is performed using a step function. + /// If [t] is less than 0.5, the value from the current [HeaderSpec] is used. Otherwise, the value + /// from the [other] [HeaderSpec] is used. + /// + /// This method is typically used in animations to smoothly transition between + /// different [HeaderSpec] configurations. + @override + HeaderSpec lerp(HeaderSpec? other, double t) { + if (other == null) return _$this; + + return HeaderSpec( + container: _$this.container.lerp(other.container, t), + modifiers: other.modifiers, + titleGroup: _$this.titleGroup.lerp(other.titleGroup, t), + title: _$this.title.lerp(other.title, t), + subtitle: _$this.subtitle.lerp(other.subtitle, t), + animated: t < 0.5 ? _$this.animated : other.animated, + ); + } + + /// The list of properties that constitute the state of this [HeaderSpec]. + /// + /// This property is used by the [==] operator and the [hashCode] getter to + /// compare two [HeaderSpec] instances for equality. + @override + List get props => [ + _$this.container, + _$this.modifiers, + _$this.titleGroup, + _$this.title, + _$this.subtitle, + _$this.animated, + ]; + + HeaderSpec get _$this => this as HeaderSpec; + + void _debugFillProperties(DiagnosticPropertiesBuilder properties) { + properties.add( + DiagnosticsProperty('container', _$this.container, defaultValue: null)); + properties.add( + DiagnosticsProperty('modifiers', _$this.modifiers, defaultValue: null)); + properties.add(DiagnosticsProperty('titleGroup', _$this.titleGroup, + defaultValue: null)); + properties + .add(DiagnosticsProperty('title', _$this.title, defaultValue: null)); + properties.add( + DiagnosticsProperty('subtitle', _$this.subtitle, defaultValue: null)); + properties.add( + DiagnosticsProperty('animated', _$this.animated, defaultValue: null)); + } +} + +/// Represents the attributes of a [HeaderSpec]. +/// +/// This class encapsulates properties defining the layout and +/// appearance of a [HeaderSpec]. +/// +/// Use this class to configure the attributes of a [HeaderSpec] and pass it to +/// the [HeaderSpec] constructor. +base class HeaderSpecAttribute extends SpecAttribute + with Diagnosticable { + final FlexBoxSpecAttribute? container; + final FlexSpecAttribute? titleGroup; + final TextSpecAttribute? title; + final TextSpecAttribute? subtitle; + + const HeaderSpecAttribute({ + this.container, + super.modifiers, + this.titleGroup, + this.title, + this.subtitle, + super.animated, + }); + + /// Resolves to [HeaderSpec] using the provided [MixData]. + /// + /// If a property is null in the [MixData], it falls back to the + /// default value defined in the `defaultValue` for that property. + /// + /// ```dart + /// final headerSpec = HeaderSpecAttribute(...).resolve(mix); + /// ``` + @override + HeaderSpec resolve(MixData mix) { + return HeaderSpec( + container: container?.resolve(mix), + modifiers: modifiers?.resolve(mix), + titleGroup: titleGroup?.resolve(mix), + title: title?.resolve(mix), + subtitle: subtitle?.resolve(mix), + animated: animated?.resolve(mix) ?? mix.animation, + ); + } + + /// Merges the properties of this [HeaderSpecAttribute] with the properties of [other]. + /// + /// If [other] is null, returns this instance unchanged. Otherwise, returns a new + /// [HeaderSpecAttribute] with the properties of [other] taking precedence over + /// the corresponding properties of this instance. + /// + /// Properties from [other] that are null will fall back + /// to the values from this instance. + @override + HeaderSpecAttribute merge(covariant HeaderSpecAttribute? other) { + if (other == null) return this; + + return HeaderSpecAttribute( + container: container?.merge(other.container) ?? other.container, + modifiers: modifiers?.merge(other.modifiers) ?? other.modifiers, + titleGroup: titleGroup?.merge(other.titleGroup) ?? other.titleGroup, + title: title?.merge(other.title) ?? other.title, + subtitle: subtitle?.merge(other.subtitle) ?? other.subtitle, + animated: animated?.merge(other.animated) ?? other.animated, + ); + } + + /// The list of properties that constitute the state of this [HeaderSpecAttribute]. + /// + /// This property is used by the [==] operator and the [hashCode] getter to + /// compare two [HeaderSpecAttribute] instances for equality. + @override + List get props => [ + container, + modifiers, + titleGroup, + title, + subtitle, + animated, + ]; + + @override + void debugFillProperties(DiagnosticPropertiesBuilder properties) { + super.debugFillProperties(properties); + properties + .add(DiagnosticsProperty('container', container, defaultValue: null)); + properties + .add(DiagnosticsProperty('modifiers', modifiers, defaultValue: null)); + properties + .add(DiagnosticsProperty('titleGroup', titleGroup, defaultValue: null)); + properties.add(DiagnosticsProperty('title', title, defaultValue: null)); + properties + .add(DiagnosticsProperty('subtitle', subtitle, defaultValue: null)); + properties + .add(DiagnosticsProperty('animated', animated, defaultValue: null)); + } +} + +/// Utility class for configuring [HeaderSpec] properties. +/// +/// This class provides methods to set individual properties of a [HeaderSpec]. +/// Use the methods of this class to configure specific properties of a [HeaderSpec]. +class HeaderSpecUtility + extends SpecUtility { + /// Utility for defining [HeaderSpecAttribute.container] + late final container = FlexBoxSpecUtility((v) => only(container: v)); + + /// Utility for defining [HeaderSpecAttribute.modifiers] + late final wrap = SpecModifierUtility((v) => only(modifiers: v)); + + /// Utility for defining [HeaderSpecAttribute.titleGroup] + late final titleGroup = FlexSpecUtility((v) => only(titleGroup: v)); + + /// Utility for defining [HeaderSpecAttribute.title] + late final title = TextSpecUtility((v) => only(title: v)); + + /// Utility for defining [HeaderSpecAttribute.subtitle] + late final subtitle = TextSpecUtility((v) => only(subtitle: v)); + + /// Utility for defining [HeaderSpecAttribute.animated] + late final animated = AnimatedUtility((v) => only(animated: v)); + + HeaderSpecUtility(super.builder, {super.mutable}); + + HeaderSpecUtility get chain => + HeaderSpecUtility(attributeBuilder, mutable: true); + + static HeaderSpecUtility get self => + HeaderSpecUtility((v) => v); + + /// Returns a new [HeaderSpecAttribute] with the specified properties. + @override + T only({ + FlexBoxSpecAttribute? container, + WidgetModifiersDataDto? modifiers, + FlexSpecAttribute? titleGroup, + TextSpecAttribute? title, + TextSpecAttribute? subtitle, + AnimatedDataDto? animated, + }) { + return builder(HeaderSpecAttribute( + container: container, + modifiers: modifiers, + titleGroup: titleGroup, + title: title, + subtitle: subtitle, + animated: animated, + )); + } +} + +/// A tween that interpolates between two [HeaderSpec] instances. +/// +/// This class can be used in animations to smoothly transition between +/// different [HeaderSpec] specifications. +class HeaderSpecTween extends Tween { + HeaderSpecTween({ + super.begin, + super.end, + }); + + @override + HeaderSpec lerp(double t) { + if (begin == null && end == null) { + return const HeaderSpec(); + } + + if (begin == null) { + return end!; + } + + return begin!.lerp(end!, t); + } +} diff --git a/packages/remix/lib/src/components/header/header_style.dart b/packages/remix/lib/src/components/header/header_style.dart new file mode 100644 index 000000000..debea9207 --- /dev/null +++ b/packages/remix/lib/src/components/header/header_style.dart @@ -0,0 +1,56 @@ +part of 'header.dart'; + +class HeaderStyle extends SpecStyle { + const HeaderStyle(); + + @override + Style makeStyle(SpecConfiguration spec) { + final $ = spec.utilities; + + final textStyle = [ + $.titleGroup.chain + ..crossAxisAlignment.start() + ..mainAxisAlignment.start() + ..mainAxisSize.min() + ..gap(4), + $.title.chain + ..style.bold() + ..fontSize(18), + $.subtitle.chain + ..fontSize(14) + ..color.grey.shade800(), + ]; + + final containerStyle = [ + $.container.chain + ..padding(20) + ..height(88) + ..color.white() + ..flex.crossAxisAlignment.center(), + ]; + + return Style.create([...textStyle, ...containerStyle]); + } +} + +class HeaderDarkStyle extends HeaderStyle { + const HeaderDarkStyle(); + + @override + Style makeStyle(SpecConfiguration spec) { + final $ = spec.utilities; + + final textStyle = [ + $.title.color.white(), + $.subtitle.color.grey.shade200(), + ]; + + final containerStyle = [$.container.color.black()]; + + return Style.create([ + super.makeStyle(spec).call(), + ...textStyle, + ...containerStyle, + ]); + } +} diff --git a/packages/remix/lib/src/components/header/header_widget.dart b/packages/remix/lib/src/components/header/header_widget.dart new file mode 100644 index 000000000..51c12098b --- /dev/null +++ b/packages/remix/lib/src/components/header/header_widget.dart @@ -0,0 +1,56 @@ +part of 'header.dart'; + +class Header extends StatelessWidget { + const Header({ + super.key, + this.leading, + required this.title, + this.subtitle, + this.trailing, + this.style, + this.variants = const [], + }); + + final Widget? leading; + + final String title; + final String? subtitle; + + final Widget? trailing; + + /// {@macro remix.component.style} + final HeaderStyle? style; + + /// {@macro remix.component.variants} + final List variants; + + @override + Widget build(BuildContext context) { + final style = this.style ?? context.remix.components.header; + + final configuration = SpecConfiguration(context, HeaderSpecUtility.self); + + return SpecBuilder( + style: style.makeStyle(configuration).applyVariants(variants), + builder: (context) { + final spec = HeaderSpec.of(context); + + return spec.container( + direction: Axis.horizontal, + children: [ + if (leading != null) leading!, + spec.titleGroup( + direction: Axis.vertical, + children: [ + spec.title(title), + if (subtitle != null) spec.subtitle(subtitle!), + ], + ), + const Spacer(), + if (trailing != null) trailing!, + ], + ); + }, + ); + } +} diff --git a/packages/remix/lib/src/components/scaffold/scaffold_widget.dart b/packages/remix/lib/src/components/scaffold/scaffold_widget.dart index ba51d4c2b..89a88ef71 100644 --- a/packages/remix/lib/src/components/scaffold/scaffold_widget.dart +++ b/packages/remix/lib/src/components/scaffold/scaffold_widget.dart @@ -1,5 +1,10 @@ part of 'scaffold.dart'; +enum _ScaffoldElement { + header, + body; +} + /// A widget that provides a basic structure for a page or screen. /// /// It consists of a single [body] widget that is wrapped in a @@ -26,11 +31,14 @@ part of 'scaffold.dart'; class Scaffold extends StatelessWidget { const Scaffold({ super.key, + this.header, required this.body, this.style, this.variants = const [], }); + final Widget? header; + /// The primary content of the scaffold. final Widget body; @@ -50,8 +58,57 @@ class Scaffold extends StatelessWidget { builder: (context) { final spec = ScaffoldSpec.of(context); - return spec.container(child: ToastLayer(child: body)); + return spec.container( + child: ToastLayer( + child: CustomMultiChildLayout( + delegate: _ScaffoldLayoutDelegate(), + children: [ + if (header != null) + LayoutId( + id: _ScaffoldElement.header, + child: header!, + ), + LayoutId( + id: _ScaffoldElement.body, + child: body, + ), + ], + ), + ), + ); }, ); } } + +class _ScaffoldLayoutDelegate extends MultiChildLayoutDelegate { + @override + void performLayout(Size size) { + final BoxConstraints looseConstraints = BoxConstraints.loose(size); + double appBarHeight = 0.0; + + const headerKey = _ScaffoldElement.header; + if (hasChild(headerKey)) { + appBarHeight = layoutChild(headerKey, looseConstraints).height; + positionChild(headerKey, Offset.zero); + } + + const bodyKey = _ScaffoldElement.body; + if (hasChild(bodyKey)) { + final listHeight = size.height - appBarHeight; + + final bodyConstraints = BoxConstraints.tightFor( + width: looseConstraints.maxWidth, + height: listHeight, + ); + + layoutChild(bodyKey, bodyConstraints); + positionChild(bodyKey, Offset(0, appBarHeight)); + } + } + + @override + bool shouldRelayout(covariant MultiChildLayoutDelegate oldDelegate) { + return false; + } +} diff --git a/packages/remix/lib/src/core/theme/component.dart b/packages/remix/lib/src/core/theme/component.dart index 16b7c7e8a..94a6d09f6 100644 --- a/packages/remix/lib/src/core/theme/component.dart +++ b/packages/remix/lib/src/core/theme/component.dart @@ -9,6 +9,7 @@ import '../../components/chip/chip.dart'; import '../../components/dialog/dialog.dart'; import '../../components/divider/divider.dart'; import '../../components/dropdown_menu/dropdown_menu.dart'; +import '../../components/header/header.dart'; import '../../components/icon_button/icon_button.dart'; import '../../components/menu_item/menu_item.dart'; import '../../components/progress/progress.dart'; @@ -33,6 +34,7 @@ class RemixComponentTheme { final DialogStyle dialog; final ChipStyle chip; final DividerStyle divider; + final HeaderStyle header; final IconButtonStyle iconButton; final MenuItemStyle menuItem; final ProgressStyle progress; @@ -58,6 +60,7 @@ class RemixComponentTheme { required this.dialog, required this.chip, required this.divider, + required this.header, required this.iconButton, required this.menuItem, required this.progress, @@ -85,6 +88,7 @@ class RemixComponentTheme { dialog: DialogStyle(), chip: ChipStyle(), divider: DividerStyle(), + header: HeaderStyle(), iconButton: IconButtonStyle(), menuItem: MenuItemStyle(), progress: ProgressStyle(), @@ -113,6 +117,7 @@ class RemixComponentTheme { dialog: const DialogDarkStyle(), chip: const ChipDarkStyle(), divider: const DividerDarkStyle(), + header: const HeaderDarkStyle(), iconButton: const IconButtonDarkStyle(), menuItem: const MenuItemDarkStyle(), progress: const ProgressDarkStyle(), @@ -140,6 +145,7 @@ class RemixComponentTheme { DialogStyle? dialog, ChipStyle? chip, DividerStyle? divider, + HeaderStyle? header, IconButtonStyle? iconButton, MenuItemStyle? menuItem, ProgressStyle? progress, @@ -165,6 +171,7 @@ class RemixComponentTheme { dialog: dialog ?? this.dialog, chip: chip ?? this.chip, divider: divider ?? this.divider, + header: header ?? this.header, iconButton: iconButton ?? this.iconButton, menuItem: menuItem ?? this.menuItem, progress: progress ?? this.progress, diff --git a/packages/remix/lib/src/themes/fortaleza/components.dart b/packages/remix/lib/src/themes/fortaleza/components.dart index 17357194a..532432d69 100644 --- a/packages/remix/lib/src/themes/fortaleza/components.dart +++ b/packages/remix/lib/src/themes/fortaleza/components.dart @@ -10,6 +10,7 @@ import 'components/chip_theme.dart'; import 'components/dialog_theme.dart'; import 'components/divider_theme.dart'; import 'components/dropdown_theme.dart'; +import 'components/header_theme.dart'; import 'components/icon_button_theme.dart'; import 'components/menu_item_theme.dart'; import 'components/progress_theme.dart'; @@ -35,6 +36,7 @@ class FortalezaComponentTheme extends RemixComponentTheme { required super.dialog, required super.chip, required super.divider, + required super.header, required super.iconButton, required super.menuItem, required super.progress, @@ -58,6 +60,7 @@ class FortalezaComponentTheme extends RemixComponentTheme { button: FortalezaButtonStyle(), callout: FortalezaCalloutStyle(), card: FortalezaCardStyle(), + header: FortalezaHeaderStyle(), checkbox: FortalezaCheckboxStyle(), dialog: FortalezaDialogStyle(), chip: FortalezaChipStyle(), diff --git a/packages/remix/lib/src/themes/fortaleza/components/header_theme.dart b/packages/remix/lib/src/themes/fortaleza/components/header_theme.dart new file mode 100644 index 000000000..489f7bb8b --- /dev/null +++ b/packages/remix/lib/src/themes/fortaleza/components/header_theme.dart @@ -0,0 +1,35 @@ +import 'package:mix/mix.dart'; + +import '../../../components/header/header.dart'; +import '../tokens.dart'; + +class FortalezaHeaderStyle extends HeaderStyle { + const FortalezaHeaderStyle(); + + @override + Style makeStyle(SpecConfiguration spec) { + final $ = spec.utilities; + + final baseStyle = super.makeStyle(spec); + + final containerStyle = Style( + $.container.chain + ..padding.all.$space4() + ..color.$neutral(2), + ); + + final textStyle = Style( + $.titleGroup.gap(0), + $.title.chain + ..style.$text4() + ..style.color.$neutral(12), + $.subtitle.chain + ..style.$text2() + ..style.color.$neutral(11), + ); + + return Style.create( + [baseStyle(), containerStyle(), textStyle()], + ); + } +} diff --git a/packages/remix/test/components/scaffold/scafold_widget_test.dart b/packages/remix/test/components/scaffold/scafold_widget_test.dart new file mode 100644 index 000000000..10ada95d4 --- /dev/null +++ b/packages/remix/test/components/scaffold/scafold_widget_test.dart @@ -0,0 +1,161 @@ +import 'package:flutter/material.dart' as m; +import 'package:flutter/widgets.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:remix/remix.dart'; + +void main() { + group('Scaffold', () { + testWidgets('renders header and body', (WidgetTester tester) async { + tester.view.physicalSize = const Size(800, 600); + tester.view.devicePixelRatio = 1.0; + + await tester.pumpWidget( + RemixApp( + home: Scaffold( + header: const SizedBox( + key: Key('header'), + height: 100, + child: Center(child: Text('Header')), + ), + body: Container( + key: const Key('body'), + child: const Center(child: Text('Body')), + ), + ), + ), + ); + + final headerFinder = find.byKey(const Key('header')); + expect(headerFinder, findsOneWidget); + + final Size headerSize = tester.getSize(headerFinder); + expect(headerSize, const Size(800, 100)); + + final bodyFinder = find.byKey(const Key('body')); + expect(bodyFinder, findsOneWidget); + + final Size bodySize = tester.getSize(bodyFinder); + expect(bodySize, const Size(800, 500)); + + expect(find.text('Header'), findsOneWidget); + expect(find.text('Body'), findsOneWidget); + }); + + testWidgets('ListView scrolls correctly', (WidgetTester tester) async { + // Build our custom scaffold with a ListView as its body. + await tester.pumpWidget( + RemixApp( + home: Scaffold( + header: const SizedBox( + key: Key('header'), + height: 100, + child: Center(child: Text('Header')), + ), + body: ListView.builder( + key: const Key('listView'), + itemCount: 300, + itemBuilder: (context, index) { + return Text('Item $index'); + }, + ), + ), + ), + ); + + // Verify the first item is visible. + expect(find.text('Item 0'), findsOneWidget); + + // Scroll down the ListView. + await tester.drag( + find.byKey(const Key('listView')), const Offset(0, -700)); + await tester.pumpAndSettle(); + + // Verify that an item further down is now visible. + expect(find.text('Item 80'), findsOneWidget); + }); + + testWidgets('PageView swipes correctly', (WidgetTester tester) async { + // Build our custom scaffold with a PageView as its body. + await tester.pumpWidget( + RemixApp( + home: Scaffold( + header: Container( + key: const Key('header'), + height: 100, + color: m.Colors.green, + child: const Center(child: Text('Header')), + ), + body: PageView( + key: const Key('pageView'), + children: [ + Container( + key: const Key('page_1'), + color: m.Colors.red, + child: const Center(child: Text('Page 1')), + ), + Container( + key: const Key('page_2'), + color: m.Colors.blue, + child: const Center(child: Text('Page 2')), + ), + Container( + key: const Key('page_3'), + color: m.Colors.yellow, + child: const Center(child: Text('Page 3')), + ), + ], + ), + ), + ), + ); + + // Initially, Page 1 should be visible. + expect(find.text('Page 1'), findsOneWidget); + + // Swipe left to show Page 2. + await tester.drag( + find.byKey(const Key('pageView')), const Offset(-400, 0)); + await tester.pumpAndSettle(); + expect(find.text('Page 2'), findsOneWidget); + + // Swipe left again to show Page 3. + await tester.drag( + find.byKey(const Key('pageView')), const Offset(-400, 0)); + await tester.pumpAndSettle(); + expect(find.text('Page 3'), findsOneWidget); + }); + + testWidgets('responsive layout test', (WidgetTester tester) async { + // For example, set a custom window size. + tester.view.physicalSize = const Size(200, 200); + tester.view.devicePixelRatio = 1.0; + + await tester.pumpWidget( + RemixApp( + home: Scaffold( + header: Container( + key: const Key('header'), + height: 100, + color: m.Colors.green, + child: const Center(child: Text('Header')), + ), + body: Container( + key: const Key('body'), + color: m.Colors.blue, + child: const Center(child: Text('Body')), + ), + ), + ), + ); + + // Verify that the Scaffold adapts to the window size. + final Size scaffoldSize = tester.getSize(find.byType(Scaffold)); + expect(scaffoldSize.width, 200); + expect(scaffoldSize.height, 200); + + // Verify header height is exactly 100 + final Size headerSize = tester.getSize(find.byKey(const Key('header'))); + expect(headerSize.height, 100); + }); + }); +}