From 2a2bfc9ba07b98713981cbe9134a7778875afe68 Mon Sep 17 00:00:00 2001 From: Koen Van Looveren Date: Wed, 28 Jan 2026 19:21:34 +0100 Subject: [PATCH 1/2] fix: tools & ci --- .claude/settings.local.json | 8 +++++--- pubspec.yaml | 2 +- {tool => tools}/analyze.sh | 0 {tool => tools}/cli/bin/src/building_block_library.dart | 0 {tool => tools}/cli/bin/src/component_library.dart | 0 {tool => tools}/cli/bin/src/utils.dart | 0 {tool => tools}/cli/bin/widget_library.dart | 0 {tool => tools}/cli/pubspec.lock | 0 {tool => tools}/cli/pubspec.yaml | 0 {tool => tools}/format.sh | 0 {tool => tools}/packages_get.sh | 0 11 files changed, 6 insertions(+), 4 deletions(-) rename {tool => tools}/analyze.sh (100%) rename {tool => tools}/cli/bin/src/building_block_library.dart (100%) rename {tool => tools}/cli/bin/src/component_library.dart (100%) rename {tool => tools}/cli/bin/src/utils.dart (100%) rename {tool => tools}/cli/bin/widget_library.dart (100%) rename {tool => tools}/cli/pubspec.lock (100%) rename {tool => tools}/cli/pubspec.yaml (100%) rename {tool => tools}/format.sh (100%) rename {tool => tools}/packages_get.sh (100%) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index e57a653c..03e7bca4 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,10 +1,12 @@ { "permissions": { "allow": [ - "Bash(./tool/analyze.sh:*)", - "Bash(flutter pub:*)", "WebSearch", - "Bash(./tool/format.sh:*)" + "Bash(flutter pub:*)", + "Bash(./tools/analyze.sh:*)", + "Bash(./tools/format.sh:*)", + "Bash(./tools/build_runner_build.sh:*)", + "Bash(./tools/packges_get.sh:*)" ] } } diff --git a/pubspec.yaml b/pubspec.yaml index fce481bc..401fd73b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: impaktfull_ui description: impaktfull ui components to simplify development and design processes while still allowing custom design -version: 0.78.1 +version: 0.78.0 repository: https://github.com/impaktfull/flutter_impaktfull_ui environment: sdk: ">=3.4.1 <4.0.0" diff --git a/tool/analyze.sh b/tools/analyze.sh similarity index 100% rename from tool/analyze.sh rename to tools/analyze.sh diff --git a/tool/cli/bin/src/building_block_library.dart b/tools/cli/bin/src/building_block_library.dart similarity index 100% rename from tool/cli/bin/src/building_block_library.dart rename to tools/cli/bin/src/building_block_library.dart diff --git a/tool/cli/bin/src/component_library.dart b/tools/cli/bin/src/component_library.dart similarity index 100% rename from tool/cli/bin/src/component_library.dart rename to tools/cli/bin/src/component_library.dart diff --git a/tool/cli/bin/src/utils.dart b/tools/cli/bin/src/utils.dart similarity index 100% rename from tool/cli/bin/src/utils.dart rename to tools/cli/bin/src/utils.dart diff --git a/tool/cli/bin/widget_library.dart b/tools/cli/bin/widget_library.dart similarity index 100% rename from tool/cli/bin/widget_library.dart rename to tools/cli/bin/widget_library.dart diff --git a/tool/cli/pubspec.lock b/tools/cli/pubspec.lock similarity index 100% rename from tool/cli/pubspec.lock rename to tools/cli/pubspec.lock diff --git a/tool/cli/pubspec.yaml b/tools/cli/pubspec.yaml similarity index 100% rename from tool/cli/pubspec.yaml rename to tools/cli/pubspec.yaml diff --git a/tool/format.sh b/tools/format.sh similarity index 100% rename from tool/format.sh rename to tools/format.sh diff --git a/tool/packages_get.sh b/tools/packages_get.sh similarity index 100% rename from tool/packages_get.sh rename to tools/packages_get.sh From 055631abd55a686a9050e56b3286894590f90346 Mon Sep 17 00:00:00 2001 From: Koen Van Looveren Date: Wed, 28 Jan 2026 19:22:23 +0100 Subject: [PATCH 2/2] feat: implemented the ui_playground --- analysis_options.yaml | 1 + example/lib/src/screen/home/home_screen.dart | 8 + .../ui_playground/ui_playground_screen.dart | 17 ++ .../impaktfull_ui_components.dart | 22 ++ ...mpaktfull_ui_components.ui_playground.dart | 122 ++++++++ example/pubspec.lock | 273 +++++++++++++++++- example/pubspec.yaml | 14 + tools/build_runner_build.sh | 4 + 8 files changed, 459 insertions(+), 2 deletions(-) create mode 100644 example/lib/src/screen/ui_playground/ui_playground_screen.dart create mode 100644 example/lib/src/ui_playground/impaktfull_ui_components.dart create mode 100644 example/lib/src/ui_playground/impaktfull_ui_components.ui_playground.dart create mode 100755 tools/build_runner_build.sh diff --git a/analysis_options.yaml b/analysis_options.yaml index 81c5c746..dd89efae 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -7,6 +7,7 @@ analyzer: - "**.g.dart" - "**.config.dart" - "**.navigator.dart" + - "**.ui_playground.dart" language: strict-casts: true strict-raw-types: true diff --git a/example/lib/src/screen/home/home_screen.dart b/example/lib/src/screen/home/home_screen.dart index 0cf71546..8a06e083 100644 --- a/example/lib/src/screen/home/home_screen.dart +++ b/example/lib/src/screen/home/home_screen.dart @@ -4,7 +4,9 @@ import 'package:flutter/material.dart'; import 'package:impaktfull_ui/impaktfull_ui.dart'; import 'package:impaktfull_ui_example/src/navigator/navigator.dart'; import 'package:impaktfull_ui_example/src/screen/settings/settings_screen.dart'; +import 'package:impaktfull_ui_example/src/screen/ui_playground/ui_playground_screen.dart'; import 'package:impaktfull_ui_example/src/widget/home/action_card.dart'; +import 'package:phosphor_flutter/phosphor_flutter.dart'; class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @@ -62,6 +64,12 @@ class HomeScreen extends StatelessWidget { ), onTap: () => ImpaktfullUiNavigator.instance.goToExamples(), ), + ActionCard( + label: 'UI Playground', + asset: ImpaktfullUiAsset.icon(PhosphorIcons.book()), + onTap: () => Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const UiPlaygroundScreen())), + ), ], itemBuilder: (context, item, index) => item, ), diff --git a/example/lib/src/screen/ui_playground/ui_playground_screen.dart b/example/lib/src/screen/ui_playground/ui_playground_screen.dart new file mode 100644 index 00000000..ac335ada --- /dev/null +++ b/example/lib/src/screen/ui_playground/ui_playground_screen.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; +import 'package:impaktfull_ui_example/src/ui_playground/impaktfull_ui_components.dart'; +import 'package:ui_playground/ui_playground.dart'; + +class UiPlaygroundScreen extends StatelessWidget { + const UiPlaygroundScreen({super.key}); + + @override + Widget build(BuildContext context) { + return UiPlaygroundApp(title: "UI Playground", sections: [ + UiPlaygroundSection( + title: "Components", + items: AppComponents.items, + ), + ]); + } +} diff --git a/example/lib/src/ui_playground/impaktfull_ui_components.dart b/example/lib/src/ui_playground/impaktfull_ui_components.dart new file mode 100644 index 00000000..9c9bcf97 --- /dev/null +++ b/example/lib/src/ui_playground/impaktfull_ui_components.dart @@ -0,0 +1,22 @@ +import 'package:impaktfull_ui/impaktfull_ui.dart'; +import 'package:impaktfull_ui_example/src/ui_playground/impaktfull_ui_components.ui_playground.dart'; +import 'package:ui_playground/ui_playground.dart'; + +@UiPlaygroundComponents( + extraComponents: [ + UiPlaygroundComponentConfig( + ImpaktfullUiButton, + excludeParams: [ + 'leadingAsset', + 'trailingAsset', + 'leadingChild', + 'trailingChild', + 'theme', + ], + ) + ], +) +class AppComponents { + static List get items => + GeneratedUiPlaygroundComponents.items; +} diff --git a/example/lib/src/ui_playground/impaktfull_ui_components.ui_playground.dart b/example/lib/src/ui_playground/impaktfull_ui_components.ui_playground.dart new file mode 100644 index 00000000..6495a02f --- /dev/null +++ b/example/lib/src/ui_playground/impaktfull_ui_components.ui_playground.dart @@ -0,0 +1,122 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// dart format width=80 + +// ************************************************************************** +// UiPlaygroundAggregatingGenerator +// ************************************************************************** + +// ignore_for_file: implementation_imports, sort_child_properties_last +import 'package:flutter/material.dart'; +import 'package:ui_playground/ui_playground.dart'; +import 'package:impaktfull_ui/src/components/button/button.dart'; + +// ************************************************************************** +// GeneratedUiPlaygroundComponents +// ************************************************************************** + +class GeneratedUiPlaygroundComponents { + GeneratedUiPlaygroundComponents._(); + + static List get items => [ + ImpaktfullUiButtonPlaygroundItem(), + ]; +} + +// ************************************************************************** +// ImpaktfullUiButton +// ************************************************************************** + +class ImpaktfullUiButtonPlaygroundItem extends UiPlaygroundItem { + @override + String get title => 'ImpaktfullUiButton'; + + @override + List get variants => [ + ImpaktfullUiButtonPlaygroundVariant(), + ]; +} + +class ImpaktfullUiButtonPlaygroundVariant + extends UiPlaygroundVariant { + @override + String get title => 'Default'; + + @override + Widget build( + BuildContext context, ImpaktfullUiButtonPlaygroundInputs inputs) { + return ImpaktfullUiButton( + type: inputs.type.valueOrDefaultRequired, + title: inputs.title.valueOrDefault, + size: inputs.size.valueOrDefaultRequired, + fullWidth: inputs.fullWidth.valueOrDefaultRequired, + isLoading: inputs.isLoading.valueOrDefaultRequired, + canRequestFocus: inputs.canRequestFocus.valueOrDefaultRequired, + onTap: () => UiPlaygroundNotification.show(context, 'onTap()'), + onAsyncTap: () async => + UiPlaygroundNotification.show(context, 'onAsyncTap()'), + tooltip: inputs.tooltip.valueOrDefault, + ); + } + + @override + ImpaktfullUiButtonPlaygroundInputs inputs() => + ImpaktfullUiButtonPlaygroundInputs(); +} + +class ImpaktfullUiButtonPlaygroundInputs extends UiPlaygroundInputs { + final type = UiPlaygroundEnumInput( + 'Type', + isNullable: false, + options: ImpaktfullUiButtonType.values, + ); + final title = UiPlaygroundStringInput( + 'Title', + isNullable: true, + ); + final size = UiPlaygroundEnumInput( + 'Size', + isNullable: false, + initialValue: ImpaktfullUiButtonSize.medium, + options: ImpaktfullUiButtonSize.values, + ); + final fullWidth = UiPlaygroundBooleanInput( + 'Full Width', + isNullable: false, + initialValue: false, + ); + final isLoading = UiPlaygroundBooleanInput( + 'Is Loading', + isNullable: false, + initialValue: false, + ); + final canRequestFocus = UiPlaygroundBooleanInput( + 'Can Request Focus', + isNullable: false, + initialValue: true, + ); + final onTap = UiPlaygroundCallbackInput( + 'On Tap', + isNullable: true, + ); + final onAsyncTap = UiPlaygroundCallbackInput( + 'On Async Tap', + isNullable: true, + ); + final tooltip = UiPlaygroundStringInput( + 'Tooltip', + isNullable: true, + ); + + @override + List> buildInputItems() => [ + type, + title, + size, + fullWidth, + isLoading, + canRequestFocus, + onTap, + onAsyncTap, + tooltip, + ]; +} diff --git a/example/pubspec.lock b/example/pubspec.lock index 4c18aa00..874612ac 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -1,6 +1,22 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "8d7ff3948166b8ec5da0fbb5962000926b8e02f2ed9b3e51d1738905fbd4c98d" + url: "https://pub.dev" + source: hosted + version: "93.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: de7148ed2fcec579b19f122c1800933dfa028f6d9fd38a152b04b1516cec120b + url: "https://pub.dev" + source: hosted + version: "10.0.1" archive: dependency: transitive description: @@ -33,6 +49,54 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3" + url: "https://pub.dev" + source: hosted + version: "4.0.4" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 + url: "https://pub.dev" + source: hosted + version: "4.1.1" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: b4d854962a32fd9f8efc0b76f98214790b833af8b2e9b2df6bfc927c0415a072 + url: "https://pub.dev" + source: hosted + version: "2.10.5" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "7931c90b84bc573fef103548e354258ae4c9d28d140e41961df6843c5d60d4d8" + url: "https://pub.dev" + source: hosted + version: "8.12.3" characters: dependency: transitive description: @@ -41,6 +105,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" clock: dependency: transitive description: @@ -49,6 +121,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d" + url: "https://pub.dev" + source: hosted + version: "4.11.1" collection: dependency: transitive description: @@ -57,6 +137,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" crypto: dependency: transitive description: @@ -65,6 +153,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "8a0aa2b9bae196552b71575efc94580e447546c26c7120577bb6f81fbd33b52e" + url: "https://pub.dev" + source: hosted + version: "3.1.4" fake_async: dependency: transitive description: @@ -81,6 +177,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" flutter: dependency: "direct main" description: flutter @@ -120,6 +232,14 @@ packages: description: flutter source: sdk version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" graphs: dependency: transitive description: @@ -136,6 +256,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" http_parser: dependency: transitive description: @@ -150,7 +278,7 @@ packages: path: ".." relative: true source: path - version: "0.76.3" + version: "0.78.1" impaktfull_ui_figma_sync: dependency: transitive description: @@ -167,6 +295,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.20.2" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -199,6 +343,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" lottie: dependency: transitive description: @@ -239,6 +391,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.17.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" path: dependency: transitive description: @@ -279,6 +447,30 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" rive: dependency: transitive description: @@ -295,6 +487,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.11" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" sky_engine: dependency: transitive description: flutter @@ -308,6 +516,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.2" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "1d562a3c1f713904ebbed50d2760217fd8a51ca170ac4b05b0db490699dbac17" + url: "https://pub.dev" + source: hosted + version: "4.2.0" source_span: dependency: transitive description: @@ -332,6 +548,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" string_scanner: dependency: transitive description: @@ -364,6 +588,27 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.2" + ui_playground: + dependency: "direct main" + description: + path: "/Users/vanlooverenkoen/work/open_source/impaktfull/flutter_ui_playground/ui_playground" + relative: false + source: path + version: "0.0.5" + ui_playground_annotations: + dependency: "direct main" + description: + path: "/Users/vanlooverenkoen/work/open_source/impaktfull/flutter_ui_playground/ui_playground_annotations" + relative: false + source: path + version: "0.0.5" + ui_playground_generator: + dependency: "direct dev" + description: + path: "/Users/vanlooverenkoen/work/open_source/impaktfull/flutter_ui_playground/ui_playground_generator" + relative: false + source: path + version: "0.0.5" url_launcher: dependency: "direct main" description: @@ -468,6 +713,14 @@ packages: url: "https://pub.dev" source: hosted version: "15.0.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" web: dependency: transitive description: @@ -476,6 +729,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" xml: dependency: transitive description: @@ -493,5 +762,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.8.0-0 <4.0.0" + dart: ">=3.9.0 <4.0.0" flutter: ">=3.24.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index f14f0a32..f7a412fe 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -12,12 +12,26 @@ dependencies: impaktfull_ui: path: ../ phosphor_flutter: ^2.1.0 + ui_playground: ^0.0.1 + ui_playground_annotations: ^0.0.1 url_launcher: ^6.1.10 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^3.0.0 + build_runner: ^2.4.14 + ui_playground_generator: ^0.0.1 + +dependency_overrides: + ui_playground: + path: /Users/vanlooverenkoen/work/open_source/impaktfull/flutter_ui_playground/ui_playground + ui_playground_annotations: + path: /Users/vanlooverenkoen/work/open_source/impaktfull/flutter_ui_playground/ui_playground_annotations + ui_playground_generator: + path: /Users/vanlooverenkoen/work/open_source/impaktfull/flutter_ui_playground/ui_playground_generator + impaktfull_ui: + path: .. flutter: uses-material-design: true diff --git a/tools/build_runner_build.sh b/tools/build_runner_build.sh new file mode 100755 index 00000000..e244cab4 --- /dev/null +++ b/tools/build_runner_build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cd example +flutter pub run build_runner build --delete-conflicting-outputs \ No newline at end of file