kasy-cli 1.2.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/README.md +56 -0
- package/bin/kasy.js +529 -0
- package/docs/cli-reference.md +251 -0
- package/lib/commands/add.js +777 -0
- package/lib/commands/check.js +240 -0
- package/lib/commands/codemagic.js +161 -0
- package/lib/commands/deploy.js +257 -0
- package/lib/commands/docs.js +47 -0
- package/lib/commands/doctor.js +227 -0
- package/lib/commands/features.js +36 -0
- package/lib/commands/ios.js +206 -0
- package/lib/commands/new.js +1870 -0
- package/lib/commands/notifications.js +207 -0
- package/lib/commands/remove.js +466 -0
- package/lib/commands/run.js +75 -0
- package/lib/commands/update.js +382 -0
- package/lib/commands/validate.js +131 -0
- package/lib/scaffold/CHANGELOG.json +6 -0
- package/lib/scaffold/backends/api/.flutter-plugins-dependencies +1 -0
- package/lib/scaffold/backends/api/analysis_options.yaml +5 -0
- package/lib/scaffold/backends/api/generator.js +76 -0
- package/lib/scaffold/backends/api/patch/README.md +85 -0
- package/lib/scaffold/backends/api/patch/android/app/src/main/AndroidManifest.xml +87 -0
- package/lib/scaffold/backends/api/patch/ios/Runner/AppDelegate.swift +61 -0
- package/lib/scaffold/backends/api/patch/lib/core/data/api/meta_ads_api.dart +80 -0
- package/lib/scaffold/backends/api/patch/lib/core/data/api/storage_api.dart +117 -0
- package/lib/scaffold/backends/api/patch/lib/core/data/api/user_api.dart +148 -0
- package/lib/scaffold/backends/api/patch/lib/core/data/entities/json_converters.dart +35 -0
- package/lib/scaffold/backends/api/patch/lib/core/data/entities/user_entity.dart +48 -0
- package/lib/scaffold/backends/api/patch/lib/core/rating/widgets/review_popup.dart +211 -0
- package/lib/scaffold/backends/api/patch/lib/environnements.dart +151 -0
- package/lib/scaffold/backends/api/patch/lib/features/authentication/api/authentication_api.dart +303 -0
- package/lib/scaffold/backends/api/patch/lib/features/authentication/api/authentication_api_interface.dart +80 -0
- package/lib/scaffold/backends/api/patch/lib/features/authentication/repositories/authentication_repository.dart +406 -0
- package/lib/scaffold/backends/api/patch/lib/features/camera/xfile_extension.dart +6 -0
- package/lib/scaffold/backends/api/patch/lib/features/feedbacks/api/entities/feature_request_entity.dart +24 -0
- package/lib/scaffold/backends/api/patch/lib/features/feedbacks/api/entities/feature_vote_entity.dart +21 -0
- package/lib/scaffold/backends/api/patch/lib/features/feedbacks/api/feature_request_api.dart +52 -0
- package/lib/scaffold/backends/api/patch/lib/features/feedbacks/api/feature_vote_api.dart +60 -0
- package/lib/scaffold/backends/api/patch/lib/features/llm_chat/api/llm_chat_api.dart +58 -0
- package/lib/scaffold/backends/api/patch/lib/features/llm_chat/api/llm_chat_message_entity.dart +29 -0
- package/lib/scaffold/backends/api/patch/lib/features/notifications/api/device_api.dart +398 -0
- package/lib/scaffold/backends/api/patch/lib/features/notifications/api/entities/device_entity.dart +39 -0
- package/lib/scaffold/backends/api/patch/lib/features/notifications/api/entities/notifications_entity.dart +23 -0
- package/lib/scaffold/backends/api/patch/lib/features/notifications/api/notifications_api.dart +333 -0
- package/lib/scaffold/backends/api/patch/lib/features/notifications/providers/models/notification.dart +185 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/api/entities/user_info_entity.dart +26 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/api/user_infos_api.dart +107 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/models/user_info.dart +94 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/repositories/user_infos_repository.dart +29 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/ui/animations/movefade_anim.dart +34 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/ui/components/onboarding_att_setup.dart +66 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/ui/components/onboarding_notifications_setup.dart +73 -0
- package/lib/scaffold/backends/api/patch/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +173 -0
- package/lib/scaffold/backends/api/patch/lib/features/settings/ui/widgets/avatar_utils.dart +33 -0
- package/lib/scaffold/backends/api/patch/lib/features/subscription/api/entities/subscription_entity.dart +34 -0
- package/lib/scaffold/backends/api/patch/lib/features/subscription/api/subscription_api.dart +49 -0
- package/lib/scaffold/backends/api/patch/lib/features/subscription/shared/maybeshow_premium.dart +88 -0
- package/lib/scaffold/backends/api/patch/lib/main.dart +256 -0
- package/lib/scaffold/backends/api/patch/lib/router.dart +133 -0
- package/lib/scaffold/backends/api/pubspec.yaml.tpl +108 -0
- package/lib/scaffold/backends/firebase/deploy.js +1006 -0
- package/lib/scaffold/backends/firebase/generator.js +24 -0
- package/lib/scaffold/backends/firebase/setup-from-scratch.js +1008 -0
- package/lib/scaffold/backends/firebase/tokens.js +113 -0
- package/lib/scaffold/backends/supabase/.flutter-plugins-dependencies +1 -0
- package/lib/scaffold/backends/supabase/analysis_options.yaml +5 -0
- package/lib/scaffold/backends/supabase/config.toml +34 -0
- package/lib/scaffold/backends/supabase/deploy.js +485 -0
- package/lib/scaffold/backends/supabase/edge-functions/delete-user-account/README.md +15 -0
- package/lib/scaffold/backends/supabase/edge-functions/delete-user-account/index.ts +97 -0
- package/lib/scaffold/backends/supabase/edge-functions/llm-chat/index.ts +156 -0
- package/lib/scaffold/backends/supabase/edge-functions/meta-track-event/index.ts +292 -0
- package/lib/scaffold/backends/supabase/edge-functions/revenuecat-webhook/README.md +30 -0
- package/lib/scaffold/backends/supabase/edge-functions/revenuecat-webhook/index.ts +488 -0
- package/lib/scaffold/backends/supabase/edge-functions/send-push-notification/README.md +35 -0
- package/lib/scaffold/backends/supabase/edge-functions/send-push-notification/index.ts +314 -0
- package/lib/scaffold/backends/supabase/generator.js +108 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000001_initial_schema.sql +149 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000002_storage_bucket.sql +40 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000005_vote_triggers.sql +34 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000006_notification_webhook.sql +36 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000007_welcome_notification.sql +64 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000008_user_feature_requests.sql +2 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000009_llm_messages.sql +22 -0
- package/lib/scaffold/backends/supabase/migrations/20240101000010_notification_image.sql +2 -0
- package/lib/scaffold/backends/supabase/patch/README.md +121 -0
- package/lib/scaffold/backends/supabase/patch/android/app/src/main/AndroidManifest.xml +87 -0
- package/lib/scaffold/backends/supabase/patch/ios/Runner/AppDelegate.swift +61 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/data/api/meta_ads_api.dart +75 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/data/api/storage_api.dart +83 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/data/api/user_api.dart +143 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/data/entities/json_converters.dart +35 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/data/entities/user_entity.dart +48 -0
- package/lib/scaffold/backends/supabase/patch/lib/core/rating/widgets/review_popup.dart +211 -0
- package/lib/scaffold/backends/supabase/patch/lib/environnements.dart +149 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/authentication/api/authentication_api.dart +546 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/authentication/repositories/authentication_repository.dart +410 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/camera/xfile_extension.dart +6 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/feedbacks/api/entities/feature_request_entity.dart +25 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/feedbacks/api/entities/feature_vote_entity.dart +21 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/feedbacks/api/feature_request_api.dart +59 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/feedbacks/api/feature_vote_api.dart +85 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/feedbacks/ui/component/add_feature_form.dart +199 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/llm_chat/api/llm_chat_api.dart +47 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/llm_chat/api/llm_chat_message_entity.dart +30 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/llm_chat/providers/llm_chat_notifier.dart +266 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/notifications/api/device_api.dart +410 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/notifications/api/entities/device_entity.dart +51 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/notifications/api/entities/notifications_entity.dart +26 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/notifications/api/notifications_api.dart +317 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/notifications/providers/models/notification.dart +174 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/api/entities/user_info_entity.dart +26 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/api/user_infos_api.dart +90 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/models/user_info.dart +94 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/repositories/user_infos_repository.dart +29 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/ui/animations/movefade_anim.dart +34 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/ui/components/onboarding_att_setup.dart +66 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/ui/components/onboarding_notifications_setup.dart +73 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +173 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/settings/ui/widgets/avatar_utils.dart +35 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/subscription/api/entities/subscription_entity.dart +35 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/subscription/api/subscription_api.dart +44 -0
- package/lib/scaffold/backends/supabase/patch/lib/features/subscription/shared/maybeshow_premium.dart +85 -0
- package/lib/scaffold/backends/supabase/patch/lib/google_auth_options.dart +23 -0
- package/lib/scaffold/backends/supabase/patch/lib/main.dart +288 -0
- package/lib/scaffold/backends/supabase/patch/lib/router.dart +133 -0
- package/lib/scaffold/backends/supabase/pubspec.yaml.tpl +110 -0
- package/lib/scaffold/backends/supabase/tokens.js +9 -0
- package/lib/scaffold/catalog.js +177 -0
- package/lib/scaffold/engine.js +230 -0
- package/lib/scaffold/features/README.md +152 -0
- package/lib/scaffold/features/analytics/lib/core/data/api/analytics_api.dart +124 -0
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/BUG.es.md +35 -0
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/BUG.md +35 -0
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/BUG.pt.md +35 -0
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/feature_request.es.md +12 -0
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/feature_request.md +12 -0
- package/lib/scaffold/features/ci/.github/ISSUE_TEMPLATE/feature_request.pt.md +12 -0
- package/lib/scaffold/features/ci/.github/PULL_REQUEST_TEMPLATE.es.md +17 -0
- package/lib/scaffold/features/ci/.github/PULL_REQUEST_TEMPLATE.md +17 -0
- package/lib/scaffold/features/ci/.github/PULL_REQUEST_TEMPLATE.pt.md +17 -0
- package/lib/scaffold/features/ci/.github/dependabot.yml +16 -0
- package/lib/scaffold/features/ci/.github/workflows/app.yml +20 -0
- package/lib/scaffold/features/ci/.gitlab/templates/deploy.yaml +14 -0
- package/lib/scaffold/features/ci/.gitlab/templates/dropbox.yaml +19 -0
- package/lib/scaffold/features/ci/.gitlab/templates/flutter.yaml +163 -0
- package/lib/scaffold/features/ci/.gitlab/templates/mailgun.yaml +28 -0
- package/lib/scaffold/features/ci/.gitlab-ci.yml +37 -0
- package/lib/scaffold/features/ci/codemagic.yaml +157 -0
- package/lib/scaffold/features/facebook/lib/core/data/api/tracking_api.dart +111 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/entities/feature_request_entity.dart +27 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/entities/feature_vote_entity.dart +27 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/feature_request_api.dart +50 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/api/feature_vote_api.dart +79 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/models/feature_requests.dart +48 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/models/feedback_state.dart +42 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/providers/feedback_page_notifier.dart +147 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/repositories/feature_request_repository.dart +95 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/component/add_feature_form.dart +199 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/feedback_page.dart +175 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/widgets/add_feature_button.dart +76 -0
- package/lib/scaffold/features/feedback/lib/features/feedbacks/ui/widgets/feature_card.dart +279 -0
- package/lib/scaffold/features/ios-release/.kasy/apple.env.example +8 -0
- package/lib/scaffold/features/ios-release/.kasy/codemagic.env.example +7 -0
- package/lib/scaffold/features/ios-release/docs/codemagic-release.en.md +50 -0
- package/lib/scaffold/features/ios-release/docs/codemagic-release.es.md +50 -0
- package/lib/scaffold/features/ios-release/docs/codemagic-release.pt.md +50 -0
- package/lib/scaffold/features/ios-release/docs/ios-release.en.md +41 -0
- package/lib/scaffold/features/ios-release/docs/ios-release.es.md +41 -0
- package/lib/scaffold/features/ios-release/docs/ios-release.pt.md +41 -0
- package/lib/scaffold/features/ios-release/scripts/bump-ios-version.js +38 -0
- package/lib/scaffold/features/ios-release/scripts/release-ios.sh +137 -0
- package/lib/scaffold/features/llm_chat/lib/features/llm_chat/llm_chat_page.dart +301 -0
- package/lib/scaffold/features/local_notifications/lib/features/local_reminder/providers/reminder_notifier.dart +81 -0
- package/lib/scaffold/features/local_notifications/lib/features/local_reminder/repositories/reminder_preferences.dart +76 -0
- package/lib/scaffold/features/local_notifications/lib/features/local_reminder/ui/reminder_page.dart +282 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/api/entities/user_info_entity.dart +24 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/api/user_infos_api.dart +71 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/models/user_info.dart +92 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/providers/onboarding_model.dart +15 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/providers/onboarding_provider.dart +78 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/repositories/user_infos_repository.dart +29 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/animations/page_transitions.dart +30 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_att_setup.dart +66 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_features.dart +72 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_loader.dart +92 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_notifications_setup.dart +73 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/components/onboarding_questions.dart +89 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/onboarding_page.dart +94 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_background.dart +80 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_feature.dart +139 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_illustration_scaffold.dart +110 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_progress.dart +84 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +173 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_reassurance.dart +45 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/onboarding_sticky_footer.dart +77 -0
- package/lib/scaffold/features/onboarding/lib/features/onboarding/ui/widgets/selectable_row_tile.dart +392 -0
- package/lib/scaffold/features/revenuecat/lib/core/data/api/tracking_api.dart +116 -0
- package/lib/scaffold/features/revenuecat/lib/core/data/models/subscription.dart +322 -0
- package/lib/scaffold/features/revenuecat/lib/core/home_widgets/home_widget_background_task.dart +41 -0
- package/lib/scaffold/features/revenuecat/lib/core/states/user_state_notifier.dart +305 -0
- package/lib/scaffold/features/widget/lib/core/home_widgets/home_widget_background_task.dart +41 -0
- package/lib/scaffold/features/widget/lib/core/home_widgets/home_widget_mywidget_service.dart +57 -0
- package/lib/scaffold/features/widget/lib/core/home_widgets/home_widget_service.dart +54 -0
- package/lib/scaffold/features/widget/lib/features/settings/ui/components/admin/admin_home_widgets.dart +32 -0
- package/lib/scaffold/generate.js +370 -0
- package/lib/scaffold/patch.js +395 -0
- package/lib/scaffold/shared/backend-config.js +74 -0
- package/lib/scaffold/shared/fcm-service-account.js +126 -0
- package/lib/scaffold/shared/generator-utils.js +1664 -0
- package/lib/scaffold/shared/post-build.js +809 -0
- package/lib/scaffold/shared/template-strings.js +112 -0
- package/lib/utils/apple-release.js +273 -0
- package/lib/utils/checks.js +319 -0
- package/lib/utils/codemagic-release.js +127 -0
- package/lib/utils/fs.js +122 -0
- package/lib/utils/i18n.js +2123 -0
- package/lib/utils/license-gate.js +72 -0
- package/lib/utils/license.js +64 -0
- package/lib/utils/prompts.js +213 -0
- package/lib/utils/updates.js +97 -0
- package/package.json +55 -0
- package/templates/firebase/.env.example +24 -0
- package/templates/firebase/.firebaserc +5 -0
- package/templates/firebase/.kasy/apple.env.example +8 -0
- package/templates/firebase/.kasy/codemagic.env.example +7 -0
- package/templates/firebase/.metadata +30 -0
- package/templates/firebase/.windsurfrules +95 -0
- package/templates/firebase/Makefile +30 -0
- package/templates/firebase/README.en.md +180 -0
- package/templates/firebase/README.es.md +180 -0
- package/templates/firebase/README.md +180 -0
- package/templates/firebase/analysis_options.yaml +37 -0
- package/templates/firebase/android/app/build.gradle.kts +80 -0
- package/templates/firebase/android/app/src/debug/AndroidManifest.xml +7 -0
- package/templates/firebase/android/app/src/main/AndroidManifest.xml +93 -0
- package/templates/firebase/android/app/src/main/kotlin/com/aicrus/firebase/kit/MainActivity.kt +36 -0
- package/templates/firebase/android/app/src/main/kotlin/com/aicrus/firebase/kit/MyWidget.kt +50 -0
- package/templates/firebase/android/app/src/main/kotlin/com/aicrus/firebase/kit/MyWidgetReceiver.kt +7 -0
- package/templates/firebase/android/app/src/main/res/drawable/background.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable/launch_background.xml +9 -0
- package/templates/firebase/android/app/src/main/res/drawable-hdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-mdpi/splash.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/drawable-v21/launch_background.xml +9 -0
- package/templates/firebase/android/app/src/main/res/drawable-xhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xxhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/drawable-xxxhdpi/splash.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/templates/firebase/android/app/src/main/res/values/strings.xml +6 -0
- package/templates/firebase/android/app/src/main/res/values/styles.xml +22 -0
- package/templates/firebase/android/app/src/main/res/values-night/styles.xml +22 -0
- package/templates/firebase/android/app/src/main/res/values-night-v31/styles.xml +20 -0
- package/templates/firebase/android/app/src/main/res/values-v31/styles.xml +20 -0
- package/templates/firebase/android/app/src/main/res/xml/locales_config.xml +7 -0
- package/templates/firebase/android/app/src/main/res/xml/mywidget_info.xml +11 -0
- package/templates/firebase/android/app/src/profile/AndroidManifest.xml +7 -0
- package/templates/firebase/android/build.gradle.kts +28 -0
- package/templates/firebase/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/templates/firebase/android/gradle.properties +2 -0
- package/templates/firebase/android/settings.gradle.kts +29 -0
- package/templates/firebase/assets/icons/apple.png +0 -0
- package/templates/firebase/assets/icons/facebook.png +0 -0
- package/templates/firebase/assets/icons/google.png +0 -0
- package/templates/firebase/assets/icons/google_play_games.png +0 -0
- package/templates/firebase/assets/images/app_icon.png +0 -0
- package/templates/firebase/assets/images/empty_notifications.jpg +0 -0
- package/templates/firebase/assets/images/icon.png +0 -0
- package/templates/firebase/assets/images/onboarding/authentication-login-template.jpg +0 -0
- package/templates/firebase/assets/images/onboarding/img1.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/onboarding.png +0 -0
- package/templates/firebase/assets/images/onboarding/purchase.png +0 -0
- package/templates/firebase/assets/images/premium-bg.jpg +0 -0
- package/templates/firebase/assets/images/premium-switch-header.png +0 -0
- package/templates/firebase/assets/images/review.png +0 -0
- package/templates/firebase/assets/images/splashscreen.png +0 -0
- package/templates/firebase/assets/images/update.png +0 -0
- package/templates/firebase/build.yaml +13 -0
- package/templates/firebase/devtools_options.yaml +3 -0
- package/templates/firebase/docs/auth-setup.en.md +145 -0
- package/templates/firebase/docs/auth-setup.es.md +145 -0
- package/templates/firebase/docs/auth-setup.pt.md +145 -0
- package/templates/firebase/docs/codemagic-release.en.md +50 -0
- package/templates/firebase/docs/codemagic-release.es.md +50 -0
- package/templates/firebase/docs/codemagic-release.pt.md +50 -0
- package/templates/firebase/docs/ios-release.en.md +41 -0
- package/templates/firebase/docs/ios-release.es.md +41 -0
- package/templates/firebase/docs/ios-release.pt.md +54 -0
- package/templates/firebase/docs/navigation-transitions.md +80 -0
- package/templates/firebase/docs/revenuecat-setup.es.md +341 -0
- package/templates/firebase/docs/revenuecat-setup.pt.md +341 -0
- package/templates/firebase/firebase.json +1 -0
- package/templates/firebase/firestore.indexes.json +25 -0
- package/templates/firebase/firestore.rules +51 -0
- package/templates/firebase/functions/.eslintrc.js +45 -0
- package/templates/firebase/functions/jest.config.js +16 -0
- package/templates/firebase/functions/package-lock.json +6876 -0
- package/templates/firebase/functions/package.json +33 -0
- package/templates/firebase/functions/src/authentication/functions.ts +30 -0
- package/templates/firebase/functions/src/authentication/triggers.ts +103 -0
- package/templates/firebase/functions/src/core/api/meta_ads_api.ts +390 -0
- package/templates/firebase/functions/src/core/data/entities/entity_utils.ts +87 -0
- package/templates/firebase/functions/src/core/data/entities/notification_entity.ts +74 -0
- package/templates/firebase/functions/src/core/data/entities/page.ts +4 -0
- package/templates/firebase/functions/src/core/data/entities/subscription_entity.ts +76 -0
- package/templates/firebase/functions/src/core/data/entities/user_device_entity.ts +64 -0
- package/templates/firebase/functions/src/core/data/entities/user_entity.ts +43 -0
- package/templates/firebase/functions/src/core/data/repositories/repositories.ts +16 -0
- package/templates/firebase/functions/src/core/data/repositories/subscription_repository.ts +42 -0
- package/templates/firebase/functions/src/core/data/repositories/user_device_repository.ts +31 -0
- package/templates/firebase/functions/src/core/data/repositories/user_notifications_repository.ts +58 -0
- package/templates/firebase/functions/src/core/data/repositories/user_repository.ts +84 -0
- package/templates/firebase/functions/src/core/logger/logger.ts +13 -0
- package/templates/firebase/functions/src/core/storage/storage_manager.ts +52 -0
- package/templates/firebase/functions/src/core/utils/async_utils.ts +5 -0
- package/templates/firebase/functions/src/feature_requests/triggers.ts +3 -0
- package/templates/firebase/functions/src/index.ts +24 -0
- package/templates/firebase/functions/src/llm_chat/index.ts +181 -0
- package/templates/firebase/functions/src/notifications/admin_functions.ts +91 -0
- package/templates/firebase/functions/src/notifications/models/notification.ts +61 -0
- package/templates/firebase/functions/src/notifications/notifications_api.ts +147 -0
- package/templates/firebase/functions/src/notifications/triggers.ts +102 -0
- package/templates/firebase/functions/src/subscriptions/models/revenuecat_events.ts +162 -0
- package/templates/firebase/functions/src/subscriptions/models/subscription_status.ts +18 -0
- package/templates/firebase/functions/src/subscriptions/models/subscriptions.ts +173 -0
- package/templates/firebase/functions/src/subscriptions/subscriptions_functions.ts +135 -0
- package/templates/firebase/functions/src/subscriptions/triggers.ts +35 -0
- package/templates/firebase/functions/src/test/core/data/entities/entity_utils.spec.ts +44 -0
- package/templates/firebase/functions/tsconfig.dev.json +5 -0
- package/templates/firebase/functions/tsconfig.json +18 -0
- package/templates/firebase/home_widget_config.json +30 -0
- package/templates/firebase/ios/Flutter/AppFrameworkInfo.plist +24 -0
- package/templates/firebase/ios/Flutter/Debug.xcconfig +2 -0
- package/templates/firebase/ios/Flutter/Profile.xcconfig +2 -0
- package/templates/firebase/ios/Flutter/Release.xcconfig +2 -0
- package/templates/firebase/ios/HomeWidgetExtension/HomeWidgetBundle.swift +13 -0
- package/templates/firebase/ios/HomeWidgetExtension/Info.plist +29 -0
- package/templates/firebase/ios/HomeWidgetExtension/MyWidget.swift +86 -0
- package/templates/firebase/ios/HomeWidgetExtension.entitlements +10 -0
- package/templates/firebase/ios/NotificationService/Info.plist +31 -0
- package/templates/firebase/ios/NotificationService/NotificationService.swift +76 -0
- package/templates/firebase/ios/Podfile +111 -0
- package/templates/firebase/ios/Runner/AppDelegate.swift +75 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +1 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json +21 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +23 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png +0 -0
- package/templates/firebase/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +5 -0
- package/templates/firebase/ios/Runner/Base.lproj/LaunchScreen.storyboard +44 -0
- package/templates/firebase/ios/Runner/Base.lproj/Main.storyboard +26 -0
- package/templates/firebase/ios/Runner/Info.plist +132 -0
- package/templates/firebase/ios/Runner/Runner-Bridging-Header.h +1 -0
- package/templates/firebase/ios/Runner/Runner.entitlements +14 -0
- package/templates/firebase/ios/Runner/es.lproj/InfoPlist.strings +10 -0
- package/templates/firebase/ios/Runner/pt-BR.lproj/InfoPlist.strings +10 -0
- package/templates/firebase/ios/Runner/pt.lproj/InfoPlist.strings +10 -0
- package/templates/firebase/ios/Runner.xcodeproj/project.pbxproj +1108 -0
- package/templates/firebase/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/templates/firebase/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/templates/firebase/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
- package/templates/firebase/ios/Runner.xcodeproj/xcshareddata/xcschemes/NotificationService.xcscheme +58 -0
- package/templates/firebase/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +101 -0
- package/templates/firebase/ios/Runner.xcworkspace/contents.xcworkspacedata +10 -0
- package/templates/firebase/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/templates/firebase/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
- package/templates/firebase/ios/RunnerTests/RunnerTests.swift +12 -0
- package/templates/firebase/lib/components/components.dart +27 -0
- package/templates/firebase/lib/components/kasy_accordion.dart +384 -0
- package/templates/firebase/lib/components/kasy_alert.dart +266 -0
- package/templates/firebase/lib/components/kasy_app_bar.dart +536 -0
- package/templates/firebase/lib/components/kasy_avatar.dart +549 -0
- package/templates/firebase/lib/components/kasy_avatar_presets.dart +104 -0
- package/templates/firebase/lib/components/kasy_badge.dart +278 -0
- package/templates/firebase/lib/components/kasy_bottom_sheet.dart +338 -0
- package/templates/firebase/lib/components/kasy_button.dart +926 -0
- package/templates/firebase/lib/components/kasy_card.dart +128 -0
- package/templates/firebase/lib/components/kasy_checkbox.dart +429 -0
- package/templates/firebase/lib/components/kasy_chip.dart +83 -0
- package/templates/firebase/lib/components/kasy_dialog.dart +789 -0
- package/templates/firebase/lib/components/kasy_otp_verification_bottom_sheet.dart +233 -0
- package/templates/firebase/lib/components/kasy_skeleton.dart +225 -0
- package/templates/firebase/lib/components/kasy_text_area.dart +392 -0
- package/templates/firebase/lib/components/kasy_text_field.dart +591 -0
- package/templates/firebase/lib/components/kasy_text_field_otp.dart +532 -0
- package/templates/firebase/lib/components/kasy_toast.dart +803 -0
- package/templates/firebase/lib/core/ads/ads_provider.dart +136 -0
- package/templates/firebase/lib/core/ads/ads_state.dart +15 -0
- package/templates/firebase/lib/core/animations/bottomfade_anim.dart +37 -0
- package/templates/firebase/lib/core/animations/movefade_anim.dart +34 -0
- package/templates/firebase/lib/core/animations/slideright_anim.dart +38 -0
- package/templates/firebase/lib/core/bottom_menu/bart_inner_paths.dart +5 -0
- package/templates/firebase/lib/core/bottom_menu/bottom_menu.dart +127 -0
- package/templates/firebase/lib/core/bottom_menu/bottom_router.dart +281 -0
- package/templates/firebase/lib/core/bottom_menu/kasy_bart_navigation.dart +22 -0
- package/templates/firebase/lib/core/bottom_menu/kasy_bottom_bar_factory.dart +127 -0
- package/templates/firebase/lib/core/bottom_menu/notification_bottom_item.dart +48 -0
- package/templates/firebase/lib/core/config/app_env.dart +100 -0
- package/templates/firebase/lib/core/config/features.dart +15 -0
- package/templates/firebase/lib/core/data/api/analytics_api.dart +124 -0
- package/templates/firebase/lib/core/data/api/base_api_exceptions.dart +28 -0
- package/templates/firebase/lib/core/data/api/firestore_retry.dart +29 -0
- package/templates/firebase/lib/core/data/api/http_client.dart +38 -0
- package/templates/firebase/lib/core/data/api/image.dart +52 -0
- package/templates/firebase/lib/core/data/api/remote_config_api.dart +170 -0
- package/templates/firebase/lib/core/data/api/storage_api.dart +115 -0
- package/templates/firebase/lib/core/data/api/tracking_api.dart +119 -0
- package/templates/firebase/lib/core/data/api/user_api.dart +115 -0
- package/templates/firebase/lib/core/data/entities/json_converters.dart +39 -0
- package/templates/firebase/lib/core/data/entities/upload_result.dart +48 -0
- package/templates/firebase/lib/core/data/entities/user_entity.dart +54 -0
- package/templates/firebase/lib/core/data/models/pageable.dart +12 -0
- package/templates/firebase/lib/core/data/models/subscription.dart +322 -0
- package/templates/firebase/lib/core/data/models/user.dart +107 -0
- package/templates/firebase/lib/core/data/repositories/user_repository.dart +130 -0
- package/templates/firebase/lib/core/dev_inspector/dev_inspector.dart +464 -0
- package/templates/firebase/lib/core/dev_inspector/dev_inspector_highlight.dart +88 -0
- package/templates/firebase/lib/core/dev_inspector/dev_inspector_info.dart +70 -0
- package/templates/firebase/lib/core/dev_inspector/dev_inspector_panel.dart +204 -0
- package/templates/firebase/lib/core/dev_inspector/dev_inspector_service.dart +321 -0
- package/templates/firebase/lib/core/extensions/date.ext.dart +32 -0
- package/templates/firebase/lib/core/guards/authenticated_guard.dart +37 -0
- package/templates/firebase/lib/core/guards/guard.dart +68 -0
- package/templates/firebase/lib/core/guards/user_info_guard.dart +55 -0
- package/templates/firebase/lib/core/haptics/haptic_feedback_notifier.dart +19 -0
- package/templates/firebase/lib/core/haptics/kasy_haptics.dart +27 -0
- package/templates/firebase/lib/core/home_widgets/home_widget_background_task.dart +41 -0
- package/templates/firebase/lib/core/home_widgets/home_widget_mywidget_service.dart +57 -0
- package/templates/firebase/lib/core/home_widgets/home_widget_service.dart +54 -0
- package/templates/firebase/lib/core/icons/kasy_icons.dart +86 -0
- package/templates/firebase/lib/core/initializer/models/run_state.dart +14 -0
- package/templates/firebase/lib/core/initializer/onstart_service.dart +38 -0
- package/templates/firebase/lib/core/initializer/onstart_widget.dart +83 -0
- package/templates/firebase/lib/core/initializer/pending_notification_handler.dart +48 -0
- package/templates/firebase/lib/core/keyboard_fix/keyboard_flicker_fix.dart +164 -0
- package/templates/firebase/lib/core/navigation/kasy_fade_page_transitions_builder.dart +34 -0
- package/templates/firebase/lib/core/navigation/kasy_material_page_route.dart +41 -0
- package/templates/firebase/lib/core/navigation/kasy_navigation_config.dart +29 -0
- package/templates/firebase/lib/core/navigation/kasy_page_transition.dart +40 -0
- package/templates/firebase/lib/core/navigation/kasy_route_transition.dart +68 -0
- package/templates/firebase/lib/core/navigation/kasy_transition_kind.dart +17 -0
- package/templates/firebase/lib/core/navigation/navigation.dart +6 -0
- package/templates/firebase/lib/core/rating/api/rating_api.dart +99 -0
- package/templates/firebase/lib/core/rating/models/rating.dart +52 -0
- package/templates/firebase/lib/core/rating/models/review.dart +70 -0
- package/templates/firebase/lib/core/rating/providers/rating_repository.dart +75 -0
- package/templates/firebase/lib/core/rating/widgets/rate_banner.dart +190 -0
- package/templates/firebase/lib/core/rating/widgets/rate_popup.dart +54 -0
- package/templates/firebase/lib/core/rating/widgets/review_popup.dart +175 -0
- package/templates/firebase/lib/core/security/biometric_copy_slot.dart +20 -0
- package/templates/firebase/lib/core/security/biometric_guard.dart +114 -0
- package/templates/firebase/lib/core/security/biometric_preference_notifier.dart +17 -0
- package/templates/firebase/lib/core/security/biometric_service.dart +79 -0
- package/templates/firebase/lib/core/security/biometric_ui_bundle.dart +136 -0
- package/templates/firebase/lib/core/security/secured_storage.dart +46 -0
- package/templates/firebase/lib/core/shared_preferences/shared_preferences.dart +70 -0
- package/templates/firebase/lib/core/sidebar/kasy_sidebar.dart +2021 -0
- package/templates/firebase/lib/core/states/components/maybe_ask_biometric_setup.dart +88 -0
- package/templates/firebase/lib/core/states/components/maybe_ask_rating.dart +49 -0
- package/templates/firebase/lib/core/states/components/maybe_show_update_bottom_sheet.dart +86 -0
- package/templates/firebase/lib/core/states/components/maybeshow_component.dart +110 -0
- package/templates/firebase/lib/core/states/events_dispatcher.dart +103 -0
- package/templates/firebase/lib/core/states/models/event_model.dart +118 -0
- package/templates/firebase/lib/core/states/models/user_state.dart +22 -0
- package/templates/firebase/lib/core/states/notifications_dispatcher.dart +81 -0
- package/templates/firebase/lib/core/states/translations.dart +11 -0
- package/templates/firebase/lib/core/states/user_state_notifier.dart +321 -0
- package/templates/firebase/lib/core/theme/colors.dart +262 -0
- package/templates/firebase/lib/core/theme/extensions/theme_extension.dart +48 -0
- package/templates/firebase/lib/core/theme/providers/kasy_theme.dart +76 -0
- package/templates/firebase/lib/core/theme/providers/theme_provider.dart +212 -0
- package/templates/firebase/lib/core/theme/radius.dart +33 -0
- package/templates/firebase/lib/core/theme/shadows.dart +64 -0
- package/templates/firebase/lib/core/theme/spacing.dart +44 -0
- package/templates/firebase/lib/core/theme/texts.dart +176 -0
- package/templates/firebase/lib/core/theme/theme.dart +24 -0
- package/templates/firebase/lib/core/theme/theme_data/theme_data.dart +32 -0
- package/templates/firebase/lib/core/theme/theme_data/theme_data_factory.dart +15 -0
- package/templates/firebase/lib/core/theme/universal_theme.dart +210 -0
- package/templates/firebase/lib/core/toast/toast_service.dart +55 -0
- package/templates/firebase/lib/core/ui/app_dialog.dart +26 -0
- package/templates/firebase/lib/core/web_device_preview/web_device_preview.dart +1126 -0
- package/templates/firebase/lib/core/widgets/debouncer.dart +31 -0
- package/templates/firebase/lib/core/widgets/kasy_hover.dart +166 -0
- package/templates/firebase/lib/core/widgets/kasy_pressable.dart +2 -0
- package/templates/firebase/lib/core/widgets/kasy_pressable_depth.dart +161 -0
- package/templates/firebase/lib/core/widgets/kasy_scroll_behavior.dart +17 -0
- package/templates/firebase/lib/core/widgets/keyboard_visibility.dart +75 -0
- package/templates/firebase/lib/core/widgets/page_background.dart +71 -0
- package/templates/firebase/lib/core/widgets/page_not_found.dart +15 -0
- package/templates/firebase/lib/core/widgets/responsive_layout.dart +215 -0
- package/templates/firebase/lib/core/widgets/update_bottom_sheet.dart +192 -0
- package/templates/firebase/lib/environnements.dart +160 -0
- package/templates/firebase/lib/features/authentication/api/authentication_api.dart +528 -0
- package/templates/firebase/lib/features/authentication/api/authentication_api_interface.dart +84 -0
- package/templates/firebase/lib/features/authentication/providers/models/email.dart +36 -0
- package/templates/firebase/lib/features/authentication/providers/models/password.dart +37 -0
- package/templates/firebase/lib/features/authentication/providers/models/phone_signin_state.dart +21 -0
- package/templates/firebase/lib/features/authentication/providers/models/recover_state.dart +21 -0
- package/templates/firebase/lib/features/authentication/providers/models/signin_state.dart +20 -0
- package/templates/firebase/lib/features/authentication/providers/models/signup_state.dart +20 -0
- package/templates/firebase/lib/features/authentication/providers/phone_auth_notifier.dart +132 -0
- package/templates/firebase/lib/features/authentication/providers/recover_provider.dart +51 -0
- package/templates/firebase/lib/features/authentication/providers/signin_state_provider.dart +166 -0
- package/templates/firebase/lib/features/authentication/providers/signup_state_provider.dart +67 -0
- package/templates/firebase/lib/features/authentication/repositories/authentication_repository.dart +399 -0
- package/templates/firebase/lib/features/authentication/repositories/exceptions/authentication_exceptions.dart +85 -0
- package/templates/firebase/lib/features/authentication/ui/components/apple_signin.dart +19 -0
- package/templates/firebase/lib/features/authentication/ui/components/facebook_signin.dart +19 -0
- package/templates/firebase/lib/features/authentication/ui/components/google_signin.dart +32 -0
- package/templates/firebase/lib/features/authentication/ui/components/otp_verification.dart +100 -0
- package/templates/firebase/lib/features/authentication/ui/components/phone_input.dart +109 -0
- package/templates/firebase/lib/features/authentication/ui/phone_auth_page.dart +60 -0
- package/templates/firebase/lib/features/authentication/ui/recover_password_page.dart +101 -0
- package/templates/firebase/lib/features/authentication/ui/signin_page.dart +321 -0
- package/templates/firebase/lib/features/authentication/ui/signup_page.dart +310 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/auth_brand.dart +35 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/auth_page_back_button.dart +149 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/otp_input.dart +194 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/recover_password_result.dart +62 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/round_signin.dart +73 -0
- package/templates/firebase/lib/features/authentication/ui/widgets/social_separator.dart +26 -0
- package/templates/firebase/lib/features/dev/keyboard_test_page.dart +93 -0
- package/templates/firebase/lib/features/feedbacks/api/entities/feature_request_entity.dart +27 -0
- package/templates/firebase/lib/features/feedbacks/api/entities/feature_vote_entity.dart +27 -0
- package/templates/firebase/lib/features/feedbacks/api/feature_request_api.dart +51 -0
- package/templates/firebase/lib/features/feedbacks/api/feature_vote_api.dart +79 -0
- package/templates/firebase/lib/features/feedbacks/models/feature_requests.dart +48 -0
- package/templates/firebase/lib/features/feedbacks/models/feedback_state.dart +43 -0
- package/templates/firebase/lib/features/feedbacks/providers/feedback_page_notifier.dart +147 -0
- package/templates/firebase/lib/features/feedbacks/repositories/feature_request_repository.dart +92 -0
- package/templates/firebase/lib/features/feedbacks/ui/component/add_feature_form.dart +112 -0
- package/templates/firebase/lib/features/feedbacks/ui/feedback_page.dart +184 -0
- package/templates/firebase/lib/features/feedbacks/ui/widgets/add_feature_button.dart +66 -0
- package/templates/firebase/lib/features/feedbacks/ui/widgets/feature_card.dart +266 -0
- package/templates/firebase/lib/features/home/design_system_page.dart +552 -0
- package/templates/firebase/lib/features/home/home_components_page.dart +314 -0
- package/templates/firebase/lib/features/home/home_components_preview_page.dart +791 -0
- package/templates/firebase/lib/features/home/home_components_preview_registry.dart +7712 -0
- package/templates/firebase/lib/features/home/home_features_page.dart +207 -0
- package/templates/firebase/lib/features/home/home_page.dart +348 -0
- package/templates/firebase/lib/features/llm_chat/api/llm_chat_api.dart +50 -0
- package/templates/firebase/lib/features/llm_chat/api/llm_chat_message_entity.dart +35 -0
- package/templates/firebase/lib/features/llm_chat/llm_chat_page.dart +352 -0
- package/templates/firebase/lib/features/llm_chat/providers/llm_chat_notifier.dart +315 -0
- package/templates/firebase/lib/features/llm_chat/ui/widgets/llm_chat_avatars.dart +148 -0
- package/templates/firebase/lib/features/llm_chat/ui/widgets/llm_chat_composer.dart +124 -0
- package/templates/firebase/lib/features/local_reminder/providers/reminder_notifier.dart +81 -0
- package/templates/firebase/lib/features/local_reminder/repositories/reminder_preferences.dart +76 -0
- package/templates/firebase/lib/features/local_reminder/ui/reminder_page.dart +288 -0
- package/templates/firebase/lib/features/notifications/api/device_api.dart +433 -0
- package/templates/firebase/lib/features/notifications/api/entities/device_entity.dart +62 -0
- package/templates/firebase/lib/features/notifications/api/entities/notifications_entity.dart +35 -0
- package/templates/firebase/lib/features/notifications/api/local_notifier.dart +409 -0
- package/templates/firebase/lib/features/notifications/api/notifications_api.dart +319 -0
- package/templates/firebase/lib/features/notifications/providers/models/device.dart +27 -0
- package/templates/firebase/lib/features/notifications/providers/models/notification.dart +196 -0
- package/templates/firebase/lib/features/notifications/providers/models/notification_list.dart +38 -0
- package/templates/firebase/lib/features/notifications/providers/notifications_provider.dart +120 -0
- package/templates/firebase/lib/features/notifications/repositories/background_notification_handler.dart +13 -0
- package/templates/firebase/lib/features/notifications/repositories/device_repository.dart +137 -0
- package/templates/firebase/lib/features/notifications/repositories/notifications_repository.dart +214 -0
- package/templates/firebase/lib/features/notifications/shared/att_permission.dart +75 -0
- package/templates/firebase/lib/features/notifications/shared/notification_permission_bottom_sheet.dart +144 -0
- package/templates/firebase/lib/features/notifications/ui/components/notification_settings_sheet.dart +169 -0
- package/templates/firebase/lib/features/notifications/ui/components/notification_tile.dart +46 -0
- package/templates/firebase/lib/features/notifications/ui/components/notifications_header.dart +32 -0
- package/templates/firebase/lib/features/notifications/ui/components/push_notification_switcher.dart +106 -0
- package/templates/firebase/lib/features/notifications/ui/notifications_page.dart +202 -0
- package/templates/firebase/lib/features/notifications/ui/request_notification_permission.dart +84 -0
- package/templates/firebase/lib/features/notifications/ui/widgets/empty_notifications.dart +73 -0
- package/templates/firebase/lib/features/notifications/ui/widgets/notification_tile.dart +362 -0
- package/templates/firebase/lib/features/onboarding/api/entities/user_info_entity.dart +24 -0
- package/templates/firebase/lib/features/onboarding/api/user_infos_api.dart +71 -0
- package/templates/firebase/lib/features/onboarding/models/user_info.dart +92 -0
- package/templates/firebase/lib/features/onboarding/providers/onboarding_model.dart +15 -0
- package/templates/firebase/lib/features/onboarding/providers/onboarding_provider.dart +78 -0
- package/templates/firebase/lib/features/onboarding/repositories/user_infos_repository.dart +29 -0
- package/templates/firebase/lib/features/onboarding/ui/animations/page_transitions.dart +33 -0
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_att_setup.dart +66 -0
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_features.dart +76 -0
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_loader.dart +92 -0
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_notifications_setup.dart +76 -0
- package/templates/firebase/lib/features/onboarding/ui/components/onboarding_questions.dart +89 -0
- package/templates/firebase/lib/features/onboarding/ui/onboarding_page.dart +108 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_background.dart +80 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_feature.dart +145 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_illustration_scaffold.dart +125 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_progress.dart +84 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_radio_question.dart +173 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_reassurance.dart +44 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/onboarding_sticky_footer.dart +77 -0
- package/templates/firebase/lib/features/onboarding/ui/widgets/selectable_row_tile.dart +392 -0
- package/templates/firebase/lib/features/settings/settings_page.dart +460 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_bottom_sheet.dart +301 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_home_widgets.dart +38 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_paywalls.dart +53 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/admin_routes.dart +22 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/send_push_notification_page.dart +366 -0
- package/templates/firebase/lib/features/settings/ui/components/admin/send_push_notifier.dart +40 -0
- package/templates/firebase/lib/features/settings/ui/components/avatar_component.dart +430 -0
- package/templates/firebase/lib/features/settings/ui/components/delete_user_component.dart +28 -0
- package/templates/firebase/lib/features/settings/ui/components/language_switcher.dart +163 -0
- package/templates/firebase/lib/features/settings/ui/widgets/admin_card.dart +59 -0
- package/templates/firebase/lib/features/settings/ui/widgets/avatar_utils.dart +51 -0
- package/templates/firebase/lib/features/settings/ui/widgets/round_progress.dart +151 -0
- package/templates/firebase/lib/features/settings/ui/widgets/settings_bottom_sheet_option_tile.dart +52 -0
- package/templates/firebase/lib/features/settings/ui/widgets/settings_tile.dart +163 -0
- package/templates/firebase/lib/features/subscription/api/entities/subscription_entity.dart +40 -0
- package/templates/firebase/lib/features/subscription/api/inapp_subscription_api.dart +389 -0
- package/templates/firebase/lib/features/subscription/api/subscription_api.dart +39 -0
- package/templates/firebase/lib/features/subscription/providers/models/premium_state.dart +35 -0
- package/templates/firebase/lib/features/subscription/providers/premium_page_provider.dart +259 -0
- package/templates/firebase/lib/features/subscription/repositories/subscription_repository.dart +177 -0
- package/templates/firebase/lib/features/subscription/shared/maybeshow_premium.dart +85 -0
- package/templates/firebase/lib/features/subscription/ui/component/active_premium_content.dart +171 -0
- package/templates/firebase/lib/features/subscription/ui/component/paywall_minimal.dart +146 -0
- package/templates/firebase/lib/features/subscription/ui/component/paywall_row.dart +332 -0
- package/templates/firebase/lib/features/subscription/ui/component/paywall_with_switch.dart +207 -0
- package/templates/firebase/lib/features/subscription/ui/component/premium_content.dart +157 -0
- package/templates/firebase/lib/features/subscription/ui/component/premium_page_factory.dart +161 -0
- package/templates/firebase/lib/features/subscription/ui/premium_page.dart +139 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/comparison_table.dart +346 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/feature_line.dart +131 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/paywall_empty_state.dart +68 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_background.dart +63 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_background_gradient.dart +53 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_banner.dart +80 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_bottom_menu.dart +102 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_card.dart +26 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_close_button.dart +61 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/premium_feature.dart +39 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/selectable_col.dart +377 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/selectable_row.dart +436 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/trial_switcher.dart +85 -0
- package/templates/firebase/lib/features/subscription/ui/widgets/unsubscribe_feedback_popup.dart +123 -0
- package/templates/firebase/lib/firebase_options.dart +75 -0
- package/templates/firebase/lib/google_auth_options.dart +10 -0
- package/templates/firebase/lib/i18n/app_locale_display.dart +17 -0
- package/templates/firebase/lib/i18n/en.i18n.json +514 -0
- package/templates/firebase/lib/i18n/es.i18n.json +514 -0
- package/templates/firebase/lib/i18n/pt.i18n.json +514 -0
- package/templates/firebase/lib/i18n/widgets/locale_code_badge.dart +47 -0
- package/templates/firebase/lib/main.dart +263 -0
- package/templates/firebase/lib/router.dart +226 -0
- package/templates/firebase/login-redesign-preview.png +0 -0
- package/templates/firebase/pubspec.yaml +177 -0
- package/templates/firebase/scripts/bump-ios-version.js +38 -0
- package/templates/firebase/scripts/release-ios.sh +137 -0
- package/templates/firebase/slang.yaml +7 -0
- package/templates/firebase/storage.rules +12 -0
- package/templates/firebase/test/core/data/api/analytics_api_fake.dart +25 -0
- package/templates/firebase/test/core/data/api/fake_remote_config_api.dart +45 -0
- package/templates/firebase/test/core/data/api/storage_api_fake.dart +28 -0
- package/templates/firebase/test/core/data/models/subscription_test.dart +42 -0
- package/templates/firebase/test/core/data/repositories/user_repository_test.dart +56 -0
- package/templates/firebase/test/core/guards/guard_test.dart +78 -0
- package/templates/firebase/test/core/navigation/kasy_page_transition_test.dart +30 -0
- package/templates/firebase/test/core/onstart_service_test.dart +18 -0
- package/templates/firebase/test/core/rating/rating_api_fake.dart +58 -0
- package/templates/firebase/test/core/rating/rating_banner_test.dart +117 -0
- package/templates/firebase/test/core/rating/rating_test.dart +60 -0
- package/templates/firebase/test/core/security/secured_storage_fake.dart +33 -0
- package/templates/firebase/test/core/states/event_dispatcher_test.dart +269 -0
- package/templates/firebase/test/core/states/user_state_notifier_test.dart +244 -0
- package/templates/firebase/test/core/widgets/responsive_layout_test.dart +50 -0
- package/templates/firebase/test/device_test_utils.dart +98 -0
- package/templates/firebase/test/features/authentication/data/api/auth_api_fake.dart +169 -0
- package/templates/firebase/test/features/authentication/data/api/user_api_fake.dart +86 -0
- package/templates/firebase/test/features/authentication/lost_password_page_test.dart +59 -0
- package/templates/firebase/test/features/authentication/repositories/authentication_repository_test.dart +88 -0
- package/templates/firebase/test/features/authentication/signin_page_test.dart +133 -0
- package/templates/firebase/test/features/authentication/signup_page_test.dart +136 -0
- package/templates/firebase/test/features/notifications/data/device_api_fake.dart +66 -0
- package/templates/firebase/test/features/notifications/data/fake_facebook_api.dart +40 -0
- package/templates/firebase/test/features/notifications/data/local_notifier_fake.dart +59 -0
- package/templates/firebase/test/features/notifications/data/notifications_api_fake.dart +120 -0
- package/templates/firebase/test/features/notifications/data/notifications_settings_fake.dart +34 -0
- package/templates/firebase/test/features/notifications/providers/device_repository_test.dart +68 -0
- package/templates/firebase/test/features/notifications/providers/notifications_repository_test.dart +74 -0
- package/templates/firebase/test/features/notifications/ui/notifications_page_test.dart +69 -0
- package/templates/firebase/test/features/subscription/api/fake_inapp_subscription_api.dart +85 -0
- package/templates/firebase/test/features/subscription/api/fake_revenuecat_product.dart +186 -0
- package/templates/firebase/test/features/subscription/api/fake_subscription_api.dart +11 -0
- package/templates/firebase/test/features/subscription/subscription_page_test.dart +119 -0
- package/templates/firebase/test/firebase_test_utils.dart +25 -0
- package/templates/firebase/test/test_utils.dart +272 -0
- package/templates/firebase/web/favicon.png +0 -0
- package/templates/firebase/web/firebase-messaging-sw.js +27 -0
- package/templates/firebase/web/icons/Icon-192.png +0 -0
- package/templates/firebase/web/icons/Icon-512.png +0 -0
- package/templates/firebase/web/icons/Icon-maskable-192.png +0 -0
- package/templates/firebase/web/icons/Icon-maskable-512.png +0 -0
- package/templates/firebase/web/index.html +110 -0
- package/templates/firebase/web/local_notifications.js +31 -0
- package/templates/firebase/web/manifest.json +35 -0
- package/templates/firebase/web/splash/img/dark-1x.png +0 -0
- package/templates/firebase/web/splash/img/dark-2x.png +0 -0
- package/templates/firebase/web/splash/img/dark-3x.png +0 -0
- package/templates/firebase/web/splash/img/dark-4x.png +0 -0
- package/templates/firebase/web/splash/img/light-1x.png +0 -0
- package/templates/firebase/web/splash/img/light-2x.png +0 -0
- package/templates/firebase/web/splash/img/light-3x.png +0 -0
- package/templates/firebase/web/splash/img/light-4x.png +0 -0
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
{
|
|
2
|
+
"home": {
|
|
3
|
+
"title": "Exemplo Kasy",
|
|
4
|
+
"welcome": "Bem-vindo ao demo do Kasy",
|
|
5
|
+
"cards": {
|
|
6
|
+
"paywall_title": "Paywall",
|
|
7
|
+
"paywall_description": "Ver a página de assinatura",
|
|
8
|
+
"notification_title": "Teste de notificação local",
|
|
9
|
+
"notification_description": "Dispara um alerta só neste aparelho. Não entra na aba Notificações (push).",
|
|
10
|
+
"feedback_title": "Feedback",
|
|
11
|
+
"feedback_description": "Página de solicitação de recursos ou votação",
|
|
12
|
+
"signup_title": "Cadastro",
|
|
13
|
+
"signup_description": "Usuário anônimo pode se cadastrar com e-mail ou rede social",
|
|
14
|
+
"assistant_title": "Assistente IA",
|
|
15
|
+
"assistant_description": "Abrir a página de modelo de chat com IA"
|
|
16
|
+
},
|
|
17
|
+
"features_page": {
|
|
18
|
+
"title": "Recursos do kit",
|
|
19
|
+
"assistant_title": "Converse com a IA",
|
|
20
|
+
"assistant_description": "Chat pronto para perguntas, ideias e suporte dentro do app",
|
|
21
|
+
"feedback_title": "Vote e sugira",
|
|
22
|
+
"feedback_description": "Participe do roadmap: vote em ideias ou envie a sua",
|
|
23
|
+
"notification_title": "Testar notificação",
|
|
24
|
+
"notification_description": "Dispara um alerta só neste aparelho (não é push)",
|
|
25
|
+
"notification_demo_title": "Alerta de teste",
|
|
26
|
+
"notification_demo_body": "Notificação local do demo do kit",
|
|
27
|
+
"send_push_title": "Enviar notificação push",
|
|
28
|
+
"send_push_description": "Dispare uma push para usuários específicos ou para todos",
|
|
29
|
+
"paywall_title": "Planos e assinatura",
|
|
30
|
+
"paywall_description": "Telas de paywall, trial e fluxo RevenueCat"
|
|
31
|
+
},
|
|
32
|
+
"dashboard": {
|
|
33
|
+
"brand": "kasy",
|
|
34
|
+
"components_title": "Componentes",
|
|
35
|
+
"components_subtitle": "Explore tokens de design e blocos de interface",
|
|
36
|
+
"features_title": "Features",
|
|
37
|
+
"features_subtitle": "IA, feedback, alertas e assinatura",
|
|
38
|
+
"count_total": "$count no total"
|
|
39
|
+
},
|
|
40
|
+
"components_preview": {
|
|
41
|
+
"nav_title": "Componentes",
|
|
42
|
+
"pro_badge": "PRO"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"auth": {
|
|
46
|
+
"signin": {
|
|
47
|
+
"title": "Bem-vindo de volta",
|
|
48
|
+
"subtitle": "Entre para continuar sua experiência",
|
|
49
|
+
"email_hint": "bruce@wayne.com",
|
|
50
|
+
"email_label": "E-mail",
|
|
51
|
+
"password_hint": "Senha",
|
|
52
|
+
"password_label": "Senha",
|
|
53
|
+
"forgot_password": "Esqueceu sua senha?",
|
|
54
|
+
"submit": "Continuar com e-mail",
|
|
55
|
+
"create_account": "Criar minha conta",
|
|
56
|
+
"no_account": "Não tem uma conta?",
|
|
57
|
+
"signup_link": "Cadastre-se",
|
|
58
|
+
"continue_without": "Continuar sem conta",
|
|
59
|
+
"or_sign_in_with": "ou",
|
|
60
|
+
"google": "Gmail",
|
|
61
|
+
"apple": "Apple",
|
|
62
|
+
"facebook": "Facebook",
|
|
63
|
+
"error_title": "Erro",
|
|
64
|
+
"error_text": "E-mail, senha incorretos ou este e-mail não está cadastrado",
|
|
65
|
+
"email_invalid": "E-mail inválido",
|
|
66
|
+
"password_required": "Informe uma senha",
|
|
67
|
+
"password_too_short": "Sua senha deve ter pelo menos 5 caracteres"
|
|
68
|
+
},
|
|
69
|
+
"signup": {
|
|
70
|
+
"title": "Cadastre-se agora",
|
|
71
|
+
"subtitle": "Crie sua conta para começar",
|
|
72
|
+
"submit": "Criar minha conta",
|
|
73
|
+
"have_account": "Já tem uma conta?",
|
|
74
|
+
"signin_link": "Entrar",
|
|
75
|
+
"already_have_account": "Já tenho uma conta",
|
|
76
|
+
"error_title": "Erro",
|
|
77
|
+
"error_text": "Este e-mail já existe ou é inválido"
|
|
78
|
+
},
|
|
79
|
+
"recover": {
|
|
80
|
+
"title": "Recuperar senha",
|
|
81
|
+
"email_label": "E-mail",
|
|
82
|
+
"submit": "Recuperar senha",
|
|
83
|
+
"error_title": "Erro",
|
|
84
|
+
"error_text": "Informe um e-mail válido"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"rate_popup": {
|
|
88
|
+
"title": "Você teria 15s para nos avaliar?",
|
|
89
|
+
"description": "É rápido e muito útil! Muito obrigado!",
|
|
90
|
+
"cancel_button": "Talvez mais tarde",
|
|
91
|
+
"rate_button": "Sim, com prazer!"
|
|
92
|
+
},
|
|
93
|
+
"premium": {
|
|
94
|
+
"title_1": "Desbloqueie o acesso completo",
|
|
95
|
+
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
96
|
+
"feature_1": "Recurso 1 lorem ipsum",
|
|
97
|
+
"feature_2": "Recurso 2 mop issum",
|
|
98
|
+
"feature_3": "Recurso 3 lorem",
|
|
99
|
+
"duration_weekly": "Semana",
|
|
100
|
+
"duration_annual": "Ano",
|
|
101
|
+
"duration_monthly": "Mês",
|
|
102
|
+
"duration_monthly_description": "Cancele quando quiser",
|
|
103
|
+
"duration_lifetime": "Vitalício",
|
|
104
|
+
"duration_lifetime_description": "Pagamento único",
|
|
105
|
+
"restore_action": "Restaurar",
|
|
106
|
+
"coupon_title": "Tem um cupom?",
|
|
107
|
+
"payment_cancel_reassurance": "Cancelamento fácil com 1 clique, sempre",
|
|
108
|
+
"payment_cancel_reassurance_free_trial": "Sem pagamento agora, cancele quando quiser",
|
|
109
|
+
"payment_action": "Iniciar teste gratuito",
|
|
110
|
+
"payment_action_trial": "7 dias grátis, depois $money",
|
|
111
|
+
"try_free_btn_action": "Experimente grátis por $days dias",
|
|
112
|
+
"duration_recuring_label_annual": "Anual",
|
|
113
|
+
"duration_recuring_label_monthly": "Mensal",
|
|
114
|
+
"duration_recuring_label_weekly": "Semanal",
|
|
115
|
+
"action_button": "Continuar",
|
|
116
|
+
"terms": "Termos",
|
|
117
|
+
"privacy": "Privacidade",
|
|
118
|
+
"error_loading": "Erro ao carregar as ofertas",
|
|
119
|
+
"no_products_title": "As opções de assinatura ainda não estão disponíveis",
|
|
120
|
+
"no_products_description": "Tente novamente em alguns instantes. Se continuar acontecendo, os produtos da loja ainda podem estar finalizando a configuração.",
|
|
121
|
+
"restore_success_title": "Assinatura restaurada",
|
|
122
|
+
"restore_success_text": "Obrigado pela sua confiança",
|
|
123
|
+
"purchase_success_title": "Assinatura realizada com sucesso",
|
|
124
|
+
"purchase_success_text": "Obrigado pela sua confiança",
|
|
125
|
+
"error_title": "Erro",
|
|
126
|
+
"error_text": "Ocorreu um erro. Tente novamente",
|
|
127
|
+
"comparison": {
|
|
128
|
+
"title": "Comparação de planos Premium",
|
|
129
|
+
"features_label": "Recursos",
|
|
130
|
+
"free_version": "Grátis",
|
|
131
|
+
"premium_version": "Premium",
|
|
132
|
+
"no_ads": "Sem anúncios",
|
|
133
|
+
"premium_themes": "Temas Premium",
|
|
134
|
+
"advanced_customization": "Personalização avançada",
|
|
135
|
+
"priority_support": "Suporte prioritário",
|
|
136
|
+
"home_widget": "Widgets na tela inicial",
|
|
137
|
+
"talk_with_assistant": "Assistente IA"
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"activePremium": {
|
|
141
|
+
"title": "Você é um usuário premium",
|
|
142
|
+
"description": "Aproveite todos os recursos",
|
|
143
|
+
"unsubscribe_button": "Cancelar assinatura",
|
|
144
|
+
"early_bird_description": "Você usou um cupom que lhe deu acesso gratuito aos recursos premium sem assinatura. Aproveite!",
|
|
145
|
+
"unsubscribe_feedback_title": "Ajude-nos a melhorar",
|
|
146
|
+
"unsubscribe_feedback_description": "Lamentamos vê-lo partir. Poderia nos dizer brevemente por que está cancelando?",
|
|
147
|
+
"unsubscribe_feedback_hint": "Conte-nos o motivo...",
|
|
148
|
+
"unsubscribe_feedback_min_chars": "Mínimo de 6 caracteres necessários",
|
|
149
|
+
"unsubscribe_confirm_button": "Prosseguir",
|
|
150
|
+
"lifetime_user_description": "Você é um usuário vitalício",
|
|
151
|
+
"cancel_button": "Fechar"
|
|
152
|
+
},
|
|
153
|
+
"paywallWithSwitch": {
|
|
154
|
+
"withTrial": {
|
|
155
|
+
"title": "Experimente grátis por $days dias",
|
|
156
|
+
"btnAction": "Experimente gratuitamente",
|
|
157
|
+
"details": "$days dias grátis, depois $price",
|
|
158
|
+
"trial_switch_title": "Teste gratuito de $days dias"
|
|
159
|
+
},
|
|
160
|
+
"noTrial": {
|
|
161
|
+
"title": "Aproveite sua experiência Premium",
|
|
162
|
+
"btnAction": "Continuar",
|
|
163
|
+
"trial_switch_title": "Ainda não tem certeza?",
|
|
164
|
+
"trial_switch_subtitle": "Ativar teste gratuito"
|
|
165
|
+
},
|
|
166
|
+
"features": [
|
|
167
|
+
"Lorem recurso 1",
|
|
168
|
+
"Lorem recurso 2",
|
|
169
|
+
"Lorem recurso 3",
|
|
170
|
+
"Cancele quando quiser"
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
"onboarding": {
|
|
174
|
+
"feature_1": {
|
|
175
|
+
"title": "Módulo de assinaturas",
|
|
176
|
+
"description": "Gerencie assinaturas com paywalls prontos para usar",
|
|
177
|
+
"action": "Continuar",
|
|
178
|
+
"skip": "Pular"
|
|
179
|
+
},
|
|
180
|
+
"feature_2": {
|
|
181
|
+
"title": "Módulo de autenticação",
|
|
182
|
+
"description": "Gerencie a autenticação com telas prontas (login, cadastro, esqueci a senha, etc.)",
|
|
183
|
+
"action": "Continuar"
|
|
184
|
+
},
|
|
185
|
+
"feature_3": {
|
|
186
|
+
"title": "Módulo de notificações",
|
|
187
|
+
"description": "Receba notificações push, mostre notificações no app, gerencie permissões, lista de notificações com status...",
|
|
188
|
+
"action": "Continuar"
|
|
189
|
+
},
|
|
190
|
+
"ageQuestion": {
|
|
191
|
+
"title": "Qual é a sua idade?",
|
|
192
|
+
"description": "Isso nos ajuda a personalizar sua experiência no app.",
|
|
193
|
+
"options(map)": {
|
|
194
|
+
"age18_30": "[18 - 30] anos",
|
|
195
|
+
"age31_40": "[31 - 40] anos",
|
|
196
|
+
"age41_50": "[41 - 50] anos",
|
|
197
|
+
"age51_60": "50 anos ou mais",
|
|
198
|
+
"none": "Prefiro não responder"
|
|
199
|
+
},
|
|
200
|
+
"action": "Continuar"
|
|
201
|
+
},
|
|
202
|
+
"genderQuestion": {
|
|
203
|
+
"title": "Qual é o seu gênero?",
|
|
204
|
+
"description": "Escolha a opção que melhor representa você. Você pode pular se preferir.",
|
|
205
|
+
"options(map)": {
|
|
206
|
+
"male": "Masculino",
|
|
207
|
+
"female": "Feminino",
|
|
208
|
+
"none": "Prefiro não responder"
|
|
209
|
+
},
|
|
210
|
+
"action": "Continuar"
|
|
211
|
+
},
|
|
212
|
+
"notifications": {
|
|
213
|
+
"title": "Permitir notificações",
|
|
214
|
+
"description": "Enviaremos apenas notificações importantes",
|
|
215
|
+
"continue_button": "Permitir notificações",
|
|
216
|
+
"skip_button": "Talvez mais tarde"
|
|
217
|
+
},
|
|
218
|
+
"att": {
|
|
219
|
+
"title": "Transparência de Rastreamento de Apps",
|
|
220
|
+
"description": "Precisamos disso apenas para melhorar nossas campanhas de anúncios",
|
|
221
|
+
"continue_button": "Continuar"
|
|
222
|
+
},
|
|
223
|
+
"loading": {
|
|
224
|
+
"title": "Criando seu perfil",
|
|
225
|
+
"subtitle": "Aguarde alguns segundos"
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"feature_requests": {
|
|
229
|
+
"title": "Ideias",
|
|
230
|
+
"description": "Vote nas ideias ou envie a sua. Cada voz define o que construímos.",
|
|
231
|
+
"community_ideas": "Ideias da comunidade",
|
|
232
|
+
"no_requests": "Nenhuma ideia ainda. Seja o primeiro a sugerir.",
|
|
233
|
+
"vote_success": {
|
|
234
|
+
"title": "Voto registrado",
|
|
235
|
+
"description": "Obrigado por ajudar a definir as prioridades"
|
|
236
|
+
},
|
|
237
|
+
"vote_error": {
|
|
238
|
+
"title": "Já votado",
|
|
239
|
+
"description": "Você já votou nesta ideia"
|
|
240
|
+
},
|
|
241
|
+
"add_feature": {
|
|
242
|
+
"chip_label": "Add",
|
|
243
|
+
"title": "Enviar uma ideia",
|
|
244
|
+
"description": "Conte o que você gostaria de ver no app.",
|
|
245
|
+
"save_button": "Enviar",
|
|
246
|
+
"title_label": "Título",
|
|
247
|
+
"title_hint": "Um título curto e descritivo",
|
|
248
|
+
"description_label": "Descrição",
|
|
249
|
+
"description_hint": "Descreva o recurso ou melhoria em detalhes...",
|
|
250
|
+
"error_title": "Erro",
|
|
251
|
+
"error_required": "Título e descrição são obrigatórios",
|
|
252
|
+
"error_sending": "Algo deu errado. Tente novamente.",
|
|
253
|
+
"error_too_short": "Descrição muito curta. Adicione mais detalhes",
|
|
254
|
+
"toast_success": {
|
|
255
|
+
"title": "Ideia enviada",
|
|
256
|
+
"description": "Vamos analisar e te dar um retorno"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"update_bottom_sheet": {
|
|
261
|
+
"title": "O que há de novo?",
|
|
262
|
+
"description": "Fizemos algumas melhorias",
|
|
263
|
+
"highlights": [
|
|
264
|
+
"- Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
265
|
+
"- Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
|
266
|
+
"- Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
267
|
+
],
|
|
268
|
+
"continue_button": "Continuar"
|
|
269
|
+
},
|
|
270
|
+
"request_notification_permission": {
|
|
271
|
+
"title": "Ativar notificações?",
|
|
272
|
+
"description": "Receba atualizações em tempo real e fique sempre por dentro do que importa.",
|
|
273
|
+
"continue_button": "Ativar",
|
|
274
|
+
"skip_button": "Agora não"
|
|
275
|
+
},
|
|
276
|
+
"notification_permission_denied": {
|
|
277
|
+
"title": "Permissão necessária",
|
|
278
|
+
"description": "Para receber notificações, ative as permissões de notificação nas configurações do dispositivo.",
|
|
279
|
+
"allow_button": "Permitir notificações",
|
|
280
|
+
"open_settings_button": "Abrir configurações",
|
|
281
|
+
"cancel_button": "Cancelar"
|
|
282
|
+
},
|
|
283
|
+
"review_popup": {
|
|
284
|
+
"title": "Sua opinião importa!",
|
|
285
|
+
"description": "Ajude-nos a crescer compartilhando sua experiência. Leva apenas alguns segundos e faz uma enorme diferença para nós 🙏🏻",
|
|
286
|
+
"cancel_button": "Sugerir melhorias",
|
|
287
|
+
"rate_button": "Escrever uma avaliação"
|
|
288
|
+
},
|
|
289
|
+
"navigation": {
|
|
290
|
+
"home": "Início",
|
|
291
|
+
"wishlist": "Desejos",
|
|
292
|
+
"notifications": "Notificações",
|
|
293
|
+
"settings": "Config."
|
|
294
|
+
},
|
|
295
|
+
"wishlist": {
|
|
296
|
+
"empty_title": "Nada por aqui ainda",
|
|
297
|
+
"empty_subtitle": "Salve seus favoritos para encontrá-los aqui"
|
|
298
|
+
},
|
|
299
|
+
"reminderPage": {
|
|
300
|
+
"title": "Lembretes",
|
|
301
|
+
"toggleLabel": "Ativar lembrete",
|
|
302
|
+
"typeLabel": "Repetir",
|
|
303
|
+
"daily": "Todo dia",
|
|
304
|
+
"weekly": "Toda semana",
|
|
305
|
+
"specificDate": "Data específica",
|
|
306
|
+
"timeLabel": "Horário",
|
|
307
|
+
"dayLabel": "Dia da semana",
|
|
308
|
+
"dateLabel": "Data e hora",
|
|
309
|
+
"selectDate": "Selecionar data e hora"
|
|
310
|
+
},
|
|
311
|
+
"dailyReminder": {
|
|
312
|
+
"title": "Lembrete",
|
|
313
|
+
"body": "Está na hora de beber água."
|
|
314
|
+
},
|
|
315
|
+
"settings": {
|
|
316
|
+
"title": "Configurações",
|
|
317
|
+
"avatar": {
|
|
318
|
+
"take_photo": "Tirar foto",
|
|
319
|
+
"choose_library": "Biblioteca de fotos",
|
|
320
|
+
"remove_photo": "Remover foto",
|
|
321
|
+
"cancel": "Cancelar"
|
|
322
|
+
},
|
|
323
|
+
"language_title": "Idiomas",
|
|
324
|
+
"theme_title": "Modo claro/escuro",
|
|
325
|
+
"haptic_feedback_title": "Feedback háptico",
|
|
326
|
+
"section_preferences_label": "PREFERÊNCIAS",
|
|
327
|
+
"section_security_label": "SEGURANÇA",
|
|
328
|
+
"section_support_label": "SUPORTE",
|
|
329
|
+
"biometric_title": "Bloqueio do app",
|
|
330
|
+
"biometric_subtitle_ios": "Exige Face ID ou Touch ID ao abrir com sessão ativa.",
|
|
331
|
+
"biometric_subtitle_ios_face": "Exige Face ID ao abrir com sessão ativa.",
|
|
332
|
+
"biometric_subtitle_ios_touch": "Exige Touch ID ao abrir com sessão ativa.",
|
|
333
|
+
"biometric_subtitle_android": "Pedimos uma confirmação no celular sempre que você abrir com sessão ativa.",
|
|
334
|
+
"biometric_subtitle_android_face": "Exige desbloqueio facial ao abrir com sessão ativa.",
|
|
335
|
+
"biometric_subtitle_android_fingerprint": "Exige impressão digital ao abrir com sessão ativa.",
|
|
336
|
+
"biometric_subtitle_android_face_and_fingerprint": "Exige impressão digital ou desbloqueio facial ao abrir com sessão ativa.",
|
|
337
|
+
"biometric_disable_title": "Desligar bloqueio do app?",
|
|
338
|
+
"biometric_disable_message": "Sem bloqueio, quem pegar no celular desbloqueado abre o app até você sair da conta.",
|
|
339
|
+
"biometric_disable_confirm": "Desligar",
|
|
340
|
+
"biometric_disable_cancel": "Cancelar",
|
|
341
|
+
"biometric_enable_reason_ios": "Confirme com Face ID ou Touch ID para ativar o bloqueio",
|
|
342
|
+
"biometric_enable_reason_ios_face": "Confirme com Face ID para ativar o bloqueio",
|
|
343
|
+
"biometric_enable_reason_ios_touch": "Confirme com Touch ID para ativar o bloqueio",
|
|
344
|
+
"biometric_enable_reason_android": "Confirme no celular para ativar o bloqueio",
|
|
345
|
+
"biometric_enable_reason_android_face": "Confirme com desbloqueio facial para ativar o bloqueio",
|
|
346
|
+
"biometric_enable_reason_android_fingerprint": "Confirme com impressão digital para ativar o bloqueio",
|
|
347
|
+
"biometric_enable_reason_android_face_and_fingerprint": "Confirme com digital ou rosto para ativar o bloqueio",
|
|
348
|
+
"biometric_login_reason_ios": "Desbloqueie com Face ID ou Touch ID",
|
|
349
|
+
"biometric_login_reason_ios_face": "Desbloqueie com Face ID",
|
|
350
|
+
"biometric_login_reason_ios_touch": "Desbloqueie com Touch ID",
|
|
351
|
+
"biometric_login_reason_android": "Confirme sua identidade",
|
|
352
|
+
"biometric_login_reason_android_face": "Desbloqueie com desbloqueio facial",
|
|
353
|
+
"biometric_login_reason_android_fingerprint": "Desbloqueie com impressão digital",
|
|
354
|
+
"biometric_login_reason_android_face_and_fingerprint": "Desbloqueie com digital ou rosto",
|
|
355
|
+
"biometric_unavailable_message_ios": "Ative Face ID, Touch ID ou código em Ajustes.",
|
|
356
|
+
"biometric_unavailable_message_ios_face": "Ative Face ID ou código do aparelho em Ajustes.",
|
|
357
|
+
"biometric_unavailable_message_ios_touch": "Ative Touch ID ou código do aparelho em Ajustes.",
|
|
358
|
+
"biometric_unavailable_message_android": "Ative biometria ou um bloqueio de tela nas definições do telefone.",
|
|
359
|
+
"biometric_unavailable_message_android_face": "Cadastre rosto ou bloqueio de tela nos ajustes.",
|
|
360
|
+
"biometric_unavailable_message_android_fingerprint": "Cadastre impressão digital ou bloqueio de tela nos ajustes.",
|
|
361
|
+
"biometric_unavailable_message_android_face_and_fingerprint": "Cadastre impressão digital ou rosto nas definições do telefone.",
|
|
362
|
+
"biometric_not_enabled_message": "Bloqueio do app não foi ativado.",
|
|
363
|
+
"feedback": "Enviar feedback",
|
|
364
|
+
"premium": "Premium",
|
|
365
|
+
"privacy": "Política de privacidade",
|
|
366
|
+
"support": "Suporte",
|
|
367
|
+
"disconnect": "Desconectar",
|
|
368
|
+
"disconnect_confirm_title": "Sair",
|
|
369
|
+
"disconnect_confirm_message": "Tem certeza que deseja sair?",
|
|
370
|
+
"disconnect_cancel": "Cancelar",
|
|
371
|
+
"my_account": "Minha conta",
|
|
372
|
+
"not_signed_in": "Não conectado",
|
|
373
|
+
"register": "Cadastrar",
|
|
374
|
+
"reminders": "Lembretes",
|
|
375
|
+
"admin_panel": "Painel Admin",
|
|
376
|
+
"admin_debug_section_label": "ADMIN (SÓ EM DEBUG)",
|
|
377
|
+
"admin_panel_debug_notice": "Toda esta seção Admin (título, painel e opções) só existe em build de debug. Em release esse bloco não é incluído; quem instala pela loja ou por APK de produção não vê nada disso.",
|
|
378
|
+
"delete_account": {
|
|
379
|
+
"button": "Quero excluir minha conta",
|
|
380
|
+
"title": "Excluir minha conta?",
|
|
381
|
+
"content": "Atenção: esta ação é irreversível",
|
|
382
|
+
"cancel": "Cancelar",
|
|
383
|
+
"confirm": "Sim, excluir"
|
|
384
|
+
},
|
|
385
|
+
"admin": {
|
|
386
|
+
"update_bottom_sheet": "Atualizar bottom sheet",
|
|
387
|
+
"paywalls": "Paywalls",
|
|
388
|
+
"test_onboarding": "Testar onboarding",
|
|
389
|
+
"copy_user_id": "Copiar ID do usuário",
|
|
390
|
+
"user_id_copied": "ID do usuário copiado para a área de transferência",
|
|
391
|
+
"copy_fcm_token": "Copiar FCM Token",
|
|
392
|
+
"fcm_token_copied": "FCM Token copiado para a área de transferência",
|
|
393
|
+
"fcm_token_unavailable": "Token não disponível (notificações desativadas?)",
|
|
394
|
+
"ask_notification": "Pedir permissão de notificação",
|
|
395
|
+
"ask_review": "Pedir avaliação",
|
|
396
|
+
"home_widgets_panel": "Painel de Home Widgets",
|
|
397
|
+
"home_widgets_title": "Painel de Home Widgets",
|
|
398
|
+
"inspector_fab_title": "Inspector de widgets",
|
|
399
|
+
"update_mywidget_title": "📱 Atualizar Widget MyWidget",
|
|
400
|
+
"update_mywidget_desc": "Chamar atualização manual para o widget MyWidget",
|
|
401
|
+
"paywalls_title": "Painel Admin de Paywalls",
|
|
402
|
+
"send_push_title": "Enviar notificação",
|
|
403
|
+
"send_push_to_all": "Enviar para todos",
|
|
404
|
+
"send_push_email_hint": "Adicionar e-mail",
|
|
405
|
+
"send_push_title_label": "Título",
|
|
406
|
+
"send_push_title_hint": "Ex: Nova atualização disponível",
|
|
407
|
+
"send_push_body_label": "Mensagem",
|
|
408
|
+
"send_push_body_hint": "Escreva o conteúdo da notificação",
|
|
409
|
+
"send_push_image_label": "URL da imagem (opcional)",
|
|
410
|
+
"send_push_image_hint": "https://...",
|
|
411
|
+
"send_push_email_label": "E-mails dos destinatários",
|
|
412
|
+
"send_push_success": "Notificação enviada!",
|
|
413
|
+
"send_push_user_not_found": "Usuário não encontrado: $email",
|
|
414
|
+
"send_push_send_button": "Enviar",
|
|
415
|
+
"send_push_required": "Título e mensagem são obrigatórios",
|
|
416
|
+
"send_push_no_emails": "Adicione pelo menos um e-mail",
|
|
417
|
+
"send_push_route_label": "Rota ao abrir (opcional)",
|
|
418
|
+
"send_push_route_hint": "Ex: /premium, /notifications",
|
|
419
|
+
"device_preview_title": "Device Preview (somente web)"
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"rate_banner": {
|
|
423
|
+
"title": "Você gostou do nosso app?",
|
|
424
|
+
"text": "Você teria um minuto para nos avaliar na loja?",
|
|
425
|
+
"rate_button": "Sim, claro!",
|
|
426
|
+
"later_button": "Mais tarde..."
|
|
427
|
+
},
|
|
428
|
+
"notifications": {
|
|
429
|
+
"title": "Notificações",
|
|
430
|
+
"empty_title": "Nenhuma notificação ainda",
|
|
431
|
+
"empty_subtitle": "Fique ligado nas atualizações",
|
|
432
|
+
"error_fetching": "Erro ao buscar notificações",
|
|
433
|
+
"push_title": "Notificações push",
|
|
434
|
+
"push_subtitle_enabled": "Você está recebendo alertas",
|
|
435
|
+
"push_subtitle_disabled": "Toque para ativar nas configurações",
|
|
436
|
+
"push_subtitle_waiting": "Ative para não perder novidades",
|
|
437
|
+
"mark_all_read": "Marcar lidas",
|
|
438
|
+
"group_today": "Hoje",
|
|
439
|
+
"group_yesterday": "Ontem",
|
|
440
|
+
"group_older": "Mais antigas",
|
|
441
|
+
"empty_cta": "Ativar notificações"
|
|
442
|
+
},
|
|
443
|
+
"bottom_router": {
|
|
444
|
+
"fake_page_text": "Esta é uma página de exemplo"
|
|
445
|
+
},
|
|
446
|
+
"llm_chat": {
|
|
447
|
+
"title": "Modelo de Chat IA",
|
|
448
|
+
"empty_state": "Inicie uma conversa com seu assistente.",
|
|
449
|
+
"hint": "Pergunte algo...",
|
|
450
|
+
"error_not_configured": "Endpoint de LLM não configurado. Use --dart-define=LLM_CHAT_ENDPOINT=...",
|
|
451
|
+
"error_no_reply": "Nenhum campo de resposta encontrado na API.",
|
|
452
|
+
"error_network": "Não foi possível conectar ao assistente de IA."
|
|
453
|
+
},
|
|
454
|
+
"phone_auth": {
|
|
455
|
+
"title_input": "Autenticação por Telefone",
|
|
456
|
+
"subtitle_input": "Digite seu número de telefone",
|
|
457
|
+
"description_input": "Enviaremos um código de verificação para confirmar sua identidade",
|
|
458
|
+
"phone_label": "Número de telefone",
|
|
459
|
+
"phone_hint": "+55 (11) 91234-5678",
|
|
460
|
+
"error_empty": "Por favor, digite um número de telefone",
|
|
461
|
+
"error_invalid": "Por favor, digite um número válido",
|
|
462
|
+
"continue_btn": "Continuar",
|
|
463
|
+
"title_verify": "Verificar Código",
|
|
464
|
+
"verification_code": "Código de Verificação",
|
|
465
|
+
"code_sent": "Enviamos um código de verificação para $phone",
|
|
466
|
+
"verify_code": "Verificar Código",
|
|
467
|
+
"resend_code": "Reenviar Código",
|
|
468
|
+
"enter_all_digits": "Por favor, digite todos os 6 números"
|
|
469
|
+
},
|
|
470
|
+
"recover_password_result": {
|
|
471
|
+
"title": "E-mail enviado",
|
|
472
|
+
"description": "Enviamos um e-mail com um link para redefinir sua senha",
|
|
473
|
+
"back_to_signin": "Voltar para o Login",
|
|
474
|
+
"note": "Nota: Se você não receber um e-mail, verifique sua pasta de spam"
|
|
475
|
+
},
|
|
476
|
+
"page_not_found": {
|
|
477
|
+
"title": "404 - Página não encontrada"
|
|
478
|
+
},
|
|
479
|
+
"devInspector": {
|
|
480
|
+
"copied": "$widget copiado para o clipboard",
|
|
481
|
+
"activate": "Ativar inspetor de widgets",
|
|
482
|
+
"deactivate": "Desativar inspetor de widgets",
|
|
483
|
+
"copyForAi": "Copiar para IA",
|
|
484
|
+
"selectWidgetFirst": "Selecione um widget na tela primeiro e depois toque em Copiar.",
|
|
485
|
+
"inspectorHint": "Toque na interface para selecionar (contorno roxo). Depois copie para usar na IA."
|
|
486
|
+
},
|
|
487
|
+
"webDevicePreview": {
|
|
488
|
+
"frame": "Frame",
|
|
489
|
+
"darkBackground": "Fundo escuro",
|
|
490
|
+
"darkTheme": "Tema escuro",
|
|
491
|
+
"landscape": "Paisagem",
|
|
492
|
+
"textScale": "Escala de texto",
|
|
493
|
+
"screenshot": "Screenshot"
|
|
494
|
+
},
|
|
495
|
+
"biometric_prompt": {
|
|
496
|
+
"title_ios_face": "Ativar Face ID no bloqueio do app?",
|
|
497
|
+
"title_ios_touch": "Ativar Touch ID no bloqueio do app?",
|
|
498
|
+
"title_ios_mixed": "Ativar Face ID ou Touch ID no bloqueio?",
|
|
499
|
+
"title_android_face": "Ativar bloqueio com desbloqueio facial?",
|
|
500
|
+
"title_android_fingerprint": "Ativar bloqueio com impressão digital?",
|
|
501
|
+
"title_android_mixed": "Proteger o app com biometria?",
|
|
502
|
+
"message_ios_face": "Ao abrir, você confirma com Face ID — continua na conta.",
|
|
503
|
+
"message_ios_touch": "Ao abrir, você confirma com Touch ID — continua na conta.",
|
|
504
|
+
"message_ios_mixed": "Ao abrir, usa Face ID ou Touch ID — continua na conta.",
|
|
505
|
+
"message_android_face": "Ao abrir, confirme com reconhecimento facial — continua na conta.",
|
|
506
|
+
"message_android_fingerprint": "Ao abrir, confirme com impressão digital — continua na conta.",
|
|
507
|
+
"title_android_face_and_fingerprint": "Ativar bloqueio com digital ou rosto?",
|
|
508
|
+
"message_android_face_and_fingerprint": "Qualquer um serve — continua na conta.",
|
|
509
|
+
"message_android_mixed": "Confirmação rápida ao abrir — continua na conta.",
|
|
510
|
+
"not_now": "Agora não",
|
|
511
|
+
"enable": "Ativar"
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import 'package:flutter/material.dart';
|
|
2
|
+
import 'package:kasy_kit/core/theme/theme.dart';
|
|
3
|
+
|
|
4
|
+
/// Compact locale indicator (e.g. `EN`, `PT`) — neutral alternative to country flags.
|
|
5
|
+
///
|
|
6
|
+
/// When [isActive] is true the badge uses a solid primary-color fill with white
|
|
7
|
+
/// text, making the currently-selected locale immediately obvious.
|
|
8
|
+
class LocaleCodeBadge extends StatelessWidget {
|
|
9
|
+
const LocaleCodeBadge({
|
|
10
|
+
super.key,
|
|
11
|
+
required this.code,
|
|
12
|
+
this.size = 32,
|
|
13
|
+
this.isActive = false,
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
final String code;
|
|
17
|
+
final double size;
|
|
18
|
+
final bool isActive;
|
|
19
|
+
|
|
20
|
+
@override
|
|
21
|
+
Widget build(BuildContext context) {
|
|
22
|
+
final KasyColors colors = context.colors;
|
|
23
|
+
final Color bg = isActive
|
|
24
|
+
? colors.primary
|
|
25
|
+
: colors.primary.withValues(alpha: 0.10);
|
|
26
|
+
final Color fg = isActive ? Colors.white : colors.primary;
|
|
27
|
+
|
|
28
|
+
return Container(
|
|
29
|
+
width: size,
|
|
30
|
+
height: size,
|
|
31
|
+
alignment: Alignment.center,
|
|
32
|
+
decoration: BoxDecoration(
|
|
33
|
+
color: bg,
|
|
34
|
+
borderRadius: BorderRadius.circular(size * 0.28),
|
|
35
|
+
),
|
|
36
|
+
child: Text(
|
|
37
|
+
code,
|
|
38
|
+
style: context.textTheme.labelSmall?.copyWith(
|
|
39
|
+
fontSize: size * 0.34,
|
|
40
|
+
fontWeight: FontWeight.w700,
|
|
41
|
+
letterSpacing: 0.4,
|
|
42
|
+
color: fg,
|
|
43
|
+
),
|
|
44
|
+
),
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}
|