├── README.md ├── examples ├── movie_app │ ├── linux │ │ ├── .gitignore │ │ ├── runner │ │ │ ├── main.cc │ │ │ └── my_application.h │ │ └── flutter │ │ │ ├── generated_plugin_registrant.cc │ │ │ └── generated_plugin_registrant.h │ ├── ios │ │ ├── Runner │ │ │ ├── Runner-Bridging-Header.h │ │ │ ├── Assets.xcassets │ │ │ │ ├── LaunchImage.imageset │ │ │ │ │ ├── LaunchImage.png │ │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ │ ├── README.md │ │ │ │ │ └── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ └── AppDelegate.swift │ │ ├── Flutter │ │ │ ├── Debug.xcconfig │ │ │ └── Release.xcconfig │ │ ├── Runner.xcodeproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── RunnerTests │ │ │ └── RunnerTests.swift │ │ └── .gitignore │ ├── web │ │ ├── favicon.png │ │ └── icons │ │ │ ├── Icon-192.png │ │ │ ├── Icon-512.png │ │ │ ├── Icon-maskable-192.png │ │ │ └── Icon-maskable-512.png │ ├── assets │ │ └── images │ │ │ └── image.png │ ├── macos │ │ ├── Runner │ │ │ ├── Configs │ │ │ │ ├── Debug.xcconfig │ │ │ │ ├── Release.xcconfig │ │ │ │ ├── Warnings.xcconfig │ │ │ │ └── AppInfo.xcconfig │ │ │ ├── Assets.xcassets │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ ├── app_icon_16.png │ │ │ │ │ ├── app_icon_32.png │ │ │ │ │ ├── app_icon_64.png │ │ │ │ │ ├── app_icon_1024.png │ │ │ │ │ ├── app_icon_128.png │ │ │ │ │ ├── app_icon_256.png │ │ │ │ │ └── app_icon_512.png │ │ │ ├── Release.entitlements │ │ │ ├── AppDelegate.swift │ │ │ ├── DebugProfile.entitlements │ │ │ └── MainFlutterWindow.swift │ │ ├── .gitignore │ │ ├── Flutter │ │ │ ├── Flutter-Debug.xcconfig │ │ │ ├── Flutter-Release.xcconfig │ │ │ └── GeneratedPluginRegistrant.swift │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── Runner.xcodeproj │ │ │ └── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── RunnerTests │ │ │ └── RunnerTests.swift │ ├── windows │ │ ├── runner │ │ │ ├── resources │ │ │ │ └── app_icon.ico │ │ │ ├── resource.h │ │ │ └── runner.exe.manifest │ │ ├── flutter │ │ │ ├── generated_plugin_registrant.cc │ │ │ └── generated_plugin_registrant.h │ │ └── .gitignore │ ├── android │ │ ├── app │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── res │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ └── drawable-v21 │ │ │ │ │ │ └── launch_background.xml │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── movie_app │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── debug │ │ │ │ └── AndroidManifest.xml │ │ │ │ └── profile │ │ │ │ └── AndroidManifest.xml │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ ├── .gitignore │ │ └── build.gradle.kts │ ├── lib │ │ ├── constants │ │ │ └── app_constants.dart │ │ └── widgets │ │ │ └── movie_carousel │ │ │ └── movie_carousel.g.dart │ ├── pubspec_overrides.yaml │ └── README.md ├── counter_example │ ├── linux │ │ ├── .gitignore │ │ ├── runner │ │ │ ├── main.cc │ │ │ └── my_application.h │ │ └── flutter │ │ │ ├── generated_plugin_registrant.cc │ │ │ └── generated_plugin_registrant.h │ ├── ios │ │ ├── Runner │ │ │ ├── Runner-Bridging-Header.h │ │ │ ├── Assets.xcassets │ │ │ │ ├── LaunchImage.imageset │ │ │ │ │ ├── LaunchImage.png │ │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ │ ├── README.md │ │ │ │ │ └── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ └── AppDelegate.swift │ │ ├── Flutter │ │ │ ├── Debug.xcconfig │ │ │ └── Release.xcconfig │ │ ├── Runner.xcodeproj │ │ │ └── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── RunnerTests │ │ │ └── RunnerTests.swift │ ├── web │ │ ├── favicon.png │ │ └── icons │ │ │ ├── Icon-192.png │ │ │ ├── Icon-512.png │ │ │ ├── Icon-maskable-192.png │ │ │ └── Icon-maskable-512.png │ ├── macos │ │ ├── Runner │ │ │ ├── Configs │ │ │ │ ├── Debug.xcconfig │ │ │ │ ├── Release.xcconfig │ │ │ │ ├── Warnings.xcconfig │ │ │ │ └── AppInfo.xcconfig │ │ │ ├── Assets.xcassets │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ ├── app_icon_1024.png │ │ │ │ │ ├── app_icon_128.png │ │ │ │ │ ├── app_icon_16.png │ │ │ │ │ ├── app_icon_256.png │ │ │ │ │ ├── app_icon_32.png │ │ │ │ │ ├── app_icon_512.png │ │ │ │ │ └── app_icon_64.png │ │ │ ├── Release.entitlements │ │ │ ├── AppDelegate.swift │ │ │ ├── DebugProfile.entitlements │ │ │ └── MainFlutterWindow.swift │ │ ├── .gitignore │ │ ├── Flutter │ │ │ ├── Flutter-Debug.xcconfig │ │ │ ├── Flutter-Release.xcconfig │ │ │ └── GeneratedPluginRegistrant.swift │ │ ├── Runner.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── Runner.xcodeproj │ │ │ └── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── RunnerTests │ │ │ └── RunnerTests.swift │ ├── README.md │ ├── windows │ │ ├── runner │ │ │ ├── resources │ │ │ │ └── app_icon.ico │ │ │ ├── resource.h │ │ │ └── runner.exe.manifest │ │ ├── flutter │ │ │ ├── generated_plugin_registrant.cc │ │ │ └── generated_plugin_registrant.h │ │ └── .gitignore │ ├── android │ │ ├── gradle.properties │ │ ├── app │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── res │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ └── drawable-v21 │ │ │ │ │ │ └── launch_background.xml │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── counter_example │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── debug │ │ │ │ └── AndroidManifest.xml │ │ │ │ └── profile │ │ │ │ └── AndroidManifest.xml │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ ├── .gitignore │ │ └── build.gradle │ ├── devtools_options.yaml │ ├── lib │ │ └── counter │ │ │ ├── cubit │ │ │ └── counter_cubit.dart │ │ │ ├── actions │ │ │ └── counter_action.dart │ │ │ └── widgets │ │ │ └── counter_screen.dart │ └── pubspec_overrides.yaml └── stac_gallery │ ├── devtools_options.yaml │ ├── linux │ ├── .gitignore │ ├── main.cc │ ├── flutter │ │ ├── generated_plugin_registrant.cc │ │ └── generated_plugin_registrant.h │ └── my_application.h │ ├── ios │ ├── Runner │ │ ├── Runner-Bridging-Header.h │ │ ├── Assets.xcassets │ │ │ ├── LaunchImage.imageset │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ ├── README.md │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── AppDelegate.swift │ ├── Flutter │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Runner.xcodeproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ └── IDEWorkspaceChecks.plist │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ └── IDEWorkspaceChecks.plist │ └── RunnerTests │ │ └── RunnerTests.swift │ ├── web │ ├── favicon.png │ └── icons │ │ ├── Icon-192.png │ │ ├── Icon-512.png │ │ ├── Icon-maskable-192.png │ │ └── Icon-maskable-512.png │ ├── macos │ ├── Runner │ │ ├── Configs │ │ │ ├── Debug.xcconfig │ │ │ ├── Release.xcconfig │ │ │ ├── Warnings.xcconfig │ │ │ └── AppInfo.xcconfig │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ ├── app_icon_16.png │ │ │ │ ├── app_icon_32.png │ │ │ │ ├── app_icon_64.png │ │ │ │ ├── app_icon_1024.png │ │ │ │ ├── app_icon_128.png │ │ │ │ ├── app_icon_256.png │ │ │ │ └── app_icon_512.png │ │ ├── AppDelegate.swift │ │ ├── Release.entitlements │ │ ├── DebugProfile.entitlements │ │ └── MainFlutterWindow.swift │ ├── .gitignore │ ├── Flutter │ │ ├── Flutter-Debug.xcconfig │ │ └── Flutter-Release.xcconfig │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── Runner.xcodeproj │ │ └── project.xcworkspace │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── RunnerTests │ │ └── RunnerTests.swift │ ├── assets │ ├── images │ │ ├── example_image_1.jpeg │ │ └── example_image_2.jpeg │ └── json │ │ ├── web_view_example.json │ │ ├── opacity_example.json │ │ ├── center_example.json │ │ ├── example_dark_theme.json │ │ ├── example_light_theme.json │ │ ├── slider_example.json │ │ ├── refresh_indicator_example.json │ │ └── auto_complete_example.json │ ├── windows │ ├── runner │ │ ├── resources │ │ │ └── app_icon.ico │ │ └── resource.h │ ├── flutter │ │ ├── generated_plugin_registrant.cc │ │ └── generated_plugin_registrant.h │ └── .gitignore │ ├── analysis_options.yaml │ ├── android │ ├── app │ │ └── src │ │ │ ├── main │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ └── drawable-v21 │ │ │ │ │ └── launch_background.xml │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── stac │ │ │ │ └── stac_gallery │ │ │ │ └── MainActivity.kt │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ ├── .gitignore │ └── build.gradle │ ├── lib │ ├── app │ │ ├── home │ │ │ └── cubit │ │ │ │ └── home_state.dart │ │ ├── example │ │ │ ├── example_screen.dart │ │ │ └── example_screen.g.dart │ │ └── details │ │ │ └── details_screen.dart │ └── app_theme │ │ └── app_theme_state.dart │ ├── pubspec_overrides.yaml │ └── README.md ├── .github └── ISSUE_TEMPLATE │ ├── config.yml │ ├── chore.md │ ├── documentation.md │ ├── feature_request.md │ ├── example_request.md │ └── bug_report.md ├── packages ├── stac_core │ ├── lib │ │ ├── foundation │ │ │ ├── text │ │ │ │ ├── stac_font_weight.dart │ │ │ │ ├── stac_smart_dashes_type.dart │ │ │ │ ├── stac_smart_quotes_type.dart │ │ │ │ ├── stac_stroke_cap.dart │ │ │ │ └── stac_text_width_basis.dart │ │ │ ├── ui_components │ │ │ │ ├── stac_icon_type.dart │ │ │ │ ├── stac_options_view_open_direction.dart │ │ │ │ ├── stac_image_type.dart │ │ │ │ ├── stac_overflow_bar_alignment.dart │ │ │ │ ├── stac_dropdown_menu_close_behavior.dart │ │ │ │ ├── stac_radio_type.dart │ │ │ │ ├── stac_switch_type.dart │ │ │ │ ├── stac_list_tile_style.dart │ │ │ │ ├── stac_snack_bar_behavior.dart │ │ │ │ ├── stac_image_repeat.dart │ │ │ │ ├── stac_refresh_indicator_trigger_mode.dart │ │ │ │ ├── stac_slider_interaction.dart │ │ │ │ ├── stac_slider_type.dart │ │ │ │ └── stac_traversal_edge_behavior.dart │ │ │ ├── colors │ │ │ │ └── stac_brightness.dart │ │ │ ├── forms │ │ │ │ ├── stac_max_length_enforcement.dart │ │ │ │ └── stac_autovalidate_mode.dart │ │ │ ├── navigation │ │ │ │ ├── stac_tab_bar_indicator_size.dart │ │ │ │ ├── stac_floating_action_button_type.dart │ │ │ │ └── stac_tab_alignment.dart │ │ │ ├── layout │ │ │ │ ├── stac_vertical_direction.dart │ │ │ │ ├── stac_wrap_cross_alignment.dart │ │ │ │ ├── stac_axis.dart │ │ │ │ ├── stac_flex_fit.dart │ │ │ │ └── stac_stack_fit.dart │ │ │ ├── interaction │ │ │ │ ├── stac_scroll_view_keyboard_dismiss_behavior.dart │ │ │ │ └── stac_hit_test_behavior.dart │ │ │ └── geometry │ │ │ │ ├── stac_offset │ │ │ │ └── stac_offset.g.dart │ │ │ │ └── stac_size │ │ │ │ └── stac_size.g.dart │ │ ├── annotations │ │ │ └── annotations.dart │ │ ├── core │ │ │ └── core.dart │ │ ├── stac_core.dart │ │ ├── actions │ │ │ ├── actions.dart │ │ │ ├── get_form_value │ │ │ │ └── stac_get_form_value.g.dart │ │ │ └── delay │ │ │ │ └── stac_delay_action.g.dart │ │ └── widgets │ │ │ └── spacer │ │ │ └── stac_spacer.g.dart │ ├── pubspec_overrides.yaml │ ├── build.yaml │ ├── README.md │ ├── .metadata │ ├── example │ │ └── README.md │ └── analysis_options.yaml ├── stac │ ├── lib │ │ ├── src │ │ │ ├── parsers │ │ │ │ ├── widgets │ │ │ │ │ ├── stac_offset │ │ │ │ │ │ └── stac_offset.dart │ │ │ │ │ ├── stac_image │ │ │ │ │ │ ├── stac_image_parser.dart │ │ │ │ │ │ └── stac_image_parser_stub.dart │ │ │ │ │ └── stac_spacer │ │ │ │ │ │ └── stac_spacer_parser.dart │ │ │ │ ├── foundation │ │ │ │ │ ├── decoration │ │ │ │ │ │ └── stac_decoration_image │ │ │ │ │ │ │ └── stac_decoration_image_parser.dart │ │ │ │ │ ├── geometry │ │ │ │ │ │ ├── stac_size_parser.dart │ │ │ │ │ │ ├── stac_offset_parser.dart │ │ │ │ │ │ ├── stac_visual_density_parser.dart │ │ │ │ │ │ ├── stac_edge_insets_parser.dart │ │ │ │ │ │ ├── stac_box_constraints_parser.dart │ │ │ │ │ │ └── stac_box_shadow_parser.dart │ │ │ │ │ ├── alignment │ │ │ │ │ │ ├── stac_alignment_geometry_parser.dart │ │ │ │ │ │ ├── stac_main_axis_size_parser.dart │ │ │ │ │ │ └── stac_icon_alignment_parser.dart │ │ │ │ │ ├── layout │ │ │ │ │ │ ├── stac_axis_parser.dart │ │ │ │ │ │ ├── stac_flex_fit_parser.dart │ │ │ │ │ │ ├── stac_box_shape_parser.dart │ │ │ │ │ │ ├── stac_vertical_direction_parser.dart │ │ │ │ │ │ ├── stac_stack_fit_parser.dart │ │ │ │ │ │ ├── stac_material_tap_target_size_parser.dart │ │ │ │ │ │ ├── stac_clip_parser.dart │ │ │ │ │ │ └── stac_wrap_cross_alignment_parser.dart │ │ │ │ │ ├── text │ │ │ │ │ │ ├── stac_font_style_parser.dart │ │ │ │ │ │ ├── stac_text_direction_parser.dart │ │ │ │ │ │ ├── stac_text_width_basis_parser.dart │ │ │ │ │ │ ├── stac_smart_dashes_type_parser.dart │ │ │ │ │ │ ├── stac_smart_quotes_type_parser.dart │ │ │ │ │ │ ├── stac_stroke_cap_parser.dart │ │ │ │ │ │ ├── stac_text_leading_distribution_parser.dart │ │ │ │ │ │ ├── stac_text_baseline_parser.dart │ │ │ │ │ │ ├── stac_text_overflow_parser.dart │ │ │ │ │ │ ├── stac_text_capitalization_parser.dart │ │ │ │ │ │ └── stac_text_align_parser.dart │ │ │ │ │ ├── borders │ │ │ │ │ │ ├── stac_border_style_parser.dart │ │ │ │ │ │ ├── stac_circle_border_parser.dart │ │ │ │ │ │ ├── stac_beveled_rectangle_border_parser.dart │ │ │ │ │ │ ├── stac_border_radius_parser.dart │ │ │ │ │ │ ├── stac_rounded_rectangle_border_parser.dart │ │ │ │ │ │ ├── stac_continuous_rectangle_border_parser.dart │ │ │ │ │ │ └── stac_border_side_parser.dart │ │ │ │ │ ├── animation │ │ │ │ │ │ ├── stac_duration_parsers.dart │ │ │ │ │ │ └── stac_rect_tween_parser.dart │ │ │ │ │ ├── interaction │ │ │ │ │ │ ├── stac_drag_start_behavior_parser.dart │ │ │ │ │ │ ├── stac_switch_type_parser.dart │ │ │ │ │ │ └── stac_slider_interaction_parser.dart │ │ │ │ │ ├── colors │ │ │ │ │ │ └── stac_brightness_parser.dart │ │ │ │ │ ├── navigation │ │ │ │ │ │ ├── stac_tab_bar_indicator_size_parser.dart │ │ │ │ │ │ ├── stac_bottom_navigation_bar_type_parser.dart │ │ │ │ │ │ └── stac_tab_alignment_parser.dart │ │ │ │ │ ├── forms │ │ │ │ │ │ ├── stac_input_formatter_type_parser.dart │ │ │ │ │ │ └── stac_max_length_enforcement_parser.dart │ │ │ │ │ ├── ui_components │ │ │ │ │ │ ├── stac_options_view_open_direction_parser.dart │ │ │ │ │ │ ├── stac_list_tile_style_parser.dart │ │ │ │ │ │ ├── stac_overflow_bar_alignment_parser.dart │ │ │ │ │ │ ├── stac_image_repeat_parser.dart │ │ │ │ │ │ ├── stac_snack_bar_behavior_parser.dart │ │ │ │ │ │ └── stac_table_row_parser.dart │ │ │ │ │ ├── effects │ │ │ │ │ │ ├── stac_tile_mode_parser.dart │ │ │ │ │ │ ├── stac_blur_style_parser.dart │ │ │ │ │ │ ├── stac_shadow_parser.dart │ │ │ │ │ │ └── stac_effects_parsers.dart │ │ │ │ │ └── theme │ │ │ │ │ │ ├── stac_button_bar_layout_behavior_parser.dart │ │ │ │ │ │ └── stac_button_text_theme_parser.dart │ │ │ │ ├── parsers.dart │ │ │ │ ├── core │ │ │ │ │ └── stac_action_parser.dart │ │ │ │ ├── actions │ │ │ │ │ └── stac_none_action │ │ │ │ │ │ └── stac_none_action_parser.dart │ │ │ │ └── theme │ │ │ │ │ └── stac_divider_theme_data_parser.dart │ │ │ ├── utils │ │ │ │ ├── utils.dart │ │ │ │ ├── button_utils.dart │ │ │ │ └── input_formatters.dart │ │ │ ├── framework │ │ │ │ └── framework.dart │ │ │ ├── models │ │ │ │ └── models.dart │ │ │ └── services │ │ │ │ └── services.dart │ │ └── stac.dart │ ├── analysis_options.yaml │ └── pubspec_overrides.yaml ├── stac_webview │ ├── lib │ │ └── stac_webview.dart │ ├── analysis_options.yaml │ ├── pubspec_overrides.yaml │ ├── .metadata │ ├── example │ │ └── README.md │ └── .gitignore ├── stac_logger │ ├── lib │ │ ├── stac_logger.dart │ │ └── src │ │ │ ├── log_stub.dart │ │ │ ├── log_interface.dart │ │ │ └── log_io.dart │ ├── analysis_options.yaml │ ├── CHANGELOG.md │ ├── .metadata │ ├── example │ │ └── README.md │ └── .gitignore └── stac_framework │ ├── lib │ └── stac_framework.dart │ ├── analysis_options.yaml │ ├── .metadata │ ├── CHANGELOG.md │ ├── pubspec.yaml │ └── .gitignore ├── assets ├── x.png ├── github.png ├── linkedin.png ├── Welcome to.png ├── playground.png ├── stac_banner.png ├── companies │ ├── bettrdo.jpg │ └── jobhunt.jpg ├── contributor_banner.png └── form_screen_image.png ├── bricks └── stac_parser │ ├── changelog.md │ ├── readme.md │ ├── brick.yaml │ └── __brick__ │ └── {{#snakecase}}stac_{{name}}{{ │ └── snakecase}} │ └── {{#snakecase}}stac_{{name}}{{ │ └── snakecase}}.dart ├── mason.yaml ├── analysis_options.yaml ├── docs ├── favicon.ico ├── assets │ ├── sdui.png │ ├── banner.png │ ├── console.png │ └── hello_world.png ├── actions │ ├── none.mdx │ ├── get_form_value.mdx │ └── delay_action.mdx └── widgets │ └── spacer.mdx ├── pubspec.yaml └── melos.yaml /README.md: -------------------------------------------------------------------------------- 1 | packages/stac/README.md 2 | -------------------------------------------------------------------------------- /examples/movie_app/linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false -------------------------------------------------------------------------------- /examples/counter_example/linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /examples/stac_gallery/devtools_options.yaml: -------------------------------------------------------------------------------- 1 | extensions: 2 | -------------------------------------------------------------------------------- /examples/stac_gallery/linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/text/stac_font_weight.dart: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/x.png -------------------------------------------------------------------------------- /bricks/stac_parser/changelog.md: -------------------------------------------------------------------------------- 1 | ## 0.1.0 2 | 3 | * initial release 🎉 -------------------------------------------------------------------------------- /mason.yaml: -------------------------------------------------------------------------------- 1 | bricks: 2 | stac_parser: 3 | path: bricks/stac_parser -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/widgets/stac_offset/stac_offset.dart: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | analyzer: 2 | exclude: 3 | - bricks/**/__brick__/** -------------------------------------------------------------------------------- /assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/github.png -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/docs/favicon.ico -------------------------------------------------------------------------------- /assets/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/linkedin.png -------------------------------------------------------------------------------- /docs/assets/sdui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/docs/assets/sdui.png -------------------------------------------------------------------------------- /assets/Welcome to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/Welcome to.png -------------------------------------------------------------------------------- /assets/playground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/playground.png -------------------------------------------------------------------------------- /assets/stac_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/stac_banner.png -------------------------------------------------------------------------------- /docs/assets/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/docs/assets/banner.png -------------------------------------------------------------------------------- /packages/stac/lib/src/utils/utils.dart: -------------------------------------------------------------------------------- 1 | export 'package:stac/src/utils/color_utils.dart'; 2 | -------------------------------------------------------------------------------- /docs/assets/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/docs/assets/console.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /docs/assets/hello_world.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/docs/assets/hello_world.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /packages/stac_core/lib/annotations/annotations.dart: -------------------------------------------------------------------------------- 1 | library; 2 | 3 | export 'stac_screen.dart'; 4 | -------------------------------------------------------------------------------- /assets/companies/bettrdo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/companies/bettrdo.jpg -------------------------------------------------------------------------------- /assets/companies/jobhunt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/companies/jobhunt.jpg -------------------------------------------------------------------------------- /assets/contributor_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/contributor_banner.png -------------------------------------------------------------------------------- /assets/form_screen_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/assets/form_screen_image.png -------------------------------------------------------------------------------- /examples/movie_app/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/web/favicon.png -------------------------------------------------------------------------------- /packages/stac/lib/src/utils/button_utils.dart: -------------------------------------------------------------------------------- 1 | enum FloatingActionButtonType { extended, large, medium, small } 2 | -------------------------------------------------------------------------------- /examples/stac_gallery/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/web/favicon.png -------------------------------------------------------------------------------- /examples/counter_example/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/web/favicon.png -------------------------------------------------------------------------------- /examples/movie_app/assets/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/assets/images/image.png -------------------------------------------------------------------------------- /examples/movie_app/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/web/icons/Icon-192.png -------------------------------------------------------------------------------- /examples/movie_app/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/web/icons/Icon-512.png -------------------------------------------------------------------------------- /examples/stac_gallery/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/web/icons/Icon-192.png -------------------------------------------------------------------------------- /examples/stac_gallery/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/web/icons/Icon-512.png -------------------------------------------------------------------------------- /packages/stac_webview/lib/stac_webview.dart: -------------------------------------------------------------------------------- 1 | library; 2 | 3 | export 'package:stac_webview/parsers/stac_webview/stac_webview.dart'; 4 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: stac_workspace 2 | 3 | environment: 4 | sdk: '>=3.1.0 <4.0.0' 5 | 6 | dev_dependencies: 7 | melos: ^6.3.2 8 | -------------------------------------------------------------------------------- /examples/counter_example/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/web/icons/Icon-192.png -------------------------------------------------------------------------------- /examples/counter_example/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/web/icons/Icon-512.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/movie_app/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /examples/movie_app/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /packages/stac_logger/lib/stac_logger.dart: -------------------------------------------------------------------------------- 1 | /// A reusable logging utility for the Stac framework. 2 | library; 3 | 4 | export 'src/log.dart'; 5 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/movie_app/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /examples/counter_example/README.md: -------------------------------------------------------------------------------- 1 | # Counter Example 2 | 3 | A counter example using Stac showcasing how to build a Custom Widget and Action in Stac. 4 | -------------------------------------------------------------------------------- /examples/counter_example/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /examples/stac_gallery/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /examples/stac_gallery/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /examples/counter_example/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /examples/counter_example/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/movie_app/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /examples/stac_gallery/assets/images/example_image_1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/assets/images/example_image_1.jpeg -------------------------------------------------------------------------------- /examples/stac_gallery/assets/images/example_image_2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/assets/images/example_image_2.jpeg -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /packages/stac/lib/src/framework/framework.dart: -------------------------------------------------------------------------------- 1 | export 'stac.dart'; 2 | export 'stac_app.dart'; 3 | export 'stac_registry.dart'; 4 | export 'stac_service.dart'; 5 | -------------------------------------------------------------------------------- /packages/stac/lib/src/models/models.dart: -------------------------------------------------------------------------------- 1 | export 'package:stac/src/models/stac_cache_config.dart'; 2 | export 'package:stac/src/models/stac_screen_cache.dart'; 3 | -------------------------------------------------------------------------------- /packages/stac_core/lib/core/core.dart: -------------------------------------------------------------------------------- 1 | library; 2 | 3 | export 'stac_action.dart'; 4 | export 'stac_widget.dart'; 5 | export '../annotations/annotations.dart'; 6 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/stac_gallery/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /packages/stac/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | analyzer: 4 | exclude: 5 | - lib/**.g.dart 6 | - lib/**.freezed.dart -------------------------------------------------------------------------------- /packages/stac_logger/lib/src/log_stub.dart: -------------------------------------------------------------------------------- 1 | import 'package:stac_logger/src/log_interface.dart'; 2 | 3 | LogInterface createLogger() => throw UnimplementedError(); 4 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/counter_example/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /packages/stac_core/pubspec_overrides.yaml: -------------------------------------------------------------------------------- 1 | # melos_managed_dependency_overrides: stac_logger 2 | dependency_overrides: 3 | stac_logger: 4 | path: ../stac_logger 5 | -------------------------------------------------------------------------------- /examples/stac_gallery/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | analyzer: 4 | exclude: 5 | - lib/**.g.dart 6 | - lib/**.freezed.dart -------------------------------------------------------------------------------- /packages/stac/lib/src/services/services.dart: -------------------------------------------------------------------------------- 1 | export 'package:stac/src/services/stac_cache_service.dart'; 2 | export 'package:stac/src/services/stac_network_service.dart'; 3 | -------------------------------------------------------------------------------- /packages/stac_webview/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | analyzer: 4 | exclude: 5 | - lib/**.g.dart 6 | - lib/**.freezed.dart -------------------------------------------------------------------------------- /examples/movie_app/macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /packages/stac_framework/lib/stac_framework.dart: -------------------------------------------------------------------------------- 1 | library; 2 | 3 | export 'package:stac_framework/src/stac_action_parser.dart'; 4 | export 'package:stac_framework/src/stac_parser.dart'; 5 | -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/counter_example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /packages/stac_logger/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | # Additional information about this file can be found at 4 | # https://dart.dev/guides/language/analysis-options 5 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /packages/stac_framework/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | # Additional information about this file can be found at 4 | # https://dart.dev/guides/language/analysis-options 5 | -------------------------------------------------------------------------------- /examples/movie_app/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /packages/stac_logger/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 1.1.0 2 | 3 | * Add example for the logger 4 | * Add WASM implementation for logger with improved documentation 5 | 6 | ## 1.0.0 7 | 8 | * Initial release of the stac_logger package -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/kotlin/com/example/movie_app/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.movie_app 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity : FlutterActivity() 6 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/movie_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/decoration/stac_decoration_image/stac_decoration_image_parser.dart: -------------------------------------------------------------------------------- 1 | export 'stac_decoration_image_parser_web.dart' 2 | if (dart.library.io) 'stac_decoration_image_parser_io.dart'; 3 | -------------------------------------------------------------------------------- /packages/stac_core/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | json_serializable: 5 | options: 6 | explicit_to_json: true 7 | field_rename: none 8 | include_if_null: true -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/kotlin/com/stac/stac_gallery/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.stac.stac_gallery 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() 6 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/stac_gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /packages/stac_core/lib/stac_core.dart: -------------------------------------------------------------------------------- 1 | library; 2 | 3 | export 'actions/actions.dart'; 4 | export 'annotations/annotations.dart'; 5 | export 'core/core.dart'; 6 | export 'foundation/foundation.dart'; 7 | export 'widgets/widgets.dart'; 8 | -------------------------------------------------------------------------------- /examples/counter_example/devtools_options.yaml: -------------------------------------------------------------------------------- 1 | description: This file stores settings for Dart & Flutter DevTools. 2 | documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states 3 | extensions: 4 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/StacDev/stac/HEAD/examples/counter_example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /examples/movie_app/linux/runner/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /examples/stac_gallery/linux/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/kotlin/com/example/counter_example/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.counter_example 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() 6 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/counter_example/linux/runner/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/actions/none.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "None Action" 3 | description: "Documentation for None Action" 4 | --- 5 | 6 | A default action that does nothing. 7 | 8 | ## Example JSON 9 | 10 | ```json 11 | { 12 | "actionType": "none" 13 | } 14 | ``` 15 | 16 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_icon_type.dart: -------------------------------------------------------------------------------- 1 | /// Icon design system types supported by Stac. 2 | enum StacIconType { 3 | /// Material Design icons (Android-style). 4 | material, 5 | 6 | /// Cupertino icons (iOS-style). 7 | cupertino, 8 | } 9 | -------------------------------------------------------------------------------- /examples/movie_app/linux/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void fl_register_plugins(FlPluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /examples/stac_gallery/linux/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void fl_register_plugins(FlPluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/geometry/stac_size_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacSizeParser on StacSize { 5 | Size get parse { 6 | return Size(width, height); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/counter_example/linux/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void fl_register_plugins(FlPluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /examples/movie_app/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip 6 | -------------------------------------------------------------------------------- /examples/movie_app/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /examples/stac_gallery/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/geometry/stac_offset_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacOffsetParser on StacOffset { 5 | Offset get parse { 6 | return Offset(dx, dy); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/stac/pubspec_overrides.yaml: -------------------------------------------------------------------------------- 1 | # melos_managed_dependency_overrides: stac_core,stac_framework,stac_logger 2 | dependency_overrides: 3 | stac_core: 4 | path: ../stac_core 5 | stac_framework: 6 | path: ../stac_framework 7 | stac_logger: 8 | path: ../stac_logger 9 | -------------------------------------------------------------------------------- /examples/counter_example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip 6 | -------------------------------------------------------------------------------- /examples/counter_example/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | 10 | void RegisterPlugins(flutter::PluginRegistry* registry) { 11 | } 12 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip 6 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/text/stac_smart_dashes_type.dart: -------------------------------------------------------------------------------- 1 | /// Mirrors Flutter's [SmartDashesType] for text input. 2 | enum StacSmartDashesType { 3 | /// Smart dashes are disabled. 4 | disabled, 5 | 6 | /// Smart dashes are enabled when appropriate. 7 | enabled, 8 | } 9 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/text/stac_smart_quotes_type.dart: -------------------------------------------------------------------------------- 1 | /// Mirrors Flutter's [SmartQuotesType] for text input. 2 | enum StacSmartQuotesType { 3 | /// Smart quotes are disabled. 4 | disabled, 5 | 6 | /// Smart quotes are enabled when appropriate. 7 | enabled, 8 | } 9 | -------------------------------------------------------------------------------- /packages/stac_webview/pubspec_overrides.yaml: -------------------------------------------------------------------------------- 1 | # melos_managed_dependency_overrides: stac_framework, stac_core,stac_logger 2 | dependency_overrides: 3 | stac_framework: 4 | path: ../stac_framework 5 | stac_core: 6 | path: ../stac_core 7 | stac_logger: 8 | path: ../stac_logger 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @main 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/colors/stac_brightness.dart: -------------------------------------------------------------------------------- 1 | /// Mirrors Flutter's [Brightness]. 2 | enum StacBrightness { 3 | /// Light mode. 4 | light, 5 | 6 | /// Dark mode. 7 | dark, 8 | 9 | /// System default (treated as light/dark based on platform theme). 10 | system, 11 | } 12 | -------------------------------------------------------------------------------- /bricks/stac_parser/readme.md: -------------------------------------------------------------------------------- 1 | # Stac Parser 2 | 3 | [![Powered by Mason](https://img.shields.io/endpoint?url=https%3A%2F%2Ftinyurl.com%2Fmason-badge)](https://github.com/felangel/mason) 4 | 5 | A new Stac Parser brick which allows you the generate the parser template for Stac. 6 | 7 | _Generated by [mason][1] 🧱_ -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/alignment/stac_alignment_geometry_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacAlignmentGeometryParser on StacAlignmentGeometry { 5 | Alignment get parse { 6 | return Alignment(dx, dy); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_options_view_open_direction.dart: -------------------------------------------------------------------------------- 1 | /// Indicates the direction in which the options view opens for [Autocomplete]. 2 | enum StacOptionsViewOpenDirection { 3 | /// Opens the options view upwards. 4 | up, 5 | 6 | /// Opens the options view downwards. 7 | down, 8 | } 9 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/movie_app/lib/constants/app_constants.dart: -------------------------------------------------------------------------------- 1 | library; 2 | 3 | /// Applicationwide constants 4 | /// 5 | /// This file exports all constants used throughout the application 6 | /// for convenient access via a single import. 7 | export 'app_api.dart'; 8 | export 'app_assets.dart'; 9 | export 'app_strings.dart'; 10 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/web_view_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scaffold", 3 | "appBar": { 4 | "type": "appBar", 5 | "title": { 6 | "type": "text", 7 | "data": "WebView" 8 | } 9 | }, 10 | "body": { 11 | "type": "webView", 12 | "url": "https://github.com/StacDev/stac" 13 | } 14 | } -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_image_type.dart: -------------------------------------------------------------------------------- 1 | /// Image source types supported by Stac. 2 | enum StacImageType { 3 | /// Image loaded from a local file path. 4 | file, 5 | 6 | /// Image loaded from a network URL. 7 | network, 8 | 9 | /// Image loaded from application assets. 10 | asset, 11 | } 12 | -------------------------------------------------------------------------------- /examples/counter_example/lib/counter/cubit/counter_cubit.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_bloc/flutter_bloc.dart'; 2 | 3 | class CounterCubit extends Cubit { 4 | CounterCubit(int? initialCount) : super(initialCount ?? 0); 5 | 6 | void increment(int value) => emit(state + value); 7 | void decrement(int value) => emit(state - value); 8 | } 9 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/to/reference-keystore 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/forms/stac_max_length_enforcement.dart: -------------------------------------------------------------------------------- 1 | /// Mirrors Flutter's [MaxLengthEnforcement] for text input. 2 | enum StacMaxLengthEnforcement { 3 | /// Characters past the limit are still allowed, but the error is shown. 4 | none, 5 | 6 | /// Enforces the character limit at the platform level. 7 | enforced, 8 | } 9 | -------------------------------------------------------------------------------- /examples/counter_example/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/to/reference-keystore 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/parsers.dart: -------------------------------------------------------------------------------- 1 | export 'package:stac/src/parsers/actions/actions.dart'; 2 | export 'package:stac/src/parsers/core/stac_action_parser.dart'; 3 | export 'package:stac/src/parsers/core/stac_widget_parser.dart'; 4 | export 'package:stac/src/parsers/theme/themes.dart'; 5 | export 'package:stac/src/parsers/widgets/widgets.dart'; 6 | -------------------------------------------------------------------------------- /examples/movie_app/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | .cxx/ 9 | 10 | # Remember to never publicly share your keystore. 11 | # See https://flutter.dev/to/reference-keystore 12 | key.properties 13 | **/*.keystore 14 | **/*.jks 15 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/stac_core/README.md: -------------------------------------------------------------------------------- 1 | ## stac_core 2 | 3 | A pure Dart package that provides the core functionalities and common interfaces for the [Stac](https://pub.dev/packages/stac). 4 | 5 | This package serves as the foundation for building server-driven UIs with Stac by defining core models, functionalities, and common interfaces that stac package depend upon. -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_overflow_bar_alignment.dart: -------------------------------------------------------------------------------- 1 | /// How children within an OverflowBar should be placed horizontally. 2 | enum StacOverflowBarAlignment { 3 | /// Place children at the start. 4 | start, 5 | 6 | /// Place children at the end. 7 | end, 8 | 9 | /// Place children in the center. 10 | center, 11 | } 12 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/forms/stac_autovalidate_mode.dart: -------------------------------------------------------------------------------- 1 | /// Mirrors Flutter's [AutovalidateMode] for form fields. 2 | enum StacAutovalidateMode { 3 | /// Validation is disabled. 4 | disabled, 5 | 6 | /// Validation occurs after every build. 7 | always, 8 | 9 | /// Validation occurs after user interaction. 10 | onUserInteraction, 11 | } 12 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/chore.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Chore 3 | about: Other changes that don't modify src or test files 4 | title: "chore: " 5 | labels: chore 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what change is needed and why. If this changes code then please use another issue type. 11 | 12 | **Requirements** 13 | 14 | - [ ] No functional changes to the code -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Documentation 3 | about: Improve the documentation so all collaborators have a common understanding 4 | title: "docs: " 5 | labels: documentation 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what documentation you are looking to add or improve. 11 | 12 | **Requirements** 13 | 14 | - [ ] Requirements go here -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/navigation/stac_tab_bar_indicator_size.dart: -------------------------------------------------------------------------------- 1 | /// Defines how the tab indicator's size is computed. 2 | /// 3 | /// Maps to Flutter's TabBarIndicatorSize. 4 | enum StacTabBarIndicatorSize { 5 | /// Indicator will match the entire tab's width. 6 | tab, 7 | 8 | /// Indicator will match the width of the tab's label. 9 | label, 10 | } 11 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_dropdown_menu_close_behavior.dart: -------------------------------------------------------------------------------- 1 | /// Controls how a [DropdownMenu] responds to taps outside of it. 2 | enum StacDropdownMenuCloseBehavior { 3 | /// Close when tapping anywhere. 4 | all, 5 | 6 | /// Close only when tapping the menu itself. 7 | self, 8 | 9 | /// Do not close automatically. 10 | none, 11 | } 12 | -------------------------------------------------------------------------------- /examples/movie_app/pubspec_overrides.yaml: -------------------------------------------------------------------------------- 1 | # melos_managed_dependency_overrides: stac,stac_core,stac_framework,stac_logger 2 | dependency_overrides: 3 | stac: 4 | path: ../../packages/stac 5 | stac_core: 6 | path: ../../packages/stac_core 7 | stac_framework: 8 | path: ../../packages/stac_framework 9 | stac_logger: 10 | path: ../../packages/stac_logger 11 | -------------------------------------------------------------------------------- /packages/stac_core/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "077b4a4ce10a07b82caa6897f0c626f9c0a3ac90" 8 | channel: "stable" 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /examples/counter_example/pubspec_overrides.yaml: -------------------------------------------------------------------------------- 1 | # melos_managed_dependency_overrides: stac,stac_core,stac_framework,stac_logger 2 | dependency_overrides: 3 | stac: 4 | path: ../../packages/stac 5 | stac_core: 6 | path: ../../packages/stac_core 7 | stac_framework: 8 | path: ../../packages/stac_framework 9 | stac_logger: 10 | path: ../../packages/stac_logger 11 | -------------------------------------------------------------------------------- /examples/movie_app/ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /packages/stac_framework/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "ff5b5b5fa6f35b717667719ddfdb1521d8bdd05a" 8 | channel: "stable" 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /packages/stac_logger/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "b25305a8832cfc6ba632a7f87ad455e319dccce8" 8 | channel: "stable" 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /packages/stac_webview/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "ff5b5b5fa6f35b717667719ddfdb1521d8bdd05a" 8 | channel: "stable" 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/layout/stac_vertical_direction.dart: -------------------------------------------------------------------------------- 1 | /// Vertical direction options for layout widgets. 2 | /// 3 | /// Determines the direction in which children are laid out vertically. 4 | enum StacVerticalDirection { 5 | /// Children are laid out from bottom to top. 6 | up, 7 | 8 | /// Children are laid out from top to bottom (default). 9 | down, 10 | } 11 | -------------------------------------------------------------------------------- /examples/counter_example/ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/movie_app/macos/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.network.client 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/counter_example/macos/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/movie_app/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /examples/stac_gallery/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/geometry/stac_visual_density_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacVisualDensityParser on StacVisualDensity { 5 | VisualDensity get parse { 6 | return VisualDensity( 7 | horizontal: horizontal ?? 0.0, 8 | vertical: vertical ?? 0.0, 9 | ); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/text/stac_stroke_cap.dart: -------------------------------------------------------------------------------- 1 | /// Stroke cap styles for line endings. 2 | /// 3 | /// Mirrors Flutter's [StrokeCap] values. 4 | enum StacStrokeCap { 5 | /// Flat end at the edge of the path. 6 | butt, 7 | 8 | /// Rounded end with a semicircle extension. 9 | round, 10 | 11 | /// Square end that extends half the stroke width beyond the end. 12 | square, 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_logger/lib/src/log_interface.dart: -------------------------------------------------------------------------------- 1 | /// Abstract interface for logging functionality 2 | abstract class LogInterface { 3 | /// Log a debug message 4 | void d(dynamic message); 5 | 6 | /// Log an info message 7 | void i(dynamic message); 8 | 9 | /// Log a warning message 10 | void w(dynamic message); 11 | 12 | /// Log an error message 13 | void e(dynamic message); 14 | } 15 | -------------------------------------------------------------------------------- /examples/counter_example/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @main 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | 10 | override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { 11 | return true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import FlutterMacOS 2 | import Cocoa 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser.dart: -------------------------------------------------------------------------------- 1 | // This file handles conditional imports based on platform 2 | // It exports the appropriate implementation of StacImageParser 3 | 4 | export 'stac_image_parser_stub.dart' 5 | if (dart.library.io) 'stac_image_parser_io.dart' 6 | if (dart.library.html) 'stac_image_parser_web.dart' 7 | if (dart.library.wasm) 'stac_image_parser_web.dart'; 8 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @main 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | 10 | override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { 11 | return true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_axis_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacAxisParser on StacAxis { 5 | Axis get parse { 6 | switch (this) { 7 | case StacAxis.horizontal: 8 | return Axis.horizontal; 9 | case StacAxis.vertical: 10 | return Axis.vertical; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /examples/movie_app/linux/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /examples/movie_app/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/geometry/stac_edge_insets_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacEdgeInsetsParser on StacEdgeInsets { 5 | EdgeInsets get parse { 6 | return EdgeInsets.only( 7 | left: left ?? 0, 8 | right: right ?? 0, 9 | top: top ?? 0, 10 | bottom: bottom ?? 0, 11 | ); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_flex_fit_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacFlexFitParser on StacFlexFit { 5 | FlexFit get parse { 6 | switch (this) { 7 | case StacFlexFit.tight: 8 | return FlexFit.tight; 9 | case StacFlexFit.loose: 10 | return FlexFit.loose; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_core/example/README.md: -------------------------------------------------------------------------------- 1 | # Example 2 | 3 | A pure Dart package that provides the core functionalities and common interfaces for the [Stac](https://pub.dev/packages/stac). 4 | 5 | This package serves as the foundation for building server-driven UIs with Stac by defining core models, functionalities, and common interfaces that stac package depend upon. 6 | 7 | For example please refer to [Stac](https://pub.dev/packages/stac). -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/interaction/stac_scroll_view_keyboard_dismiss_behavior.dart: -------------------------------------------------------------------------------- 1 | /// Defines how a scroll view in Stac should dismiss the keyboard. 2 | /// 3 | /// Corresponds to Flutter's [ScrollViewKeyboardDismissBehavior]. 4 | enum StacScrollViewKeyboardDismissBehavior { 5 | /// The keyboard is dismissed manually. 6 | manual, 7 | 8 | /// The keyboard is dismissed when a drag begins. 9 | onDrag, 10 | } 11 | -------------------------------------------------------------------------------- /examples/counter_example/linux/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /examples/counter_example/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /examples/stac_gallery/linux/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /examples/stac_gallery/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /examples/counter_example/android/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | rootProject.buildDir = "../build" 9 | subprojects { 10 | project.buildDir = "${rootProject.buildDir}/${project.name}" 11 | } 12 | subprojects { 13 | project.evaluationDependsOn(":app") 14 | } 15 | 16 | tasks.register("clean", Delete) { 17 | delete rootProject.buildDir 18 | } 19 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | rootProject.buildDir = "../build" 9 | subprojects { 10 | project.buildDir = "${rootProject.buildDir}/${project.name}" 11 | } 12 | subprojects { 13 | project.evaluationDependsOn(":app") 14 | } 15 | 16 | tasks.register("clean", Delete) { 17 | delete rootProject.buildDir 18 | } 19 | -------------------------------------------------------------------------------- /examples/stac_gallery/lib/app/home/cubit/home_state.dart: -------------------------------------------------------------------------------- 1 | part of 'home_cubit.dart'; 2 | 3 | @immutable 4 | sealed class HomeState { 5 | final List> items; 6 | 7 | const HomeState({required this.items}); 8 | } 9 | 10 | class HomeLoading extends HomeState { 11 | const HomeLoading({super.items = const []}); 12 | } 13 | 14 | class HomeLoaded extends HomeState { 15 | const HomeLoaded({required super.items}); 16 | } 17 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_box_shape_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBoxShapeParser on StacBoxShape { 5 | BoxShape get parse { 6 | switch (this) { 7 | case StacBoxShape.rectangle: 8 | return BoxShape.rectangle; 9 | case StacBoxShape.circle: 10 | return BoxShape.circle; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_font_style_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacFontStyleParser on StacFontStyle { 5 | FontStyle get parse { 6 | switch (this) { 7 | case StacFontStyle.normal: 8 | return FontStyle.normal; 9 | case StacFontStyle.italic: 10 | return FontStyle.italic; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/stac_core/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | # Additional information about this file can be found at 4 | # https://dart.dev/guides/language/analysis-options 5 | 6 | linter: 7 | rules: 8 | # Documentation rules 9 | public_member_api_docs: true 10 | 11 | analyzer: 12 | exclude: 13 | # Exclude generated files from documentation requirements 14 | - "lib/widgets/icon/stac_icons.dart" 15 | -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/stac_gallery/pubspec_overrides.yaml: -------------------------------------------------------------------------------- 1 | # melos_managed_dependency_overrides: stac,stac_core,stac_framework,stac_logger,stac_webview 2 | dependency_overrides: 3 | stac: 4 | path: ../../packages/stac 5 | stac_core: 6 | path: ../../packages/stac_core 7 | stac_framework: 8 | path: ../../packages/stac_framework 9 | stac_logger: 10 | path: ../../packages/stac_logger 11 | stac_webview: 12 | path: ../../packages/stac_webview 13 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_border_style_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBorderStyleParser on StacBorderStyle { 5 | BorderStyle get parse { 6 | switch (this) { 7 | case StacBorderStyle.none: 8 | return BorderStyle.none; 9 | case StacBorderStyle.solid: 10 | return BorderStyle.solid; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/navigation/stac_floating_action_button_type.dart: -------------------------------------------------------------------------------- 1 | /// Enum representing the different types of floating action buttons. 2 | enum StacFloatingActionButtonType { 3 | /// Extended floating action button with icon and label. 4 | extended, 5 | 6 | /// Large floating action button. 7 | large, 8 | 9 | /// Medium floating action button. 10 | medium, 11 | 12 | /// Small floating action button. 13 | small, 14 | } 15 | -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/alignment/stac_main_axis_size_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacMainAxisSizeParser on StacMainAxisSize { 5 | MainAxisSize get parse { 6 | switch (this) { 7 | case StacMainAxisSize.min: 8 | return MainAxisSize.min; 9 | case StacMainAxisSize.max: 10 | return MainAxisSize.max; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/animation/stac_duration_parsers.dart: -------------------------------------------------------------------------------- 1 | import 'package:stac_core/stac_core.dart'; 2 | 3 | extension StacDurationParser on StacDuration { 4 | Duration get parse { 5 | return Duration( 6 | days: days ?? 0, 7 | hours: hours ?? 0, 8 | minutes: minutes ?? 0, 9 | seconds: seconds ?? 0, 10 | milliseconds: milliseconds ?? 0, 11 | microseconds: microseconds ?? 0, 12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_direction_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTextDirectionParser on StacTextDirection { 5 | TextDirection get parse { 6 | switch (this) { 7 | case StacTextDirection.rtl: 8 | return TextDirection.rtl; 9 | case StacTextDirection.ltr: 10 | return TextDirection.ltr; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_radio_type.dart: -------------------------------------------------------------------------------- 1 | /// Defines which platform style of radio to render. 2 | /// 3 | /// Mirrors Flutter variants used across Material/Cupertino/adaptive APIs. 4 | enum StacRadioType { 5 | /// Renders a platform-adaptive [Radio], using Cupertino on iOS and Material elsewhere. 6 | adaptive, 7 | 8 | /// Renders a [CupertinoRadio]. 9 | cupertino, 10 | 11 | /// Renders a Material [Radio]. 12 | material, 13 | } 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: A new feature to be added to the project 4 | title: "feat: " 5 | labels: feature 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what you are looking to add. The more context the better. 11 | 12 | **Requirements** 13 | 14 | - [ ] Checklist of requirements to be fulfilled 15 | 16 | **Additional Context** 17 | 18 | Add any other context or screenshots about the feature request go here. -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/core/stac_action_parser.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/material.dart'; 4 | import 'package:stac/stac.dart'; 5 | import 'package:stac_core/stac_core.dart'; 6 | 7 | extension StacActionParserExtension on StacAction? { 8 | FutureOr parse(BuildContext context) { 9 | if (this == null) { 10 | return null; 11 | } 12 | 13 | return Stac.onCallFromJson(this!.toJson(), context); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/alignment/stac_icon_alignment_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacIconAlignmentParser on StacIconAlignment { 5 | IconAlignment get parse { 6 | switch (this) { 7 | case StacIconAlignment.start: 8 | return IconAlignment.start; 9 | case StacIconAlignment.end: 10 | return IconAlignment.end; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_switch_type.dart: -------------------------------------------------------------------------------- 1 | /// Defines which platform style of switch to render. 2 | /// 3 | /// Mirrors Flutter variants used across Material/Cupertino/adaptive APIs. 4 | enum StacSwitchType { 5 | /// Renders a platform-adaptive [Switch], using Cupertino on iOS and Material elsewhere. 6 | adaptive, 7 | 8 | /// Renders a [CupertinoSwitch]. 9 | cupertino, 10 | 11 | /// Renders a Material [Switch]. 12 | material, 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/stac.dart: -------------------------------------------------------------------------------- 1 | export 'package:stac/src/framework/framework.dart'; 2 | export 'package:stac/src/models/models.dart'; 3 | export 'package:stac/src/parsers/actions/actions.dart'; 4 | export 'package:stac/src/parsers/parsers.dart'; 5 | export 'package:stac/src/services/services.dart'; 6 | export 'package:stac/src/utils/utils.dart'; 7 | // Theme exports 8 | export 'package:stac_core/stac_core.dart' show StacTheme; 9 | export 'package:stac_framework/stac_framework.dart'; 10 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_circle_border_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | import 'stac_border_side_parser.dart'; 5 | 6 | extension StacCircleBorderParser on StacCircleBorder { 7 | CircleBorder parse(BuildContext context) { 8 | return CircleBorder( 9 | side: side?.parse(context) ?? BorderSide.none, 10 | eccentricity: eccentricity ?? 0.0, 11 | ); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | 4 | @main 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/lib/app/example/example_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:freezed_annotation/freezed_annotation.dart'; 2 | 3 | part 'example_screen.freezed.dart'; 4 | part 'example_screen.g.dart'; 5 | 6 | @freezed 7 | abstract class ExampleScreen with _$ExampleScreen { 8 | const factory ExampleScreen({ 9 | required String assetPath, 10 | }) = _ExampleScreen; 11 | 12 | factory ExampleScreen.fromJson(Map json) => 13 | _$ExampleScreenFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_beveled_rectangle_border_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | import 'stac_border_side_parser.dart'; 5 | 6 | extension StacBeveledRectangleBorderParser on StacBeveledRectangleBorder { 7 | BeveledRectangleBorder parse(BuildContext context) { 8 | return BeveledRectangleBorder( 9 | side: side?.parse(context) ?? BorderSide.none, 10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/layout/stac_wrap_cross_alignment.dart: -------------------------------------------------------------------------------- 1 | /// Cross-axis alignment options for Wrap widget runs. 2 | /// 3 | /// Determines how runs (lines) of wrapped children are aligned along 4 | /// the cross axis of the wrap layout. 5 | enum StacWrapCrossAlignment { 6 | /// Align runs to the start of the cross axis. 7 | start, 8 | 9 | /// Align runs to the end of the cross axis. 10 | end, 11 | 12 | /// Center runs along the cross axis. 13 | center, 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/navigation/stac_tab_alignment.dart: -------------------------------------------------------------------------------- 1 | /// Controls how tabs are aligned within a TabBar. 2 | /// 3 | /// Maps to Flutter's TabAlignment (Material 3). 4 | enum StacTabAlignment { 5 | /// Align tabs to the start. 6 | start, 7 | 8 | /// Align tabs to the start with additional offset behavior. 9 | startOffset, 10 | 11 | /// Stretch tabs to fill the available width. 12 | fill, 13 | 14 | /// Center tabs in the available width. 15 | center, 16 | } 17 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | 4 | @main 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_width_basis_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTextWidthBasisParser on StacTextWidthBasis { 5 | TextWidthBasis get parse { 6 | switch (this) { 7 | case StacTextWidthBasis.parent: 8 | return TextWidthBasis.parent; 9 | case StacTextWidthBasis.longestLine: 10 | return TextWidthBasis.longestLine; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_vertical_direction_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacVerticalDirectionParser on StacVerticalDirection { 5 | VerticalDirection get parse { 6 | switch (this) { 7 | case StacVerticalDirection.up: 8 | return VerticalDirection.up; 9 | case StacVerticalDirection.down: 10 | return VerticalDirection.down; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_smart_dashes_type_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacSmartDashesTypeParser on StacSmartDashesType { 5 | SmartDashesType get parse { 6 | switch (this) { 7 | case StacSmartDashesType.disabled: 8 | return SmartDashesType.disabled; 9 | case StacSmartDashesType.enabled: 10 | return SmartDashesType.enabled; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_smart_quotes_type_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacSmartQuotesTypeParser on StacSmartQuotesType { 5 | SmartQuotesType get parse { 6 | switch (this) { 7 | case StacSmartQuotesType.disabled: 8 | return SmartQuotesType.disabled; 9 | case StacSmartQuotesType.enabled: 10 | return SmartQuotesType.enabled; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/stac_gallery/linux/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/geometry/stac_box_constraints_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBoxConstraintsParser on StacBoxConstraints { 5 | BoxConstraints get parse { 6 | return BoxConstraints( 7 | minWidth: minWidth ?? 0.0, 8 | maxWidth: maxWidth ?? double.infinity, 9 | minHeight: minHeight ?? 0.0, 10 | maxHeight: maxHeight ?? double.infinity, 11 | ); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/layout/stac_axis.dart: -------------------------------------------------------------------------------- 1 | /// Axis direction options for layout widgets. 2 | /// 3 | /// Defines the main axis direction for flex layouts like Row and Column. 4 | enum StacAxis { 5 | /// Horizontal axis (left to right). 6 | /// 7 | /// Used by Row widgets where children are arranged horizontally. 8 | horizontal, 9 | 10 | /// Vertical axis (top to bottom). 11 | /// 12 | /// Used by Column widgets where children are arranged vertically. 13 | vertical, 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_list_tile_style.dart: -------------------------------------------------------------------------------- 1 | /// Defines the visual properties of a ListTile. 2 | /// 3 | /// Used to choose between a standard ListTile appearance ([list]) 4 | /// or one that is typically used in a [Drawer] ([drawer]). 5 | enum StacListTileStyle { 6 | /// A typical list tile. 7 | /// This is the default style. 8 | list, 9 | 10 | /// A list tile that is typically used in a [Drawer]. 11 | /// This style is often more compact. 12 | drawer, 13 | } 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/example_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Example Request 3 | about: Suggest a new example or ask for clarification about an existing one 4 | title: "ex: " 5 | labels: feature 6 | --- 7 | 8 | **Description** 9 | 10 | Clearly describe what example are you looking for. The more context the better. 11 | 12 | **Requirements** 13 | 14 | - [ ] Checklist of requirements to be fulfilled 15 | 16 | **Additional Context** 17 | 18 | Add any other context or screenshots about the example request go here. -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/movie_app/linux/runner/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/interaction/stac_drag_start_behavior_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/gestures.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacDragStartBehaviorParser on StacDragStartBehavior { 5 | DragStartBehavior get parse { 6 | switch (this) { 7 | case StacDragStartBehavior.down: 8 | return DragStartBehavior.down; 9 | case StacDragStartBehavior.start: 10 | return DragStartBehavior.start; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/counter_example/linux/runner/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @main 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/lib/app/details/details_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class DetailsScreen extends StatelessWidget { 4 | const DetailsScreen({super.key}); 5 | 6 | @override 7 | Widget build(BuildContext context) { 8 | return Scaffold( 9 | appBar: AppBar( 10 | title: const Text('Details'), 11 | ), 12 | body: const Center( 13 | child: Text('This is a flutter widget created in example app.'), 14 | ), 15 | ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | com.apple.security.network.client 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/interaction/stac_switch_type_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:stac_core/stac_core.dart'; 2 | 3 | extension StacSwitchTypeParser on StacSwitchType { 4 | StacSwitchType get parse { 5 | switch (this) { 6 | case StacSwitchType.adaptive: 7 | return StacSwitchType.adaptive; 8 | case StacSwitchType.cupertino: 9 | return StacSwitchType.cupertino; 10 | case StacSwitchType.material: 11 | return StacSwitchType.material; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_stack_fit_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacStackFitParser on StacStackFit { 5 | StackFit get parse { 6 | switch (this) { 7 | case StacStackFit.loose: 8 | return StackFit.loose; 9 | case StacStackFit.expand: 10 | return StackFit.expand; 11 | case StacStackFit.passthrough: 12 | return StackFit.passthrough; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/colors/stac_brightness_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBrightnessParser on StacBrightness { 5 | Brightness get parse { 6 | switch (this) { 7 | case StacBrightness.light: 8 | return Brightness.light; 9 | case StacBrightness.dark: 10 | return Brightness.dark; 11 | case StacBrightness.system: 12 | return Brightness.light; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/navigation/stac_tab_bar_indicator_size_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTabBarIndicatorSizeParser on StacTabBarIndicatorSize { 5 | TabBarIndicatorSize get parse { 6 | switch (this) { 7 | case StacTabBarIndicatorSize.label: 8 | return TabBarIndicatorSize.label; 9 | case StacTabBarIndicatorSize.tab: 10 | return TabBarIndicatorSize.tab; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_snack_bar_behavior.dart: -------------------------------------------------------------------------------- 1 | /// Behavior of a SnackBar's position. 2 | /// 3 | /// Mirrors Flutter's [SnackBarBehavior] without importing Flutter into core. 4 | /// - `fixed`: SnackBar is anchored to the bottom. 5 | /// - `floating`: SnackBar floats above content with margins. 6 | enum StacSnackBarBehavior { 7 | /// SnackBar is anchored to the bottom of the screen. 8 | fixed, 9 | 10 | /// SnackBar floats above content with margins around it. 11 | floating, 12 | } 13 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/forms/stac_input_formatter_type_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:stac/src/utils/input_formatters.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacInputFormatterTypeCoreParser on StacInputFormatterType { 5 | InputFormatterType get parse { 6 | switch (this) { 7 | case StacInputFormatterType.allow: 8 | return InputFormatterType.allow; 9 | case StacInputFormatterType.deny: 10 | return InputFormatterType.deny; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/forms/stac_max_length_enforcement_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacMaxLengthEnforcementParser on StacMaxLengthEnforcement { 5 | MaxLengthEnforcement get parse { 6 | switch (this) { 7 | case StacMaxLengthEnforcement.none: 8 | return MaxLengthEnforcement.none; 9 | case StacMaxLengthEnforcement.enforced: 10 | return MaxLengthEnforcement.enforced; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/movie_app/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /examples/counter_example/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /examples/stac_gallery/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_border_radius_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBorderRadiusParser on StacBorderRadius { 5 | BorderRadius get parse { 6 | return BorderRadius.only( 7 | topLeft: Radius.circular(topLeft ?? 0.0), 8 | topRight: Radius.circular(topRight ?? 0.0), 9 | bottomLeft: Radius.circular(bottomLeft ?? 0.0), 10 | bottomRight: Radius.circular(bottomRight ?? 0.0), 11 | ); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_stroke_cap_parser.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | 3 | import 'package:stac_core/stac_core.dart'; 4 | 5 | extension StacStrokeCapParser on StacStrokeCap? { 6 | StrokeCap? get parse { 7 | switch (this) { 8 | case StacStrokeCap.butt: 9 | return StrokeCap.butt; 10 | case StacStrokeCap.round: 11 | return StrokeCap.round; 12 | case StacStrokeCap.square: 13 | return StrokeCap.square; 14 | default: 15 | return null; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_material_tap_target_size_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacMaterialTapTargetSizeParser on StacMaterialTapTargetSize { 5 | MaterialTapTargetSize get parse { 6 | switch (this) { 7 | case StacMaterialTapTargetSize.padded: 8 | return MaterialTapTargetSize.padded; 9 | case StacMaterialTapTargetSize.shrinkWrap: 10 | return MaterialTapTargetSize.shrinkWrap; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_image_repeat.dart: -------------------------------------------------------------------------------- 1 | /// How to paint any portions of a box not covered by an image. 2 | enum StacImageRepeat { 3 | /// Repeat the image in both the x and y directions until the box is filled. 4 | repeat, 5 | 6 | /// Repeat the image in the x direction until the box is filled horizontally. 7 | repeatX, 8 | 9 | /// Repeat the image in the y direction until the box is filled vertically. 10 | repeatY, 11 | 12 | /// Leave uncovered portions of the box transparent. 13 | noRepeat, 14 | } 15 | -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /examples/movie_app/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /melos.yaml: -------------------------------------------------------------------------------- 1 | name: stac 2 | 3 | packages: 4 | - packages/* 5 | - examples/* 6 | 7 | scripts: 8 | analyze: 9 | exec: dart analyze . 10 | format: 11 | exec: dart format . 12 | get: 13 | exec: flutter pub get 14 | build: 15 | exec: dart run build_runner build --delete-conflicting-outputs 16 | packageFilters: 17 | ignore: [stac_framework, movie_app, stac_logger] 18 | watch: 19 | exec: dart run build_runner watch --delete-conflicting-outputs 20 | packageFilters: 21 | ignore: [stac_framework, movie_app, stac_logger] -------------------------------------------------------------------------------- /examples/counter_example/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /examples/stac_gallery/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/navigation/stac_bottom_navigation_bar_type_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBottomNavigationBarTypeParser on StacBottomNavigationBarType { 5 | BottomNavigationBarType get parse { 6 | switch (this) { 7 | case StacBottomNavigationBarType.fixed: 8 | return BottomNavigationBarType.fixed; 9 | case StacBottomNavigationBarType.shifting: 10 | return BottomNavigationBarType.shifting; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_leading_distribution_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTextLeadingDistributionParser on StacTextLeadingDistribution { 5 | TextLeadingDistribution get parse { 6 | switch (this) { 7 | case StacTextLeadingDistribution.proportional: 8 | return TextLeadingDistribution.proportional; 9 | case StacTextLeadingDistribution.even: 10 | return TextLeadingDistribution.even; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/ui_components/stac_options_view_open_direction_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacOptionsViewOpenDirectionParser on StacOptionsViewOpenDirection { 5 | OptionsViewOpenDirection get parse { 6 | switch (this) { 7 | case StacOptionsViewOpenDirection.up: 8 | return OptionsViewOpenDirection.up; 9 | case StacOptionsViewOpenDirection.down: 10 | return OptionsViewOpenDirection.down; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/stac_framework/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 1.0.0 2 | 3 | * Stable Release 4 | 5 | # 0.4.0 6 | 7 | * Remove StacWidget & StacAction typedef 8 | * Code refactoring and improvements 9 | 10 | # 0.3.0 11 | 12 | * Add StacAction and StacWidget types 13 | 14 | # 0.2.2 15 | 16 | * Add pub.dev topics 17 | 18 | # 0.2.1 19 | 20 | * minor changes 21 | 22 | # 0.2.0 23 | 24 | * Added `StacParser` and `StacActionParser` abstract classes. These classes are used to define custom parsers for widgets and actions. 25 | 26 | # 0.1.0 27 | 28 | * Init Stac Framework package 29 | -------------------------------------------------------------------------------- /examples/movie_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /examples/counter_example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/opacity_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scaffold", 3 | "appBar": { 4 | "type": "appBar", 5 | "title": { 6 | "type": "text", 7 | "data": "Opacity" 8 | } 9 | }, 10 | "body": { 11 | "type": "center", 12 | "child": { 13 | "type": "opacity", 14 | "opacity": 0.5, 15 | "child": { 16 | "type": "text", 17 | "data": "Opacity Widget", 18 | "style": { 19 | "fontSize": 23, 20 | "fontWeight": "w600" 21 | } 22 | } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/stac_gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_clip_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacClipParser on StacClip { 5 | Clip get parse { 6 | switch (this) { 7 | case StacClip.none: 8 | return Clip.none; 9 | case StacClip.hardEdge: 10 | return Clip.hardEdge; 11 | case StacClip.antiAlias: 12 | return Clip.antiAlias; 13 | case StacClip.antiAliasWithSaveLayer: 14 | return Clip.antiAliasWithSaveLayer; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_refresh_indicator_trigger_mode.dart: -------------------------------------------------------------------------------- 1 | /// Defines how the StacRefreshIndicator can be triggered, mirroring 2 | /// Flutter's [RefreshIndicatorTriggerMode]. 3 | enum StacRefreshIndicatorTriggerMode { 4 | /// The indicator can be triggered when the scrollable reaches the edge. 5 | /// This corresponds to [RefreshIndicatorTriggerMode.onEdge]. 6 | onEdge, 7 | 8 | /// The indicator can be triggered anywhere in the scrollable. 9 | /// This corresponds to [RefreshIndicatorTriggerMode.anywhere]. 10 | anywhere, 11 | } 12 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_slider_interaction.dart: -------------------------------------------------------------------------------- 1 | /// Declarative enum mirroring Flutter's [SliderInteraction]. 2 | /// 3 | /// Controls how the [Slider] responds to user input. 4 | enum StacSliderInteraction { 5 | /// Allow both tapping on the track and sliding the thumb. 6 | tapAndSlide, 7 | 8 | /// Allow only tapping on the track to change the value. 9 | tapOnly, 10 | 11 | /// Allow only sliding on the track to change the value. 12 | slideOnly, 13 | 14 | /// Allow sliding the thumb only (no tap on track). 15 | slideThumb, 16 | } 17 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/effects/stac_tile_mode_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTileModeParser on StacTileMode { 5 | TileMode get parse { 6 | switch (this) { 7 | case StacTileMode.clamp: 8 | return TileMode.clamp; 9 | case StacTileMode.repeated: 10 | return TileMode.repeated; 11 | case StacTileMode.mirror: 12 | return TileMode.mirror; 13 | case StacTileMode.decal: 14 | return TileMode.decal; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/effects/stac_blur_style_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacBlurStyleParser on StacBlurStyle { 5 | BlurStyle get parse { 6 | switch (this) { 7 | case StacBlurStyle.normal: 8 | return BlurStyle.normal; 9 | case StacBlurStyle.solid: 10 | return BlurStyle.solid; 11 | case StacBlurStyle.outer: 12 | return BlurStyle.outer; 13 | case StacBlurStyle.inner: 14 | return BlurStyle.inner; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_stub.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac/stac.dart'; 3 | import 'package:stac_core/stac_core.dart'; 4 | 5 | class StacImageParser extends StacParser { 6 | const StacImageParser(); 7 | 8 | @override 9 | String get type => WidgetType.image.name; 10 | 11 | @override 12 | StacImage getModel(Map json) => StacImage.fromJson(json); 13 | 14 | @override 15 | Widget parse(BuildContext context, StacImage model) => 16 | throw UnimplementedError(); 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac_core/lib/actions/actions.dart: -------------------------------------------------------------------------------- 1 | export 'form_validate/stac_form_validate.dart'; 2 | export 'get_form_value/stac_get_form_value.dart'; 3 | export 'navigate/stac_navigate_action.dart'; 4 | export 'network_request/stac_network_request.dart'; 5 | export 'set_value/stac_set_value_action.dart'; 6 | export 'delay/stac_delay_action.dart'; 7 | export 'dialog/stac_dialog_action.dart'; 8 | export 'snack_bar/stac_snack_bar.dart'; 9 | export 'snack_bar/stac_snack_bar_action.dart'; 10 | export 'multi/stac_multi_action.dart'; 11 | export 'modal_bottom_sheet/stac_modal_bottom_sheet_action.dart'; 12 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/effects/stac_shadow_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac/src/parsers/foundation/geometry/stac_offset_parser.dart'; 3 | import 'package:stac/src/utils/color_utils.dart'; 4 | import 'package:stac_core/stac_core.dart'; 5 | 6 | extension StacShadowParser on StacShadow { 7 | Shadow parse(BuildContext context) { 8 | return Shadow( 9 | color: color.toColor(context) ?? Colors.transparent, 10 | offset: (offset)?.parse ?? Offset.zero, 11 | blurRadius: (blurRadius) ?? 0.0, 12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/actions/stac_none_action/stac_none_action_parser.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/widgets.dart'; 4 | import 'package:stac_core/stac_core.dart'; 5 | import 'package:stac_framework/stac_framework.dart'; 6 | 7 | class StacNoneActionParser extends StacActionParser { 8 | const StacNoneActionParser(); 9 | 10 | @override 11 | String get actionType => ActionType.none.name; 12 | 13 | @override 14 | getModel(Map json) => json; 15 | 16 | @override 17 | FutureOr onCall(BuildContext context, model) {} 18 | } 19 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_rounded_rectangle_border_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | import 'stac_border_radius_parser.dart'; 5 | import 'stac_border_side_parser.dart'; 6 | 7 | extension StacRoundedRectangleBorderParser on StacRoundedRectangleBorder { 8 | RoundedRectangleBorder parse(BuildContext context) { 9 | return RoundedRectangleBorder( 10 | side: side?.parse(context) ?? BorderSide.none, 11 | borderRadius: borderRadius?.parse ?? BorderRadius.zero, 12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/layout/stac_wrap_cross_alignment_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacWrapCrossAlignmentParser on StacWrapCrossAlignment { 5 | WrapCrossAlignment get parse { 6 | switch (this) { 7 | case StacWrapCrossAlignment.start: 8 | return WrapCrossAlignment.start; 9 | case StacWrapCrossAlignment.end: 10 | return WrapCrossAlignment.end; 11 | case StacWrapCrossAlignment.center: 12 | return WrapCrossAlignment.center; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/center_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scaffold", 3 | "appBar": { 4 | "type": "appBar", 5 | "title": { 6 | "type": "text", 7 | "data": "Center" 8 | } 9 | }, 10 | "body": { 11 | "type": "center", 12 | "child": { 13 | "type": "container", 14 | "alignment": "center", 15 | "height": 200, 16 | "width": 150, 17 | "color": "#FC5632", 18 | "child": { 19 | "type": "text", 20 | "data": "Flutter", 21 | "style": { 22 | "fontSize": 23 23 | } 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_slider_type.dart: -------------------------------------------------------------------------------- 1 | /// An enum to select which platform style of [Slider] to render. 2 | /// 3 | /// Mirrors the variants supported by Flutter and used by the parser to 4 | /// decide which widget implementation to build. 5 | enum StacSliderType { 6 | /// Use an adaptive slider that selects a platform-appropriate 7 | /// implementation (e.g., Material on Android, Cupertino on iOS). 8 | adaptive, 9 | 10 | /// Always render a Cupertino-styled slider. 11 | cupertino, 12 | 13 | /// Always render a Material-styled slider. 14 | material, 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac_core/lib/widgets/spacer/stac_spacer.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'stac_spacer.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StacSpacer _$StacSpacerFromJson(Map json) => 10 | StacSpacer(flex: (json['flex'] as num?)?.toInt()); 11 | 12 | Map _$StacSpacerToJson(StacSpacer instance) => 13 | {'flex': instance.flex, 'type': instance.type}; 14 | -------------------------------------------------------------------------------- /packages/stac_webview/example/README.md: -------------------------------------------------------------------------------- 1 | ## Example 2 | 3 | 1. Add `stac_webview` as a dependency in your pubspec.yaml file. 4 | 5 | ```yaml 6 | dependencies: 7 | stac_webview: 8 | ``` 9 | 10 | 2. Add `StacWebViewParser` in Stac initialize. 11 | 12 | ```dart 13 | void main() async { 14 | await Stac.initialize( 15 | parsers: const [ 16 | StacWebViewParser(), 17 | ], 18 | ); 19 | 20 | runApp(const MyApp()); 21 | } 22 | ``` 23 | 24 | 3. Add Stac WebView widget in your JSONs. 25 | 26 | ```JSON 27 | { 28 | "type": "webView", 29 | "url": "https://github.com/StacDev/stac" 30 | } 31 | ``` -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_continuous_rectangle_border_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | import 'stac_border_radius_parser.dart'; 5 | import 'stac_border_side_parser.dart'; 6 | 7 | extension StacContinuousRectangleBorderParser on StacContinuousRectangleBorder { 8 | ContinuousRectangleBorder parse(BuildContext context) { 9 | return ContinuousRectangleBorder( 10 | side: side?.parse(context) ?? BorderSide.none, 11 | borderRadius: borderRadius?.parse ?? BorderRadius.zero, 12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_baseline_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | /// Maps [StacTextBaseline] to Flutter's [TextBaseline]. 5 | extension StacTextBaselineParser on StacTextBaseline { 6 | /// Parses this [StacTextBaseline] into a Flutter [TextBaseline]. 7 | TextBaseline get parse { 8 | switch (this) { 9 | case StacTextBaseline.alphabetic: 10 | return TextBaseline.alphabetic; 11 | case StacTextBaseline.ideographic: 12 | return TextBaseline.ideographic; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac_framework/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: stac_framework 2 | description: The Stac Framework enables easy creation of parsers for widgets and actions, enhancing Stac's functionality and supporting custom implementations. 3 | version: 1.0.0 4 | homepage: https://github.com/StacDev/stac 5 | 6 | environment: 7 | sdk: ">=3.1.0 <4.0.0" 8 | flutter: ">=1.17.0" 9 | 10 | topics: 11 | - ui 12 | - widget 13 | - server-driven-ui 14 | - dynamic-widgets 15 | 16 | dependencies: 17 | flutter: 18 | sdk: flutter 19 | 20 | dev_dependencies: 21 | flutter_test: 22 | sdk: flutter 23 | flutter_lints: ^5.0.0 24 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/effects/stac_effects_parsers.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacFilterQualityParser on StacFilterQuality { 5 | FilterQuality get parse { 6 | switch (this) { 7 | case StacFilterQuality.none: 8 | return FilterQuality.none; 9 | case StacFilterQuality.low: 10 | return FilterQuality.low; 11 | case StacFilterQuality.medium: 12 | return FilterQuality.medium; 13 | case StacFilterQuality.high: 14 | return FilterQuality.high; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/counter_example/lib/counter/actions/counter_action.dart: -------------------------------------------------------------------------------- 1 | import 'package:freezed_annotation/freezed_annotation.dart'; 2 | 3 | part 'counter_action.freezed.dart'; 4 | part 'counter_action.g.dart'; 5 | 6 | enum CounterActionType { 7 | increment, 8 | decrement, 9 | } 10 | 11 | @freezed 12 | abstract class CounterAction with _$CounterAction { 13 | const factory CounterAction({ 14 | required CounterActionType counterActionType, 15 | @Default(1) int delta, 16 | }) = _CounterAction; 17 | 18 | factory CounterAction.fromJson(Map json) => 19 | _$CounterActionFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_overflow_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTextOverflowParser on StacTextOverflow { 5 | TextOverflow get parse { 6 | switch (this) { 7 | case StacTextOverflow.clip: 8 | return TextOverflow.clip; 9 | case StacTextOverflow.fade: 10 | return TextOverflow.fade; 11 | case StacTextOverflow.ellipsis: 12 | return TextOverflow.ellipsis; 13 | case StacTextOverflow.visible: 14 | return TextOverflow.visible; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/ui_components/stac_list_tile_style_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | /// Extends [StacListTileStyle] to provide parsing functionality. 5 | extension StacListTileStyleParser on StacListTileStyle { 6 | /// Parses this [StacListTileStyle] into a Flutter [ListTileStyle]. 7 | ListTileStyle get parse { 8 | switch (this) { 9 | case StacListTileStyle.list: 10 | return ListTileStyle.list; 11 | case StacListTileStyle.drawer: 12 | return ListTileStyle.drawer; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/ui_components/stac_overflow_bar_alignment_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacOverflowBarAlignmentParser on StacOverflowBarAlignment { 5 | OverflowBarAlignment get parse { 6 | switch (this) { 7 | case StacOverflowBarAlignment.start: 8 | return OverflowBarAlignment.start; 9 | case StacOverflowBarAlignment.end: 10 | return OverflowBarAlignment.end; 11 | case StacOverflowBarAlignment.center: 12 | return OverflowBarAlignment.center; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/actions/get_form_value.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Get Form Value Action" 3 | description: "Documentation for Get Form Value Action" 4 | --- 5 | 6 | The `StacGetFormValueAction` class is used to retrieve a form value in Stac applications. 7 | 8 | ## Properties 9 | 10 | | Property | Type | Description | 11 | |-----------|----------|------------------------------------| 12 | | id | `String` | The ID of the form field to get. | 13 | 14 | ## Example JSON 15 | 16 | ### Get Form Value Action JSON 17 | 18 | ```json 19 | { 20 | "actionType": "getFormValue", 21 | "id": "username" 22 | } 23 | ``` 24 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | import path_provider_foundation 9 | import shared_preferences_foundation 10 | import sqflite_darwin 11 | 12 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 13 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) 14 | SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) 15 | SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) 16 | } 17 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/ui_components/stac_image_repeat_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacImageRepeatParser on StacImageRepeat { 5 | ImageRepeat get parse { 6 | switch (this) { 7 | case StacImageRepeat.repeat: 8 | return ImageRepeat.repeat; 9 | case StacImageRepeat.repeatX: 10 | return ImageRepeat.repeatX; 11 | case StacImageRepeat.repeatY: 12 | return ImageRepeat.repeatY; 13 | case StacImageRepeat.noRepeat: 14 | return ImageRepeat.noRepeat; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/widgets/stac_spacer/stac_spacer_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | import 'package:stac_framework/stac_framework.dart'; 4 | 5 | class StacSpacerParser extends StacParser { 6 | const StacSpacerParser(); 7 | 8 | @override 9 | StacSpacer getModel(Map json) => StacSpacer.fromJson(json); 10 | 11 | @override 12 | String get type => WidgetType.spacer.name; 13 | 14 | @override 15 | Widget parse(BuildContext context, StacSpacer model) { 16 | return Spacer(flex: model.flex ?? 1); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | import path_provider_foundation 9 | import shared_preferences_foundation 10 | import sqflite_darwin 11 | 12 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 13 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) 14 | SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) 15 | SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) 16 | } 17 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/navigation/stac_tab_alignment_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTabAlignmentParser on StacTabAlignment { 5 | TabAlignment get parse { 6 | switch (this) { 7 | case StacTabAlignment.center: 8 | return TabAlignment.center; 9 | case StacTabAlignment.fill: 10 | return TabAlignment.fill; 11 | case StacTabAlignment.startOffset: 12 | return TabAlignment.startOffset; 13 | case StacTabAlignment.start: 14 | return TabAlignment.start; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/ui_components/stac_snack_bar_behavior_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | /// Extends [StacSnackBarBehavior] to map to Flutter's [SnackBarBehavior]. 5 | extension StacSnackBarBehaviorParser on StacSnackBarBehavior? { 6 | SnackBarBehavior? get parse { 7 | switch (this) { 8 | case StacSnackBarBehavior.fixed: 9 | return SnackBarBehavior.fixed; 10 | case StacSnackBarBehavior.floating: 11 | return SnackBarBehavior.floating; 12 | default: 13 | return null; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /docs/actions/delay_action.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Delay Action" 3 | description: "Documentation for Delay Action" 4 | --- 5 | 6 | The `StacDelayAction` allows you to do nothing for a specified duration. 7 | 8 | ## Delay Action Properties 9 | 10 | | Property | Type | Description | 11 | | --- |-------------------|---------------------------------------------------| 12 | | milliseconds | `int` | The amount of time (in milliseconds) we want to wait for | 13 | 14 | ## Delay Action JSON 15 | 16 | ```json 17 | { 18 | "actionType": "delay", 19 | "milliseconds": 1000 20 | }, 21 | 22 | ``` 23 | -------------------------------------------------------------------------------- /examples/movie_app/README.md: -------------------------------------------------------------------------------- 1 | # movie_app 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) 13 | 14 | For help getting started with Flutter development, view the 15 | [online documentation](https://docs.flutter.dev/), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/example_dark_theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "brightness": "dark", 3 | "disabledColor": "#60FFFFFF", 4 | "colorScheme": { 5 | "brightness": "dark", 6 | "primary": "#CCBDFA", 7 | "onPrimary": "#341F6E", 8 | "secondary": "#C9C2D9", 9 | "onSecondary": "#322D40", 10 | "surface": "#1C1B1E", 11 | "onSurface": "#E5E1E6", 12 | "background": "#1C1B1E", 13 | "onBackground": "#E5E1E6", 14 | "surfaceVariant": "#48454D", 15 | "onSurfaceVariant": "#C9C4CE", 16 | "error": "#F4B7AE", 17 | "onError": "#600F0C", 18 | "success": "#27BA62", 19 | "onSuccess": "#FFFFFF" 20 | } 21 | } -------------------------------------------------------------------------------- /examples/movie_app/android/build.gradle.kts: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() 9 | rootProject.layout.buildDirectory.value(newBuildDir) 10 | 11 | subprojects { 12 | val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) 13 | project.layout.buildDirectory.value(newSubprojectBuildDir) 14 | } 15 | subprojects { 16 | project.evaluationDependsOn(":app") 17 | } 18 | 19 | tasks.register("clean") { 20 | delete(rootProject.layout.buildDirectory) 21 | } 22 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/example_light_theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "brightness": "light", 3 | "disabledColor": "#60FEF7FF", 4 | "colorScheme": { 5 | "brightness": "light", 6 | "primary": "#6750a4", 7 | "onPrimary": "#FFFFFF", 8 | "secondary": "#615B6F", 9 | "onSecondary": "#FFFFFF", 10 | "surface": "#FEFBFF", 11 | "onSurface": "#1C1B1E", 12 | "background": "#FEFBFF", 13 | "onBackground": "#1C1B1E", 14 | "surfaceVariant": "#E6E0EA", 15 | "onSurfaceVariant": "#48454D", 16 | "error": "#AB2D25", 17 | "onError": "#FFFFFF", 18 | "success": "#27BA62", 19 | "onSuccess": "#FFFFFF" 20 | } 21 | } -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/borders/stac_border_side_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac/src/utils/color_utils.dart'; 3 | import 'package:stac_core/stac_core.dart'; 4 | 5 | import 'stac_border_style_parser.dart'; 6 | 7 | extension StacBorderSideParser on StacBorderSide { 8 | BorderSide parse(BuildContext context) { 9 | return BorderSide( 10 | color: color?.toColor(context) ?? const Color(0xFF000000), 11 | width: width ?? 1.0, 12 | style: borderStyle?.parse ?? BorderStyle.solid, 13 | strokeAlign: strokeAlign ?? BorderSide.strokeAlignInside, 14 | ); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | title: "fix: " 5 | labels: bug 6 | --- 7 | 8 | **Description** 9 | 10 | A clear and concise description of what the bug is. 11 | 12 | **Steps To Reproduce** 13 | 14 | 1. Go to '...' 15 | 2. Click on '....' 16 | 3. Scroll down to '....' 17 | 4. See error 18 | 19 | **Expected Behavior** 20 | 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | 25 | If applicable, add screenshots to help explain your problem. 26 | 27 | **Additional Context** 28 | 29 | Add any other context about the problem here. -------------------------------------------------------------------------------- /examples/counter_example/lib/counter/widgets/counter_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:freezed_annotation/freezed_annotation.dart'; 2 | 3 | part 'counter_screen.freezed.dart'; 4 | part 'counter_screen.g.dart'; 5 | 6 | @freezed 7 | abstract class CounterScreen with _$CounterScreen { 8 | const factory CounterScreen({ 9 | required String title, 10 | required String description, 11 | @Default(0) int initialCount, 12 | Map? onIncrement, 13 | Map? onDecrement, 14 | }) = _CounterScreen; 15 | 16 | factory CounterScreen.fromJson(Map json) => 17 | _$CounterScreenFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/ui_components/stac_table_row_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac/src/parsers/core/stac_widget_parser.dart'; 3 | import 'package:stac/src/parsers/foundation/decoration/stac_box_decoration_parser.dart'; 4 | import 'package:stac_core/stac_core.dart'; 5 | 6 | /// Parses a [StacTableRow] to a Flutter [TableRow]. 7 | extension StacTableRowParser on StacTableRow { 8 | TableRow parse(BuildContext context) { 9 | return TableRow( 10 | decoration: decoration?.parse(context), 11 | children: children.parseList(context) ?? const [], 12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/slider_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scaffold", 3 | "appBar": { 4 | "type": "appBar", 5 | "title": { 6 | "type": "text", 7 | "data": "Stac Slider" 8 | } 9 | }, 10 | "body": { 11 | "type": "form", 12 | "child": { 13 | "type": "center", 14 | "child": { 15 | "id": "example_slider", 16 | "type": "slider", 17 | "sliderType": "material", 18 | "value": 20, 19 | "max": 100, 20 | "divisions": 5 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /packages/stac_core/lib/actions/get_form_value/stac_get_form_value.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'stac_get_form_value.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StacGetFormValue _$StacGetFormValueFromJson(Map json) => 10 | StacGetFormValue(id: json['id'] as String); 11 | 12 | Map _$StacGetFormValueToJson(StacGetFormValue instance) => 13 | {'id': instance.id, 'actionType': instance.actionType}; 14 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/geometry/stac_offset/stac_offset.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'stac_offset.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StacOffset _$StacOffsetFromJson(Map json) => StacOffset( 10 | dx: (json['dx'] as num).toDouble(), 11 | dy: (json['dy'] as num).toDouble(), 12 | ); 13 | 14 | Map _$StacOffsetToJson(StacOffset instance) => 15 | {'dx': instance.dx, 'dy': instance.dy}; 16 | -------------------------------------------------------------------------------- /examples/stac_gallery/lib/app/example/example_screen.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'example_screen.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | _ExampleScreen _$ExampleScreenFromJson(Map json) => 10 | _ExampleScreen( 11 | assetPath: json['assetPath'] as String, 12 | ); 13 | 14 | Map _$ExampleScreenToJson(_ExampleScreen instance) => 15 | { 16 | 'assetPath': instance.assetPath, 17 | }; 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/utils/input_formatters.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | import 'package:stac_logger/stac_logger.dart'; 3 | 4 | enum InputFormatterType { 5 | allow, 6 | deny; 7 | 8 | TextInputFormatter format(String rule) { 9 | try { 10 | switch (this) { 11 | case InputFormatterType.allow: 12 | return FilteringTextInputFormatter.allow(RegExp(rule)); 13 | 14 | case InputFormatterType.deny: 15 | return FilteringTextInputFormatter.deny(RegExp(rule)); 16 | } 17 | } catch (e) { 18 | Log.e(e); 19 | return FilteringTextInputFormatter.allow(RegExp('')); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/stac_gallery/README.md: -------------------------------------------------------------------------------- 1 | # stac_gallery 2 | 3 | A Stac gallery app to showcase all the Stac widgets 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) 13 | 14 | For help getting started with Flutter development, view the 15 | [online documentation](https://docs.flutter.dev/), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/geometry/stac_size/stac_size.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'stac_size.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StacSize _$StacSizeFromJson(Map json) => StacSize( 10 | (json['width'] as num).toDouble(), 11 | (json['height'] as num).toDouble(), 12 | ); 13 | 14 | Map _$StacSizeToJson(StacSize instance) => { 15 | 'width': instance.width, 16 | 'height': instance.height, 17 | }; 18 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/theme/stac_divider_theme_data_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac/src/utils/color_utils.dart'; 3 | import 'package:stac_core/stac_core.dart'; 4 | 5 | /// Parser extension for [StacDividerThemeData]. 6 | /// 7 | /// Converts [StacDividerThemeData] to Flutter's [DividerThemeData]. 8 | extension StacDividerThemeDataParser on StacDividerThemeData { 9 | DividerThemeData parse(BuildContext context) { 10 | return DividerThemeData( 11 | color: color?.toColor(context), 12 | space: space, 13 | thickness: thickness, 14 | indent: indent, 15 | endIndent: endIndent, 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/refresh_indicator_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scaffold", 3 | "body": { 4 | "type": "refreshIndicator", 5 | "onRefresh": { 6 | "actionType": "networkRequest", 7 | "url": "https://raw.githubusercontent.com/StacDev/stac/main/examples/stac_gallery/assets/json/list_view_example.json", 8 | "method": "get", 9 | "contentType": "application/json" 10 | }, 11 | "child": { 12 | "type": "networkWidget", 13 | "request": { 14 | "url": "https://raw.githubusercontent.com/StacDev/stac/main/examples/stac_gallery/assets/json/list_view_example.json", 15 | "method": "get" 16 | } 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/layout/stac_flex_fit.dart: -------------------------------------------------------------------------------- 1 | /// Flex fit options for flexible widgets. 2 | /// 3 | /// Determines how a flexible child should fit within the available space 4 | /// along the main axis of a flex layout. 5 | enum StacFlexFit { 6 | /// The child is forced to fill the available space. 7 | /// 8 | /// The child will be exactly the size of the available space, 9 | /// regardless of its intrinsic dimensions. 10 | tight, 11 | 12 | /// The child can be at most as large as the available space. 13 | /// 14 | /// The child will use its intrinsic dimensions up to the maximum 15 | /// available space, but won't be forced to fill it. 16 | loose, 17 | } 18 | -------------------------------------------------------------------------------- /bricks/stac_parser/brick.yaml: -------------------------------------------------------------------------------- 1 | name: stac_parser 2 | description: A new Stac Parser 3 | repository: https://github.com/StacDev/stac/ 4 | # The following defines the version and build number for your brick. 5 | # A version number is three numbers separated by dots, like 1.2.34 6 | # followed by an optional build number (separated by a +). 7 | version: 0.1.0+1 8 | 9 | # The following defines the environment for the current brick. 10 | # It includes the version of mason that the brick requires. 11 | environment: 12 | mason: ">=0.1.0-dev.40 <0.1.0" 13 | 14 | vars: 15 | name: 16 | type: string 17 | description: Stac Parser name 18 | default: Dash 19 | prompt: What is the Stac Parser name? 20 | -------------------------------------------------------------------------------- /examples/movie_app/windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_capitalization_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTextCapitalizationParser on StacTextCapitalization { 5 | TextCapitalization get parse { 6 | switch (this) { 7 | case StacTextCapitalization.none: 8 | return TextCapitalization.none; 9 | case StacTextCapitalization.characters: 10 | return TextCapitalization.characters; 11 | case StacTextCapitalization.words: 12 | return TextCapitalization.words; 13 | case StacTextCapitalization.sentences: 14 | return TextCapitalization.sentences; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac_framework/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | migrate_working_dir/ 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. 26 | /pubspec.lock 27 | **/doc/api/ 28 | .dart_tool/ 29 | .packages 30 | build/ 31 | -------------------------------------------------------------------------------- /packages/stac_webview/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | migrate_working_dir/ 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. 26 | /pubspec.lock 27 | **/doc/api/ 28 | .dart_tool/ 29 | .packages 30 | build/ 31 | -------------------------------------------------------------------------------- /examples/counter_example/windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /examples/movie_app/macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = movie_app 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.movieApp 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2025 com.example. All rights reserved. 15 | -------------------------------------------------------------------------------- /examples/stac_gallery/lib/app_theme/app_theme_state.dart: -------------------------------------------------------------------------------- 1 | part of 'app_theme_cubit.dart'; 2 | 3 | class AppThemeState { 4 | const AppThemeState({ 5 | this.themeMode = ThemeMode.light, 6 | this.lightTheme, 7 | this.darkTheme, 8 | }); 9 | 10 | final ThemeMode themeMode; 11 | final StacTheme? lightTheme; 12 | final StacTheme? darkTheme; 13 | 14 | AppThemeState copyWith({ 15 | ThemeMode? themeMode, 16 | StacTheme? lightTheme, 17 | StacTheme? darkTheme, 18 | }) { 19 | return AppThemeState( 20 | themeMode: themeMode ?? this.themeMode, 21 | lightTheme: lightTheme ?? this.lightTheme, 22 | darkTheme: darkTheme ?? this.darkTheme, 23 | ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/stac_gallery/macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = stac_gallery 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.stac.stacGallery 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2023 com.stac. All rights reserved. 15 | -------------------------------------------------------------------------------- /packages/stac_logger/example/README.md: -------------------------------------------------------------------------------- 1 | ## Getting started 2 | 3 | Add the package to your `pubspec.yaml`: 4 | 5 | ```yaml 6 | dependencies: 7 | stac_logger: ^1.0.0 8 | ``` 9 | 10 | Then run: 11 | 12 | ```bash 13 | flutter pub get 14 | ``` 15 | 16 | ## Usage 17 | 18 | Import the package and use the `Log` class to log messages: 19 | 20 | ```dart 21 | import 'package:stac_logger/stac_logger.dart'; 22 | 23 | void main() { 24 | // Log a debug message 25 | Log.d('Debug message'); 26 | 27 | // Log an info message 28 | Log.i('Info message'); 29 | 30 | // Log a warning message 31 | Log.w('Warning message'); 32 | 33 | // Log an error message 34 | Log.e('Error message'); 35 | } 36 | ``` 37 | -------------------------------------------------------------------------------- /packages/stac_logger/lib/src/log_io.dart: -------------------------------------------------------------------------------- 1 | import 'package:logger/logger.dart'; 2 | import 'log_interface.dart'; 3 | 4 | LogInterface createLogger() => LogIO.instance; 5 | 6 | /// IO-based implementation of LogInterface 7 | class LogIO implements LogInterface { 8 | LogIO._(); 9 | 10 | static final LogIO _instance = LogIO._(); 11 | static LogIO get instance => _instance; 12 | 13 | final _log = Logger(); 14 | 15 | @override 16 | void d(dynamic message) => _log.d(message); 17 | 18 | @override 19 | void i(dynamic message) => _log.i(message); 20 | 21 | @override 22 | void w(dynamic message) => _log.w(message); 23 | 24 | @override 25 | void e(dynamic message) => _log.e(message); 26 | } 27 | -------------------------------------------------------------------------------- /bricks/stac_parser/__brick__/{{#snakecase}}stac_{{name}}{{/snakecase}}/{{#snakecase}}stac_{{name}}{{/snakecase}}.dart: -------------------------------------------------------------------------------- 1 | import 'package:freezed_annotation/freezed_annotation.dart'; 2 | 3 | part '{{#snakeCase}}stac_{{name}}{{/snakeCase}}.freezed.dart'; 4 | part '{{#snakeCase}}stac_{{name}}{{/snakeCase}}.g.dart'; 5 | 6 | @freezed 7 | abstract class Stac{{#pascalCase}}{{name}}{{/pascalCase}} with _$Stac{{#pascalCase}}{{name}}{{/pascalCase}} { 8 | const factory Stac{{#pascalCase}}{{name}}{{/pascalCase}}() = _Stac{{#pascalCase}}{{name}}{{/pascalCase}}; 9 | 10 | factory Stac{{#pascalCase}}{{name}}{{/pascalCase}}.fromJson(Map json) => _$Stac{{#pascalCase}}{{name}}{{/pascalCase}}FromJson(json); 11 | } 12 | -------------------------------------------------------------------------------- /docs/widgets/spacer.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Spacer" 3 | description: "Documentation for Spacer" 4 | --- 5 | 6 | The Stac Spacer allows you to build a Flutter spacer widget using JSON. 7 | To know more about the spacer widget in Flutter, refer to the [official documentation](https://api.flutter.dev/flutter/widgets/Spacer-class.html). 8 | 9 | ## Properties 10 | 11 | | Property | Type | Description | 12 | |----------|--chore-----|---------------------------------------------------------| 13 | | flex | `int` | The flex factor to use for the spacer. Defaults to `1`. | 14 | 15 | ## Example JSON 16 | 17 | ```json 18 | { 19 | "type": "spacer", 20 | "flex": 2 21 | } 22 | ``` 23 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/interaction/stac_slider_interaction_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacSliderInteractionParser on StacSliderInteraction { 5 | SliderInteraction get parse { 6 | switch (this) { 7 | case StacSliderInteraction.tapAndSlide: 8 | return SliderInteraction.tapAndSlide; 9 | case StacSliderInteraction.tapOnly: 10 | return SliderInteraction.tapOnly; 11 | case StacSliderInteraction.slideOnly: 12 | return SliderInteraction.slideOnly; 13 | case StacSliderInteraction.slideThumb: 14 | return SliderInteraction.slideThumb; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/theme/stac_button_bar_layout_behavior_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | /// Parser extension for [StacButtonBarLayoutBehavior]. 5 | /// 6 | /// Converts [StacButtonBarLayoutBehavior] to Flutter's [ButtonBarLayoutBehavior]. 7 | extension StacButtonBarLayoutBehaviorParser on StacButtonBarLayoutBehavior { 8 | ButtonBarLayoutBehavior get parse { 9 | switch (this) { 10 | case StacButtonBarLayoutBehavior.constrained: 11 | return ButtonBarLayoutBehavior.constrained; 12 | case StacButtonBarLayoutBehavior.padded: 13 | return ButtonBarLayoutBehavior.padded; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/text/stac_text_width_basis.dart: -------------------------------------------------------------------------------- 1 | /// Text width calculation basis options.\n///\n/// Determines how the width of text widgets is calculated, affecting\n/// layout behavior for both single-line and multi-line text. 2 | enum StacTextWidthBasis { 3 | /// multiline text will take up the full width given by the parent. For single 4 | /// line text, only the minimum amount of width needed to contain the text 5 | /// will be used. A common use case for this is a standard series of 6 | /// paragraphs. 7 | parent, 8 | 9 | /// The width will be exactly enough to contain the longest line and no 10 | /// longer. A common use case for this is chat bubbles. 11 | longestLine, 12 | } 13 | -------------------------------------------------------------------------------- /examples/counter_example/macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = counter_example 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.counterExample 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2025 com.example. All rights reserved. 15 | -------------------------------------------------------------------------------- /packages/stac_core/lib/actions/delay/stac_delay_action.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'stac_delay_action.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StacDelayAction _$StacDelayActionFromJson(Map json) => 10 | StacDelayAction(milliseconds: (json['milliseconds'] as num?)?.toInt()); 11 | 12 | Map _$StacDelayActionToJson(StacDelayAction instance) => 13 | { 14 | 'milliseconds': instance.milliseconds, 15 | 'actionType': instance.actionType, 16 | }; 17 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/geometry/stac_box_shadow_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac/src/utils/color_utils.dart'; 3 | import 'package:stac_core/stac_core.dart'; 4 | 5 | import '../effects/stac_blur_style_parser.dart'; 6 | import 'stac_offset_parser.dart'; 7 | 8 | extension StacBoxShadowParser on StacBoxShadow { 9 | BoxShadow parse(BuildContext context) { 10 | return BoxShadow( 11 | color: color.toColor(context) ?? const Color(0xFF000000), 12 | blurRadius: blurRadius ?? 0.0, 13 | offset: offset?.parse ?? Offset.zero, 14 | spreadRadius: spreadRadius ?? 0.0, 15 | blurStyle: blurStyle?.parse ?? BlurStyle.normal, 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/text/stac_text_align_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | extension StacTextAlignParser on StacTextAlign { 5 | TextAlign get parse { 6 | switch (this) { 7 | case StacTextAlign.left: 8 | return TextAlign.left; 9 | case StacTextAlign.right: 10 | return TextAlign.right; 11 | case StacTextAlign.center: 12 | return TextAlign.center; 13 | case StacTextAlign.justify: 14 | return TextAlign.justify; 15 | case StacTextAlign.start: 16 | return TextAlign.start; 17 | case StacTextAlign.end: 18 | return TextAlign.end; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/theme/stac_button_text_theme_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | /// Parser extension for [StacButtonTextTheme]. 5 | /// 6 | /// Converts [StacButtonTextTheme] to Flutter's [ButtonTextTheme]. 7 | extension StacButtonTextThemeParser on StacButtonTextTheme { 8 | ButtonTextTheme parse(BuildContext context) { 9 | switch (this) { 10 | case StacButtonTextTheme.normal: 11 | return ButtonTextTheme.normal; 12 | case StacButtonTextTheme.accent: 13 | return ButtonTextTheme.accent; 14 | case StacButtonTextTheme.primary: 15 | return ButtonTextTheme.primary; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/ui_components/stac_traversal_edge_behavior.dart: -------------------------------------------------------------------------------- 1 | /// Dialog traversal behavior within focus traversal. 2 | /// 3 | /// Mirrors Flutter's [TraversalEdgeBehavior] for dialog focus traversal without 4 | /// importing Flutter into core. Used by `StacDialogAction`. 5 | /// 6 | /// JSON example: 7 | /// ```json 8 | /// { "traversalEdgeBehavior": "closedLoop" } 9 | /// ``` 10 | enum StacTraversalEdgeBehavior { 11 | /// Focus wraps from the last to the first (and vice versa). 12 | closedLoop, 13 | 14 | /// Focus can leave Flutter view. 15 | leaveFlutterView, 16 | 17 | /// Delegate to parent focus scope. 18 | parentScope, 19 | 20 | /// Stop focus traversal at the edge. 21 | stop, 22 | } 23 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/layout/stac_stack_fit.dart: -------------------------------------------------------------------------------- 1 | /// Sizing options for Stack widget children. 2 | /// 3 | /// Controls how non-positioned children of a Stack widget should be sized 4 | /// relative to the Stack's own size. 5 | enum StacStackFit { 6 | /// Children are sized to their intrinsic dimensions. 7 | /// 8 | /// Non-positioned children can be smaller than the Stack. 9 | loose, 10 | 11 | /// Children are forced to match the Stack's size. 12 | /// 13 | /// Non-positioned children will be the same size as the Stack. 14 | expand, 15 | 16 | /// Children inherit constraints from the Stack's parent. 17 | /// 18 | /// The Stack's constraints are passed through to its children. 19 | passthrough, 20 | } 21 | -------------------------------------------------------------------------------- /packages/stac_logger/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | migrate_working_dir/ 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. 26 | /pubspec.lock 27 | **/doc/api/ 28 | .dart_tool/ 29 | .flutter-plugins 30 | .flutter-plugins-dependencies 31 | build/ 32 | -------------------------------------------------------------------------------- /examples/movie_app/ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /packages/stac/lib/src/parsers/foundation/animation/stac_rect_tween_parser.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:stac_core/stac_core.dart'; 3 | 4 | import '../geometry/stac_rect_parser.dart'; 5 | 6 | extension StacRectTweenParser on StacRectTween { 7 | RectTween parse(BuildContext context) { 8 | final begin = this.begin?.parse; 9 | final end = this.end?.parse; 10 | 11 | switch (type) { 12 | case 'materialRectArcTween': 13 | return MaterialRectArcTween(begin: begin, end: end); 14 | case 'materialRectCenterArcTween': 15 | return MaterialRectCenterArcTween(begin: begin, end: end); 16 | default: 17 | return RectTween(begin: begin, end: end); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/stac_core/lib/foundation/interaction/stac_hit_test_behavior.dart: -------------------------------------------------------------------------------- 1 | /// How to behave during hit testing. 2 | /// Corresponds to Flutter's [HitTestBehavior]. 3 | enum StacHitTestBehavior { 4 | /// Targets that defer to their children receive events within their bounds 5 | /// only if one of their children is hit by the hit test. 6 | deferToChild, 7 | 8 | /// Opaque targets can be hit by hit tests, causing them to both receive 9 | /// events within their bounds and prevent targets visually behind them from 10 | /// also receiving events. 11 | opaque, 12 | 13 | /// Translucent targets both receive events within their bounds and permit 14 | /// targets visually behind them to also receive events. 15 | translucent, 16 | } 17 | -------------------------------------------------------------------------------- /examples/movie_app/lib/widgets/movie_carousel/movie_carousel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'movie_carousel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StacMovieCarousel _$StacMovieCarouselFromJson(Map json) => 10 | StacMovieCarousel( 11 | request: StacNetworkRequest.fromJson( 12 | json['request'] as Map, 13 | ), 14 | ); 15 | 16 | Map _$StacMovieCarouselToJson(StacMovieCarousel instance) => 17 | {'request': instance.request, 'type': instance.type}; 18 | -------------------------------------------------------------------------------- /examples/stac_gallery/assets/json/auto_complete_example.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "scaffold", 3 | "appBar": { 4 | "type": "appBar", 5 | "title": { 6 | "type": "text", 7 | "data": "Autocomplete Basic" 8 | } 9 | }, 10 | "body": { 11 | "type": "center", 12 | "child": { 13 | "type": "column", 14 | "children": [ 15 | { 16 | "type": "text", 17 | "data": "Type below to autocomplete the following possible results: [aardvark, bobcat, chameleon]." 18 | }, 19 | { 20 | "type": "autocomplete", 21 | "options": [ 22 | "aardvark", "bobcat", "chameleon" 23 | ], 24 | "onSelected": {} 25 | } 26 | ] 27 | } 28 | } 29 | } --------------------------------------------------------------------------------