@umituz/react-native-settings 5.3.37 → 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,25 @@
1
+ /**
2
+ * Video Tutorial Section Component
3
+ * Renders Video Tutorial entry point for settings
4
+ */
5
+ import React from 'react';
6
+ export interface VideoTutorialConfig {
7
+ enabled?: boolean;
8
+ title?: string;
9
+ description?: string;
10
+ onPress?: () => void;
11
+ }
12
+ export interface VideoTutorialSectionProps {
13
+ config: VideoTutorialConfig;
14
+ renderSection: (props: {
15
+ title: string;
16
+ children: React.ReactNode;
17
+ }) => React.ReactElement | null;
18
+ renderItem: (props: {
19
+ title: string;
20
+ icon: string;
21
+ onPress: () => void;
22
+ isLast?: boolean;
23
+ }) => React.ReactElement | null;
24
+ }
25
+ export declare const VideoTutorialSection: React.FC<VideoTutorialSectionProps>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Video Tutorials Screen
3
+ * Single Responsibility: Display video tutorials list
4
+ *
5
+ * Usage:
6
+ * <VideoTutorialsScreen
7
+ * tutorials={[...]}
8
+ * featuredTutorials={[...]}
9
+ * title="Video Tutorials"
10
+ * onTutorialPress={(id) => openVideo(id)}
11
+ * />
12
+ */
13
+ import React from "react";
14
+ import type { VideoTutorial } from "../../types";
15
+ export interface VideoTutorialsScreenProps {
16
+ tutorials: VideoTutorial[];
17
+ featuredTutorials?: VideoTutorial[];
18
+ title?: string;
19
+ featuredTitle?: string;
20
+ allTutorialsTitle?: string;
21
+ emptyMessage?: string;
22
+ isLoading?: boolean;
23
+ onTutorialPress?: (tutorial: VideoTutorial) => void;
24
+ }
25
+ export declare const VideoTutorialsScreen: React.FC<VideoTutorialsScreenProps>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Video Tutorial Types
3
+ * Single Responsibility: Define type definitions for video tutorials
4
+ */
5
+ export interface VideoTutorial {
6
+ readonly id: string;
7
+ readonly title: string;
8
+ readonly description: string;
9
+ readonly videoUrl: string;
10
+ readonly thumbnailUrl: string;
11
+ readonly duration: number;
12
+ readonly category: VideoTutorialCategory;
13
+ readonly difficulty: "beginner" | "intermediate" | "advanced";
14
+ readonly featured: boolean;
15
+ readonly tags: readonly string[];
16
+ readonly createdAt: Date;
17
+ readonly updatedAt: Date;
18
+ readonly viewCount: number;
19
+ }
20
+ export type VideoTutorialCategory = "getting-started" | "ai-generation" | "editing" | "effects" | "exporting" | "tips-tricks" | "troubleshooting";
21
+ export interface VideoTutorialFilters {
22
+ readonly category?: VideoTutorialCategory;
23
+ readonly difficulty?: VideoTutorial["difficulty"];
24
+ readonly featured?: boolean;
25
+ readonly tags?: readonly string[];
26
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @umituz/react-native-settings - Public API
3
+ *
4
+ * Settings management for React Native apps
5
+ * User preferences, theme, language, notifications
6
+ *
7
+ * Usage:
8
+ * import { useSettings, SettingsScreen, AppearanceScreen, SettingsItemCard, DisclaimerSetting } from '@umituz/react-native-settings';
9
+ */
10
+ export type { ISettingsRepository, UserSettings, SettingsError, SettingsResult, } from './application/ports/ISettingsRepository';
11
+ export { getSettingsService } from './infrastructure/services/SettingsService';
12
+ export { SettingsRepository } from './infrastructure/repositories/SettingsRepository';
13
+ export { useSettings } from './presentation/hooks/useSettings';
14
+ export { useSettingsQuery } from './presentation/hooks/queries/useSettingsQuery';
15
+ export { useUpdateSettingsMutation, useResetSettingsMutation } from './presentation/hooks/mutations/useSettingsMutations';
16
+ export { SettingsScreen } from './presentation/screens/SettingsScreen';
17
+ export type { SettingsScreenProps } from './presentation/screens/SettingsScreen';
18
+ export { AppearanceScreen } from './presentation/screens/AppearanceScreen';
19
+ export { SettingsStackNavigator } from './presentation/navigation/SettingsStackNavigator';
20
+ export type { SettingsStackNavigatorProps, SettingsStackParamList, AppInfo, LegalUrls, UserProfileDisplay, AdditionalScreen, FAQData, AccountConfig, } from './presentation/navigation/types';
21
+ export type { SettingsConfig, CustomSettingsSection, } from './presentation/screens/types';
22
+ export { SettingsItemCard } from './presentation/components/SettingsItemCard';
23
+ export type { SettingsItemCardProps } from './presentation/components/SettingsItemCard';
24
+ export { SettingsSection } from './presentation/components/SettingsSection';
25
+ export type { SettingsSectionProps } from './presentation/components/SettingsSection';
26
+ export { SettingsFooter } from './presentation/components/SettingsFooter';
27
+ export type { SettingsFooterProps } from './presentation/components/SettingsFooter';
28
+ export * from './domains/about';
29
+ export * from './domains/legal';
30
+ export * from './domains/disclaimer';
31
+ export * from './domains/appearance';
32
+ export * from './domains/feedback';
33
+ export * from './domains/faqs';
34
+ export { StarRating, RatingPromptModal, useAppRating, DEFAULT_RATING_CONFIG, type RatingValue, type Rating, type RatingStats, type RatingConfig as AppStoreRatingConfig, type RatingState as AppStoreRatingState, type RatingTranslations as AppStoreRatingTranslations, type UseAppRatingResult, type StarRatingProps, type RatingPromptModalProps, } from "./domains/rating";
35
+ export * from "./domains/video-tutorials";
36
+ export * from "./domains/cloud-sync";
37
+ export * from "./domains/dev";
38
+ export * from "./domains/gamification";
39
+ export * from "./domains/localization";
40
+ export * from "./domains/notifications";
41
+ export { createAppearanceConfig, createLanguageConfig, createNotificationsConfig, createAboutConfig, createLegalConfig, createFeedbackConfig, createRatingConfig, createFAQConfig, createSubscriptionConfig, createGamificationConfig, type TranslationFunction, type FeedbackFormData, } from './presentation/utils';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Settings Repository Implementation
3
+ *
4
+ * Handles data access for user settings using @umituz/react-native-design-system
5
+ */
6
+ import type { ISettingsRepository, UserSettings, SettingsResult } from '../../application/ports/ISettingsRepository';
7
+ export declare class SettingsRepository implements ISettingsRepository {
8
+ private readonly defaultSettings;
9
+ getSettings(userId: string): Promise<SettingsResult<UserSettings>>;
10
+ saveSettings(settings: UserSettings): Promise<SettingsResult<void>>;
11
+ deleteSettings(userId: string): Promise<SettingsResult<void>>;
12
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Settings Service
3
+ *
4
+ * Orchestrates settings operations using SettingsRepository
5
+ */
6
+ import type { UserSettings, SettingsResult } from '../../application/ports/ISettingsRepository';
7
+ export declare class SettingsService {
8
+ private repository;
9
+ constructor();
10
+ getSettings(userId: string): Promise<SettingsResult<UserSettings>>;
11
+ saveSettings(settings: UserSettings): Promise<SettingsResult<void>>;
12
+ resetSettings(userId: string): Promise<SettingsResult<void>>;
13
+ }
14
+ export declare function getSettingsService(): SettingsService;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Configuration Factory
3
+ * Generic configuration creator to reduce duplication in base-configs
4
+ */
5
+ /**
6
+ * Feature visibility configuration
7
+ * - true: Always show (if navigation screen exists)
8
+ * - false: Never show
9
+ * - 'auto': Automatically detect (check if navigation screen exists and package is available)
10
+ */
11
+ export type FeatureVisibility = boolean | "auto";
12
+ /**
13
+ * Base configuration type for all settings items
14
+ */
15
+ export interface BaseConfigType {
16
+ enabled?: FeatureVisibility;
17
+ title?: string;
18
+ description?: string;
19
+ icon?: string;
20
+ route?: string;
21
+ onPress?: () => void;
22
+ }
23
+ /**
24
+ * Configuration parameters for creating a settings item config
25
+ */
26
+ export interface ConfigCreatorParams {
27
+ icon: string;
28
+ routeOrOnPress?: string | (() => void);
29
+ defaultRoute?: string;
30
+ }
31
+ /**
32
+ * Generic configuration creator function
33
+ * Reduces duplication across all config creators
34
+ */
35
+ export declare const createBaseConfig: <T extends BaseConfigType = BaseConfigType>(params: ConfigCreatorParams) => T;
36
+ /**
37
+ * Create a configuration with extended properties
38
+ */
39
+ export declare const createConfigWithExtensions: <T extends BaseConfigType>(baseParams: ConfigCreatorParams, extensions: Partial<Omit<T, keyof BaseConfigType>>) => T;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Text Length Limits
3
+ * Standardized text length constraints used across the application
4
+ */
5
+ export declare const TEXT_LENGTH_LIMITS: {
6
+ /** Short titles and labels (100 characters) */
7
+ readonly TITLE_SHORT: 100;
8
+ /** Standard titles (200 characters) */
9
+ readonly TITLE: 200;
10
+ /** Descriptions and short text (500 characters) */
11
+ readonly DESCRIPTION: 500;
12
+ /** Long text and body content (1000 characters) */
13
+ readonly BODY: 1000;
14
+ /** User ID maximum length (128 characters) */
15
+ readonly USER_ID: 128;
16
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Sanitization Utilities
3
+ *
4
+ * Provides sanitization functions for user input and props.
5
+ */
6
+ /**
7
+ * Sanitize title prop
8
+ */
9
+ export declare function sanitizeTitle(title: string): string;
10
+ /**
11
+ * Sanitize description prop
12
+ */
13
+ export declare function sanitizeDescription(description: string | undefined): string | undefined;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Core Validation Utilities
3
+ * Base validation interfaces and types
4
+ */
5
+ export interface ValidationResult {
6
+ isValid: boolean;
7
+ error?: string;
8
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Form Validators
3
+ * Domain-specific form validation functions
4
+ */
5
+ import type { ValidationResult } from "./core";
6
+ /**
7
+ * Feedback form validation
8
+ */
9
+ export declare const validateFeedbackForm: (data: {
10
+ type: string;
11
+ rating: number;
12
+ description: string;
13
+ }) => ValidationResult;
14
+ /**
15
+ * Reminder form validation
16
+ */
17
+ export declare const validateReminderForm: (data: {
18
+ title: string;
19
+ body?: string;
20
+ frequency: string;
21
+ hour?: number;
22
+ minute?: number;
23
+ weekday?: number;
24
+ maxTitleLength?: number;
25
+ maxBodyLength?: number;
26
+ }) => ValidationResult;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Validation Utilities
3
+ */
4
+ export type { ValidationResult } from "./core";
5
+ export { validateFeedbackForm, validateReminderForm } from "./formValidators";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Validation Utilities
3
+ *
4
+ * Provides validation functions for component props.
5
+ */
6
+ export interface ValidationWarning {
7
+ message: string;
8
+ value: unknown;
9
+ }
10
+ /**
11
+ * Validate settings item title
12
+ */
13
+ export declare function validateTitle(title: unknown): ValidationWarning | null;
14
+ /**
15
+ * Validate settings item description
16
+ */
17
+ export declare function validateDescription(description: unknown): ValidationWarning | null;
18
+ /**
19
+ * Validate switch props
20
+ */
21
+ export declare function validateSwitchProps(showSwitch: boolean, onSwitchChange?: ((value: boolean) => void) | null): ValidationWarning | null;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ export interface SettingsFooterProps {
3
+ versionText?: string;
4
+ appVersion?: string;
5
+ versionLabel?: string;
6
+ }
7
+ export declare const SettingsFooter: React.FC<SettingsFooterProps>;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import { type StyleProp, type ViewStyle } from "react-native";
3
+ import type { IconName } from "@umituz/react-native-design-system/atoms";
4
+ export interface SettingsItemCardProps {
5
+ title: string;
6
+ description?: string;
7
+ icon: IconName;
8
+ onPress?: () => void;
9
+ containerStyle?: StyleProp<ViewStyle>;
10
+ sectionTitle?: string;
11
+ rightIcon?: IconName;
12
+ iconBgColor?: string;
13
+ iconColor?: string;
14
+ showChevron?: boolean;
15
+ showSwitch?: boolean;
16
+ switchValue?: boolean;
17
+ onSwitchChange?: (value: boolean) => void;
18
+ disabled?: boolean;
19
+ noBackground?: boolean;
20
+ hideMargin?: boolean;
21
+ }
22
+ export declare const SettingsItemCard: React.FC<SettingsItemCardProps>;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Generic Settings Navigation Item
3
+ * Consolidates VideoTutorialSettingsItem, GamificationSettingsItem,
4
+ * WalletSettingsItem, and SubscriptionSettingsItem into one reusable component
5
+ */
6
+ import React from "react";
7
+ import type { IconName } from "@umituz/react-native-design-system/atoms";
8
+ import type { SettingsStackParamList } from "../navigation/types";
9
+ /**
10
+ * Base configuration for navigation items
11
+ */
12
+ export interface SettingsNavigationItemConfig {
13
+ title?: string;
14
+ description?: string;
15
+ icon?: string;
16
+ sectionTitle?: string;
17
+ route?: keyof SettingsStackParamList;
18
+ onPress?: () => void;
19
+ }
20
+ /**
21
+ * Props for generic settings navigation item
22
+ */
23
+ export interface SettingsNavigationItemProps<T extends SettingsNavigationItemConfig = SettingsNavigationItemConfig> {
24
+ /** Item configuration */
25
+ config: T;
26
+ /** Default icon if not specified in config */
27
+ defaultIcon?: IconName;
28
+ /** Default route if not specified in config */
29
+ defaultRoute?: keyof SettingsStackParamList;
30
+ /** Function to render custom description */
31
+ renderDescription?: (config: T) => string | undefined;
32
+ /** Remove background styling */
33
+ noBackground?: boolean;
34
+ /** Remove margin */
35
+ hideMargin?: boolean;
36
+ }
37
+ /**
38
+ * Generic Settings Navigation Item Component
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <SettingsNavigationItem
43
+ * config={videoConfig}
44
+ * defaultIcon="play-circle-outline"
45
+ * defaultRoute="VideoTutorial"
46
+ * />
47
+ * ```
48
+ *
49
+ * @example With custom description
50
+ * ```tsx
51
+ * <SettingsNavigationItem
52
+ * config={gamificationConfig}
53
+ * defaultIcon="trophy-outline"
54
+ * defaultRoute="Gamification"
55
+ * renderDescription={(cfg) => `${level} • ${points}`}
56
+ * />
57
+ * ```
58
+ */
59
+ declare const SettingsNavigationItemComponent: <T extends SettingsNavigationItemConfig>({ config, defaultIcon, defaultRoute, renderDescription, noBackground, hideMargin, }: SettingsNavigationItemProps<T>) => React.JSX.Element;
60
+ /**
61
+ * Memoized Settings Navigation Item
62
+ * Uses shallow comparison by default
63
+ */
64
+ export declare const SettingsNavigationItem: typeof SettingsNavigationItemComponent & {
65
+ displayName?: string;
66
+ };
67
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export interface SettingsSectionProps {
3
+ title: string;
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const SettingsSection: React.FC<SettingsSectionProps>;
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { type IconName } from "@umituz/react-native-design-system/atoms";
3
+ export interface SettingsItemCardContentProps {
4
+ icon: IconName;
5
+ title: string;
6
+ description?: string;
7
+ iconBgColor: string;
8
+ iconColor: string;
9
+ disabled?: boolean;
10
+ rightElement: React.ReactElement;
11
+ }
12
+ export declare const SettingsItemCardContent: React.FC<SettingsItemCardContentProps>;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { type IconName } from "@umituz/react-native-design-system/atoms";
3
+ export interface SettingsItemCardRightElementProps {
4
+ showSwitch: boolean;
5
+ switchValue?: boolean;
6
+ onSwitchChange?: (value: boolean) => void;
7
+ disabled?: boolean;
8
+ shouldShowChevron: boolean;
9
+ rightIcon: IconName;
10
+ }
11
+ export declare const SettingsItemCardRightElement: React.FC<SettingsItemCardRightElementProps>;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export interface SettingsItemCardSectionProps {
3
+ sectionTitle?: string;
4
+ }
5
+ export declare const SettingsItemCardSection: React.FC<SettingsItemCardSectionProps>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * useSettingsMutations Hook
3
+ *
4
+ * Mutations for updating and resetting user settings
5
+ */
6
+ import type { UserSettings } from '../../../application/ports/ISettingsRepository';
7
+ export declare const useUpdateSettingsMutation: (userId: string) => import("@tanstack/react-query").UseMutationResult<{
8
+ updatedAt: Date;
9
+ userId: string;
10
+ theme: "light" | "dark" | "auto";
11
+ language: string;
12
+ notificationsEnabled: boolean;
13
+ emailNotifications: boolean;
14
+ pushNotifications: boolean;
15
+ soundEnabled: boolean;
16
+ vibrationEnabled: boolean;
17
+ privacyMode: boolean;
18
+ disclaimerAccepted: boolean;
19
+ }, Error, Partial<UserSettings>, unknown>;
20
+ export declare const useResetSettingsMutation: (userId: string) => import("@tanstack/react-query").UseMutationResult<UserSettings, Error, void, unknown>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * useSettingsQuery Hook
3
+ *
4
+ * Fetches user settings using TanStack Query
5
+ */
6
+ export declare const SETTINGS_QUERY_KEY: string[];
7
+ export declare const useSettingsQuery: (userId: string) => import("@tanstack/react-query").UseQueryResult<import("../../..").UserSettings, Error>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * useSettings Hook
3
+ *
4
+ * Primary hook for accessing and managing user settings.
5
+ * Integrates with TanStack Query mutations and queries.
6
+ */
7
+ import type { UserSettings } from '../../application/ports/ISettingsRepository';
8
+ export declare const useSettings: (userId: string) => {
9
+ settings: UserSettings;
10
+ loading: boolean;
11
+ error: string;
12
+ updateSettings: (updates: Partial<UserSettings>) => Promise<{
13
+ updatedAt: Date;
14
+ userId: string;
15
+ theme: "light" | "dark" | "auto";
16
+ language: string;
17
+ notificationsEnabled: boolean;
18
+ emailNotifications: boolean;
19
+ pushNotifications: boolean;
20
+ soundEnabled: boolean;
21
+ vibrationEnabled: boolean;
22
+ privacyMode: boolean;
23
+ disclaimerAccepted: boolean;
24
+ }>;
25
+ resetSettings: () => Promise<UserSettings>;
26
+ };
@@ -0,0 +1,41 @@
1
+ /**
2
+ * useSettingsScreenConfig Hook
3
+ *
4
+ * One-stop hook for settings screen configuration.
5
+ * Handles auth, feedback, and all settings config internally.
6
+ * Apps pass subscription config from subscription package.
7
+ */
8
+ import type { SettingsConfig, SettingsTranslations } from "../screens/types";
9
+ import type { FeedbackFormData } from "../utils/config-creators";
10
+ import type { AppInfo, FAQData, UserProfileDisplay, AdditionalScreen, AccountConfig } from "../navigation/types";
11
+ export interface SettingsFeatures {
12
+ notifications?: boolean;
13
+ appearance?: boolean;
14
+ language?: boolean;
15
+ feedback?: boolean;
16
+ rating?: boolean;
17
+ faqs?: boolean;
18
+ about?: boolean;
19
+ legal?: boolean;
20
+ gamification?: boolean;
21
+ videoTutorial?: boolean;
22
+ subscription?: boolean;
23
+ }
24
+ export interface UseSettingsScreenConfigParams {
25
+ appInfo: AppInfo;
26
+ faqData?: FAQData;
27
+ isPremium: boolean;
28
+ onFeedbackSubmit: (data: FeedbackFormData) => Promise<void>;
29
+ additionalScreens?: AdditionalScreen[];
30
+ features?: SettingsFeatures;
31
+ translations?: SettingsTranslations;
32
+ }
33
+ export interface SettingsScreenConfigResult {
34
+ settingsConfig: SettingsConfig;
35
+ userProfile: UserProfileDisplay;
36
+ accountConfig: AccountConfig;
37
+ translatedFaqData: FAQData | undefined;
38
+ isLoading: boolean;
39
+ isAuthReady: boolean;
40
+ }
41
+ export declare const useSettingsScreenConfig: (params: UseSettingsScreenConfigParams) => SettingsScreenConfigResult;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Settings Stack Navigator
3
+ *
4
+ * Complete settings navigation with all screens.
5
+ * Receives appInfo and legalUrls from app.
6
+ */
7
+ import React from "react";
8
+ import type { SettingsStackNavigatorProps } from "./types";
9
+ export declare const SettingsStackNavigator: React.FC<SettingsStackNavigatorProps>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Navigation Hooks
3
+ */
4
+ export { useNavigationHandlers } from "./useNavigationHandlers";
5
+ export { useSettingsScreens } from "./useSettingsScreens";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Navigation Handlers Hook
3
+ * Provides URL handlers and config generation for settings screens
4
+ */
5
+ import type { AppInfo, LegalUrls } from "../types";
6
+ import type { AboutConfig } from "../../../domains/about";
7
+ interface NavigationHandlersResult {
8
+ handlePrivacyPress: () => void;
9
+ handleTermsPress: () => void;
10
+ handleEulaPress: () => void;
11
+ aboutConfig: AboutConfig;
12
+ }
13
+ export declare const useNavigationHandlers: (appInfo: AppInfo, legalUrls: LegalUrls, aboutTranslations?: AboutConfig["texts"]) => NavigationHandlersResult;
14
+ export {};
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Typed Settings Navigation Hook
3
+ *
4
+ * Provides type-safe navigation for Settings stack screens.
5
+ * Replaces unsafe `as never` casts throughout the codebase.
6
+ */
7
+ import type { StackNavigationProp } from '@react-navigation/stack';
8
+ import type { SettingsStackParamList } from '../types';
9
+ /**
10
+ * Type for Settings navigation prop
11
+ */
12
+ export type SettingsNavigationProp = StackNavigationProp<SettingsStackParamList>;
13
+ /**
14
+ * Hook to get typed navigation for Settings screens
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const navigation = useSettingsNavigation();
19
+ * navigation.navigate('LanguageSelection'); // Fully typed!
20
+ * ```
21
+ */
22
+ export declare const useSettingsNavigation: () => SettingsNavigationProp;
@@ -0,0 +1,12 @@
1
+ import type { StackScreen } from "@umituz/react-native-design-system/molecules";
2
+ import type { SettingsStackNavigatorProps } from "../types";
3
+ import type { AboutConfig } from "../../../domains/about/domain/entities/AppInfo";
4
+ import type { LegalScreenProps } from "../../../domains/legal/presentation/screens/LegalScreen";
5
+ import type { NotificationSettingsTranslations, QuietHoursTranslations } from "../../../domains/notifications/infrastructure/services/types";
6
+ export interface UseSettingsScreensProps extends SettingsStackNavigatorProps {
7
+ aboutConfig: AboutConfig;
8
+ legalProps: LegalScreenProps;
9
+ notificationTranslations: NotificationSettingsTranslations;
10
+ quietHoursTranslations: QuietHoursTranslations;
11
+ }
12
+ export declare const useSettingsScreens: (props: UseSettingsScreensProps) => StackScreen[];