kasy-cli 1.21.9 → 1.23.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/add.js +93 -80
- package/lib/commands/configure.js +100 -32
- package/lib/commands/doctor.js +28 -2
- package/lib/commands/new.js +80 -37
- package/lib/commands/notifications.js +1 -1
- package/lib/commands/remove.js +43 -15
- package/lib/commands/run.js +2 -2
- package/lib/commands/update.js +2 -2
- package/lib/scaffold/CHANGELOG.json +14 -0
- package/lib/scaffold/backends/api/generator.js +14 -14
- package/lib/scaffold/backends/api/patch/README.md +83 -0
- package/lib/scaffold/backends/api/patch/lib/core/data/api/storage_api.dart +1 -1
- package/lib/scaffold/backends/api/patch/lib/core/data/entities/user_entity.dart +5 -0
- package/lib/scaffold/backends/api/patch/lib/{environnements.dart → environments.dart} +3 -11
- package/lib/scaffold/backends/api/patch/lib/features/ai_chat/api/ai_chat_api.dart +108 -0
- package/lib/scaffold/backends/api/patch/lib/features/ai_chat/api/ai_chat_conversation_entity.dart +51 -0
- package/lib/scaffold/backends/api/patch/lib/features/{llm_chat/api/llm_chat_message_entity.dart → ai_chat/api/ai_chat_message_entity.dart} +5 -5
- package/lib/scaffold/backends/api/patch/lib/features/{llm_chat/providers/llm_chat_notifier.dart → ai_chat/providers/ai_chat_notifier.dart} +71 -38
- package/lib/scaffold/backends/api/patch/lib/features/authentication/api/authentication_api.dart +2 -2
- package/lib/scaffold/backends/api/patch/lib/features/feedbacks/api/feature_request_api.dart +54 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/models/user_info.dart +16 -16
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/ui/components/onboarding_att_setup.dart +4 -3
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +38 -28
- package/lib/scaffold/backends/api/patch/lib/features/settings/ui/components/admin/admin_users_api.dart +100 -0
- package/lib/scaffold/backends/api/patch/lib/features/{subscription → subscriptions}/api/entities/subscription_entity.dart +13 -0
- package/lib/scaffold/backends/api/patch/lib/features/subscriptions/api/stripe_backend_api.dart +60 -0
- package/lib/scaffold/backends/api/patch/lib/features/{subscription → subscriptions}/api/subscription_api.dart +1 -1
- package/lib/scaffold/backends/api/pubspec.yaml.tpl +4 -5
- package/lib/scaffold/backends/firebase/deploy.js +87 -13
- package/lib/scaffold/backends/firebase/generator.js +5 -5
- package/lib/scaffold/backends/firebase/tokens.js +4 -4
- package/lib/scaffold/backends/supabase/deploy.js +63 -11
- package/lib/scaffold/backends/supabase/edge-functions/admin-list-users/index.ts +149 -0
- package/lib/scaffold/backends/supabase/edge-functions/{llm-chat → ai-chat}/index.ts +19 -19
- package/lib/scaffold/backends/supabase/edge-functions/revenuecat-webhook/index.ts +2 -0
- package/lib/scaffold/backends/supabase/edge-functions/stripe-create-checkout-session/index.ts +123 -0
- package/lib/scaffold/backends/supabase/edge-functions/stripe-create-portal-session/index.ts +97 -0
- package/lib/scaffold/backends/supabase/edge-functions/stripe-list-prices/index.ts +83 -0
- package/lib/scaffold/backends/supabase/edge-functions/stripe-webhook/index.ts +138 -0
- package/lib/scaffold/backends/supabase/generator.js +17 -17
- package/lib/scaffold/backends/supabase/migrations/20240101000009_ai_messages.sql +50 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000012_stripe_customers.sql +36 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000013_admin_role.sql +62 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/data/entities/user_entity.dart +4 -0
- package/lib/scaffold/backends/supabase/patch/lib/{environnements.dart → environments.dart} +3 -13
- package/lib/scaffold/backends/supabase/patch/lib/features/ai_chat/api/ai_chat_api.dart +95 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/ai_chat/api/ai_chat_conversation_entity.dart +52 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/{llm_chat/api/llm_chat_message_entity.dart → ai_chat/api/ai_chat_message_entity.dart} +6 -6
- package/lib/scaffold/backends/supabase/patch/lib/features/{llm_chat/providers/llm_chat_notifier.dart → ai_chat/providers/ai_chat_notifier.dart} +63 -35
- package/lib/scaffold/backends/supabase/patch/lib/features/authentication/api/authentication_api.dart +1 -1
- package/lib/scaffold/backends/supabase/patch/lib/features/feedbacks/api/feature_request_api.dart +46 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/models/user_info.dart +16 -16
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/ui/components/onboarding_att_setup.dart +4 -3
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +38 -28
- package/lib/scaffold/backends/supabase/patch/lib/features/settings/ui/components/admin/admin_users_api.dart +93 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/{subscription → subscriptions}/api/entities/subscription_entity.dart +13 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/subscriptions/api/stripe_backend_api.dart +52 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/{subscription → subscriptions}/api/subscription_api.dart +1 -1
- package/lib/scaffold/backends/supabase/pubspec.yaml.tpl +4 -5
- package/lib/scaffold/backends/supabase/tokens.js +3 -3
- package/lib/scaffold/catalog.js +9 -11
- package/lib/scaffold/generate.js +45 -31
- package/lib/scaffold/shared/generator-utils.js +188 -81
- package/lib/scaffold/shared/sort-imports.js +191 -0
- package/lib/scaffold/shared/template-strings.js +3 -3
- package/lib/utils/checks.js +22 -6
- package/lib/utils/env-tools.js +7 -0
- package/lib/utils/flutter-install.js +114 -0
- package/lib/utils/i18n/messages-en.js +52 -35
- package/lib/utils/i18n/messages-es.js +52 -35
- package/lib/utils/i18n/messages-pt.js +54 -37
- package/lib/utils/updates.js +15 -15
- package/package.json +1 -1
- package/templates/firebase/.env.example +2 -2
- package/templates/firebase/android/app/src/main/res/drawable/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-night-v21/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-v21/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/values-night-v31/styles.xml +1 -1
- package/templates/firebase/android/app/src/main/res/values-v31/styles.xml +1 -1
- package/templates/firebase/assets/images/logo_wordmark_dark.png +0 -0
- package/templates/firebase/assets/images/logo_wordmark_light.png +0 -0
- package/templates/firebase/docs/revenuecat-setup.es.md +1 -1
- package/templates/firebase/docs/revenuecat-setup.pt.md +1 -1
- package/templates/firebase/firestore.rules +24 -5
- package/templates/firebase/functions/package-lock.json +22 -1
- package/templates/firebase/functions/package.json +2 -1
- package/templates/firebase/functions/src/admin/functions.ts +113 -0
- package/templates/firebase/functions/src/{llm_chat → ai_chat}/index.ts +16 -16
- package/templates/firebase/functions/src/index.ts +8 -2
- package/templates/firebase/functions/src/notifications/device_triggers.ts +2 -2
- package/templates/firebase/functions/src/notifications/triggers.ts +3 -3
- package/templates/firebase/functions/src/subscriptions/models/subscription_status.ts +2 -0
- package/templates/firebase/functions/src/subscriptions/stripe_functions.ts +222 -0
- package/templates/firebase/functions/src/subscriptions/subscriptions_functions.ts +2 -2
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png +0 -0
- package/templates/firebase/lib/components/components.dart +4 -1
- package/templates/firebase/lib/components/kasy_app_bar.dart +22 -7
- package/templates/firebase/lib/components/kasy_avatar.dart +7 -6
- package/templates/firebase/lib/components/kasy_button.dart +23 -99
- package/templates/firebase/lib/components/kasy_dialog.dart +11 -11
- package/templates/firebase/lib/components/kasy_image_viewer.dart +84 -0
- package/templates/firebase/lib/components/{kasy_sidebar_pro.dart → kasy_sidebar.dart} +702 -425
- package/templates/firebase/lib/components/kasy_status_tag.dart +91 -0
- package/templates/firebase/lib/components/kasy_text_area.dart +1 -3
- package/templates/firebase/lib/components/kasy_text_field.dart +5 -6
- package/templates/firebase/lib/components/kasy_text_field_otp.dart +1 -3
- package/templates/firebase/lib/components/kasy_toast.dart +2 -2
- package/templates/firebase/lib/components/kasy_web_header.dart +209 -0
- package/templates/firebase/lib/core/ads/ads_provider.dart +1 -1
- package/templates/firebase/lib/core/bottom_menu/bottom_menu.dart +136 -23
- package/templates/firebase/lib/core/bottom_menu/bottom_router.dart +19 -91
- package/templates/firebase/lib/core/bottom_menu/kasy_bottom_bar_factory.dart +196 -96
- package/templates/firebase/lib/core/bottom_menu/web_content_wrapper.dart +54 -0
- package/templates/firebase/lib/core/config/app_env.dart +5 -11
- package/templates/firebase/lib/core/config/features.dart +5 -4
- package/templates/firebase/lib/core/data/api/analytics_api.dart +1 -1
- package/templates/firebase/lib/core/data/api/http_client.dart +1 -1
- package/templates/firebase/lib/core/data/entities/user_entity.dart +3 -0
- package/templates/firebase/lib/core/data/models/entitlement.dart +35 -0
- package/templates/firebase/lib/core/data/models/subscription.dart +13 -186
- package/templates/firebase/lib/core/data/models/user.dart +11 -0
- package/templates/firebase/lib/core/data/repositories/user_repository.dart +1 -1
- package/templates/firebase/lib/core/home_widgets/home_widget_background_task.dart +1 -1
- package/templates/firebase/lib/core/home_widgets/home_widget_mywidget_service.dart +1 -1
- package/templates/firebase/lib/core/icons/kasy_icons.dart +31 -1
- package/templates/firebase/lib/core/rating/api/rating_api.dart +2 -2
- package/templates/firebase/lib/core/states/logout_action.dart +25 -0
- package/templates/firebase/lib/core/states/user_state_notifier.dart +3 -3
- package/templates/firebase/lib/core/theme/colors.dart +488 -188
- package/templates/firebase/lib/core/theme/radius.dart +22 -11
- package/templates/firebase/lib/core/theme/shadows.dart +66 -0
- package/templates/firebase/lib/core/theme/texts.dart +75 -41
- package/templates/firebase/lib/core/theme/universal_theme.dart +9 -4
- package/templates/firebase/lib/core/web_device_preview/web_device_preview.dart +5 -4
- package/templates/firebase/lib/core/web_viewport_scale.dart +52 -0
- package/templates/firebase/lib/core/widgets/kasy_brand_badge.dart +118 -0
- package/templates/firebase/lib/core/widgets/kasy_brand_logo.dart +40 -0
- package/templates/firebase/lib/core/widgets/kasy_focus_ring.dart +125 -0
- package/templates/firebase/lib/core/widgets/kasy_hover.dart +53 -14
- package/templates/firebase/lib/core/widgets/kasy_pressable_depth.dart +18 -13
- package/templates/firebase/lib/{environnements.dart → environments.dart} +3 -14
- package/templates/firebase/lib/features/ai_chat/ai_chat_page.dart +159 -0
- package/templates/firebase/lib/features/ai_chat/api/ai_chat_api.dart +107 -0
- package/templates/firebase/lib/features/ai_chat/api/ai_chat_conversation_entity.dart +64 -0
- package/templates/firebase/lib/features/{llm_chat/api/llm_chat_message_entity.dart → ai_chat/api/ai_chat_message_entity.dart} +6 -6
- package/templates/firebase/lib/features/{llm_chat/providers/llm_chat_notifier.dart → ai_chat/providers/ai_chat_notifier.dart} +73 -38
- package/templates/firebase/lib/features/ai_chat/providers/ai_conversations_notifier.dart +103 -0
- package/templates/firebase/lib/features/{llm_chat/ui/widgets/llm_chat_avatars.dart → ai_chat/ui/widgets/ai_chat_avatars.dart} +13 -13
- package/templates/firebase/lib/features/{llm_chat/ui/widgets/llm_chat_composer.dart → ai_chat/ui/widgets/ai_chat_composer.dart} +10 -10
- package/templates/firebase/lib/features/{llm_chat/llm_chat_page.dart → ai_chat/ui/widgets/ai_chat_conversation_view.dart} +80 -67
- package/templates/firebase/lib/features/ai_chat/ui/widgets/ai_conversation_list.dart +285 -0
- package/templates/firebase/lib/features/ai_chat/ui/widgets/ai_conversation_tile.dart +163 -0
- package/templates/firebase/lib/features/authentication/api/authentication_api.dart +52 -13
- package/templates/firebase/lib/features/authentication/api/popup_dismiss_watcher.dart +12 -0
- package/templates/firebase/lib/features/authentication/api/popup_dismiss_watcher_web.dart +35 -0
- package/templates/firebase/lib/features/authentication/ui/recover_password_page.dart +108 -68
- package/templates/firebase/lib/features/authentication/ui/signin_page.dart +38 -51
- package/templates/firebase/lib/features/authentication/ui/signup_page.dart +38 -51
- package/templates/firebase/lib/features/authentication/ui/widgets/auth_card_scaffold.dart +128 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/recover_password_result.dart +61 -44
- package/templates/firebase/lib/features/feedbacks/api/feature_request_api.dart +32 -0
- package/templates/firebase/lib/features/feedbacks/models/feedback_state.dart +5 -5
- package/templates/firebase/lib/features/feedbacks/providers/feedback_page_notifier.dart +2 -2
- package/templates/firebase/lib/features/home/design_system_page.dart +808 -170
- package/templates/firebase/lib/features/home/home_components_page.dart +6 -3
- package/templates/firebase/lib/features/home/home_components_preview_page.dart +6 -6
- package/templates/firebase/lib/features/home/home_components_preview_registry.dart +325 -186
- package/templates/firebase/lib/features/home/home_feed.dart +289 -0
- package/templates/firebase/lib/features/home/home_image_grid.dart +355 -0
- package/templates/firebase/lib/features/home/home_page.dart +11 -250
- package/templates/firebase/lib/features/{local_reminder → local_reminders}/providers/reminder_notifier.dart +1 -1
- package/templates/firebase/lib/features/{local_reminder → local_reminders}/ui/reminder_page.dart +2 -2
- package/templates/firebase/lib/features/notifications/shared/att_permission.dart +1 -1
- package/templates/firebase/lib/features/notifications/ui/request_notification_permission.dart +25 -61
- package/templates/firebase/lib/features/notifications/ui/widgets/permission_request_view.dart +117 -0
- package/templates/firebase/lib/features/onboarding/models/user_info.dart +16 -16
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_att_setup.dart +4 -3
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_features.dart +7 -9
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_loader.dart +71 -48
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_notifications_setup.dart +3 -2
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_questions.dart +5 -5
- package/templates/firebase/lib/features/onboarding/ui/onboarding_page.dart +4 -4
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_background.dart +4 -2
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_feature.dart +39 -121
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_illustration_scaffold.dart +105 -70
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_module_mockups.dart +639 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_progress.dart +62 -50
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +38 -28
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_step_header.dart +75 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_sticky_footer.dart +16 -5
- package/templates/firebase/lib/features/onboarding/ui/widgets/selectable_row_tile.dart +26 -22
- package/templates/firebase/lib/features/settings/settings_page.dart +601 -90
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_page.dart +1193 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_paywalls.dart +1 -1
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_routes.dart +2 -3
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_users_api.dart +86 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_users_tab.dart +1215 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/send_push_notification_page.dart +236 -0
- package/templates/firebase/lib/features/settings/ui/components/avatar_component.dart +3 -3
- package/templates/firebase/lib/features/settings/ui/widgets/kasy_user_avatar.dart +77 -0
- package/templates/firebase/lib/features/settings/ui/widgets/settings_tile.dart +1 -0
- package/templates/firebase/lib/features/{subscription → subscriptions}/api/entities/subscription_entity.dart +17 -0
- package/templates/firebase/lib/features/{subscription → subscriptions}/api/inapp_subscription_api.dart +67 -46
- package/templates/firebase/lib/features/subscriptions/api/revenuecat_product.dart +189 -0
- package/templates/firebase/lib/features/subscriptions/api/stripe_backend_api.dart +55 -0
- package/templates/firebase/lib/features/subscriptions/api/stripe_payment_api.dart +82 -0
- package/templates/firebase/lib/features/subscriptions/api/stripe_product.dart +178 -0
- package/templates/firebase/lib/features/{subscription → subscriptions}/api/subscription_api.dart +1 -1
- package/templates/firebase/lib/features/subscriptions/api/subscription_payment_api.dart +53 -0
- package/templates/firebase/lib/features/subscriptions/api/subscription_payment_api_provider.dart +21 -0
- package/templates/firebase/lib/features/{subscription → subscriptions}/providers/premium_page_provider.dart +9 -6
- package/templates/firebase/lib/features/{subscription → subscriptions}/repositories/subscription_repository.dart +26 -30
- package/{lib/scaffold/backends/supabase/patch/lib/features/subscription → templates/firebase/lib/features/subscriptions}/shared/maybeshow_premium.dart +0 -2
- package/templates/firebase/lib/features/subscriptions/shared/subscription_management.dart +45 -0
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/component/active_premium_content.dart +28 -4
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/component/paywall_minimal.dart +7 -7
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/component/paywall_row.dart +8 -8
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/component/paywall_with_switch.dart +7 -7
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/component/premium_content.dart +7 -7
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/component/premium_page_factory.dart +5 -5
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/premium_page.dart +5 -5
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/comparison_table.dart +1 -1
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/paywall_empty_state.dart +4 -4
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_bottom_menu.dart +3 -4
- package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/selectable_col.dart +1 -1
- package/templates/firebase/lib/i18n/en.i18n.json +171 -46
- package/templates/firebase/lib/i18n/es.i18n.json +175 -50
- package/templates/firebase/lib/i18n/pt.i18n.json +166 -41
- package/templates/firebase/lib/main.dart +6 -3
- package/templates/firebase/lib/router.dart +15 -23
- package/templates/firebase/pubspec.yaml +5 -6
- package/templates/firebase/test/core/data/repositories/user_repository_test.dart +3 -3
- package/templates/firebase/test/core/states/user_state_notifier_test.dart +4 -4
- package/templates/firebase/test/core/widgets/focus_ring_shape_test.dart +55 -0
- package/templates/firebase/test/features/{subscription → subscriptions}/api/fake_inapp_subscription_api.dart +11 -4
- package/templates/firebase/test/features/{subscription → subscriptions}/api/fake_revenuecat_product.dart +1 -0
- package/templates/firebase/test/features/{subscription → subscriptions}/api/fake_subscription_api.dart +2 -2
- package/templates/firebase/test/features/{subscription → subscriptions}/subscription_page_test.dart +4 -4
- package/templates/firebase/test/test_utils.dart +6 -6
- package/templates/firebase/web/index.html +5 -2
- package/lib/scaffold/backends/api/patch/lib/features/llm_chat/api/llm_chat_api.dart +0 -58
- package/lib/scaffold/backends/api/patch/lib/features/subscription/shared/maybeshow_premium.dart +0 -86
- package/lib/scaffold/backends/supabase/migrations/20240101000009_llm_messages.sql +0 -22
- package/lib/scaffold/backends/supabase/patch/lib/features/llm_chat/api/llm_chat_api.dart +0 -47
- package/templates/firebase/assets/images/onboarding/authentication-login-template.jpg +0 -0
- package/templates/firebase/assets/images/onboarding/img2.jpg +0 -0
- package/templates/firebase/assets/images/onboarding/img3.jpg +0 -0
- package/templates/firebase/assets/images/onboarding/notifications.png +0 -0
- package/templates/firebase/assets/images/onboarding/purchase.png +0 -0
- package/templates/firebase/lib/core/sidebar/kasy_sidebar.dart +0 -2021
- package/templates/firebase/lib/features/authentication/ui/widgets/auth_brand.dart +0 -35
- package/templates/firebase/lib/features/home/home_features_page.dart +0 -207
- package/templates/firebase/lib/features/llm_chat/api/llm_chat_api.dart +0 -50
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_bottom_sheet.dart +0 -316
- package/templates/firebase/lib/features/subscription/shared/maybeshow_premium.dart +0 -85
- /package/templates/firebase/lib/features/{local_reminder → local_reminders}/repositories/reminder_preferences.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/providers/models/premium_state.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/feature_line.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_background.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_background_gradient.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_banner.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_card.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_close_button.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/premium_feature.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/selectable_row.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/trial_switcher.dart +0 -0
- /package/templates/firebase/lib/features/{subscription → subscriptions}/ui/widgets/unsubscribe_feedback_popup.dart +0 -0
|
@@ -1,7 +1,86 @@
|
|
|
1
1
|
{
|
|
2
|
+
"admin_console": {
|
|
3
|
+
"tabs": {
|
|
4
|
+
"overview": "Overview",
|
|
5
|
+
"users": "Users",
|
|
6
|
+
"requests": "Requests",
|
|
7
|
+
"kit": "Kit",
|
|
8
|
+
"tools": "Tools"
|
|
9
|
+
},
|
|
10
|
+
"overview": {
|
|
11
|
+
"section": "Project",
|
|
12
|
+
"backend": "Backend",
|
|
13
|
+
"account": "Account",
|
|
14
|
+
"guest": "Guest",
|
|
15
|
+
"user_id": "User ID",
|
|
16
|
+
"build": "Build",
|
|
17
|
+
"session_title": "Current session",
|
|
18
|
+
"requests_metric": "Feature requests",
|
|
19
|
+
"users_hint": "Open the Users tab to manage every account.",
|
|
20
|
+
"debug_note": "Debug console — visible only in development builds."
|
|
21
|
+
},
|
|
22
|
+
"users": {
|
|
23
|
+
"title": "Users",
|
|
24
|
+
"search_hint": "Search by name or e-mail",
|
|
25
|
+
"col_user": "User",
|
|
26
|
+
"col_status": "Status",
|
|
27
|
+
"col_plan": "Plan",
|
|
28
|
+
"col_joined": "Joined",
|
|
29
|
+
"status_active": "Active",
|
|
30
|
+
"status_inactive": "Inactive",
|
|
31
|
+
"plan_subscriber": "Subscriber",
|
|
32
|
+
"plan_free": "Free",
|
|
33
|
+
"empty": "No users found",
|
|
34
|
+
"error": "Couldn't load users. Make sure you are an admin.",
|
|
35
|
+
"page": "Page $page of $total",
|
|
36
|
+
"prev": "Previous",
|
|
37
|
+
"next": "Next",
|
|
38
|
+
"anonymous": "Anonymous",
|
|
39
|
+
"filter_all": "All users",
|
|
40
|
+
"filter_subscribers": "Subscribers",
|
|
41
|
+
"loading": "Loading users…",
|
|
42
|
+
"results": "Showing $from to $to of $total",
|
|
43
|
+
"truncated": "Showing the $count most recent. Search covers the loaded set.",
|
|
44
|
+
"empty_search": "No users match your search",
|
|
45
|
+
"empty_search_hint": "Try a different name or e-mail.",
|
|
46
|
+
"refresh": "Refresh",
|
|
47
|
+
"retry": "Try again"
|
|
48
|
+
},
|
|
49
|
+
"requests": {
|
|
50
|
+
"title": "Feature requests",
|
|
51
|
+
"empty": "No feature requests yet",
|
|
52
|
+
"votes": "$count votes",
|
|
53
|
+
"visible": "Visible",
|
|
54
|
+
"hidden": "Hidden",
|
|
55
|
+
"edit": "Edit translations",
|
|
56
|
+
"error": "Couldn't load feature requests",
|
|
57
|
+
"saved": "Feature request updated",
|
|
58
|
+
"editor_title": "Edit feature request",
|
|
59
|
+
"field_title": "Title",
|
|
60
|
+
"field_description": "Description",
|
|
61
|
+
"lang_en": "English",
|
|
62
|
+
"lang_pt": "Portuguese",
|
|
63
|
+
"lang_es": "Spanish",
|
|
64
|
+
"visibility": "Visible to users",
|
|
65
|
+
"save": "Save",
|
|
66
|
+
"cancel": "Cancel"
|
|
67
|
+
},
|
|
68
|
+
"groups": {
|
|
69
|
+
"features": "Features",
|
|
70
|
+
"showcase": "Showcase",
|
|
71
|
+
"preview": "Preview",
|
|
72
|
+
"debug_actions": "Debug actions",
|
|
73
|
+
"identity": "Identity"
|
|
74
|
+
},
|
|
75
|
+
"settings_entry": {
|
|
76
|
+
"title": "Admin",
|
|
77
|
+
"caption": "Only visible to administrators and in development mode."
|
|
78
|
+
},
|
|
79
|
+
"requires_admin": "You need to be an admin to view this."
|
|
80
|
+
},
|
|
2
81
|
"home": {
|
|
3
82
|
"title": "Kasy example",
|
|
4
|
-
"welcome": "Welcome
|
|
83
|
+
"welcome": "Welcome to the Kasy demo",
|
|
5
84
|
"cards": {
|
|
6
85
|
"paywall_title": "Paywall",
|
|
7
86
|
"paywall_description": "Show the paywall page",
|
|
@@ -12,12 +91,12 @@
|
|
|
12
91
|
"signup_title": "Signup",
|
|
13
92
|
"signup_description": "Anonymous user can signup using real email or other social login",
|
|
14
93
|
"assistant_title": "AI Assistant",
|
|
15
|
-
"assistant_description": "
|
|
94
|
+
"assistant_description": "Chat with the AI assistant"
|
|
16
95
|
},
|
|
17
96
|
"features_page": {
|
|
18
97
|
"title": "Kit features",
|
|
19
98
|
"assistant_title": "Chat with AI",
|
|
20
|
-
"assistant_description": "Ready-made
|
|
99
|
+
"assistant_description": "Ready-made AI chat for questions, ideas, and in-app help",
|
|
21
100
|
"feedback_title": "Vote & suggest",
|
|
22
101
|
"feedback_description": "Join the roadmap—vote on ideas or submit your own",
|
|
23
102
|
"notification_title": "Test notification",
|
|
@@ -78,8 +157,11 @@
|
|
|
78
157
|
},
|
|
79
158
|
"recover": {
|
|
80
159
|
"title": "Recover password",
|
|
160
|
+
"subtitle": "Enter your email and we'll send you a link to set a new password.",
|
|
81
161
|
"email_label": "Email",
|
|
82
162
|
"submit": "Recover password",
|
|
163
|
+
"remember": "Remembered your password?",
|
|
164
|
+
"signin_link": "Sign in",
|
|
83
165
|
"error_title": "Error",
|
|
84
166
|
"error_text": "Fill a valid email"
|
|
85
167
|
}
|
|
@@ -96,7 +178,7 @@
|
|
|
96
178
|
"feature_1": "Feature 1 lorem ipsum ",
|
|
97
179
|
"feature_2": "Feature 2 mop issum ",
|
|
98
180
|
"feature_3": "Feature 3 lorem ",
|
|
99
|
-
"duration_weekly": "
|
|
181
|
+
"duration_weekly": "Week",
|
|
100
182
|
"duration_annual": "Year",
|
|
101
183
|
"duration_monthly": "Month",
|
|
102
184
|
"duration_monthly_description": "Cancel anytime",
|
|
@@ -123,7 +205,7 @@
|
|
|
123
205
|
"purchase_success_title": "Subscription successful",
|
|
124
206
|
"purchase_success_text": "Thank you for your trust",
|
|
125
207
|
"error_title": "Error",
|
|
126
|
-
"error_text": "
|
|
208
|
+
"error_text": "An error occurred. Please try again",
|
|
127
209
|
"comparison": {
|
|
128
210
|
"title": "Premium plan comparison",
|
|
129
211
|
"features_label": "Features",
|
|
@@ -148,6 +230,9 @@
|
|
|
148
230
|
"unsubscribe_feedback_min_chars": "Minimum 6 characters required",
|
|
149
231
|
"unsubscribe_confirm_button": "Continue",
|
|
150
232
|
"lifetime_user_description": "You are a lifetime user",
|
|
233
|
+
"managed_elsewhere_title": "Subscription on another platform",
|
|
234
|
+
"managed_elsewhere_description": "This subscription was made on another platform and can't be managed or cancelled here. Sign in to your account on the platform where you purchased it.",
|
|
235
|
+
"restore_button": "Restore purchases",
|
|
151
236
|
"cancel_button": "Close"
|
|
152
237
|
},
|
|
153
238
|
"paywallWithSwitch": {
|
|
@@ -172,58 +257,89 @@
|
|
|
172
257
|
},
|
|
173
258
|
"onboarding": {
|
|
174
259
|
"feature_1": {
|
|
175
|
-
"title": "
|
|
176
|
-
"description": "
|
|
260
|
+
"title": "Monetize from day one",
|
|
261
|
+
"description": "Production-ready paywalls, subscriptions and free trials. No billing backend to build.",
|
|
177
262
|
"action": "Continue",
|
|
178
263
|
"skip": "Skip",
|
|
179
264
|
"login": "Already have an account? Log in"
|
|
180
265
|
},
|
|
181
266
|
"feature_2": {
|
|
182
|
-
"title": "
|
|
183
|
-
"description": "
|
|
267
|
+
"title": "Sign-in, already built",
|
|
268
|
+
"description": "Email, social login and password recovery. Secure and ready to ship.",
|
|
184
269
|
"action": "Continue"
|
|
185
270
|
},
|
|
186
271
|
"feature_3": {
|
|
187
|
-
"title": "
|
|
188
|
-
"description": "
|
|
272
|
+
"title": "Bring your users back",
|
|
273
|
+
"description": "Push, in-app alerts and permissions, wired up and ready to engage.",
|
|
189
274
|
"action": "Continue"
|
|
190
275
|
},
|
|
276
|
+
"mockups": {
|
|
277
|
+
"paywall": {
|
|
278
|
+
"title": "Premium",
|
|
279
|
+
"annual": "Annual",
|
|
280
|
+
"monthly": "Monthly",
|
|
281
|
+
"save_badge": "-40%",
|
|
282
|
+
"price_year": "\\$39.99 / yr",
|
|
283
|
+
"price_month": "\\$4.99 / mo",
|
|
284
|
+
"cta": "Start free trial"
|
|
285
|
+
},
|
|
286
|
+
"auth": {
|
|
287
|
+
"welcome": "Welcome back",
|
|
288
|
+
"email_hint": "you@email.com",
|
|
289
|
+
"sign_in": "Sign in",
|
|
290
|
+
"divider": "or"
|
|
291
|
+
},
|
|
292
|
+
"notification": {
|
|
293
|
+
"title": "New message",
|
|
294
|
+
"time": "now"
|
|
295
|
+
},
|
|
296
|
+
"push_permission": {
|
|
297
|
+
"title": "Enable notifications?",
|
|
298
|
+
"allow": "Allow",
|
|
299
|
+
"deny": "Don't allow"
|
|
300
|
+
},
|
|
301
|
+
"tracking_permission": {
|
|
302
|
+
"title": "Allow tracking?",
|
|
303
|
+
"allow": "Allow",
|
|
304
|
+
"deny": "Ask app not to track"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
191
307
|
"ageQuestion": {
|
|
192
|
-
"title": "
|
|
193
|
-
"description": "This helps us
|
|
308
|
+
"title": "How old are you?",
|
|
309
|
+
"description": "This helps us tailor your experience.",
|
|
194
310
|
"options(map)": {
|
|
195
|
-
"age18_30": "
|
|
196
|
-
"age31_40": "
|
|
197
|
-
"age41_50": "
|
|
198
|
-
"age51_60": "50
|
|
199
|
-
"none": "I
|
|
311
|
+
"age18_30": "18 to 30",
|
|
312
|
+
"age31_40": "31 to 40",
|
|
313
|
+
"age41_50": "41 to 50",
|
|
314
|
+
"age51_60": "Over 50",
|
|
315
|
+
"none": "I'd rather not say"
|
|
200
316
|
},
|
|
201
317
|
"action": "Continue"
|
|
202
318
|
},
|
|
203
319
|
"genderQuestion": {
|
|
204
|
-
"title": "
|
|
205
|
-
"description": "
|
|
320
|
+
"title": "How do you identify?",
|
|
321
|
+
"description": "Pick what fits you best. You can skip this.",
|
|
206
322
|
"options(map)": {
|
|
207
323
|
"male": "Male",
|
|
208
324
|
"female": "Female",
|
|
209
|
-
"none": "I
|
|
325
|
+
"none": "I'd rather not say"
|
|
210
326
|
},
|
|
211
327
|
"action": "Continue"
|
|
212
328
|
},
|
|
213
329
|
"notifications": {
|
|
214
|
-
"title": "
|
|
215
|
-
"description": "We
|
|
216
|
-
"continue_button": "
|
|
217
|
-
"skip_button": "
|
|
330
|
+
"title": "Stay in the loop",
|
|
331
|
+
"description": "We only reach out when it truly matters. No spam, ever.",
|
|
332
|
+
"continue_button": "Turn on notifications",
|
|
333
|
+
"skip_button": "Not now"
|
|
218
334
|
},
|
|
219
335
|
"att": {
|
|
220
|
-
"title": "
|
|
221
|
-
"description": "
|
|
336
|
+
"title": "You're in control",
|
|
337
|
+
"description": "Allow tracking for more relevant ads. The choice is always yours.",
|
|
222
338
|
"continue_button": "Continue"
|
|
223
339
|
},
|
|
224
340
|
"loading": {
|
|
225
|
-
"title": "
|
|
226
|
-
"subtitle": "
|
|
341
|
+
"title": "Setting everything up",
|
|
342
|
+
"subtitle": "This will only take a moment"
|
|
227
343
|
}
|
|
228
344
|
},
|
|
229
345
|
"feature_requests": {
|
|
@@ -289,13 +405,10 @@
|
|
|
289
405
|
},
|
|
290
406
|
"navigation": {
|
|
291
407
|
"home": "Home",
|
|
292
|
-
"
|
|
408
|
+
"support": "Support",
|
|
293
409
|
"notifications": "Notifications",
|
|
294
|
-
"settings": "Config."
|
|
295
|
-
|
|
296
|
-
"wishlist": {
|
|
297
|
-
"empty_title": "Nothing here yet",
|
|
298
|
-
"empty_subtitle": "Save your favorites to find them here"
|
|
410
|
+
"settings": "Config.",
|
|
411
|
+
"logout": "Sign out"
|
|
299
412
|
},
|
|
300
413
|
"reminderPage": {
|
|
301
414
|
"title": "Reminders",
|
|
@@ -368,10 +481,11 @@
|
|
|
368
481
|
"premium": "Premium",
|
|
369
482
|
"privacy": "Privacy policy",
|
|
370
483
|
"support": "Support",
|
|
371
|
-
"disconnect": "
|
|
372
|
-
"disconnect_confirm_title": "Sign out",
|
|
484
|
+
"disconnect": "Yes, sign out",
|
|
485
|
+
"disconnect_confirm_title": "Sign out of your account?",
|
|
373
486
|
"disconnect_confirm_message": "Are you sure you want to sign out?",
|
|
374
487
|
"disconnect_cancel": "Cancel",
|
|
488
|
+
"logout": "Sign out",
|
|
375
489
|
"my_account": "My account",
|
|
376
490
|
"not_signed_in": "Not signed in",
|
|
377
491
|
"register": "Register",
|
|
@@ -381,8 +495,8 @@
|
|
|
381
495
|
"admin_panel_debug_notice": "This entire Admin section (header, panel, and all options below) only exists in debug builds. It is not included in release; people who install from the store or a production APK never see any of it.",
|
|
382
496
|
"delete_account": {
|
|
383
497
|
"button": "I want to delete my account",
|
|
384
|
-
"title": "Delete
|
|
385
|
-
"content": "Warning: this action is irreversible",
|
|
498
|
+
"title": "Delete your account?",
|
|
499
|
+
"content": "Warning: this action is irreversible.",
|
|
386
500
|
"cancel": "Cancel",
|
|
387
501
|
"confirm": "Yes, delete"
|
|
388
502
|
},
|
|
@@ -421,6 +535,10 @@
|
|
|
421
535
|
"send_push_no_emails": "Add at least one e-mail",
|
|
422
536
|
"send_push_route_label": "Route on open (optional)",
|
|
423
537
|
"send_push_route_hint": "e.g. /premium, /notifications",
|
|
538
|
+
"send_push_preview_label": "Preview",
|
|
539
|
+
"send_push_preview_now": "now",
|
|
540
|
+
"send_push_preview_title_placeholder": "Notification title",
|
|
541
|
+
"send_push_preview_body_placeholder": "Your message body shows here",
|
|
424
542
|
"device_preview_title": "Device Preview (web only)"
|
|
425
543
|
}
|
|
426
544
|
},
|
|
@@ -448,7 +566,7 @@
|
|
|
448
566
|
"delete_all": "Delete all",
|
|
449
567
|
"delete_all_confirm_title": "Delete all notifications?",
|
|
450
568
|
"delete_all_confirm_message": "This will permanently remove every notification from your account. This cannot be undone.",
|
|
451
|
-
"delete_action": "
|
|
569
|
+
"delete_action": "Yes, delete",
|
|
452
570
|
"cancel_action": "Cancel",
|
|
453
571
|
"deleted_one": "Notification deleted",
|
|
454
572
|
"deleted_all": "All notifications deleted"
|
|
@@ -456,13 +574,20 @@
|
|
|
456
574
|
"bottom_router": {
|
|
457
575
|
"fake_page_text": "This is a fake page"
|
|
458
576
|
},
|
|
459
|
-
"
|
|
460
|
-
"title": "
|
|
577
|
+
"ai_chat": {
|
|
578
|
+
"title": "AI Assistant",
|
|
461
579
|
"empty_state": "Start a conversation with your assistant.",
|
|
462
580
|
"hint": "Ask something...",
|
|
463
|
-
"error_not_configured": "
|
|
464
|
-
"error_no_reply": "
|
|
465
|
-
"error_network": "Could not reach
|
|
581
|
+
"error_not_configured": "The assistant isn't available yet. Please try again later.",
|
|
582
|
+
"error_no_reply": "We couldn't get a reply. Please try again.",
|
|
583
|
+
"error_network": "Could not reach the AI assistant.",
|
|
584
|
+
"new_conversation": "New conversation",
|
|
585
|
+
"conversations_empty": "No conversations yet",
|
|
586
|
+
"no_conversation_selected": "Pick a conversation, or start a new one.",
|
|
587
|
+
"delete_title": "Delete conversation?",
|
|
588
|
+
"delete_message": "This conversation and all its messages will be permanently deleted.",
|
|
589
|
+
"delete_cancel": "Cancel",
|
|
590
|
+
"delete_confirm": "Yes, delete"
|
|
466
591
|
},
|
|
467
592
|
"phone_auth": {
|
|
468
593
|
"title_input": "Phone Authentication",
|
|
@@ -473,7 +598,7 @@
|
|
|
473
598
|
"error_empty": "Please enter a phone number",
|
|
474
599
|
"error_invalid": "Please enter a valid phone number",
|
|
475
600
|
"continue_btn": "Continue",
|
|
476
|
-
"title_verify": "Verify
|
|
601
|
+
"title_verify": "Verify code",
|
|
477
602
|
"verification_code": "Verification Code",
|
|
478
603
|
"code_sent": "We have sent a verification code to $phone",
|
|
479
604
|
"verify_code": "Verify Code",
|