diff --git a/packages/wyatt_deferred_widget_annotation/.gitignore b/packages/wyatt_deferred_widget_annotation/.gitignore
new file mode 100644
index 00000000..3cceda55
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/.gitignore
@@ -0,0 +1,7 @@
+# https://dart.dev/guides/libraries/private-files
+# Created by `dart pub`
+.dart_tool/
+
+# Avoid committing pubspec.lock for library packages; see
+# https://dart.dev/guides/libraries/private-files#pubspeclock.
+pubspec.lock
diff --git a/packages/wyatt_deferred_widget_annotation/.vscode/extensions.json b/packages/wyatt_deferred_widget_annotation/.vscode/extensions.json
new file mode 100644
index 00000000..30cd2233
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/.vscode/extensions.json
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2022 WYATT GROUP
+ * Please see the AUTHORS file for details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+{
+ "recommendations": [
+ "psioniq.psi-header",
+ "blaugold.melos-code"
+ ]
+}
\ No newline at end of file
diff --git a/packages/wyatt_deferred_widget_annotation/.vscode/launch.json b/packages/wyatt_deferred_widget_annotation/.vscode/launch.json
new file mode 100644
index 00000000..653eabc8
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/.vscode/launch.json
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2023 WYATT GROUP
+ * Please see the AUTHORS file for details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Launch Example",
+ "request": "launch",
+ "type": "dart",
+ "cwd": "example/",
+ "program": "lib/main.dart",
+ "flutterMode": "debug"
+ },
+ ]
+}
\ No newline at end of file
diff --git a/packages/wyatt_deferred_widget_annotation/.vscode/settings.json b/packages/wyatt_deferred_widget_annotation/.vscode/settings.json
new file mode 100644
index 00000000..a729c46c
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/.vscode/settings.json
@@ -0,0 +1,72 @@
+{
+ "dart.runPubGetOnPubspecChanges": "never",
+ "bloc.newCubitTemplate.type": "equatable",
+ "psi-header.changes-tracking": {
+ "isActive": true
+ },
+ "psi-header.config": {
+ "blankLinesAfter": 1,
+ "forceToTop": true
+ },
+ "psi-header.lang-config": [
+ {
+ "beforeHeader": [
+ "# -*- coding:utf-8 -*-",
+ "#!/usr/bin/env python3"
+ ],
+ "begin": "###",
+ "end": "###",
+ "language": "python",
+ "prefix": "# "
+ },
+ {
+ "beforeHeader": [
+ "#!/usr/bin/env sh",
+ ""
+ ],
+ "language": "shellscript",
+ "begin": "",
+ "end": "",
+ "prefix": "# "
+ },
+ {
+ "begin": "",
+ "end": "",
+ "language": "dart",
+ "prefix": "// "
+ },
+ {
+ "begin": "",
+ "end": "",
+ "language": "yaml",
+ "prefix": "# "
+ },
+ {
+ "begin": "",
+ "language": "markdown",
+ },
+ ],
+ "psi-header.templates": [
+ {
+ "language": "*",
+ "template": [
+ "Copyright (C) <> WYATT GROUP",
+ "Please see the AUTHORS file for details.",
+ "",
+ "This program is free software: you can redistribute it and/or modify",
+ "it under the terms of the GNU General Public License as published by",
+ "the Free Software Foundation, either version 3 of the License, or",
+ "any later version.",
+ "",
+ "This program is distributed in the hope that it will be useful,",
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of",
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the",
+ "GNU General Public License for more details.",
+ "",
+ "You should have received a copy of the GNU General Public License",
+ "along with this program. If not, see ."
+ ],
+ }
+ ],
+}
\ No newline at end of file
diff --git a/packages/wyatt_deferred_widget_annotation/CHANGELOG.md b/packages/wyatt_deferred_widget_annotation/CHANGELOG.md
new file mode 100644
index 00000000..effe43c8
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/CHANGELOG.md
@@ -0,0 +1,3 @@
+## 1.0.0
+
+- Initial version.
diff --git a/packages/wyatt_deferred_widget_annotation/README.md b/packages/wyatt_deferred_widget_annotation/README.md
new file mode 100644
index 00000000..beebd111
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/README.md
@@ -0,0 +1,56 @@
+
+
+
+
+# Flutter - Wyatt Deferred Widget Annotation
+
+
+
+
+
+
+
+
+
+
+A package by wyatt studio
+
+## Features
+
+TODO: List what your package can do. Maybe include images, gifs, or videos.
+
+## Getting started
+
+TODO: List prerequisites and provide or point to information on how to
+start using the package.
+
+## Usage
+
+TODO: Include short and useful examples for package users. Add longer examples
+to `/example` folder.
+
+```dart
+const like = 'sample';
+```
+
+## Additional information
+
+TODO: Tell users more about the package: where to find more information, how to
+contribute to the package, how to file issues, what response they can expect
+from the package authors, and more.
diff --git a/packages/wyatt_deferred_widget_annotation/analysis_options.yaml b/packages/wyatt_deferred_widget_annotation/analysis_options.yaml
new file mode 100644
index 00000000..0939257e
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/analysis_options.yaml
@@ -0,0 +1,7 @@
+
+include: package:wyatt_analysis/analysis_options.flutter.yaml
+
+
+
+
+
diff --git a/packages/wyatt_deferred_widget_annotation/example/.gitignore b/packages/wyatt_deferred_widget_annotation/example/.gitignore
new file mode 100644
index 00000000..24476c5d
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/.gitignore
@@ -0,0 +1,44 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+migrate_working_dir/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+**/ios/Flutter/.last_build_id
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Symbolication related
+app.*.symbols
+
+# Obfuscation related
+app.*.map.json
+
+# Android Studio will place build artifacts here
+/android/app/debug
+/android/app/profile
+/android/app/release
diff --git a/packages/wyatt_deferred_widget_annotation/example/.metadata b/packages/wyatt_deferred_widget_annotation/example/.metadata
new file mode 100644
index 00000000..30e0d3ce
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/.metadata
@@ -0,0 +1,30 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled.
+
+version:
+ revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
+ channel: stable
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
+ base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
+ - platform: web
+ create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
+ base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/packages/wyatt_deferred_widget_annotation/example/README.md b/packages/wyatt_deferred_widget_annotation/example/README.md
new file mode 100644
index 00000000..2b3fce4c
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/README.md
@@ -0,0 +1,16 @@
+# example
+
+A new Flutter project.
+
+## Getting Started
+
+This project is a starting point for a Flutter application.
+
+A few resources to get you started if this is your first Flutter project:
+
+- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
+- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
+
+For help getting started with Flutter development, view the
+[online documentation](https://docs.flutter.dev/), which offers tutorials,
+samples, guidance on mobile development, and a full API reference.
diff --git a/packages/wyatt_deferred_widget_annotation/example/analysis_options.yaml b/packages/wyatt_deferred_widget_annotation/example/analysis_options.yaml
new file mode 100644
index 00000000..0939257e
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/analysis_options.yaml
@@ -0,0 +1,7 @@
+
+include: package:wyatt_analysis/analysis_options.flutter.yaml
+
+
+
+
+
diff --git a/packages/wyatt_deferred_widget_annotation/example/lib/main.dart b/packages/wyatt_deferred_widget_annotation/example/lib/main.dart
new file mode 100644
index 00000000..19e883c9
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/lib/main.dart
@@ -0,0 +1,60 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/material.dart';
+import 'package:wyatt_deferred_widget_annotation/wyatt_deferred_widget_annotation.dart';
+import 'package:wyatt_deferred_widget_annotation_example/widgets/my_awesome_widget1_deferred.dart';
+import 'package:wyatt_deferred_widget_annotation_example/widgets/my_awesome_widget2_deferred.dart';
+import 'package:wyatt_deferred_widget_annotation_example/widgets/my_awesome_widget3.dart';
+
+void main(List args) {
+ Deferred.placeholderBuilder = (context) => const CircularProgressIndicator();
+ runApp(const App());
+}
+
+class App extends StatelessWidget {
+ const App({super.key});
+
+ static const String title = 'Wyatt Deferred Widget Annotation Example';
+
+ @override
+ Widget build(BuildContext context) => MaterialApp(
+ title: title,
+ theme: ThemeData(
+ primarySwatch: Colors.blue,
+ ),
+ home: Scaffold(
+ appBar: AppBar(
+ title: const Text(title),
+ ),
+ body: Builder(
+ builder: (context) => ListView(
+ children: [
+ const MyAwesomeWidget3(),
+ MyAwesomeWidget2Deferred(
+ placeholderSize: MediaQuery.of(context).size,
+ ),
+ MyAwesomeWidget1Deferred(
+ color: Colors.yellow,
+ placeholderBuilder: (context) =>
+ const LinearProgressIndicator(),
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+}
diff --git a/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget1.dart b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget1.dart
new file mode 100644
index 00000000..2b70a311
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget1.dart
@@ -0,0 +1,35 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/material.dart';
+import 'package:wyatt_deferred_widget_annotation/wyatt_deferred_widget_annotation.dart';
+
+@Deferred()
+class MyAwesomeWidget1 extends StatelessWidget {
+ const MyAwesomeWidget1({required this.color, super.key});
+
+ final Color color;
+
+ @override
+ Widget build(BuildContext context) => Container(
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ color: color,
+ child: const Center(
+ child: Text('MyAwesomeWidget1'),
+ ),
+ );
+}
diff --git a/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget1_deferred.dart b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget1_deferred.dart
new file mode 100644
index 00000000..6c818ec1
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget1_deferred.dart
@@ -0,0 +1,72 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/material.dart';
+import 'package:wyatt_deferred_widget_annotation/wyatt_deferred_widget_annotation.dart';
+import 'package:wyatt_deferred_widget_annotation_example/widgets/my_awesome_widget1.dart'
+ deferred as my_awesome_widget1;
+
+class MyAwesomeWidget1Deferred extends StatefulWidget {
+ const MyAwesomeWidget1Deferred({
+ required this.color,
+ this.placeholderBuilder,
+ super.key,
+ });
+
+ final Color color;
+
+ final Widget Function(BuildContext context)? placeholderBuilder;
+
+ @override
+ State createState() =>
+ MyAwesomeWidget1DeferredState();
+}
+
+class MyAwesomeWidget1DeferredState extends State {
+ static bool loaded = false;
+
+ @override
+ void initState() {
+ load();
+ super.initState();
+ }
+
+ Future load() async {
+ await my_awesome_widget1.loadLibrary();
+ await Future.delayed(const Duration(seconds: 1));
+ if (mounted) {
+ setState(() {
+ loaded = true;
+ });
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ if (!loaded) {
+ if (widget.placeholderBuilder != null) {
+ return widget.placeholderBuilder!.call(context);
+ }
+ if (Deferred.placeholderBuilder != null) {
+ return Deferred.placeholderBuilder!.call(context);
+ }
+ return const SizedBox.shrink();
+ }
+ return my_awesome_widget1.MyAwesomeWidget1(
+ color: widget.color,
+ );
+ }
+}
diff --git a/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget2.dart b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget2.dart
new file mode 100644
index 00000000..e72604bf
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget2.dart
@@ -0,0 +1,31 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/material.dart';
+
+class MyAwesomeWidget2 extends StatelessWidget {
+ const MyAwesomeWidget2({super.key});
+
+ @override
+ Widget build(BuildContext context) => Container(
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ color: Colors.green,
+ child: const Center(
+ child: Text('MyAwesomeWidget2'),
+ ),
+ );
+}
diff --git a/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget2_deferred.dart b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget2_deferred.dart
new file mode 100644
index 00000000..2ded39d0
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget2_deferred.dart
@@ -0,0 +1,83 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/material.dart';
+import 'package:wyatt_deferred_widget_annotation/wyatt_deferred_widget_annotation.dart';
+import 'package:wyatt_deferred_widget_annotation_example/widgets/my_awesome_widget2.dart'
+ deferred as my_awesome_widget2;
+
+class MyAwesomeWidget2Deferred extends StatefulWidget {
+ const MyAwesomeWidget2Deferred({
+ this.placeholderBuilder,
+ this.placeholderSize,
+ super.key,
+ });
+
+ /// Widget builder for the placeholder.
+ ///
+ /// Prior over the global placeholder defined in [Deferred].
+ final Widget Function(BuildContext context)? placeholderBuilder;
+
+ /// Size for the placeholder builder.
+ ///
+ /// Useful to build a global placeholder defined in [Deferred] with
+ /// different size depending of the widget.
+ final Size? placeholderSize;
+
+ @override
+ State createState() =>
+ MyAwesomeWidget2DeferredState();
+}
+
+class MyAwesomeWidget2DeferredState extends State {
+ static bool loaded = false;
+
+ @override
+ void initState() {
+ load();
+ super.initState();
+ }
+
+ Future load() async {
+ await my_awesome_widget2.loadLibrary();
+ await Future.delayed(const Duration(seconds: 1));
+ if (mounted) {
+ setState(() {
+ loaded = true;
+ });
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ if (!loaded) {
+ if (widget.placeholderBuilder != null) {
+ return SizedBox.fromSize(
+ size: widget.placeholderSize,
+ child: widget.placeholderBuilder!.call(context),
+ );
+ }
+ if (Deferred.placeholderBuilder != null) {
+ return SizedBox.fromSize(
+ size: widget.placeholderSize,
+ child: Deferred.placeholderBuilder!.call(context),
+ );
+ }
+ return const SizedBox.shrink();
+ }
+ return my_awesome_widget2.MyAwesomeWidget2();
+ }
+}
diff --git a/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget3.dart b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget3.dart
new file mode 100644
index 00000000..02dd7cf6
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/lib/widgets/my_awesome_widget3.dart
@@ -0,0 +1,36 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/material.dart';
+
+class MyAwesomeWidget3 extends StatefulWidget {
+ const MyAwesomeWidget3({super.key});
+
+ @override
+ State createState() => _MyAwesomeWidget3State();
+}
+
+class _MyAwesomeWidget3State extends State {
+ @override
+ Widget build(BuildContext context) => Container(
+ height: MediaQuery.of(context).size.height,
+ width: MediaQuery.of(context).size.width,
+ color: Colors.blue,
+ child: const Center(
+ child: Text('MyAwesomeWidget3'),
+ ),
+ );
+}
diff --git a/packages/wyatt_deferred_widget_annotation/example/pubspec.yaml b/packages/wyatt_deferred_widget_annotation/example/pubspec.yaml
new file mode 100644
index 00000000..9d7bf186
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/pubspec.yaml
@@ -0,0 +1,25 @@
+name: wyatt_deferred_widget_annotation_example
+description: A new Flutter project.
+version: 1.0.0
+
+publish_to: "none"
+
+environment:
+ sdk: ">=2.19.0 <3.0.0"
+
+dependencies:
+ flutter: { sdk: flutter }
+
+ wyatt_deferred_widget_annotation:
+ path: "../"
+
+dev_dependencies:
+ flutter_test: { sdk: flutter }
+
+ wyatt_analysis:
+ hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
+ version: ^2.3.0
+
+# The following section is specific to Flutter.
+flutter:
+ uses-material-design: true
diff --git a/packages/wyatt_deferred_widget_annotation/example/test/widget_test.dart b/packages/wyatt_deferred_widget_annotation/example/test/widget_test.dart
new file mode 100644
index 00000000..e69de29b
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/favicon.png b/packages/wyatt_deferred_widget_annotation/example/web/favicon.png
new file mode 100644
index 00000000..8aaa46ac
Binary files /dev/null and b/packages/wyatt_deferred_widget_annotation/example/web/favicon.png differ
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-192.png b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-192.png
new file mode 100644
index 00000000..b749bfef
Binary files /dev/null and b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-192.png differ
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-512.png b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-512.png
new file mode 100644
index 00000000..88cfd48d
Binary files /dev/null and b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-512.png differ
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-maskable-192.png b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-maskable-192.png
new file mode 100644
index 00000000..eb9b4d76
Binary files /dev/null and b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-maskable-192.png differ
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-maskable-512.png b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-maskable-512.png
new file mode 100644
index 00000000..d69c5669
Binary files /dev/null and b/packages/wyatt_deferred_widget_annotation/example/web/icons/Icon-maskable-512.png differ
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/index.html b/packages/wyatt_deferred_widget_annotation/example/web/index.html
new file mode 100644
index 00000000..be820e83
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/web/index.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ example
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/wyatt_deferred_widget_annotation/example/web/manifest.json b/packages/wyatt_deferred_widget_annotation/example/web/manifest.json
new file mode 100644
index 00000000..096edf8f
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/example/web/manifest.json
@@ -0,0 +1,35 @@
+{
+ "name": "example",
+ "short_name": "example",
+ "start_url": ".",
+ "display": "standalone",
+ "background_color": "#0175C2",
+ "theme_color": "#0175C2",
+ "description": "A new Flutter project.",
+ "orientation": "portrait-primary",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "icons/Icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "icons/Icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ },
+ {
+ "src": "icons/Icon-maskable-192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "maskable"
+ },
+ {
+ "src": "icons/Icon-maskable-512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "maskable"
+ }
+ ]
+}
diff --git a/packages/wyatt_deferred_widget_annotation/lib/src/deferred.dart b/packages/wyatt_deferred_widget_annotation/lib/src/deferred.dart
new file mode 100644
index 00000000..e7e50d98
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/lib/src/deferred.dart
@@ -0,0 +1,26 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+import 'package:flutter/widgets.dart';
+
+class Deferred {
+ const Deferred();
+
+ /// Global widget builder used in deferred widget by default.
+ static Widget Function(BuildContext context)? placeholderBuilder;
+}
+
+const Deferred deferred = Deferred();
diff --git a/packages/wyatt_deferred_widget_annotation/lib/wyatt_deferred_widget_annotation.dart b/packages/wyatt_deferred_widget_annotation/lib/wyatt_deferred_widget_annotation.dart
new file mode 100644
index 00000000..3b4ddc01
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/lib/wyatt_deferred_widget_annotation.dart
@@ -0,0 +1,20 @@
+// Copyright (C) 2023 WYATT GROUP
+// Please see the AUTHORS file for details.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+/// A package by wyatt studio
+library wyatt_deferred_widget_annotation;
+
+export './src/deferred.dart';
diff --git a/packages/wyatt_deferred_widget_annotation/pubspec.yaml b/packages/wyatt_deferred_widget_annotation/pubspec.yaml
new file mode 100644
index 00000000..9982ab65
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/pubspec.yaml
@@ -0,0 +1,22 @@
+name: wyatt_deferred_widget_annotation
+description: A package by wyatt studio.
+repository: https://git.wyatt-studio.fr/Wyatt-FOSS/wyatt-packages/src/branch/master/packages/wyatt_deferred_widget_annotation
+version: 1.0.0
+
+environment:
+ sdk: ">=2.19.0 <3.0.0"
+
+dependencies:
+ flutter: { sdk: flutter }
+ meta: ^1.8.0
+
+dev_dependencies:
+ flutter_test: { sdk: flutter }
+
+ wyatt_analysis:
+ hosted: https://git.wyatt-studio.fr/api/packages/Wyatt-FOSS/pub
+ version: ^2.4.0
+
+# The following section is specific to Flutter.
+flutter:
+ uses-material-design: true
diff --git a/packages/wyatt_deferred_widget_annotation/test/wyatt_deferred_widget_annotation_test.dart b/packages/wyatt_deferred_widget_annotation/test/wyatt_deferred_widget_annotation_test.dart
new file mode 100644
index 00000000..771213c1
--- /dev/null
+++ b/packages/wyatt_deferred_widget_annotation/test/wyatt_deferred_widget_annotation_test.dart
@@ -0,0 +1 @@
+// TODO(wyatt): add some tests
\ No newline at end of file