diff --git a/.agents/skills/flutter-add-widget-preview/SKILL.md b/.agents/skills/flutter-add-widget-preview/SKILL.md deleted file mode 100644 index 6ba68942..00000000 --- a/.agents/skills/flutter-add-widget-preview/SKILL.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -name: flutter-add-widget-preview -description: Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing. -metadata: - model: models/gemini-3.1-pro-preview - last_modified: Tue, 21 Apr 2026 20:05:23 GMT ---- -# Previewing Flutter Widgets - -## Contents -- [Preview Guidelines](#preview-guidelines) -- [Handling Limitations](#handling-limitations) -- [Workflows](#workflows) -- [Examples](#examples) - -## Preview Guidelines - -Use the Flutter Widget Previewer to render widgets in real-time, isolated from the full application context. - -- **Target Elements:** Apply the `@Preview` annotation to top-level functions, static methods within a class, or public widget constructors/factories that have no required arguments and return a `Widget` or `WidgetBuilder`. -- **Imports:** Always import `package:flutter/widget_previews.dart` to access the preview annotations. -- **Custom Annotations:** Extend the `Preview` class to create custom annotations that inject common properties (e.g., themes, wrappers) across multiple widgets. -- **Multiple Configurations:** Apply multiple `@Preview` annotations to a single target to generate multiple preview instances. Alternatively, extend `MultiPreview` to encapsulate common multi-preview configurations. -- **Runtime Transformations:** Override the `transform()` method in custom `Preview` or `MultiPreview` classes to modify preview configurations dynamically at runtime (e.g., generating names based on dynamic values, which is impossible in a `const` context). - -## Handling Limitations - -Adhere to the following constraints when authoring previewable widgets, as the Widget Previewer runs in a web environment: - -- **No Native APIs:** Do not use native plugins or APIs from `dart:io` or `dart:ffi`. Widgets with transitive dependencies on `dart:io` or `dart:ffi` will throw exceptions upon invocation. Use conditional imports to mock or bypass these in preview mode. -- **Asset Paths:** Use package-based paths for assets loaded via `dart:ui` `fromAsset` APIs (e.g., `packages/my_package_name/assets/my_image.png` instead of `assets/my_image.png`). -- **Public Callbacks:** Ensure all callback arguments provided to preview annotations are public and constant to satisfy code generation requirements. -- **Constraints:** Apply explicit constraints using the `size` parameter in the `@Preview` annotation if your widget is unconstrained, as the previewer defaults to constraining them to approximately half the viewport. - -## Workflows - -### Creating a Widget Preview -Copy and track this checklist when implementing a new widget preview: - -- [ ] Import `package:flutter/widget_previews.dart`. -- [ ] Identify a valid target (top-level function, static method, or parameter-less public constructor). -- [ ] Apply the `@Preview` annotation to the target. -- [ ] Configure preview parameters (`name`, `group`, `size`, `theme`, `brightness`, etc.) as needed. -- [ ] If applying the same configuration to multiple widgets, extract the configuration into a custom class extending `Preview`. - -### Interacting with Previews -Follow the appropriate conditional workflow to launch and interact with the Widget Previewer: - -**If using a supported IDE (Android Studio, IntelliJ, VS Code with Flutter 3.38+):** -1. Launch the IDE. The Widget Previewer starts automatically. -2. Open the "Flutter Widget Preview" tab in the sidebar. -3. Toggle "Filter previews by selected file" at the bottom left if you want to view previews outside the currently active file. - -**If using the Command Line:** -1. Navigate to the Flutter project's root directory. -2. Run `flutter widget-preview start`. -3. View the automatically opened Chrome environment. - -**Feedback Loop: Preview Iteration** -1. Modify the widget code or preview configuration. -2. Observe the automatic update in the Widget Previewer. -3. If global state (e.g., static initializers) was modified: Click the global hot restart button at the bottom right. -4. If only the local widget state needs resetting: Click the individual hot restart button on the specific preview card. -5. Review errors in the IDE/CLI console -> fix -> repeat. - -## Examples - -### Basic Preview -```dart -import 'package:flutter/widget_previews.dart'; -import 'package:flutter/material.dart'; - -@Preview(name: 'My Sample Text', group: 'Typography') -Widget mySampleText() { - return const Text('Hello, World!'); -} -``` - -### Custom Preview with Runtime Transformation -```dart -import 'package:flutter/widget_previews.dart'; -import 'package:flutter/material.dart'; - -final class TransformativePreview extends Preview { - const TransformativePreview({ - super.name, - super.group, - }); - - PreviewThemeData _themeBuilder() { - return PreviewThemeData( - materialLight: ThemeData.light(), - materialDark: ThemeData.dark(), - ); - } - - @override - Preview transform() { - final originalPreview = super.transform(); - final builder = originalPreview.toBuilder(); - - builder - ..name = 'Transformed - ${originalPreview.name}' - ..theme = _themeBuilder; - - return builder.toPreview(); - } -} - -@TransformativePreview(name: 'Custom Themed Button') -Widget myButton() => const ElevatedButton(onPressed: null, child: Text('Click')); -``` - -### MultiPreview Implementation -```dart -import 'package:flutter/widget_previews.dart'; -import 'package:flutter/material.dart'; - -/// Creates light and dark mode previews automatically. -final class MultiBrightnessPreview extends MultiPreview { - const MultiBrightnessPreview({required this.name}); - - final String name; - - @override - List get previews => const [ - Preview(brightness: Brightness.light), - Preview(brightness: Brightness.dark), - ]; - - @override - List transform() { - final previews = super.transform(); - return previews.map((preview) { - final builder = preview.toBuilder() - ..group = 'Brightness' - ..name = '$name - ${preview.brightness!.name}'; - return builder.toPreview(); - }).toList(); - } -} - -@MultiBrightnessPreview(name: 'Primary Card') -Widget cardPreview() => const Card(child: Padding(padding: EdgeInsets.all(8.0), child: Text('Content'))); -``` diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b3a8f8a6..12a1843d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -2,46 +2,20 @@ PODS: - audio_waveforms (0.0.1): - Flutter - Flutter (1.0.0) - - fvp (0.36.1): - - Flutter - - FlutterMacOS - - mdk (~> 0.36.0) - - mdk (0.36.0) - - pro_image_editor (12.0.8): - - Flutter - - pro_video_editor (0.0.1): - - Flutter DEPENDENCIES: - audio_waveforms (from `.symlinks/plugins/audio_waveforms/ios`) - Flutter (from `Flutter`) - - fvp (from `.symlinks/plugins/fvp/darwin`) - - pro_image_editor (from `.symlinks/plugins/pro_image_editor/ios`) - - pro_video_editor (from `.symlinks/plugins/pro_video_editor/ios`) - -SPEC REPOS: - trunk: - - mdk EXTERNAL SOURCES: audio_waveforms: :path: ".symlinks/plugins/audio_waveforms/ios" Flutter: :path: Flutter - fvp: - :path: ".symlinks/plugins/fvp/darwin" - pro_image_editor: - :path: ".symlinks/plugins/pro_image_editor/ios" - pro_video_editor: - :path: ".symlinks/plugins/pro_video_editor/ios" SPEC CHECKSUMS: audio_waveforms: a6dde7fe7c0ea05f06ffbdb0f7c1b2b2ba6cedcf Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 - fvp: f8b3b61cf8c696ecaa5608ae0d282ba710e65ae9 - mdk: 3bfb53e0bcc9643180eaa864360051f281e4c17b - pro_image_editor: 3dedac450f82a389877286fa9eb08852cefb04ea - pro_video_editor: 44ef9a6d48dbd757ed428cf35396dd05f35c7830 PODFILE CHECKSUM: e716c32704b29904c5fe233535ab45faecf8c549 diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 931c8a86..ce78242e 100644 --- a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk", "state" : { - "revision" : "d10045cace0b4c335c4efa8f7df7e9a9fc5a7c60", - "version" : "12.13.0" + "revision" : "8d5b4189f1f482df8d5c58c9985ea70491ef5382", + "version" : "12.14.0" } }, { @@ -41,8 +41,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", "state" : { - "revision" : "19dffda9a9caf8d86570ff846535902d8509d7bf", - "version" : "3.5.0" + "revision" : "9bfcc6cf435b2e7c5562c1900b8680c594fa9a64", + "version" : "3.6.0" } }, { @@ -50,8 +50,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { - "revision" : "c2c76bebcfbb90d90ea10599f934f9af160e1604", - "version" : "12.13.0" + "revision" : "219e564a8510e983e675c94f77f7f7c50049f22d", + "version" : "12.14.0" } }, { @@ -86,8 +86,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { - "revision" : "c756a29784521063b6a1202907e2cc47f41b667c", - "version" : "4.5.0" + "revision" : "c0ac7575d70050c2973ba2318bd5af47f8e8153a", + "version" : "5.3.0" } }, { @@ -113,8 +113,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { - "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1", - "version" : "2.30910.0" + "revision" : "3851d94a41890dea16dc3db34caf60e585cb4163", + "version" : "2.30910.1" } }, { @@ -122,8 +122,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/PostHog/posthog-ios", "state" : { - "revision" : "39e527bd41124ab907bfa31e4b3384b124c36e07", - "version" : "3.58.1" + "revision" : "179438b8e0c9a357ab0caf453577f766ffddbcb3", + "version" : "3.59.3" } }, { @@ -131,8 +131,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { - "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac", - "version" : "2.4.0" + "revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837", + "version" : "2.4.1" } } ], diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index 931c8a86..d3d660d9 100644 --- a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -32,8 +32,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk", "state" : { - "revision" : "d10045cace0b4c335c4efa8f7df7e9a9fc5a7c60", - "version" : "12.13.0" + "revision" : "8d5b4189f1f482df8d5c58c9985ea70491ef5382", + "version" : "12.14.0" } }, { @@ -41,8 +41,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", "state" : { - "revision" : "19dffda9a9caf8d86570ff846535902d8509d7bf", - "version" : "3.5.0" + "revision" : "9bfcc6cf435b2e7c5562c1900b8680c594fa9a64", + "version" : "3.6.0" } }, { @@ -50,8 +50,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { - "revision" : "c2c76bebcfbb90d90ea10599f934f9af160e1604", - "version" : "12.13.0" + "revision" : "219e564a8510e983e675c94f77f7f7c50049f22d", + "version" : "12.14.0" } }, { @@ -122,8 +122,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/PostHog/posthog-ios", "state" : { - "revision" : "39e527bd41124ab907bfa31e4b3384b124c36e07", - "version" : "3.58.1" + "revision" : "179438b8e0c9a357ab0caf453577f766ffddbcb3", + "version" : "3.59.3" } }, { diff --git a/pubspec.lock b/pubspec.lock index 27af5adc..a25f227e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "8f89e371e2883de35cdc78f648e725fa4da5f3b6c927269f00fa68f1ea92b598" + sha256: "0d1f0adfabbab9f46a1a80ce84a4d8b852b6e4dbf53ce413b30e0cf7d3631b71" url: "https://pub.dev" source: hosted - version: "1.3.71" + version: "1.3.72" accessibility_tools: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: "direct main" description: name: app_badge_plus - sha256: c0d9e318d0c516764945d0d1997d4e99e9b7d26523e8404a35c70c9fe5ec249b + sha256: "60b24ecbcb792f5b185a837b066ee436ef9f6435f2a3006eb314d0c6a80f1d75" url: "https://pub.dev" source: hosted - version: "1.2.10" + version: "1.3.1" archive: dependency: transitive description: @@ -101,10 +101,10 @@ packages: dependency: "direct main" description: name: audioplayers - sha256: a72dd459d1a48f61a6fb9c0134dba26597c9236af40639ff0eb70eb4e0baab70 + sha256: f16640453cc47487b7de72a2b28d37c7df1ac97999849f4a46d92b1d2b0f093d url: "https://pub.dev" source: hosted - version: "6.6.0" + version: "6.7.1" audioplayers_android: dependency: transitive description: @@ -141,18 +141,18 @@ packages: dependency: transitive description: name: audioplayers_web - sha256: faa8fa6587f996a6f604433b53af44c57a1407d4fe8dff5766cf63d6875e8de9 + sha256: "24a6f258062bd7da8cb2157e83fccb9816a08dd306cbaaa24f9813d071470545" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.2.1" audioplayers_windows: dependency: transitive description: name: audioplayers_windows - sha256: bafff2b38b6f6d331887558ba6e0a01c9c208d9dbb3ad0005234db065122a734 + sha256: "95f875a96c88c3dbbcb608d4f8288e300b0113d256a81d0b3197fcc18f0dc91a" url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.3.1" auto_route: dependency: "direct main" description: @@ -181,10 +181,10 @@ packages: dependency: "direct main" description: name: better_player_plus - sha256: c480b7c740c42f03de51c945b2f2518ae8abf6f4635d4465360100b826c170e9 + sha256: "73bcaf462bce2ea0433ec0dceb1ba32ed9bb1cef156fc88f68b31f51a5d0beea" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.2" bluesky_poptart: dependency: "direct main" description: @@ -293,10 +293,10 @@ packages: dependency: transitive description: name: camera_android_camerax - sha256: b5064cf25a2787d122d0bf12e77c7b1033a2b983d0730e3091f770ee376efde5 + sha256: e20c1e92ce6797d9ae9b1db1e09a4c1039a04827d0b24985f5da3840b96948ac url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.2+1" camera_avfoundation: dependency: transitive description: @@ -373,10 +373,10 @@ packages: dependency: transitive description: name: code_assets - sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.2.1" code_builder: dependency: transitive description: @@ -405,10 +405,10 @@ packages: dependency: transitive description: name: coverage - sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" + sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.15.1" cross_file: dependency: transitive description: @@ -453,18 +453,18 @@ packages: dependency: transitive description: name: dbus - sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270 + sha256: "0ce9b0a839e6dee59a37a623d2fc26a35bbbe6404213e419b0d6411023d62645" url: "https://pub.dev" source: hosted - version: "0.7.12" + version: "0.7.14" desktop_webview_window: dependency: transitive description: name: desktop_webview_window - sha256: "57cf20d81689d5cbb1adfd0017e96b669398a669d927906073b0e42fc64111c0" + sha256: b6fdae2cbf9571879b1761c12f27facaf82e22d0bdc74d049907c2a09a432957 url: "https://pub.dev" source: hosted - version: "0.2.3" + version: "0.3.0" device_frame_plus: dependency: transitive description: @@ -541,10 +541,10 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "93a5bde9775fd5adcc937f39dfa04ae0bc89c4d79bea6abc49de3f7b049d9ff6" + sha256: ec46a100a560d3bd5f97f2d89ba7492cb09b6dd0a4a28753d1258f360d6bd9f9 url: "https://pub.dev" source: hosted - version: "4.9.0" + version: "4.10.0" firebase_core_platform_interface: dependency: transitive description: @@ -557,34 +557,34 @@ packages: dependency: transitive description: name: firebase_core_web - sha256: "7c98f10b8c8e5adedc0b810b66a877120696675e2c22d9ca9caca092da0d9e57" + sha256: "5ad1be848692ec148f2d6a8ad2a3838cb852ea5f3c9e6479a7afce479e1854f8" url: "https://pub.dev" source: hosted - version: "3.7.0" + version: "3.8.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: "8d0dc81a31cd030170508dc3e89bfd14355b20a1b991340af5f018e37daab5d7" + sha256: "9651e833454156b9f0927eaedccffba0f7f6a6e20ceddef82517211e7017e9c4" url: "https://pub.dev" source: hosted - version: "16.2.2" + version: "16.3.0" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: "37abb0b0535c5497605ee94c12470e1ebbbe47e71a22d0c20bffcc912311f8cb" + sha256: "292bb5dc9c4a429078895406c347d7c7690deb858c1adeed8f4b4346f769dfa3" url: "https://pub.dev" source: hosted - version: "4.7.11" + version: "4.8.0" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: "54e22b43e2c26a2728a3f68c188de0f9011993ae19ae959a06d476dad935c776" + sha256: "08c565bc83729439f5de2dfea77b4832002b705eb2f840366cefa80e4e5c3c66" url: "https://pub.dev" source: hosted - version: "4.1.7" + version: "4.2.0" fixnum: dependency: transitive description: @@ -655,10 +655,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "38d1c268de9097ff59cf0e844ac38759fc78f76836d37edad06fa21e182055a0" + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" url: "https://pub.dev" source: hosted - version: "2.0.34" + version: "2.0.35" flutter_riverpod: dependency: "direct main" description: @@ -671,26 +671,26 @@ packages: dependency: "direct main" description: name: flutter_secure_storage - sha256: "6848263f9744072d0977347c383fb8b57d9780319a6bf5238b5a2866a029de62" + sha256: "7686b1d6a29985dcbb808c59518226e603e3bfa7c0ddfd1a0d00e4cda77c868e" url: "https://pub.dev" source: hosted - version: "10.2.0" + version: "10.3.1" flutter_secure_storage_darwin: dependency: transitive description: name: flutter_secure_storage_darwin - sha256: "67cd1ff671add31dc13e45194398187a04bb63804b37fa47866afae296d73fcb" + sha256: "82329fa5cdf343773b1b6897dea959105a29f092454259edff92f9f6637e8149" url: "https://pub.dev" source: hosted - version: "0.3.1" + version: "0.3.2" flutter_secure_storage_linux: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "2b5c76dce569ab752d55a1cee6a2242bcc11fdba927078fb88c503f150767cda" + sha256: a5f35ddab43cf5c8215d2feb4ce1957851f28c5c37e6f04335066a0602087bf5 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" flutter_secure_storage_platform_interface: dependency: transitive description: @@ -711,10 +711,10 @@ packages: dependency: transitive description: name: flutter_secure_storage_windows - sha256: "8f42f359f187a94dce7a3ab2ec5903d013dddfc7127078ebab19fa244c3840e8" + sha256: "471951813a97006d899db4948acc654a4f28c440083ea08178935ce20b173ec1" url: "https://pub.dev" source: hosted - version: "4.2.1" + version: "4.2.2" flutter_svg: dependency: "direct main" description: @@ -732,10 +732,10 @@ packages: dependency: "direct main" description: name: flutter_web_auth_2 - sha256: d354998934ddc338e69b999b2abaeb33c6fd09999d3a5f92ead1a6b49b49712e + sha256: "8f9303471dcd96670878c9b7c0c4e14c37595b2add67465f6a868f17a5872dfc" url: "https://pub.dev" source: hosted - version: "5.0.2" + version: "5.0.3" flutter_web_auth_2_platform_interface: dependency: transitive description: @@ -785,10 +785,10 @@ packages: dependency: "direct main" description: name: fvp - sha256: "23274616c8ba8e18b9e07d95c5a52c026aa5d0bb240bd24a04b181dd9c2c8b66" + sha256: "0f147516a2520bb37efc9027bce1f20a0aa4487428e9f1437ad7dfa449aa93bd" url: "https://pub.dev" source: hosted - version: "0.36.2" + version: "0.37.2" get_it: dependency: "direct main" description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: hooks - sha256: "025f060e86d2d4c3c47b56e33caf7f93bf9283340f26d23424ebcfccf34f621e" + sha256: "9a62a50b50b769a737bc0a8ff381f333529df3ab746b2f6b02e83760231455ba" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "2.0.2" hotreloader: dependency: transitive description: @@ -897,10 +897,10 @@ packages: dependency: transitive description: name: image_picker_android - sha256: d5b3e1774af29c9ab00103afb0d4614070f924d2e0057ac867ec98800114793f + sha256: "6f3a1995eafb000333174fae92202622033b0ee7fd917a6cd3730295264df84a" url: "https://pub.dev" source: hosted - version: "0.8.13+17" + version: "0.8.13+19" image_picker_for_web: dependency: transitive description: @@ -1101,14 +1101,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" - native_toolchain_c: - dependency: transitive - description: - name: native_toolchain_c - sha256: "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572" - url: "https://pub.dev" - source: hosted - version: "0.17.6" nested: dependency: transitive description: @@ -1137,10 +1129,10 @@ packages: dependency: transitive description: name: objective_c - sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52" + sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" url: "https://pub.dev" source: hosted - version: "9.3.0" + version: "9.4.1" octo_image: dependency: transitive description: @@ -1369,26 +1361,26 @@ packages: dependency: "direct main" description: name: posthog_flutter - sha256: "55a46ecf63411a6ede4a85e9d31dd251223c375fa85c18b78a134e62e11dcd6b" + sha256: a8cd994150ad8c3bbdd199ef378ef84d06078f76b1fcba48bc2b11346df9bc4d url: "https://pub.dev" source: hosted - version: "5.24.2" + version: "5.26.0" pro_image_editor: dependency: "direct main" description: name: pro_image_editor - sha256: b9ef2e934b74c7e12e7803697433d00c12187fc83e210313ac20ec93370a61b4 + sha256: d0624ce3f32b4124936edab52663c9da9aa6abe4e8140c6c5085dfc3cdaeba5d url: "https://pub.dev" source: hosted - version: "12.4.4" + version: "12.4.8" pro_video_editor: dependency: "direct main" description: name: pro_video_editor - sha256: e16c1e67a2f9e7f91723764642f0dfb188a6ab4de1d3f98f2ec1ac699dd9ee9d + sha256: "4e83988955909810791938b611a3dd6a02f15623cd98f73da976ae98eb917f7f" url: "https://pub.dev" source: hosted - version: "1.16.3" + version: "1.18.0" pub_semver: dependency: transitive description: @@ -1489,10 +1481,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53 + sha256: "93ae5884a9df5d3bb696825bceb3a17590754548b5d740eba51500afc8d088f5" url: "https://pub.dev" source: hosted - version: "2.4.23" + version: "2.4.26" shared_preferences_foundation: dependency: transitive description: @@ -1630,42 +1622,42 @@ packages: dependency: "direct main" description: name: sqflite - sha256: "564cfed0746fe53140c23b70b308e045c3b31f17778f2f326ccb7d804ea0250a" + sha256: "58a799e6ac17dd32fbab93813d39ed835a75ccc0f8f85b8955fe318c6712b082" url: "https://pub.dev" source: hosted - version: "2.4.2+1" + version: "2.4.3" sqflite_android: dependency: transitive description: name: sqflite_android - sha256: "881e28efdcc9950fd8e9bb42713dcf1103e62a2e7168f23c9338d82db13dec40" + sha256: d0548f9d7422a2dae99ec6f8b0a3074463b132d216fa5ba0d230eeefc901983b url: "https://pub.dev" source: hosted - version: "2.4.2+3" + version: "2.4.3" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "1581ffbf7a0e333b380d6a30737d78516b826cb35beb7fb0bf8a3ea0c678b465" + sha256: "6e9bb47c00413882e0b5e1e6d4279d052d365fd4487a468e01915ff3d61daece" url: "https://pub.dev" source: hosted - version: "2.5.8" + version: "2.5.10+1" sqflite_darwin: dependency: transitive description: name: sqflite_darwin - sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + sha256: "164a5d73ab87a134566057219988bafde837029a64264e61f1f04376ef3cfcd2" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" sqflite_platform_interface: dependency: transitive description: name: sqflite_platform_interface - sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + sha256: f84939f84350d92d04416f8bc4dc52d3896aec7716cc9e80cf0146342139dc50 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" stack_trace: dependency: transitive description: @@ -1718,10 +1710,10 @@ packages: dependency: "direct main" description: name: synchronized - sha256: "63896c27e81b28f8cb4e69ead0d3e8f03f1d1e5fc531a3e579cabed6a2c7c9e5" + sha256: "93b153dcb6a26dcddee6ca087dd634b53e38c10b5aa163e8e49501a776456153" url: "https://pub.dev" source: hosted - version: "3.4.0+1" + version: "3.4.1" term_glyph: dependency: transitive description: @@ -1774,10 +1766,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "17bc677f0b301615530dd1d67e0a9828cafa2d0b6b6eae4cd3679b7eac4a273c" + sha256: b413d49b73867ac08dd2f9890efd3cc11f2a0e577618d50843440a1fb3776c32 url: "https://pub.dev" source: hosted - version: "6.3.30" + version: "6.3.32" url_launcher_ios: dependency: transitive description: @@ -1854,10 +1846,10 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: b9b3f391857781aa96acacef96066f2f49b4cd03cf9fce3ca4d8da2ef5ea129e + sha256: "7ee12e6dffe0fc8e755179d6d91b3b34f5924223fc104d85572ef9180d73d172" url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.2.5" vector_math: dependency: transitive description: @@ -1878,10 +1870,10 @@ packages: dependency: transitive description: name: video_player_android - sha256: "877a6c7ba772456077d7bfd71314629b3fe2b73733ce503fc77c3314d43a0ca0" + sha256: "5d18d04084cc0cfc7afde39d0a308d4041e8ae6e9d5255bc086c263998dd1201" url: "https://pub.dev" source: hosted - version: "2.9.5" + version: "2.9.6" video_player_avfoundation: dependency: transitive description: @@ -1982,10 +1974,10 @@ packages: dependency: transitive description: name: widgetbook - sha256: "4ff857b441b7fc43432a69ec6fe56494184c895e36cec502e400648024710b9c" + sha256: "7ce2a15c59990610aefb0a8a4d69f67dd842d41676b7af6b5b746aa3371d32cf" url: "https://pub.dev" source: hosted - version: "3.23.0" + version: "3.24.0" widgetbook_annotation: dependency: transitive description: @@ -1998,26 +1990,26 @@ packages: dependency: transitive description: name: widgetbook_generator - sha256: "8f7d6157f95d4406876088152d374e64c6632df32abe9b7ac27f95202996ae13" + sha256: "8fd3b4208bb74cbe60cd6fc99b443561b65542658b20d6dd700a2496edbd5647" url: "https://pub.dev" source: hosted - version: "3.23.0" + version: "3.24.0" win32: dependency: transitive description: name: win32 - sha256: a1fc9eb9248baa05dfc12ed5b66e377b3e23f095eec078e0371622b9033810d9 + sha256: ba6f4bba816c8d7e3c1580e170f3786d216951cc6b94babc3b814c08d2cb2738 url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.3.0" window_to_front: dependency: transitive description: name: window_to_front - sha256: "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee" + sha256: "14fad8984db4415e2eeb30b04bb77140b180e260d6cb66b26de126a8657a9241" url: "https://pub.dev" source: hosted - version: "0.0.3" + version: "0.0.4" xdg_directories: dependency: transitive description: @@ -2051,5 +2043,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.11.0 <4.0.0" - flutter: ">=3.41.0" + dart: ">=3.12.0 <4.0.0" + flutter: ">=3.44.0" diff --git a/pubspec.yaml b/pubspec.yaml index 114faa44..24a69ade 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -12,13 +12,13 @@ workspace: dependencies: any_link_preview: ^3.0.3 - app_badge_plus: ^1.2.10 + app_badge_plus: ^1.3.1 assets: path: assets audio_waveforms: ^2.0.2 - audioplayers: ^6.6.0 + audioplayers: ^6.7.1 auto_route: ^11.1.0 - better_player_plus: ^1.3.0 + better_player_plus: ^1.3.2 bluesky_poptart: ^0.1.1 ozone_poptart: ^0.1.1 plyr_poptart: ^0.1.0 @@ -29,8 +29,8 @@ dependencies: camera: ^0.12.0+1 collection: ^1.19.1 crypto: ^3.0.7 - firebase_core: ^4.9.0 - firebase_messaging: ^16.2.2 + firebase_core: ^4.10.0 + firebase_messaging: ^16.3.0 fluentui_system_icons: ^1.1.273 flutter: sdk: flutter @@ -40,14 +40,14 @@ dependencies: flutter_localizations: sdk: flutter flutter_riverpod: ^3.3.1 - flutter_secure_storage: ^10.2.0 + flutter_secure_storage: ^10.3.1 flutter_svg: ^2.3.0 - flutter_web_auth_2: ^5.0.2 + flutter_web_auth_2: ^5.0.3 fonts: path: fonts freezed: ^3.2.5 freezed_annotation: ^3.1.0 - fvp: ^0.36.2 + fvp: ^0.37.2 get_it: ^9.2.1 google_fonts: ^8.1.0 http: ^1.6.0 @@ -60,15 +60,15 @@ dependencies: photo_manager: ^3.9.0 oauth2: ^2.0.5 pool: ^1.5.2 - posthog_flutter: ^5.24.2 - pro_image_editor: ^12.4.4 - pro_video_editor: ^1.16.3 + posthog_flutter: ^5.26.0 + pro_image_editor: ^12.4.8 + pro_video_editor: ^1.18.0 riverpod_annotation: ^4.0.2 share_plus: ^13.1.0 shared_preferences: ^2.5.5 skeletonizer: ^2.1.3 - sqflite: ^2.4.2+1 - synchronized: ^3.4.0+1 + sqflite: ^2.4.3 + synchronized: ^3.4.1 url_launcher: ^6.3.2 video_player: ^2.11.1 diff --git a/skills-lock.json b/skills-lock.json deleted file mode 100644 index d00afe86..00000000 --- a/skills-lock.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "version": 1, - "skills": { - "flutter-add-integration-test": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "9ead37fef54371fed6ad07a9ba3de7a908135a0867b05baf74c28b7095343999" - }, - "flutter-add-widget-preview": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "1b59c009558aab7a8e4b7b101fbe535b06054c0672780e9cea7e5c98a9c48dc4" - }, - "flutter-add-widget-test": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "c4f263c59cfe331ef42dba2aa81e25142aa4f7284518907c6b847e04502676b0" - }, - "flutter-apply-architecture-best-practices": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "2b1b63214d6b153c50aacd4bbcb76ce91dece449de9e06f477f8aad3163d667f" - }, - "flutter-build-responsive-layout": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "f762ea2ee83d4f1f35d9093b41d2520dd024ab80c9539d4860b9ae7f2a4dc6a0" - }, - "flutter-fix-layout-issues": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "1aaba922c951159118f9b141788f7bb7b8167bdc0bd5c6f0738ebb90c29b9532" - }, - "flutter-setup-declarative-routing": { - "source": "flutter/skills", - "sourceType": "github", - "computedHash": "2341440c8bce0f176663695eaa71f9f7d7c967772a1dcd0d833c9778504b227e" - } - } -} diff --git a/widgetbook/pubspec.yaml b/widgetbook/pubspec.yaml index 535dd482..b4967840 100644 --- a/widgetbook/pubspec.yaml +++ b/widgetbook/pubspec.yaml @@ -10,7 +10,7 @@ resolution: workspace dependencies: flutter: sdk: flutter - widgetbook: ^3.23.0 + widgetbook: ^3.24.0 widgetbook_annotation: ^3.11.0 spark: path: ../ @@ -25,7 +25,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^6.0.0 - widgetbook_generator: ^3.23.0 + widgetbook_generator: ^3.24.0 build_runner: ^2.15.0 flutter: