@umituz/react-native-settings 5.3.36 → 5.3.38

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.
Files changed (251) hide show
  1. package/dist/account.d.ts +27 -0
  2. package/dist/application/ports/ISettingsRepository.d.ts +45 -0
  3. package/dist/domains/about/domain/entities/AppInfo.d.ts +76 -0
  4. package/dist/domains/about/domain/repositories/IAboutRepository.d.ts +19 -0
  5. package/dist/domains/about/index.d.ts +10 -0
  6. package/dist/domains/about/infrastructure/repositories/AboutRepository.d.ts +18 -0
  7. package/dist/domains/about/presentation/components/AboutContent.d.ts +14 -0
  8. package/dist/domains/about/presentation/components/AboutHeader.d.ts +21 -0
  9. package/dist/domains/about/presentation/components/AboutSection.d.ts +14 -0
  10. package/dist/domains/about/presentation/components/AboutSettingItem.d.ts +39 -0
  11. package/dist/domains/about/presentation/hooks/useAboutInfo.d.ts +2 -0
  12. package/dist/domains/about/presentation/hooks/useAboutInfo.types.d.ts +29 -0
  13. package/dist/domains/about/presentation/screens/AboutScreen.d.ts +21 -0
  14. package/dist/domains/about/presentation/screens/AboutScreenContent.d.ts +15 -0
  15. package/dist/domains/about/utils/AppInfoFactory.d.ts +9 -0
  16. package/dist/domains/appearance/data/colorPalettes.d.ts +25 -0
  17. package/dist/domains/appearance/hooks/useAppearance.d.ts +11 -0
  18. package/dist/domains/appearance/hooks/useAppearanceActions.d.ts +9 -0
  19. package/dist/domains/appearance/index.d.ts +9 -0
  20. package/dist/domains/appearance/presentation/components/AppearanceHeader.d.ts +18 -0
  21. package/dist/domains/appearance/presentation/components/AppearancePreview.d.ts +21 -0
  22. package/dist/domains/appearance/presentation/components/AppearanceSection.d.ts +16 -0
  23. package/dist/domains/appearance/presentation/components/ColorPicker.d.ts +15 -0
  24. package/dist/domains/appearance/presentation/components/CustomColorsSection.d.ts +25 -0
  25. package/dist/domains/appearance/presentation/components/ThemeModeSection.d.ts +24 -0
  26. package/dist/domains/appearance/presentation/components/ThemeOption.d.ts +20 -0
  27. package/dist/domains/appearance/presentation/components/index.d.ts +6 -0
  28. package/dist/domains/appearance/presentation/screens/AppearanceScreen.d.ts +16 -0
  29. package/dist/domains/appearance/types/index.d.ts +48 -0
  30. package/dist/domains/cloud-sync/index.d.ts +6 -0
  31. package/dist/domains/cloud-sync/presentation/components/CloudSyncSetting.d.ts +14 -0
  32. package/dist/domains/dev/index.d.ts +14 -0
  33. package/dist/domains/dev/presentation/components/DevSettingsSection.d.ts +34 -0
  34. package/dist/domains/dev/presentation/components/EnvViewerSetting.d.ts +20 -0
  35. package/dist/domains/dev/presentation/components/StorageClearSetting.d.ts +13 -0
  36. package/dist/domains/dev/presentation/screens/EnvViewerScreen.d.ts +12 -0
  37. package/dist/domains/dev/types.d.ts +22 -0
  38. package/dist/domains/disclaimer/index.d.ts +17 -0
  39. package/dist/domains/disclaimer/presentation/components/DisclaimerCard.d.ts +14 -0
  40. package/dist/domains/disclaimer/presentation/components/DisclaimerModal.d.ts +12 -0
  41. package/dist/domains/disclaimer/presentation/components/DisclaimerSetting.d.ts +34 -0
  42. package/dist/domains/disclaimer/presentation/screens/DisclaimerScreen.d.ts +27 -0
  43. package/dist/domains/faqs/domain/entities/FAQEntity.d.ts +21 -0
  44. package/dist/domains/faqs/domain/services/FAQSearchService.d.ts +12 -0
  45. package/dist/domains/faqs/index.d.ts +8 -0
  46. package/dist/domains/faqs/presentation/components/FAQCategory.d.ts +21 -0
  47. package/dist/domains/faqs/presentation/components/FAQEmptyState.d.ts +20 -0
  48. package/dist/domains/faqs/presentation/components/FAQItem.d.ts +24 -0
  49. package/dist/domains/faqs/presentation/components/FAQSearchBar.d.ts +18 -0
  50. package/dist/domains/faqs/presentation/components/index.d.ts +11 -0
  51. package/dist/domains/faqs/presentation/hooks/index.d.ts +5 -0
  52. package/dist/domains/faqs/presentation/hooks/useFAQExpansion.d.ts +12 -0
  53. package/dist/domains/faqs/presentation/hooks/useFAQSearch.d.ts +12 -0
  54. package/dist/domains/faqs/presentation/screens/FAQScreen.d.ts +33 -0
  55. package/dist/domains/feedback/domain/entities/FeedbackEntity.d.ts +25 -0
  56. package/dist/domains/feedback/domain/repositories/IFeedbackRepository.d.ts +20 -0
  57. package/dist/domains/feedback/index.d.ts +10 -0
  58. package/dist/domains/feedback/presentation/components/FeedbackForm.d.ts +7 -0
  59. package/dist/domains/feedback/presentation/components/FeedbackForm.styles.d.ts +48 -0
  60. package/dist/domains/feedback/presentation/components/FeedbackFormProps.d.ts +26 -0
  61. package/dist/domains/feedback/presentation/components/FeedbackModal.d.ts +23 -0
  62. package/dist/domains/feedback/presentation/components/SupportSection.d.ts +62 -0
  63. package/dist/domains/feedback/presentation/hooks/useFeedbackForm.d.ts +19 -0
  64. package/dist/domains/feedback/presentation/screens/FeatureRequestScreen.d.ts +2 -0
  65. package/dist/domains/gamification/components/AchievementCard.d.ts +23 -0
  66. package/dist/domains/gamification/components/AchievementItem.d.ts +7 -0
  67. package/dist/domains/gamification/components/AchievementToast.d.ts +21 -0
  68. package/dist/domains/gamification/components/GamificationScreen/AchievementsList.d.ts +17 -0
  69. package/dist/domains/gamification/components/GamificationScreen/GamificationScreen.d.ts +11 -0
  70. package/dist/domains/gamification/components/GamificationScreen/GamificationScreenWithConfig.d.ts +11 -0
  71. package/dist/domains/gamification/components/GamificationScreen/StatsGrid.d.ts +16 -0
  72. package/dist/domains/gamification/components/GamificationScreen/index.d.ts +17 -0
  73. package/dist/domains/gamification/components/GamificationScreen/styles.d.ts +40 -0
  74. package/dist/domains/gamification/components/GamificationScreen/types.d.ts +42 -0
  75. package/dist/domains/gamification/components/LevelProgress.d.ts +27 -0
  76. package/dist/domains/gamification/components/PointsBadge.d.ts +16 -0
  77. package/dist/domains/gamification/components/StatsCard.d.ts +20 -0
  78. package/dist/domains/gamification/components/StreakDisplay.d.ts +21 -0
  79. package/dist/domains/gamification/components/index.d.ts +14 -0
  80. package/dist/domains/gamification/components/styles/achievementItemStyles.d.ts +71 -0
  81. package/dist/domains/gamification/components/types/AchievementItemProps.d.ts +22 -0
  82. package/dist/domains/gamification/hooks/useGamification.d.ts +22 -0
  83. package/dist/domains/gamification/index.d.ts +13 -0
  84. package/dist/domains/gamification/store/gamificationStore.d.ts +6 -0
  85. package/dist/domains/gamification/types/index.d.ts +99 -0
  86. package/dist/domains/gamification/utils/calculations.d.ts +10 -0
  87. package/dist/domains/legal/domain/entities/LegalConfig.d.ts +28 -0
  88. package/dist/domains/legal/domain/services/ContentValidationService.d.ts +19 -0
  89. package/dist/domains/legal/domain/services/StyleCacheService.d.ts +38 -0
  90. package/dist/domains/legal/domain/services/UrlHandlerService.d.ts +32 -0
  91. package/dist/domains/legal/index.d.ts +8 -0
  92. package/dist/domains/legal/presentation/components/LegalDocumentsList.d.ts +21 -0
  93. package/dist/domains/legal/presentation/components/LegalItem.d.ts +35 -0
  94. package/dist/domains/legal/presentation/components/LegalScreenHeader.d.ts +12 -0
  95. package/dist/domains/legal/presentation/components/LegalSection.d.ts +14 -0
  96. package/dist/domains/legal/presentation/screens/LegalContentScreen.d.ts +19 -0
  97. package/dist/domains/legal/presentation/screens/LegalScreen.d.ts +24 -0
  98. package/dist/domains/legal/presentation/screens/PrivacyPolicyScreen.d.ts +15 -0
  99. package/dist/domains/legal/presentation/screens/TermsOfServiceScreen.d.ts +15 -0
  100. package/dist/domains/localization/domain/repositories/ILocalizationRepository.d.ts +16 -0
  101. package/dist/domains/localization/index.d.ts +16 -0
  102. package/dist/domains/localization/infrastructure/components/LanguageSwitcher.d.ts +19 -0
  103. package/dist/domains/localization/infrastructure/components/LanguageSwitcher.styles.d.ts +37 -0
  104. package/dist/domains/localization/infrastructure/components/useLanguageNavigation.d.ts +4 -0
  105. package/dist/domains/localization/infrastructure/components/useLanguageSwitcher.d.ts +13 -0
  106. package/dist/domains/localization/infrastructure/config/DeviceLocale.d.ts +10 -0
  107. package/dist/domains/localization/infrastructure/config/I18nInitializer.d.ts +14 -0
  108. package/dist/domains/localization/infrastructure/config/LanguageQuery.d.ts +10 -0
  109. package/dist/domains/localization/infrastructure/config/LocaleMapping.d.ts +5 -0
  110. package/dist/domains/localization/infrastructure/config/NamespaceResolver.d.ts +11 -0
  111. package/dist/domains/localization/infrastructure/config/ResourceBuilder.d.ts +10 -0
  112. package/dist/domains/localization/infrastructure/config/TranslationLoader.d.ts +16 -0
  113. package/dist/domains/localization/infrastructure/config/constants/defaultLanguages.d.ts +6 -0
  114. package/dist/domains/localization/infrastructure/config/i18n.d.ts +7 -0
  115. package/dist/domains/localization/infrastructure/config/languages.d.ts +7 -0
  116. package/dist/domains/localization/infrastructure/hooks/useLanguageSelection.d.ts +11 -0
  117. package/dist/domains/localization/infrastructure/hooks/useLocalization.d.ts +12 -0
  118. package/dist/domains/localization/infrastructure/hooks/useTranslation.d.ts +23 -0
  119. package/dist/domains/localization/infrastructure/repository/LanguageRepository.d.ts +18 -0
  120. package/dist/domains/localization/infrastructure/storage/LanguageInitializer.d.ts +20 -0
  121. package/dist/domains/localization/infrastructure/storage/LanguageSwitcher.d.ts +16 -0
  122. package/dist/domains/localization/infrastructure/storage/LocalizationStore.d.ts +6 -0
  123. package/dist/domains/localization/infrastructure/storage/localizationStoreUtils.d.ts +44 -0
  124. package/dist/domains/localization/infrastructure/storage/types/Language.d.ts +12 -0
  125. package/dist/domains/localization/infrastructure/storage/types/LocalizationState.d.ts +22 -0
  126. package/dist/domains/localization/presentation/components/LanguageItem.d.ts +23 -0
  127. package/dist/domains/localization/presentation/components/LanguageItem.styles.d.ts +30 -0
  128. package/dist/domains/localization/presentation/components/LanguageSection.d.ts +15 -0
  129. package/dist/domains/localization/presentation/providers/LocalizationManager.d.ts +12 -0
  130. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.d.ts +7 -0
  131. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.styles.d.ts +7 -0
  132. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.types.d.ts +26 -0
  133. package/dist/domains/notifications/index.d.ts +46 -0
  134. package/dist/domains/notifications/infrastructure/config/notificationsConfig.d.ts +19 -0
  135. package/dist/domains/notifications/infrastructure/hooks/useNotificationSettings.d.ts +8 -0
  136. package/dist/domains/notifications/infrastructure/services/NotificationBadgeManager.d.ts +4 -0
  137. package/dist/domains/notifications/infrastructure/services/NotificationManager.d.ts +23 -0
  138. package/dist/domains/notifications/infrastructure/services/NotificationPermissions.d.ts +5 -0
  139. package/dist/domains/notifications/infrastructure/services/NotificationScheduler.d.ts +7 -0
  140. package/dist/domains/notifications/infrastructure/services/NotificationService.d.ts +31 -0
  141. package/dist/domains/notifications/infrastructure/services/types.d.ts +147 -0
  142. package/dist/domains/notifications/infrastructure/storage/UnifiedNotificationStore.d.ts +42 -0
  143. package/dist/domains/notifications/infrastructure/utils/idGenerator.d.ts +6 -0
  144. package/dist/domains/notifications/infrastructure/utils/triggerBuilder.d.ts +6 -0
  145. package/dist/domains/notifications/presentation/components/NotificationsSection.d.ts +16 -0
  146. package/dist/domains/notifications/presentation/components/RemindersNavRow.d.ts +12 -0
  147. package/dist/domains/notifications/presentation/components/RemindersNavRow.styles.d.ts +34 -0
  148. package/dist/domains/notifications/presentation/components/SettingRow.d.ts +14 -0
  149. package/dist/domains/notifications/presentation/hooks/useNotificationSettingsUI.d.ts +13 -0
  150. package/dist/domains/notifications/presentation/hooks/useTimePicker.d.ts +21 -0
  151. package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.d.ts +12 -0
  152. package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.d.ts +26 -0
  153. package/dist/domains/notifications/presentation/screens/NotificationsScreen.d.ts +18 -0
  154. package/dist/domains/notifications/quietHours/infrastructure/hooks/useQuietHoursActions.d.ts +13 -0
  155. package/dist/domains/notifications/quietHours/presentation/components/QuietHoursCard.d.ts +14 -0
  156. package/dist/domains/notifications/reminders/infrastructure/config/reminderPresets.d.ts +24 -0
  157. package/dist/domains/notifications/reminders/infrastructure/hooks/useReminderActions.d.ts +11 -0
  158. package/dist/domains/notifications/reminders/presentation/components/FormButton.d.ts +12 -0
  159. package/dist/domains/notifications/reminders/presentation/components/FrequencySelector.d.ts +14 -0
  160. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.constants.d.ts +28 -0
  161. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.d.ts +7 -0
  162. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.styles.d.ts +31 -0
  163. package/dist/domains/notifications/reminders/presentation/components/ReminderItem.d.ts +20 -0
  164. package/dist/domains/notifications/reminders/presentation/components/TimePresetSelector.d.ts +20 -0
  165. package/dist/domains/notifications/reminders/presentation/components/WeekdaySelector.d.ts +11 -0
  166. package/dist/domains/notifications/reminders/presentation/screens/ReminderListScreen.d.ts +13 -0
  167. package/dist/domains/rating/application/services/RatingService.d.ts +33 -0
  168. package/dist/domains/rating/domain/entities/Rating.d.ts +15 -0
  169. package/dist/domains/rating/domain/entities/RatingConfig.d.ts +120 -0
  170. package/dist/domains/rating/index.d.ts +12 -0
  171. package/dist/domains/rating/infrastructure/storage/RatingStorage.d.ts +50 -0
  172. package/dist/domains/rating/presentation/components/RatingPromptModal.d.ts +16 -0
  173. package/dist/domains/rating/presentation/components/StarRating.d.ts +13 -0
  174. package/dist/domains/rating/presentation/hooks/useAppRating.d.ts +9 -0
  175. package/dist/domains/video-tutorials/index.d.ts +18 -0
  176. package/dist/domains/video-tutorials/presentation/components/VideoTutorialCard.d.ts +13 -0
  177. package/dist/domains/video-tutorials/presentation/components/VideoTutorialSection.d.ts +25 -0
  178. package/dist/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.d.ts +25 -0
  179. package/dist/domains/video-tutorials/types/index.d.ts +26 -0
  180. package/dist/index.d.ts +41 -0
  181. package/dist/infrastructure/repositories/SettingsRepository.d.ts +12 -0
  182. package/dist/infrastructure/services/SettingsService.d.ts +14 -0
  183. package/dist/infrastructure/utils/configFactory.d.ts +39 -0
  184. package/dist/infrastructure/utils/constants/textLimits.d.ts +16 -0
  185. package/dist/infrastructure/utils/sanitizers.d.ts +13 -0
  186. package/dist/infrastructure/utils/validation/core.d.ts +8 -0
  187. package/dist/infrastructure/utils/validation/formValidators.d.ts +26 -0
  188. package/dist/infrastructure/utils/validation/index.d.ts +5 -0
  189. package/dist/infrastructure/utils/validators.d.ts +21 -0
  190. package/dist/presentation/components/SettingsFooter.d.ts +7 -0
  191. package/dist/presentation/components/SettingsItemCard.d.ts +22 -0
  192. package/dist/presentation/components/SettingsNavigationItem.d.ts +67 -0
  193. package/dist/presentation/components/SettingsSection.d.ts +6 -0
  194. package/dist/presentation/components/settings/SettingsItemCardContent.d.ts +12 -0
  195. package/dist/presentation/components/settings/SettingsItemCardRightElement.d.ts +11 -0
  196. package/dist/presentation/components/settings/SettingsItemCardSection.d.ts +5 -0
  197. package/dist/presentation/hooks/mutations/useSettingsMutations.d.ts +20 -0
  198. package/dist/presentation/hooks/queries/useSettingsQuery.d.ts +7 -0
  199. package/dist/presentation/hooks/useSettings.d.ts +26 -0
  200. package/dist/presentation/hooks/useSettingsScreenConfig.d.ts +41 -0
  201. package/dist/presentation/navigation/SettingsStackNavigator.d.ts +9 -0
  202. package/dist/presentation/navigation/hooks/index.d.ts +5 -0
  203. package/dist/presentation/navigation/hooks/useNavigationHandlers.d.ts +14 -0
  204. package/dist/presentation/navigation/hooks/useSettingsNavigation.d.ts +22 -0
  205. package/dist/presentation/navigation/hooks/useSettingsScreens.d.ts +12 -0
  206. package/dist/presentation/navigation/types.d.ts +135 -0
  207. package/dist/presentation/navigation/utils/index.d.ts +5 -0
  208. package/dist/presentation/navigation/utils/navigationHelpers.d.ts +13 -0
  209. package/dist/presentation/navigation/utils/navigationTranslations.d.ts +35 -0
  210. package/dist/presentation/screens/AppearanceScreen.d.ts +6 -0
  211. package/dist/presentation/screens/SettingsScreen.d.ts +49 -0
  212. package/dist/presentation/screens/components/SettingsContent.d.ts +3 -0
  213. package/dist/presentation/screens/components/SettingsHeader.d.ts +8 -0
  214. package/dist/presentation/screens/components/sections/CustomSettingsList.d.ts +7 -0
  215. package/dist/presentation/screens/components/sections/FeatureSettingsSection.d.ts +13 -0
  216. package/dist/presentation/screens/components/sections/IdentitySettingsSection.d.ts +12 -0
  217. package/dist/presentation/screens/components/sections/ProfileSectionLoader.d.ts +17 -0
  218. package/dist/presentation/screens/components/sections/SupportSettingsSection.d.ts +13 -0
  219. package/dist/presentation/screens/components/types/SettingsContentProps.d.ts +47 -0
  220. package/dist/presentation/screens/components/utils/featureChecker.d.ts +10 -0
  221. package/dist/presentation/screens/hooks/useFeatureDetection.d.ts +28 -0
  222. package/dist/presentation/screens/hooks/useSettingsScreen.d.ts +36 -0
  223. package/dist/presentation/screens/types/BaseTypes.d.ts +11 -0
  224. package/dist/presentation/screens/types/ContentConfig.d.ts +76 -0
  225. package/dist/presentation/screens/types/CustomSection.d.ts +38 -0
  226. package/dist/presentation/screens/types/SettingsConfig.d.ts +122 -0
  227. package/dist/presentation/screens/types/SettingsTranslations.d.ts +159 -0
  228. package/dist/presentation/screens/types/UserFeatureConfig.d.ts +178 -0
  229. package/dist/presentation/screens/types/index.d.ts +11 -0
  230. package/dist/presentation/screens/utils/normalizeConfig.d.ts +68 -0
  231. package/dist/presentation/utils/accountConfigUtils.d.ts +34 -0
  232. package/dist/presentation/utils/config-creators/base-configs.d.ts +26 -0
  233. package/dist/presentation/utils/config-creators/feature-configs.d.ts +17 -0
  234. package/dist/presentation/utils/config-creators/index.d.ts +7 -0
  235. package/dist/presentation/utils/config-creators/support-configs.d.ts +19 -0
  236. package/dist/presentation/utils/config-creators/types.d.ts +20 -0
  237. package/dist/presentation/utils/faqTranslator.d.ts +3 -0
  238. package/dist/presentation/utils/index.d.ts +8 -0
  239. package/dist/presentation/utils/screenFactory.d.ts +26 -0
  240. package/dist/presentation/utils/settingsConfigFactory.d.ts +33 -0
  241. package/dist/presentation/utils/userProfileUtils.d.ts +20 -0
  242. package/dist/utils/appUtils.d.ts +4 -0
  243. package/dist/utils/devUtils.d.ts +31 -0
  244. package/dist/utils/errorUtils.d.ts +22 -0
  245. package/dist/utils/hooks/useAsyncStateUpdate.d.ts +35 -0
  246. package/dist/utils/hooks/useMountSafety.d.ts +1 -0
  247. package/package.json +1 -1
  248. package/src/domains/feedback/presentation/screens/FeatureRequestScreen.tsx +449 -0
  249. package/src/presentation/navigation/hooks/useSettingsScreens.ts +29 -9
  250. package/src/presentation/navigation/types.ts +1 -0
  251. package/src/presentation/screens/components/sections/SupportSettingsSection.tsx +1 -1
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Main Settings Configuration Type
3
+ * Combines all feature configurations
4
+ */
5
+ import type { FeatureVisibility } from "./BaseTypes";
6
+ import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig, DisclaimerConfig } from "./ContentConfig";
7
+ import type { UserProfileConfig, FeedbackConfig, RatingConfig, FAQConfig, CloudSyncConfig, SubscriptionConfig, WalletConfig, GamificationItemConfig, VideoTutorialConfig } from "./UserFeatureConfig";
8
+ import type { SettingsTranslations } from "./SettingsTranslations";
9
+ /**
10
+ * Main Settings Configuration
11
+ *
12
+ * Controls which settings features are visible in the SettingsScreen.
13
+ * Each feature can be configured with:
14
+ * - Simple: boolean | 'auto' (quick setup)
15
+ * - Advanced: Detailed config object (full control)
16
+ *
17
+ * @example
18
+ * // Simple configuration
19
+ * const config: SettingsConfig = {
20
+ * appearance: true,
21
+ * notifications: 'auto',
22
+ * about: false,
23
+ * };
24
+ *
25
+ * @example
26
+ * // Advanced configuration
27
+ * const config: SettingsConfig = {
28
+ * appearance: {
29
+ * enabled: true,
30
+ * route: 'CustomAppearance',
31
+ * showTheme: true,
32
+ * },
33
+ * notifications: {
34
+ * enabled: 'auto',
35
+ * showToggle: true,
36
+ * initialValue: false,
37
+ * },
38
+ * };
39
+ */
40
+ export interface SettingsConfig {
41
+ /**
42
+ * Application-wide translations
43
+ */
44
+ translations?: SettingsTranslations;
45
+ /**
46
+ * Appearance settings (Theme customization)
47
+ * @default 'auto'
48
+ */
49
+ appearance?: FeatureVisibility | AppearanceConfig;
50
+ /**
51
+ * Language settings
52
+ * @default 'auto'
53
+ */
54
+ language?: FeatureVisibility | LanguageConfig;
55
+ /**
56
+ * Notifications settings
57
+ * @default 'auto'
58
+ */
59
+ notifications?: FeatureVisibility | NotificationsConfig;
60
+ /**
61
+ * About settings
62
+ * @default 'auto'
63
+ */
64
+ about?: FeatureVisibility | AboutConfig;
65
+ /**
66
+ * Legal settings (Terms, Privacy Policy)
67
+ * @default 'auto'
68
+ */
69
+ legal?: FeatureVisibility | LegalConfig;
70
+ /**
71
+ * Disclaimer settings (Important notices)
72
+ * @default false
73
+ */
74
+ disclaimer?: FeatureVisibility | DisclaimerConfig;
75
+ /**
76
+ * User profile header settings
77
+ * @default false
78
+ */
79
+ userProfile?: boolean | UserProfileConfig;
80
+ /**
81
+ * Feedback settings
82
+ * @default 'auto'
83
+ */
84
+ feedback?: FeatureVisibility | FeedbackConfig;
85
+ /**
86
+ * Rating settings configuration
87
+ */
88
+ rating?: FeatureVisibility | RatingConfig;
89
+ /**
90
+ * FAQ settings configuration
91
+ */
92
+ faqs?: FeatureVisibility | FAQConfig;
93
+ /**
94
+ * Cloud sync settings configuration
95
+ * @default false
96
+ */
97
+ cloudSync?: FeatureVisibility | CloudSyncConfig;
98
+ /**
99
+ * Subscription settings configuration
100
+ * @default false
101
+ */
102
+ subscription?: FeatureVisibility | SubscriptionConfig;
103
+ /**
104
+ * Wallet settings configuration
105
+ * @default false
106
+ */
107
+ wallet?: FeatureVisibility | WalletConfig;
108
+ /**
109
+ * Gamification settings configuration
110
+ * @default 'auto'
111
+ */
112
+ gamification?: FeatureVisibility | GamificationItemConfig;
113
+ /**
114
+ * Video tutorial settings configuration
115
+ * @default 'auto'
116
+ */
117
+ videoTutorial?: FeatureVisibility | VideoTutorialConfig;
118
+ /**
119
+ * Custom empty state text when no settings are available
120
+ */
121
+ emptyStateText?: string;
122
+ }
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Settings Translations Type
3
+ * Defines all translation keys for the settings package
4
+ */
5
+ /**
6
+ * Global Settings Translations
7
+ */
8
+ export interface SettingsTranslations {
9
+ title?: string;
10
+ profile?: {
11
+ anonymousName?: string;
12
+ signIn?: string;
13
+ signInDescription?: string;
14
+ anonymousBenefits?: {
15
+ title?: string;
16
+ items?: string[];
17
+ };
18
+ };
19
+ account?: {
20
+ editProfile?: string;
21
+ logout?: string;
22
+ deleteAccount?: string;
23
+ logoutConfirmTitle?: string;
24
+ logoutConfirmMessage?: string;
25
+ deleteConfirmTitle?: string;
26
+ deleteConfirmMessage?: string;
27
+ deleteAccountTitle?: string;
28
+ deleteAccountMessage?: string;
29
+ deleteErrorTitle?: string;
30
+ deleteErrorMessage?: string;
31
+ cancel?: string;
32
+ delete?: string;
33
+ };
34
+ sections?: {
35
+ app?: string;
36
+ progress?: string;
37
+ about?: string;
38
+ support?: string;
39
+ subscription?: string;
40
+ };
41
+ features?: {
42
+ appearance?: {
43
+ title?: string;
44
+ description?: string;
45
+ themeModes?: {
46
+ light?: string;
47
+ dark?: string;
48
+ auto?: string;
49
+ };
50
+ };
51
+ language?: {
52
+ title?: string;
53
+ description?: string;
54
+ searchPlaceholder?: string;
55
+ };
56
+ notifications?: {
57
+ title?: string;
58
+ description?: string;
59
+ masterToggleTitle?: string;
60
+ masterToggleDescription?: string;
61
+ soundTitle?: string;
62
+ soundDescription?: string;
63
+ vibrationTitle?: string;
64
+ vibrationDescription?: string;
65
+ remindersTitle?: string;
66
+ remindersDescription?: string;
67
+ quietHoursTitle?: string;
68
+ quietHoursDescription?: string;
69
+ quietHours?: {
70
+ title?: string;
71
+ description?: string;
72
+ startTimeLabel?: string;
73
+ endTimeLabel?: string;
74
+ enabledLabel?: string;
75
+ };
76
+ };
77
+ about?: {
78
+ title?: string;
79
+ description?: string;
80
+ contact?: string;
81
+ more?: string;
82
+ developer?: string;
83
+ email?: string;
84
+ website?: string;
85
+ moreApps?: string;
86
+ versionPrefix?: string;
87
+ };
88
+ legal?: {
89
+ title?: string;
90
+ description?: string;
91
+ documentsHeader?: string;
92
+ privacyTitle?: string;
93
+ privacyDescription?: string;
94
+ termsTitle?: string;
95
+ termsDescription?: string;
96
+ eulaTitle?: string;
97
+ eulaDescription?: string;
98
+ };
99
+ feedback?: {
100
+ title?: string;
101
+ description?: string;
102
+ };
103
+ rating?: {
104
+ title?: string;
105
+ description?: string;
106
+ };
107
+ faqs?: {
108
+ title?: string;
109
+ description?: string;
110
+ searchPlaceholder?: string;
111
+ emptySearchTitle?: string;
112
+ emptySearchMessage?: string;
113
+ headerTitle?: string;
114
+ };
115
+ languageSelection?: {
116
+ searchPlaceholder?: string;
117
+ };
118
+ subscription?: {
119
+ title?: string;
120
+ description?: string;
121
+ };
122
+ videoTutorial?: {
123
+ title?: string;
124
+ description?: string;
125
+ };
126
+ gamification?: {
127
+ title?: string;
128
+ description?: string;
129
+ };
130
+ };
131
+ feedbackModal?: {
132
+ title?: string;
133
+ ratingLabel?: string;
134
+ descriptionPlaceholder?: string;
135
+ submitButton?: string;
136
+ submittingButton?: string;
137
+ types?: {
138
+ general?: string;
139
+ bugReport?: string;
140
+ featureRequest?: string;
141
+ improvement?: string;
142
+ other?: string;
143
+ };
144
+ };
145
+ noOptionsAvailable?: string;
146
+ footer?: {
147
+ version?: string;
148
+ };
149
+ errors?: {
150
+ common?: string;
151
+ unknown?: string;
152
+ unknownError?: string;
153
+ appStoreUrlMissing?: string;
154
+ appStoreUrlNotConfigured?: string;
155
+ unableToOpenAppStore?: string;
156
+ failedToOpenAppStore?: string;
157
+ deleteAccountError?: string;
158
+ };
159
+ }
@@ -0,0 +1,178 @@
1
+ /**
2
+ * User Feature Configuration Types
3
+ * Types for user-related features (Profile, Feedback, FAQ, etc.)
4
+ */
5
+ import type { FeatureVisibility } from "./BaseTypes";
6
+ import type { FeedbackType } from "../../../domains/feedback/domain/entities/FeedbackEntity";
7
+ import type { FAQCategory } from "../../../domains/faqs/domain/entities/FAQEntity";
8
+ import type { SettingsStackParamList } from "../../navigation/types";
9
+ /**
10
+ * User Profile Settings Configuration
11
+ */
12
+ export interface UserProfileConfig {
13
+ /** Show user profile header */
14
+ enabled?: boolean;
15
+ /** Custom section title for grouping */
16
+ sectionTitle?: string;
17
+ /** Custom display name for anonymous users */
18
+ anonymousDisplayName?: string;
19
+ /** Custom avatar service URL */
20
+ avatarServiceUrl?: string;
21
+ /** Navigation route for account settings (shows chevron if set) */
22
+ accountSettingsRoute?: string;
23
+ }
24
+ /**
25
+ * Feedback Settings Configuration
26
+ */
27
+ export interface FeedbackConfig {
28
+ /** Enable feedback feature */
29
+ enabled?: FeatureVisibility;
30
+ /** Custom title for the feedback section */
31
+ title?: string;
32
+ /** Custom label for the feedback item */
33
+ description?: string;
34
+ /** Custom icon name (Ionicons) */
35
+ icon?: string;
36
+ /** Custom section title for grouping */
37
+ sectionTitle?: string;
38
+ /** Initial feedback type */
39
+ initialType?: FeedbackType;
40
+ /** Feedback submission handler */
41
+ onSubmit?: (data: {
42
+ type: FeedbackType;
43
+ rating: number;
44
+ description: string;
45
+ title: string;
46
+ }) => Promise<void>;
47
+ /** Custom handler to open feedback screen (overrides default modal) */
48
+ onPress?: () => void;
49
+ }
50
+ /**
51
+ * FAQ Settings Configuration
52
+ */
53
+ export interface FAQConfig {
54
+ /** Enable FAQ feature */
55
+ enabled?: FeatureVisibility;
56
+ /** Custom title for the FAQ section */
57
+ title?: string;
58
+ /** Custom label for the FAQ button */
59
+ description?: string;
60
+ /** Custom icon name (Ionicons) */
61
+ icon?: string;
62
+ /** Custom section title for grouping */
63
+ sectionTitle?: string;
64
+ /** FAQ items passed from app */
65
+ items?: FAQCategory[];
66
+ /** Handler to open FAQ screen */
67
+ onPress?: () => void;
68
+ }
69
+ /**
70
+ * Rating Settings Configuration
71
+ */
72
+ export interface RatingConfig {
73
+ /** Enable rating feature */
74
+ enabled?: FeatureVisibility;
75
+ /** Custom title for the rating section */
76
+ title?: string;
77
+ /** Custom label for the rate app button */
78
+ description?: string;
79
+ /** Store URL for direct linking (optional) */
80
+ storeUrl?: string;
81
+ /** Custom handler for rating action (e.g. open store review) */
82
+ onRate?: () => void;
83
+ }
84
+ /**
85
+ * Cloud Sync Settings Configuration
86
+ */
87
+ export interface CloudSyncConfig {
88
+ /** Enable cloud sync feature */
89
+ enabled?: FeatureVisibility;
90
+ /** Custom title for the sync section */
91
+ title?: string;
92
+ /** Custom description for the sync toggle */
93
+ description?: string;
94
+ /** Custom icon name (Ionicons) */
95
+ icon?: string;
96
+ /** Custom section title for grouping */
97
+ sectionTitle?: string;
98
+ /** Firestore collection name */
99
+ collectionName?: string;
100
+ }
101
+ /**
102
+ * Subscription Settings Configuration
103
+ */
104
+ export interface SubscriptionConfig {
105
+ /** Show subscription section */
106
+ enabled?: FeatureVisibility;
107
+ /** Custom title for the subscription section */
108
+ title?: string;
109
+ /** Custom label for the subscription item */
110
+ description?: string;
111
+ /** Custom icon name (Ionicons) */
112
+ icon?: string;
113
+ /** Custom section title for grouping */
114
+ sectionTitle?: string;
115
+ /** Navigation route for subscription screen (preferred over onPress) */
116
+ route?: keyof SettingsStackParamList;
117
+ /** Handler to open subscription screen (use route instead for stack navigation) */
118
+ onPress?: () => void;
119
+ /** Whether user is premium (to show active status) */
120
+ isPremium?: boolean;
121
+ }
122
+ /**
123
+ * Wallet Settings Configuration
124
+ */
125
+ export interface WalletConfig {
126
+ /** Show wallet section */
127
+ enabled?: FeatureVisibility;
128
+ /** Custom title for the wallet section */
129
+ title?: string;
130
+ /** Custom label for the wallet item */
131
+ description?: string;
132
+ /** Custom icon name (Ionicons) */
133
+ icon?: string;
134
+ /** Custom section title for grouping */
135
+ sectionTitle?: string;
136
+ /** Navigation route for wallet screen */
137
+ route?: keyof SettingsStackParamList;
138
+ /** Current balance to display */
139
+ balance?: number;
140
+ }
141
+ /**
142
+ * Gamification Settings Item Configuration
143
+ */
144
+ export interface GamificationItemConfig {
145
+ /** Show gamification section */
146
+ enabled?: FeatureVisibility;
147
+ /** Custom title for the gamification section */
148
+ title?: string;
149
+ /** Custom label for the gamification item */
150
+ description?: string;
151
+ /** Custom icon name (Ionicons) */
152
+ icon?: string;
153
+ /** Custom section title for grouping */
154
+ sectionTitle?: string;
155
+ /** Navigation route for gamification screen */
156
+ route?: keyof SettingsStackParamList;
157
+ /** Achievements to display */
158
+ achievementsCount?: number;
159
+ }
160
+ /**
161
+ * Video Tutorial Settings Configuration
162
+ */
163
+ export interface VideoTutorialConfig {
164
+ /** Enable video tutorial feature */
165
+ enabled?: FeatureVisibility;
166
+ /** Custom title for the video tutorial section */
167
+ title?: string;
168
+ /** Custom label for the video tutorial item */
169
+ description?: string;
170
+ /** Custom icon name (Ionicons) */
171
+ icon?: string;
172
+ /** Custom section title for grouping */
173
+ sectionTitle?: string;
174
+ /** Handler to open video tutorial screen */
175
+ onPress?: () => void;
176
+ /** Navigation route for video tutorial screen */
177
+ route?: keyof SettingsStackParamList;
178
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Settings Types - Public API
3
+ * Exports all settings-related types
4
+ */
5
+ export type { FeatureVisibility } from "./BaseTypes";
6
+ export type { AboutConfig, LegalConfig, DisclaimerConfig, AppearanceConfig, LanguageConfig, NotificationsConfig, } from "./ContentConfig";
7
+ export type { UserProfileConfig, FeedbackConfig, FAQConfig, RatingConfig, CloudSyncConfig, SubscriptionConfig, WalletConfig, GamificationItemConfig, VideoTutorialConfig, } from "./UserFeatureConfig";
8
+ export type { GamificationSettingsConfig as GamificationConfig } from "../../../domains/gamification";
9
+ export type { SettingsConfig } from "./SettingsConfig";
10
+ export type { SettingsTranslations } from "./SettingsTranslations";
11
+ export type { CustomSettingsSection } from "./CustomSection";
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Config Normalization Utilities
3
+ * Single Responsibility: Normalize config values to consistent format
4
+ */
5
+ import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig, DisclaimerConfig, UserProfileConfig, FeedbackConfig, RatingConfig, FAQConfig, SubscriptionConfig, WalletConfig, GamificationItemConfig, VideoTutorialConfig, SettingsConfig } from "../types";
6
+ export interface NormalizedConfig {
7
+ appearance: {
8
+ enabled: boolean;
9
+ config?: AppearanceConfig;
10
+ };
11
+ language: {
12
+ enabled: boolean;
13
+ config?: LanguageConfig;
14
+ };
15
+ notifications: {
16
+ enabled: boolean;
17
+ config?: NotificationsConfig;
18
+ };
19
+ about: {
20
+ enabled: boolean;
21
+ config?: AboutConfig;
22
+ };
23
+ legal: {
24
+ enabled: boolean;
25
+ config?: LegalConfig;
26
+ };
27
+ disclaimer: {
28
+ enabled: boolean;
29
+ config?: DisclaimerConfig;
30
+ };
31
+ userProfile: {
32
+ enabled: boolean;
33
+ config?: UserProfileConfig;
34
+ };
35
+ feedback: {
36
+ enabled: boolean;
37
+ config?: FeedbackConfig;
38
+ };
39
+ rating: {
40
+ enabled: boolean;
41
+ config?: RatingConfig;
42
+ };
43
+ faqs: {
44
+ enabled: boolean;
45
+ config?: FAQConfig;
46
+ };
47
+ subscription: {
48
+ enabled: boolean;
49
+ config?: SubscriptionConfig;
50
+ };
51
+ wallet: {
52
+ enabled: boolean;
53
+ config?: WalletConfig;
54
+ };
55
+ gamification: {
56
+ enabled: boolean;
57
+ config?: GamificationItemConfig;
58
+ };
59
+ videoTutorial: {
60
+ enabled: boolean;
61
+ config?: VideoTutorialConfig;
62
+ };
63
+ translations?: import("../types").SettingsTranslations;
64
+ }
65
+ /**
66
+ * Normalize entire SettingsConfig to consistent format
67
+ */
68
+ export declare function normalizeSettingsConfig(config: SettingsConfig | undefined): NormalizedConfig;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Account Configuration Utilities
3
+ *
4
+ * Helper functions for creating account screen configurations.
5
+ */
6
+ import type { AccountConfig } from "../navigation/types";
7
+ export interface AccountTranslations {
8
+ editProfile?: string;
9
+ logout: string;
10
+ deleteAccount: string;
11
+ logoutConfirmTitle: string;
12
+ logoutConfirmMessage: string;
13
+ deleteConfirmTitle: string;
14
+ deleteConfirmMessage: string;
15
+ deleteErrorTitle?: string;
16
+ deleteErrorMessage?: string;
17
+ cancel: string;
18
+ }
19
+ export interface CreateAccountConfigParams {
20
+ displayName?: string;
21
+ userId?: string;
22
+ photoURL?: string;
23
+ isAnonymous?: boolean;
24
+ avatarUrl?: string;
25
+ onSignIn: () => void;
26
+ onLogout: () => Promise<void>;
27
+ onDeleteAccount: () => Promise<void>;
28
+ translations?: AccountTranslations;
29
+ PasswordPromptComponent?: React.ReactNode;
30
+ }
31
+ /**
32
+ * Create account screen configuration
33
+ */
34
+ export declare function createAccountConfig(params: CreateAccountConfigParams): AccountConfig;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Base Settings Config Creators
3
+ * Standard settings: appearance, language, notifications, about, legal
4
+ * Refactored to use configFactory pattern for consistency
5
+ */
6
+ import type { AppearanceConfig, LanguageConfig, NotificationsConfig, AboutConfig, LegalConfig } from "../../screens/types";
7
+ /**
8
+ * Create appearance configuration
9
+ */
10
+ export declare const createAppearanceConfig: (routeOrOnPress?: string | (() => void)) => AppearanceConfig;
11
+ /**
12
+ * Create language configuration
13
+ */
14
+ export declare const createLanguageConfig: (routeOrOnPress?: string | (() => void)) => LanguageConfig;
15
+ /**
16
+ * Create notifications configuration
17
+ */
18
+ export declare const createNotificationsConfig: (routeOrOnPress?: string | (() => void)) => NotificationsConfig;
19
+ /**
20
+ * Create about configuration
21
+ */
22
+ export declare const createAboutConfig: (routeOrOnPress?: string | (() => void)) => AboutConfig;
23
+ /**
24
+ * Create legal configuration
25
+ */
26
+ export declare const createLegalConfig: (routeOrOnPress?: string | (() => void)) => LegalConfig;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Feature Settings Config Creators
3
+ * Subscription, gamification
4
+ */
5
+ import type { SubscriptionConfig } from "../../screens/types";
6
+ import type { GamificationConfig, AchievementDefinition, LevelDefinition } from "../../../domains/gamification/types";
7
+ import type { SettingsStackParamList } from "../../navigation/types";
8
+ /**
9
+ * Create subscription configuration
10
+ * @param route - Navigation route name (preferred for stack navigation)
11
+ * @param onPress - Callback function (use route instead when possible)
12
+ */
13
+ export declare const createSubscriptionConfig: (isPremium: boolean, routeOrOnPress: keyof SettingsStackParamList | (() => void)) => SubscriptionConfig;
14
+ /**
15
+ * Create gamification configuration
16
+ */
17
+ export declare const createGamificationConfig: (storageKey: string, achievements: AchievementDefinition[], levels: LevelDefinition[], enabled?: boolean) => GamificationConfig;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Config Creators - Barrel export
3
+ */
4
+ export type { TranslationFunction, FeedbackFormData } from "./types";
5
+ export { createAppearanceConfig, createLanguageConfig, createNotificationsConfig, createAboutConfig, createLegalConfig, } from "./base-configs";
6
+ export { createFeedbackConfig, createRatingConfig, createFAQConfig, } from "./support-configs";
7
+ export { createSubscriptionConfig, createGamificationConfig, } from "./feature-configs";
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Support Settings Config Creators
3
+ * Feedback, rating, FAQ
4
+ */
5
+ import type { FeedbackConfig, RatingConfig, FAQConfig } from "../../screens/types";
6
+ import type { FeedbackFormData } from "./types";
7
+ /**
8
+ * Create feedback configuration
9
+ */
10
+ export declare const createFeedbackConfig: (onSubmit: (data: FeedbackFormData) => Promise<void>) => FeedbackConfig;
11
+ /**
12
+ * Create rating configuration
13
+ */
14
+ export declare const createRatingConfig: (onRate: () => void, storeUrl?: string) => RatingConfig;
15
+ /**
16
+ * Create FAQ configuration
17
+ * Navigation is handled internally by the package - no callback needed
18
+ */
19
+ export declare const createFAQConfig: () => FAQConfig;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Config Creator Types
3
+ */
4
+ /**
5
+ * Translation options for i18n parameters
6
+ */
7
+ export type TranslationOptions = Record<string, string | number | boolean>;
8
+ /**
9
+ * Translation function type
10
+ */
11
+ export type TranslationFunction = (key: string, options?: TranslationOptions) => string;
12
+ /**
13
+ * Feedback form data interface
14
+ */
15
+ export interface FeedbackFormData {
16
+ type: string;
17
+ rating: number;
18
+ description: string;
19
+ title: string;
20
+ }
@@ -0,0 +1,3 @@
1
+ import type { FAQData } from "../navigation/types";
2
+ import type { AppInfo } from "../navigation/types";
3
+ export declare const translateFAQData: (faqData: FAQData | undefined, _appInfo: AppInfo) => FAQData | undefined;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Presentation Utilities
3
+ */
4
+ export * from "./config-creators";
5
+ export * from "./userProfileUtils";
6
+ export * from "./accountConfigUtils";
7
+ export * from "./faqTranslator";
8
+ export * from "./settingsConfigFactory";