Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,6 @@ mason-lock.json

# Local Netlify folder
.netlify

# Cursor Files
.cursor/
2 changes: 1 addition & 1 deletion examples/stac_gallery/assets/json/app_bar_example.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"automaticallyImplyLeading": true,
"title": {
"type": "text",
"data": "Stac s",
"data": "Stac Appbar",
"children": [],
"style": null,
"softWrap": null,
Expand Down
123 changes: 21 additions & 102 deletions examples/stac_gallery/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:stac/stac.dart' show Stac;
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:stac/stac.dart' show Stac, StacApp;
import 'package:stac_gallery/app/details/details_screen.dart';
import 'package:stac_gallery/app/example/example_screen_parser.dart';
import 'package:stac_models/stac_models.dart';
import 'package:stac_models/theme/stac_button_style/stac_button_style.dart';
import 'package:stac_models/types/stac_continuous_rectangle_border/stac_continuous_rectangle_border.dart';
import 'package:stac_gallery/app/home/home_screen.dart';
import 'package:stac_gallery/app_theme/app_theme_cubit.dart';
import 'package:stac_webview/stac_webview.dart';

class MyHttpOverrides extends HttpOverrides {
Expand Down Expand Up @@ -34,105 +35,23 @@ class MyApp extends StatelessWidget {

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'STAC Gallery',
theme: ThemeData(
primarySwatch: Colors.blue,
return BlocProvider(
create: (context) => AppThemeCubit()..loadThemes(),
child: BlocBuilder<AppThemeCubit, AppThemeState>(
builder: (context, state) {
return StacApp(
theme: state.lightTheme,
darkTheme: state.darkTheme,
themeMode: state.themeMode,
homeBuilder: (context) => HomeScreen(),
title: 'Stac Gallery',
routes: {
'/homeScreen': (context) => const HomeScreen(),
'/detailsScreen': (context) => const DetailsScreen(),
},
);
},
),
home: Stac.fromStacWidget(widget: homeScreen(), context: context),
);
}
}

StacWidget homeScreen() {
return StacScaffold(
appBar: StacAppBar(
title: StacText(
data: 'STAC dede',
),
),
body: StacColumn(
children: [
StacContainer(
width: double.infinity,
color: StacColors.blue,
child: StacText(data: 'Hello, World!'),
),
StacContainer(
width: double.infinity,
color: StacColors.red,
child: StacText(data: 'Hello, World!'),
),
StacElevatedButton(
onPressed: {},
child: StacText(data: 'Hello, World!'),
style: StacButtonStyle(
shape: StacContinuousRectangleBorder(
borderRadius: StacBorderRadius.all(100),
side: StacBorderSide(
width: 10,
color: StacColors.black,
),
),
),
),
StacOutlinedButton(
onPressed: {},
child: StacText(data: 'Hello, World!'),
),
],
),
floatingActionButton: StacFloatingActionButton(
onPressed: {},
child: StacText(data: '+'),
),
);
}

// class HomeScreen extends StatelessWidget {
// const HomeScreen({super.key});

// @override
// Widget build(BuildContext context) {
// return Scaffold(
// appBar: AppBar(
// title: const Text('STAC Gallery'),
// ),
// body: Center(
// child: Container(
// color: Colors.blue,
// width: 100,
// height: 100,
// alignment: Alignment.center,
// child: Text('Hello, Stac!!'),
// ),
// ),
// );
// }
// }

// // class MyApp extends StatelessWidget {
// const MyApp({super.key});

// @override
// Widget build(BuildContext context) {
// return BlocProvider(
// create: (context) => AppThemeCubit()..loadThemes(),
// child: BlocBuilder<AppThemeCubit, AppThemeState>(
// builder: (context, state) {
// return StacApp(
// theme: state.lightTheme,
// darkTheme: state.darkTheme,
// themeMode: state.themeMode,
// homeBuilder: (context) => HomeScreen(),
// title: 'Stac Gallery',
// routes: {
// '/homeScreen': (context) => const HomeScreen(),
// '/detailsScreen': (context) => const DetailsScreen(),
// },
// );
// },
// ),
// );
// }
// }
13 changes: 0 additions & 13 deletions examples/stac_gallery/stac/unga.dart

This file was deleted.

2 changes: 1 addition & 1 deletion packages/stac/lib/src/framework/stac.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import 'package:stac/src/utils/variable_resolver.dart';
import 'package:stac/src/utils/widget_type.dart';
import 'package:stac_framework/stac_framework.dart';
import 'package:stac_logger/stac_logger.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

typedef ErrorWidgetBuilder = Widget Function(
BuildContext context,
Expand Down
2 changes: 1 addition & 1 deletion packages/stac/lib/src/parsers/core/stac_widget_parser.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:stac/stac.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

extension StacWidgetParser on StacWidget? {
Widget? parse(BuildContext context) {
Expand Down
44 changes: 0 additions & 44 deletions packages/stac_models/lib/core/converters/widget_converter.dart

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,23 @@ abstract class StacElement {
/// Base class for all STAC widgets
/// This is a concrete implementation that can hold raw JSON data,
/// used primarily by JSON converters for deserialization
@JsonSerializable()
class StacWidget extends StacElement {
const StacWidget({this.jsonData});

/// Raw JSON data for this widget
final Map<String, dynamic>? jsonData;

@override
Map<String, dynamic> toJson() => jsonData ?? {};

/// The type of the widget
@JsonKey(includeToJson: true)
String get type => throw UnimplementedError();

/// Creates a new widget from a JSON map
factory StacWidget.fromJson(Map<String, dynamic> json) {
return StacWidget(jsonData: json);
}

/// Converts this widget to a JSON map
@override
Map<String, dynamic> toJson() => jsonData ?? {};
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/types/stac_alignment.dart';
import 'package:stac_models/types/stac_box_fit.dart';
import 'package:stac_models/types/stac_filter_quality.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_edge_insets.g.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_system_ui_overlay_style.g.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/painting/stac_text_style/stac_text_style.dart';

part 'stac_text_span.g.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/painting/stac_color/stac_colors.dart';
import 'package:stac_models/types/stac_text_types.dart';

Expand Down
2 changes: 1 addition & 1 deletion packages/stac_models/lib/stac_models.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
library;

export 'core/stac_model.dart';
export 'core/stac_widget.dart';
export 'painting/painting.dart';
export 'types/types.dart';
export 'widgets/widgets.dart';
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/painting/stac_color/stac_colors.dart';
import 'package:stac_models/painting/stac_edge_insets/stac_edge_insets.dart';
import 'package:stac_models/painting/stac_text_style/stac_text_style.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/painting/stac_color/stac_colors.dart';
import 'package:stac_models/types/stac_border_side/stac_border_side.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_border_radius.g.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/painting/stac_color/stac_colors.dart';
import 'package:stac_models/types/stac_border/stac_border.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_duration.g.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_offset.g.dart';

Expand Down
2 changes: 1 addition & 1 deletion packages/stac_models/lib/types/stac_rect/stac_rect.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/converters/double_converter.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/types/stac_offset/stac_offset.dart';

part 'stac_rect.g.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';
import 'package:stac_models/types/stac_beveled_rectangle_border/stac_beveled_rectangle_border.dart';
import 'package:stac_models/types/stac_border_side/stac_border_side.dart';
import 'package:stac_models/types/stac_circle_border/stac_circle_border.dart';
Expand Down
2 changes: 1 addition & 1 deletion packages/stac_models/lib/types/stac_size/stac_size.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_size.g.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:stac_models/core/converters/double_converter.dart';
import 'package:stac_models/core/stac_model.dart';
import 'package:stac_models/core/stac_widget.dart';

part 'stac_visual_density.g.dart';

Expand Down
Loading