kasy-cli 1.24.0 → 1.26.0
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/commands/new.js +53 -3
- package/lib/utils/flutter-install.js +26 -1
- package/lib/utils/i18n/messages-en.js +3 -0
- package/lib/utils/i18n/messages-es.js +3 -0
- package/lib/utils/i18n/messages-pt.js +3 -0
- package/package.json +1 -1
- package/templates/firebase/lib/components/kasy_app_bar.dart +12 -6
- package/templates/firebase/lib/components/kasy_avatar.dart +17 -10
- package/templates/firebase/lib/components/kasy_card.dart +4 -0
- package/templates/firebase/lib/components/kasy_checkbox.dart +24 -15
- package/templates/firebase/lib/components/kasy_date_picker.dart +27 -20
- package/templates/firebase/lib/components/kasy_otp_verification_bottom_sheet.dart +19 -14
- package/templates/firebase/lib/components/kasy_sidebar.dart +6 -0
- package/templates/firebase/lib/components/kasy_tabs.dart +76 -65
- package/templates/firebase/lib/core/bottom_menu/bottom_menu.dart +103 -3
- package/templates/firebase/lib/core/bottom_menu/web_content_wrapper.dart +45 -2
- package/templates/firebase/lib/core/widgets/kasy_pressable_depth.dart +37 -1
- package/templates/firebase/lib/features/ai_chat/ui/widgets/ai_conversation_tile.dart +9 -4
- package/templates/firebase/lib/features/authentication/ui/recover_password_page.dart +1 -0
- package/templates/firebase/lib/features/authentication/ui/signin_page.dart +10 -5
- package/templates/firebase/lib/features/authentication/ui/signup_page.dart +1 -0
- package/templates/firebase/lib/features/feedbacks/ui/widgets/add_feature_button.dart +1 -0
- package/templates/firebase/lib/features/feedbacks/ui/widgets/feature_card.dart +2 -0
- package/templates/firebase/lib/features/home/home_feed.dart +21 -5
- package/templates/firebase/lib/features/home/home_image_grid.dart +83 -58
- package/templates/firebase/lib/features/local_reminders/ui/reminder_page.dart +124 -101
- package/templates/firebase/lib/features/notifications/ui/components/notification_tile.dart +1 -0
- package/templates/firebase/lib/features/notifications/ui/widgets/notification_tile.dart +85 -85
- package/templates/firebase/lib/features/onboarding/ui/widgets/selectable_row_tile.dart +67 -62
- package/templates/firebase/lib/features/settings/settings_page.dart +17 -1
- package/templates/firebase/lib/features/settings/ui/components/avatar_component.dart +37 -23
- package/templates/firebase/lib/features/settings/ui/components/language_switcher.dart +63 -48
- package/templates/firebase/lib/features/settings/ui/widgets/admin_card.dart +14 -6
- package/templates/firebase/lib/features/settings/ui/widgets/settings_tile.dart +2 -0
- package/templates/firebase/lib/features/subscriptions/ui/widgets/premium_banner.dart +9 -3
- package/templates/firebase/lib/features/subscriptions/ui/widgets/premium_close_button.dart +24 -16
- package/templates/firebase/lib/features/subscriptions/ui/widgets/selectable_col.dart +29 -22
- package/templates/firebase/lib/features/subscriptions/ui/widgets/selectable_row.dart +19 -12
- package/templates/firebase/lib/i18n/en.i18n.json +2 -1
- package/templates/firebase/lib/i18n/es.i18n.json +2 -1
- package/templates/firebase/lib/i18n/pt.i18n.json +2 -1
|
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|
|
4
4
|
import 'package:flutter_animate/flutter_animate.dart';
|
|
5
5
|
import 'package:kasy_kit/core/haptics/kasy_haptics.dart';
|
|
6
6
|
import 'package:kasy_kit/core/theme/theme.dart';
|
|
7
|
+
import 'package:kasy_kit/core/widgets/kasy_focus_ring.dart';
|
|
7
8
|
import 'package:kasy_kit/features/subscriptions/ui/widgets/selectable_row.dart';
|
|
8
9
|
|
|
9
10
|
|
|
@@ -43,6 +44,17 @@ class _SelectableColGroupState<T> extends State<SelectableColGroup<T>> {
|
|
|
43
44
|
|
|
44
45
|
OnSelectItem<T> get onSelectItem => widget.onSelectItem;
|
|
45
46
|
|
|
47
|
+
void _selectIndex(int i) {
|
|
48
|
+
setState(() {
|
|
49
|
+
if (selectedIndex == i) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
KasyHaptics.heavy(context);
|
|
53
|
+
selectedIndex = i;
|
|
54
|
+
onSelectItem(widget.items[i].data);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
46
58
|
@override
|
|
47
59
|
Widget build(BuildContext context) {
|
|
48
60
|
return IntrinsicHeight(
|
|
@@ -53,29 +65,24 @@ class _SelectableColGroupState<T> extends State<SelectableColGroup<T>> {
|
|
|
53
65
|
children: [
|
|
54
66
|
for (var i = 0; i < widget.items.length; i++)
|
|
55
67
|
Expanded(
|
|
56
|
-
child:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
child: KasyFocusRing(
|
|
69
|
+
onActivate: () => _selectIndex(i),
|
|
70
|
+
borderRadius: KasyRadius.lgBorderRadius,
|
|
71
|
+
child: GestureDetector(
|
|
72
|
+
onTap: () => _selectIndex(i),
|
|
73
|
+
child: Animate(
|
|
74
|
+
effects: [
|
|
75
|
+
FadeEffect(
|
|
76
|
+
delay: Duration(milliseconds: 100 + 100 * i),
|
|
77
|
+
duration: const Duration(milliseconds: 500),
|
|
78
|
+
),
|
|
79
|
+
],
|
|
80
|
+
child: SelectableCol.fromOption(
|
|
81
|
+
key: ValueKey('item_$i'),
|
|
82
|
+
widget.items[i],
|
|
83
|
+
selected: selectedIndex == i,
|
|
84
|
+
brightness: widget.brightness,
|
|
72
85
|
),
|
|
73
|
-
],
|
|
74
|
-
child: SelectableCol.fromOption(
|
|
75
|
-
key: ValueKey('item_$i'),
|
|
76
|
-
widget.items[i],
|
|
77
|
-
selected: selectedIndex == i,
|
|
78
|
-
brightness: widget.brightness,
|
|
79
86
|
),
|
|
80
87
|
),
|
|
81
88
|
),
|
|
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|
|
2
2
|
import 'package:flutter_animate/flutter_animate.dart';
|
|
3
3
|
import 'package:kasy_kit/core/haptics/kasy_haptics.dart';
|
|
4
4
|
import 'package:kasy_kit/core/theme/theme.dart';
|
|
5
|
+
import 'package:kasy_kit/core/widgets/kasy_focus_ring.dart';
|
|
5
6
|
|
|
6
7
|
typedef OnSelectItem<T> = void Function(T data);
|
|
7
8
|
|
|
@@ -34,23 +35,28 @@ class _SelectableRowGroupState<T> extends State<SelectableRowGroup<T>> {
|
|
|
34
35
|
|
|
35
36
|
OnSelectItem<T> get onSelectItem => widget.onSelectItem;
|
|
36
37
|
|
|
38
|
+
void _selectIndex(int i) {
|
|
39
|
+
setState(() {
|
|
40
|
+
if (selectedIndex == i) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
KasyHaptics.heavy(context);
|
|
44
|
+
selectedIndex = i;
|
|
45
|
+
onSelectItem(widget.items[i].data);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
37
49
|
@override
|
|
38
50
|
Widget build(BuildContext context) {
|
|
39
51
|
return Column(
|
|
40
52
|
children: [
|
|
41
53
|
for (var i = 0; i < widget.items.length; i++)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
KasyHaptics.heavy(context);
|
|
49
|
-
selectedIndex = i;
|
|
50
|
-
onSelectItem(widget.items[i].data);
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
child: Padding(
|
|
54
|
+
KasyFocusRing(
|
|
55
|
+
onActivate: () => _selectIndex(i),
|
|
56
|
+
borderRadius: KasyRadius.mdBorderRadius,
|
|
57
|
+
child: GestureDetector(
|
|
58
|
+
onTap: () => _selectIndex(i),
|
|
59
|
+
child: Padding(
|
|
54
60
|
padding: EdgeInsets.only(
|
|
55
61
|
bottom: i == widget.items.length - 1 ? 0 : KasySpacing.sm,
|
|
56
62
|
),
|
|
@@ -69,6 +75,7 @@ class _SelectableRowGroupState<T> extends State<SelectableRowGroup<T>> {
|
|
|
69
75
|
),
|
|
70
76
|
),
|
|
71
77
|
),
|
|
78
|
+
),
|
|
72
79
|
),
|
|
73
80
|
],
|
|
74
81
|
);
|