kasy-cli 1.37.0 → 1.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/scaffold/backends/patch-base-hashes.json +2 -2
- package/package.json +1 -1
- package/templates/firebase/AGENTS.md +13 -9
- package/templates/firebase/README.en.md +1 -1
- package/templates/firebase/README.es.md +1 -1
- package/templates/firebase/README.md +1 -1
- package/templates/firebase/lib/components/kasy_sidebar.dart +3 -3
- package/templates/firebase/lib/features/authentication/ui/signin_page.dart +11 -7
- package/templates/firebase/pubspec.yaml +1 -1
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"api/lib/features/subscriptions/api/entities/subscription_entity.dart": "20c1d75ed9d88acb96e94a592dcb4de0f63c792302ea07df53cebbdeb6d0cf7e",
|
|
31
31
|
"api/lib/features/subscriptions/api/stripe_backend_api.dart": "e370bd05211462f2fc94c69af1749eb5330f997e9ec5e73e5c4e119999bf666f",
|
|
32
32
|
"api/lib/features/subscriptions/api/subscription_api.dart": "c7484c9301d16245748025a3d420a89397e9e956b2211b7ed001c073ff2e4449",
|
|
33
|
-
"api/README.md": "
|
|
33
|
+
"api/README.md": "3c3e4b7731ac6eb86f8fdce202ed7b7d681246bcf76fdb87b389e4c9dfdeac08",
|
|
34
34
|
"supabase/android/app/src/main/AndroidManifest.xml": "0579c57068ee50d43837ef9c7bee884b6232e92975301c8305ce389282f68291",
|
|
35
35
|
"supabase/ios/Runner/AppDelegate.swift": "9f1027a03ad1fef2dab45464fbd7e98364b6a9cb6d2a6abe770ee9c45fa19122",
|
|
36
36
|
"supabase/lib/core/data/api/storage_api.dart": "d77fecc6923ea9544b6ec20571dcab5c8f3d38be81ec618b0cf4f1b08be7bbae",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"supabase/lib/features/subscriptions/api/stripe_backend_api.dart": "e370bd05211462f2fc94c69af1749eb5330f997e9ec5e73e5c4e119999bf666f",
|
|
63
63
|
"supabase/lib/features/subscriptions/api/subscription_api.dart": "c7484c9301d16245748025a3d420a89397e9e956b2211b7ed001c073ff2e4449",
|
|
64
64
|
"supabase/lib/google_auth_options.dart": "9d3ab9be5928f3100b9b217864d916edd1223d186e60ed130c35628812cace66",
|
|
65
|
-
"supabase/README.md": "
|
|
65
|
+
"supabase/README.md": "3c3e4b7731ac6eb86f8fdce202ed7b7d681246bcf76fdb87b389e4c9dfdeac08"
|
|
66
66
|
}
|
package/package.json
CHANGED
|
@@ -41,15 +41,19 @@ colours, typography, spacing and dozens of ready widgets (`KasyButton`,
|
|
|
41
41
|
`showKasyConfirmDialog`, …). Reuse one before writing a new widget. Full token
|
|
42
42
|
reference: **`DESIGN_SYSTEM.md`**.
|
|
43
43
|
|
|
44
|
-
**Responsiveness is deliberate, not improvised.**
|
|
45
|
-
|
|
46
|
-
oscillates or guesses:
|
|
44
|
+
**Responsiveness is deliberate, not improvised.** The responsive system
|
|
45
|
+
(`DeviceType` in `lib/core/widgets/responsive_layout.dart`) has four tiers and the
|
|
46
|
+
type sizes are pinned per breakpoint, so the UI never oscillates or guesses:
|
|
47
47
|
|
|
48
|
-
|
|
|
49
|
-
| ---------- |
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
48
|
+
| DeviceType | Width | Notes |
|
|
49
|
+
| ---------- | ------------ | ------------------------------------------------ |
|
|
50
|
+
| `small` | `< 768` | native iOS/Android + phone-width web |
|
|
51
|
+
| `medium` | `768–1023` | tablet |
|
|
52
|
+
| `large` | `1024–1279` | desktop, authored baseline |
|
|
53
|
+
| `xlarge` | `>= 1280` | wide desktop (web-scale design target, 1280) |
|
|
54
|
+
|
|
55
|
+
Typography collapses `large`+`xlarge` into one "desktop" tier (same sizes); the
|
|
56
|
+
`1280` boundary matters for the web render scale (its design target), not type.
|
|
53
57
|
|
|
54
58
|
- **Typography** (`KasyTypeScale`): each role has an **explicit size per
|
|
55
59
|
breakpoint** — headings are largest on desktop and step down on smaller
|
|
@@ -139,7 +143,7 @@ Recommended flow when the user wants newer kit code:
|
|
|
139
143
|
2. Run the relevant command:
|
|
140
144
|
- `kasy update` — shows what's new for the features in use
|
|
141
145
|
- `kasy update core` / `kasy update components` — refreshes core files / UI components
|
|
142
|
-
- `kasy update <feature>` — e.g. `revenuecat`, `ai_chat`, `
|
|
146
|
+
- `kasy update <feature>` — e.g. `revenuecat`, `ai_chat`, `widget` (re-applies that feature)
|
|
143
147
|
3. The command overwrites the files and prints which ones changed.
|
|
144
148
|
4. **Merge:** if the user had customized any overwritten file, reconcile their version
|
|
145
149
|
(in the previous git commit) with the new kit version. As the in-project agent,
|
|
@@ -74,7 +74,7 @@ Force manually: `kasy run --rc=test` or `kasy run --rc=prod`. `--rc=auto` (defau
|
|
|
74
74
|
To update, edit `.vscode/launch.json` or pass via command line:
|
|
75
75
|
|
|
76
76
|
```sh
|
|
77
|
-
flutter run --dart-define=
|
|
77
|
+
flutter run --dart-define=RC_ANDROID_PROD_KEY=your_key
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
---
|
|
@@ -74,7 +74,7 @@ Forzar manualmente: `kasy run --rc=test` o `kasy run --rc=prod`. `--rc=auto` (po
|
|
|
74
74
|
Para actualizar, edita `.vscode/launch.json` o pasa por línea de comandos:
|
|
75
75
|
|
|
76
76
|
```sh
|
|
77
|
-
flutter run --dart-define=
|
|
77
|
+
flutter run --dart-define=RC_ANDROID_PROD_KEY=tu_clave
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
---
|
|
@@ -74,7 +74,7 @@ Forçar manualmente: `kasy run --rc=test` ou `kasy run --rc=prod`. `--rc=auto` (
|
|
|
74
74
|
Para atualizar, edite o `.vscode/launch.json` ou passe via linha de comando:
|
|
75
75
|
|
|
76
76
|
```sh
|
|
77
|
-
flutter run --dart-define=
|
|
77
|
+
flutter run --dart-define=RC_ANDROID_PROD_KEY=sua_chave
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
---
|
|
@@ -254,7 +254,7 @@ class KasySidebar extends StatefulWidget {
|
|
|
254
254
|
/// gradient-fill avatar ([profileGradient]) is shown instead.
|
|
255
255
|
final Widget? profileAvatar;
|
|
256
256
|
|
|
257
|
-
/// Gradient used for the profile avatar when no [
|
|
257
|
+
/// Gradient used for the profile avatar when no [profileAvatar] is given.
|
|
258
258
|
final KasyAvatarGradientData profileGradient;
|
|
259
259
|
|
|
260
260
|
/// Tap on the profile block (open account menu / profile).
|
|
@@ -463,7 +463,7 @@ class _KasySidebarState extends State<KasySidebar> {
|
|
|
463
463
|
if (!_collapsed) ...[
|
|
464
464
|
_buildWorkspaceSelector(c),
|
|
465
465
|
const SizedBox(height: _kHeaderGap),
|
|
466
|
-
_buildTabs(
|
|
466
|
+
_buildTabs(),
|
|
467
467
|
const SizedBox(height: _kNavGap),
|
|
468
468
|
],
|
|
469
469
|
for (final item in _kShowcaseItems)
|
|
@@ -712,7 +712,7 @@ class _KasySidebarState extends State<KasySidebar> {
|
|
|
712
712
|
/// The showcase segment is the shared [KasyTabs] component (primary pill,
|
|
713
713
|
/// fill mode) so the sidebar demos the real design-system control rather than
|
|
714
714
|
/// a bespoke copy.
|
|
715
|
-
Widget _buildTabs(
|
|
715
|
+
Widget _buildTabs() {
|
|
716
716
|
return KasyTabs(
|
|
717
717
|
tabs: const ['Layers', 'Assets'],
|
|
718
718
|
selectedIndex: _showcaseTab,
|
|
@@ -262,16 +262,20 @@ class _GuestContinueButtonState extends ConsumerState<_GuestContinueButton> {
|
|
|
262
262
|
bool _loading = false;
|
|
263
263
|
|
|
264
264
|
Future<void> _continue() async {
|
|
265
|
+
// Capture the app-level router BEFORE the await. Creating the guest account
|
|
266
|
+
// flips this button's visibility condition (it only shows while there's no
|
|
267
|
+
// identity), so the widget is disposed the moment the account exists — after
|
|
268
|
+
// that `context`/`ref`/`mounted` are gone. The router survives, so navigate
|
|
269
|
+
// through the captured instance.
|
|
270
|
+
//
|
|
271
|
+
// We navigate explicitly because the redirect intentionally only bounces
|
|
272
|
+
// *authenticated* users off the auth routes (so a guest can still open
|
|
273
|
+
// sign-in to upgrade); it won't carry a freshly-created anonymous guest home.
|
|
274
|
+
final router = GoRouter.of(context);
|
|
265
275
|
setState(() => _loading = true);
|
|
266
276
|
try {
|
|
267
277
|
await ref.read(userStateNotifierProvider.notifier).continueAsGuest();
|
|
268
|
-
|
|
269
|
-
// Navigate explicitly: the user is now an anonymous guest (has an id but
|
|
270
|
-
// is NOT an AuthenticatedUserData), and the router redirect intentionally
|
|
271
|
-
// only bounces *authenticated* users off the auth routes — so a guest can
|
|
272
|
-
// still open sign-in to upgrade. That means it won't carry us home on its
|
|
273
|
-
// own here; we do it ourselves.
|
|
274
|
-
context.go('/');
|
|
278
|
+
router.go('/');
|
|
275
279
|
} catch (_) {
|
|
276
280
|
if (!mounted) return;
|
|
277
281
|
setState(() => _loading = false);
|
|
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|
|
16
16
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
17
17
|
# In Windows, build-name is used as the major, minor, and patch parts
|
|
18
18
|
# of the product and file versions while build-number is used as the build suffix.
|
|
19
|
-
version: 1.0.0+
|
|
19
|
+
version: 1.0.0+58
|
|
20
20
|
|
|
21
21
|
environment:
|
|
22
22
|
sdk: ^3.11.0
|