From 4b3a24c82b7d11900926d539dc6c0c98b0ffc751 Mon Sep 17 00:00:00 2001 From: Divyanshu Bhargava Date: Fri, 27 Feb 2026 19:35:00 +0530 Subject: [PATCH 1/2] feat(stac): re-export stac_core through stac package Users no longer need to depend on both stac and stac_core. The stac package now fully re-exports stac_core via stac.dart and provides a separate stac_core.dart entry point for pure-Dart files processed by the Stac CLI without requiring the Flutter SDK. --- examples/movie_app/lib/default_stac_options.dart | 2 +- .../lib/widgets/movie_carousel/movie_carousel.dart | 3 +-- examples/movie_app/pubspec.lock | 2 +- examples/movie_app/pubspec.yaml | 2 +- examples/movie_app/stac/app_theme.dart | 2 +- examples/movie_app/stac/detail_screen.dart | 2 +- examples/movie_app/stac/home_screen.dart | 2 +- examples/movie_app/stac/onboarding_screen.dart | 2 +- examples/stac_gallery/pubspec.lock | 2 +- examples/stac_gallery/pubspec.yaml | 2 +- packages/stac/lib/src/framework/stac_service.dart | 3 +-- .../stac_set_value/stac_set_value_action_parser.dart | 1 - packages/stac/lib/src/parsers/core/stac_action_parser.dart | 1 - packages/stac/lib/src/parsers/core/stac_widget_parser.dart | 1 - .../foundation/decoration/stac_box_decoration_parser.dart | 1 - .../parsers/widgets/stac_app_bar/stac_app_bar_parser.dart | 1 - .../src/parsers/widgets/stac_badge/stac_badge_parser.dart | 1 - .../widgets/stac_container/stac_container_parser.dart | 1 - .../parsers/widgets/stac_image/stac_image_parser_io.dart | 1 - .../parsers/widgets/stac_image/stac_image_parser_stub.dart | 1 - .../parsers/widgets/stac_image/stac_image_parser_web.dart | 1 - .../parsers/widgets/stac_inkwell/stac_inkwell_parser.dart | 1 - .../stac_linear_progress_indicator_parser.dart | 1 - .../parsers/widgets/stac_switch/stac_switch_parser.dart | 1 - .../widgets/stac_tool_tip/stac_tool_tip_parser.dart | 1 - packages/stac/lib/stac.dart | 3 +-- packages/stac/lib/stac_core.dart | 7 +++++++ packages/stac_core/lib/core/core.dart | 1 + 28 files changed, 20 insertions(+), 29 deletions(-) create mode 100644 packages/stac/lib/stac_core.dart diff --git a/examples/movie_app/lib/default_stac_options.dart b/examples/movie_app/lib/default_stac_options.dart index 84eb0d686..84f35bb34 100644 --- a/examples/movie_app/lib/default_stac_options.dart +++ b/examples/movie_app/lib/default_stac_options.dart @@ -1,6 +1,6 @@ // This file is automatically generated by stac init. -import 'package:stac_core/core/stac_options.dart'; +import 'package:stac/stac.dart'; /// Default [StacOptions] for use with your stac project. /// diff --git a/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart b/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart index 0271fc7d9..19ddf04ca 100644 --- a/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart +++ b/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart @@ -1,6 +1,5 @@ import 'package:json_annotation/json_annotation.dart'; -import 'package:stac_core/actions/network_request/stac_network_request.dart'; -import 'package:stac_core/core/stac_widget.dart'; +import 'package:stac/stac_core.dart'; part 'movie_carousel.g.dart'; diff --git a/examples/movie_app/pubspec.lock b/examples/movie_app/pubspec.lock index 9bc6e6c01..36aa62ce8 100644 --- a/examples/movie_app/pubspec.lock +++ b/examples/movie_app/pubspec.lock @@ -717,7 +717,7 @@ packages: source: path version: "1.3.1" stac_core: - dependency: "direct main" + dependency: "direct overridden" description: path: "../../packages/stac_core" relative: true diff --git a/examples/movie_app/pubspec.yaml b/examples/movie_app/pubspec.yaml index d58c90331..a8e0bacb2 100644 --- a/examples/movie_app/pubspec.yaml +++ b/examples/movie_app/pubspec.yaml @@ -35,7 +35,7 @@ dependencies: # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 stac: - stac_core: + dio: ^5.8.0+1 smooth_page_indicator: ^1.2.1 json_annotation: ^4.9.0 diff --git a/examples/movie_app/stac/app_theme.dart b/examples/movie_app/stac/app_theme.dart index 08ff24947..222e7d3db 100644 --- a/examples/movie_app/stac/app_theme.dart +++ b/examples/movie_app/stac/app_theme.dart @@ -1,4 +1,4 @@ -import 'package:stac_core/stac_core.dart'; +import 'package:stac/stac.dart'; @StacThemeRef(name: "movie_app_dark") StacTheme get darkTheme => _buildTheme( diff --git a/examples/movie_app/stac/detail_screen.dart b/examples/movie_app/stac/detail_screen.dart index 29049eb08..6cc95f732 100644 --- a/examples/movie_app/stac/detail_screen.dart +++ b/examples/movie_app/stac/detail_screen.dart @@ -1,5 +1,5 @@ import 'package:movie_app/constants/app_constants.dart'; -import 'package:stac_core/stac_core.dart'; +import 'package:stac/stac_core.dart'; @StacScreen(screenName: 'detail_screen') StacWidget detailScreen() { diff --git a/examples/movie_app/stac/home_screen.dart b/examples/movie_app/stac/home_screen.dart index 0b35c89fd..42646a4fd 100644 --- a/examples/movie_app/stac/home_screen.dart +++ b/examples/movie_app/stac/home_screen.dart @@ -1,6 +1,6 @@ import 'package:movie_app/constants/app_constants.dart'; import 'package:movie_app/widgets/movie_carousel/movie_carousel.dart'; -import 'package:stac_core/stac_core.dart'; +import 'package:stac/stac_core.dart'; @StacScreen(screenName: 'home_screen') StacWidget homeScreen() { diff --git a/examples/movie_app/stac/onboarding_screen.dart b/examples/movie_app/stac/onboarding_screen.dart index bc1e355ea..fd407b896 100644 --- a/examples/movie_app/stac/onboarding_screen.dart +++ b/examples/movie_app/stac/onboarding_screen.dart @@ -1,5 +1,5 @@ import 'package:movie_app/constants/app_constants.dart'; -import 'package:stac_core/stac_core.dart'; +import 'package:stac/stac_core.dart'; @StacScreen(screenName: 'onboarding_screen') StacWidget onboardingScreen() { diff --git a/examples/stac_gallery/pubspec.lock b/examples/stac_gallery/pubspec.lock index 678855978..1ef347acb 100644 --- a/examples/stac_gallery/pubspec.lock +++ b/examples/stac_gallery/pubspec.lock @@ -781,7 +781,7 @@ packages: source: path version: "1.3.1" stac_core: - dependency: "direct main" + dependency: "direct overridden" description: path: "../../packages/stac_core" relative: true diff --git a/examples/stac_gallery/pubspec.yaml b/examples/stac_gallery/pubspec.yaml index 7a2fc4d94..ea943f9a3 100644 --- a/examples/stac_gallery/pubspec.yaml +++ b/examples/stac_gallery/pubspec.yaml @@ -39,7 +39,7 @@ dependencies: flutter_bloc: ^9.1.0 stac: stac_webview: - stac_core: + dev_dependencies: flutter_test: diff --git a/packages/stac/lib/src/framework/stac_service.dart b/packages/stac/lib/src/framework/stac_service.dart index 4da4147f8..5a1cfbd9c 100644 --- a/packages/stac/lib/src/framework/stac_service.dart +++ b/packages/stac/lib/src/framework/stac_service.dart @@ -6,9 +6,9 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide ErrorWidgetBuilder; import 'package:flutter/services.dart'; import 'package:stac/src/framework/stac.dart'; -import 'package:stac/src/models/stac_cache_config.dart'; import 'package:stac/src/framework/stac_error.dart'; import 'package:stac/src/framework/stac_registry.dart'; +import 'package:stac/src/models/stac_cache_config.dart'; import 'package:stac/src/parsers/actions/stac_form_validate/stac_form_validate_parser.dart'; import 'package:stac/src/parsers/actions/stac_get_form_value/stac_get_form_value_parser.dart'; import 'package:stac/src/parsers/actions/stac_network_request/stac_network_request_parser.dart'; @@ -20,7 +20,6 @@ import 'package:stac/src/parsers/widgets/stac_text/stac_text_parser.dart'; import 'package:stac/src/parsers/widgets/stac_tool_tip/stac_tool_tip_parser.dart'; import 'package:stac/src/services/stac_network_service.dart'; import 'package:stac/src/utils/variable_resolver.dart'; -import 'package:stac_core/core/stac_options.dart'; import 'package:stac_core/stac_core.dart'; import 'package:stac_framework/stac_framework.dart'; import 'package:stac_logger/stac_logger.dart'; diff --git a/packages/stac/lib/src/parsers/actions/stac_set_value/stac_set_value_action_parser.dart b/packages/stac/lib/src/parsers/actions/stac_set_value/stac_set_value_action_parser.dart index 80586a5f3..c6f90fa1b 100644 --- a/packages/stac/lib/src/parsers/actions/stac_set_value/stac_set_value_action_parser.dart +++ b/packages/stac/lib/src/parsers/actions/stac_set_value/stac_set_value_action_parser.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacSetValueActionParser extends StacActionParser { const StacSetValueActionParser(); diff --git a/packages/stac/lib/src/parsers/core/stac_action_parser.dart b/packages/stac/lib/src/parsers/core/stac_action_parser.dart index 6287bcd6b..526d0213d 100644 --- a/packages/stac/lib/src/parsers/core/stac_action_parser.dart +++ b/packages/stac/lib/src/parsers/core/stac_action_parser.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; extension StacActionParserExtension on StacAction? { FutureOr parse(BuildContext context) { diff --git a/packages/stac/lib/src/parsers/core/stac_widget_parser.dart b/packages/stac/lib/src/parsers/core/stac_widget_parser.dart index 20d761d70..62f7ceac7 100644 --- a/packages/stac/lib/src/parsers/core/stac_widget_parser.dart +++ b/packages/stac/lib/src/parsers/core/stac_widget_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/core/stac_widget.dart'; extension StacWidgetParser on StacWidget? { Widget? parse(BuildContext context) { diff --git a/packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart b/packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart index 7de3b7192..f8d9e0b96 100644 --- a/packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart +++ b/packages/stac/lib/src/parsers/foundation/decoration/stac_box_decoration_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/foundation/decoration/stac_box_decoration/stac_box_decoration.dart'; extension StacBoxDecorationParser on StacBoxDecoration { BoxDecoration? parse(BuildContext context) { diff --git a/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart index 8e6981f74..de44fa6d8 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_app_bar/stac_app_bar_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacAppBarParser extends StacParser { const StacAppBarParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_badge/stac_badge_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_badge/stac_badge_parser.dart index 7349d9468..5255a91bb 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_badge/stac_badge_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_badge/stac_badge_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacBadgeParser extends StacParser { const StacBadgeParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart index cdbf9e657..b15fff28a 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_container/stac_container_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacContainerParser extends StacParser { const StacContainerParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart index 508b85bf1..2af3d7291 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_io.dart @@ -4,7 +4,6 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacImageParser extends StacParser { const StacImageParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_stub.dart b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_stub.dart index eeea57a0a..fe0520124 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_stub.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_stub.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacImageParser extends StacParser { const StacImageParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart index 6d75f90cb..5ea91dc02 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_image/stac_image_parser_web.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; import 'package:stac_logger/stac_logger.dart'; class StacImageParser extends StacParser { diff --git a/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart index 8139d97ed..0389f4646 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_inkwell/stac_inkwell_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacInkwellParser extends StacParser { const StacInkwellParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart index 6c042c3f9..b967f1abe 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_linear_progress_indicator/stac_linear_progress_indicator_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacLinearProgressIndicatorParser extends StacParser { diff --git a/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart index c8a897628..afaa6c2d0 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_switch/stac_switch_parser.dart @@ -2,7 +2,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacSwitchParser extends StacParser { const StacSwitchParser(); diff --git a/packages/stac/lib/src/parsers/widgets/stac_tool_tip/stac_tool_tip_parser.dart b/packages/stac/lib/src/parsers/widgets/stac_tool_tip/stac_tool_tip_parser.dart index 406f49a20..4edf560ce 100644 --- a/packages/stac/lib/src/parsers/widgets/stac_tool_tip/stac_tool_tip_parser.dart +++ b/packages/stac/lib/src/parsers/widgets/stac_tool_tip/stac_tool_tip_parser.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:stac/stac.dart'; -import 'package:stac_core/stac_core.dart'; class StacToolTipParser extends StacParser { const StacToolTipParser(); diff --git a/packages/stac/lib/stac.dart b/packages/stac/lib/stac.dart index 749fd39aa..a67b2f4a4 100644 --- a/packages/stac/lib/stac.dart +++ b/packages/stac/lib/stac.dart @@ -4,6 +4,5 @@ export 'package:stac/src/parsers/actions/actions.dart'; export 'package:stac/src/parsers/parsers.dart'; export 'package:stac/src/services/services.dart'; export 'package:stac/src/utils/utils.dart'; -// Theme exports -export 'package:stac_core/stac_core.dart' show StacTheme; +export 'package:stac_core/stac_core.dart'; export 'package:stac_framework/stac_framework.dart'; diff --git a/packages/stac/lib/stac_core.dart b/packages/stac/lib/stac_core.dart new file mode 100644 index 000000000..c8bf1878a --- /dev/null +++ b/packages/stac/lib/stac_core.dart @@ -0,0 +1,7 @@ +/// Pure-Dart entry point for Stac screens. +/// +/// Use this import in files annotated with `@StacScreen` to ensure they +/// can be processed by the Stac CLI without requiring the Flutter SDK. +library; + +export 'package:stac_core/stac_core.dart'; diff --git a/packages/stac_core/lib/core/core.dart b/packages/stac_core/lib/core/core.dart index 9b3c3f1d8..d689264ba 100644 --- a/packages/stac_core/lib/core/core.dart +++ b/packages/stac_core/lib/core/core.dart @@ -2,4 +2,5 @@ library; export 'stac_action.dart'; export 'stac_widget.dart'; +export 'stac_options.dart'; export '../annotations/annotations.dart'; From 5af7375542166a5768c6c11f17387bbdb8b13577 Mon Sep 17 00:00:00 2001 From: Divyanshu Bhargava Date: Fri, 27 Feb 2026 19:44:15 +0530 Subject: [PATCH 2/2] fix: update import paths for stac package in movie_carousel and app_theme - Changed import from 'package:stac/stac_core.dart' to 'package:stac/stac.dart' in movie_carousel.dart. - Updated import from 'package:stac/stac.dart' to 'package:stac/stac_core.dart' in app_theme.dart to reflect recent re-exports. --- .../movie_app/lib/widgets/movie_carousel/movie_carousel.dart | 2 +- examples/movie_app/stac/app_theme.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart b/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart index 19ddf04ca..b2edb271f 100644 --- a/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart +++ b/examples/movie_app/lib/widgets/movie_carousel/movie_carousel.dart @@ -1,5 +1,5 @@ import 'package:json_annotation/json_annotation.dart'; -import 'package:stac/stac_core.dart'; +import 'package:stac/stac.dart'; part 'movie_carousel.g.dart'; diff --git a/examples/movie_app/stac/app_theme.dart b/examples/movie_app/stac/app_theme.dart index 222e7d3db..9889386c6 100644 --- a/examples/movie_app/stac/app_theme.dart +++ b/examples/movie_app/stac/app_theme.dart @@ -1,4 +1,4 @@ -import 'package:stac/stac.dart'; +import 'package:stac/stac_core.dart'; @StacThemeRef(name: "movie_app_dark") StacTheme get darkTheme => _buildTheme(