@umituz/react-native-settings 5.3.30 → 5.3.32

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 (246) 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/gamification/components/AchievementCard.d.ts +23 -0
  65. package/dist/domains/gamification/components/AchievementItem.d.ts +7 -0
  66. package/dist/domains/gamification/components/AchievementToast.d.ts +21 -0
  67. package/dist/domains/gamification/components/GamificationScreen/AchievementsList.d.ts +17 -0
  68. package/dist/domains/gamification/components/GamificationScreen/GamificationScreen.d.ts +11 -0
  69. package/dist/domains/gamification/components/GamificationScreen/GamificationScreenWithConfig.d.ts +11 -0
  70. package/dist/domains/gamification/components/GamificationScreen/StatsGrid.d.ts +16 -0
  71. package/dist/domains/gamification/components/GamificationScreen/index.d.ts +17 -0
  72. package/dist/domains/gamification/components/GamificationScreen/styles.d.ts +40 -0
  73. package/dist/domains/gamification/components/GamificationScreen/types.d.ts +42 -0
  74. package/dist/domains/gamification/components/LevelProgress.d.ts +27 -0
  75. package/dist/domains/gamification/components/PointsBadge.d.ts +16 -0
  76. package/dist/domains/gamification/components/StatsCard.d.ts +20 -0
  77. package/dist/domains/gamification/components/StreakDisplay.d.ts +21 -0
  78. package/dist/domains/gamification/components/index.d.ts +14 -0
  79. package/dist/domains/gamification/components/styles/achievementItemStyles.d.ts +71 -0
  80. package/dist/domains/gamification/components/types/AchievementItemProps.d.ts +22 -0
  81. package/dist/domains/gamification/hooks/useGamification.d.ts +22 -0
  82. package/dist/domains/gamification/index.d.ts +13 -0
  83. package/dist/domains/gamification/store/gamificationStore.d.ts +6 -0
  84. package/dist/domains/gamification/types/index.d.ts +99 -0
  85. package/dist/domains/gamification/utils/calculations.d.ts +10 -0
  86. package/dist/domains/legal/domain/entities/LegalConfig.d.ts +28 -0
  87. package/dist/domains/legal/domain/services/ContentValidationService.d.ts +19 -0
  88. package/dist/domains/legal/domain/services/StyleCacheService.d.ts +38 -0
  89. package/dist/domains/legal/domain/services/UrlHandlerService.d.ts +32 -0
  90. package/dist/domains/legal/index.d.ts +8 -0
  91. package/dist/domains/legal/presentation/components/LegalDocumentsList.d.ts +21 -0
  92. package/dist/domains/legal/presentation/components/LegalItem.d.ts +35 -0
  93. package/dist/domains/legal/presentation/components/LegalScreenHeader.d.ts +12 -0
  94. package/dist/domains/legal/presentation/components/LegalSection.d.ts +14 -0
  95. package/dist/domains/legal/presentation/screens/LegalContentScreen.d.ts +19 -0
  96. package/dist/domains/legal/presentation/screens/LegalScreen.d.ts +24 -0
  97. package/dist/domains/legal/presentation/screens/PrivacyPolicyScreen.d.ts +15 -0
  98. package/dist/domains/legal/presentation/screens/TermsOfServiceScreen.d.ts +15 -0
  99. package/dist/domains/localization/domain/repositories/ILocalizationRepository.d.ts +16 -0
  100. package/dist/domains/localization/index.d.ts +16 -0
  101. package/dist/domains/localization/infrastructure/components/LanguageSwitcher.d.ts +19 -0
  102. package/dist/domains/localization/infrastructure/components/LanguageSwitcher.styles.d.ts +37 -0
  103. package/dist/domains/localization/infrastructure/components/useLanguageNavigation.d.ts +4 -0
  104. package/dist/domains/localization/infrastructure/components/useLanguageSwitcher.d.ts +13 -0
  105. package/dist/domains/localization/infrastructure/config/DeviceLocale.d.ts +10 -0
  106. package/dist/domains/localization/infrastructure/config/I18nInitializer.d.ts +14 -0
  107. package/dist/domains/localization/infrastructure/config/LanguageQuery.d.ts +10 -0
  108. package/dist/domains/localization/infrastructure/config/LocaleMapping.d.ts +5 -0
  109. package/dist/domains/localization/infrastructure/config/NamespaceResolver.d.ts +11 -0
  110. package/dist/domains/localization/infrastructure/config/ResourceBuilder.d.ts +10 -0
  111. package/dist/domains/localization/infrastructure/config/TranslationLoader.d.ts +16 -0
  112. package/dist/domains/localization/infrastructure/config/constants/defaultLanguages.d.ts +6 -0
  113. package/dist/domains/localization/infrastructure/config/i18n.d.ts +7 -0
  114. package/dist/domains/localization/infrastructure/config/languages.d.ts +7 -0
  115. package/dist/domains/localization/infrastructure/hooks/useLanguageSelection.d.ts +11 -0
  116. package/dist/domains/localization/infrastructure/hooks/useLocalization.d.ts +12 -0
  117. package/dist/domains/localization/infrastructure/hooks/useTranslation.d.ts +23 -0
  118. package/dist/domains/localization/infrastructure/repository/LanguageRepository.d.ts +18 -0
  119. package/dist/domains/localization/infrastructure/storage/LanguageInitializer.d.ts +20 -0
  120. package/dist/domains/localization/infrastructure/storage/LanguageSwitcher.d.ts +16 -0
  121. package/dist/domains/localization/infrastructure/storage/LocalizationStore.d.ts +6 -0
  122. package/dist/domains/localization/infrastructure/storage/localizationStoreUtils.d.ts +44 -0
  123. package/dist/domains/localization/infrastructure/storage/types/Language.d.ts +12 -0
  124. package/dist/domains/localization/infrastructure/storage/types/LocalizationState.d.ts +22 -0
  125. package/dist/domains/localization/presentation/components/LanguageItem.d.ts +23 -0
  126. package/dist/domains/localization/presentation/components/LanguageItem.styles.d.ts +30 -0
  127. package/dist/domains/localization/presentation/components/LanguageSection.d.ts +15 -0
  128. package/dist/domains/localization/presentation/providers/LocalizationManager.d.ts +12 -0
  129. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.d.ts +7 -0
  130. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.styles.d.ts +7 -0
  131. package/dist/domains/localization/presentation/screens/LanguageSelectionScreen.types.d.ts +26 -0
  132. package/dist/domains/notifications/index.d.ts +46 -0
  133. package/dist/domains/notifications/infrastructure/config/notificationsConfig.d.ts +19 -0
  134. package/dist/domains/notifications/infrastructure/hooks/useNotificationSettings.d.ts +8 -0
  135. package/dist/domains/notifications/infrastructure/services/NotificationBadgeManager.d.ts +4 -0
  136. package/dist/domains/notifications/infrastructure/services/NotificationManager.d.ts +23 -0
  137. package/dist/domains/notifications/infrastructure/services/NotificationPermissions.d.ts +5 -0
  138. package/dist/domains/notifications/infrastructure/services/NotificationScheduler.d.ts +7 -0
  139. package/dist/domains/notifications/infrastructure/services/NotificationService.d.ts +31 -0
  140. package/dist/domains/notifications/infrastructure/services/types.d.ts +147 -0
  141. package/dist/domains/notifications/infrastructure/storage/UnifiedNotificationStore.d.ts +42 -0
  142. package/dist/domains/notifications/infrastructure/utils/idGenerator.d.ts +6 -0
  143. package/dist/domains/notifications/infrastructure/utils/triggerBuilder.d.ts +6 -0
  144. package/dist/domains/notifications/presentation/components/NotificationsSection.d.ts +16 -0
  145. package/dist/domains/notifications/presentation/components/RemindersNavRow.d.ts +12 -0
  146. package/dist/domains/notifications/presentation/components/RemindersNavRow.styles.d.ts +34 -0
  147. package/dist/domains/notifications/presentation/components/SettingRow.d.ts +14 -0
  148. package/dist/domains/notifications/presentation/hooks/useNotificationSettingsUI.d.ts +13 -0
  149. package/dist/domains/notifications/presentation/hooks/useTimePicker.d.ts +21 -0
  150. package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.d.ts +12 -0
  151. package/dist/domains/notifications/presentation/screens/NotificationSettingsScreen.styles.d.ts +26 -0
  152. package/dist/domains/notifications/presentation/screens/NotificationsScreen.d.ts +18 -0
  153. package/dist/domains/notifications/quietHours/infrastructure/hooks/useQuietHoursActions.d.ts +13 -0
  154. package/dist/domains/notifications/quietHours/presentation/components/QuietHoursCard.d.ts +14 -0
  155. package/dist/domains/notifications/reminders/infrastructure/config/reminderPresets.d.ts +24 -0
  156. package/dist/domains/notifications/reminders/infrastructure/hooks/useReminderActions.d.ts +11 -0
  157. package/dist/domains/notifications/reminders/presentation/components/FormButton.d.ts +12 -0
  158. package/dist/domains/notifications/reminders/presentation/components/FrequencySelector.d.ts +14 -0
  159. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.constants.d.ts +28 -0
  160. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.d.ts +7 -0
  161. package/dist/domains/notifications/reminders/presentation/components/ReminderForm.styles.d.ts +31 -0
  162. package/dist/domains/notifications/reminders/presentation/components/ReminderItem.d.ts +20 -0
  163. package/dist/domains/notifications/reminders/presentation/components/TimePresetSelector.d.ts +20 -0
  164. package/dist/domains/notifications/reminders/presentation/components/WeekdaySelector.d.ts +11 -0
  165. package/dist/domains/notifications/reminders/presentation/screens/ReminderListScreen.d.ts +13 -0
  166. package/dist/domains/rating/application/services/RatingService.d.ts +33 -0
  167. package/dist/domains/rating/domain/entities/Rating.d.ts +15 -0
  168. package/dist/domains/rating/domain/entities/RatingConfig.d.ts +120 -0
  169. package/dist/domains/rating/index.d.ts +12 -0
  170. package/dist/domains/rating/infrastructure/storage/RatingStorage.d.ts +50 -0
  171. package/dist/domains/rating/presentation/components/RatingPromptModal.d.ts +16 -0
  172. package/dist/domains/rating/presentation/components/StarRating.d.ts +13 -0
  173. package/dist/domains/rating/presentation/hooks/useAppRating.d.ts +9 -0
  174. package/dist/domains/video-tutorials/index.d.ts +18 -0
  175. package/dist/domains/video-tutorials/presentation/components/VideoTutorialCard.d.ts +13 -0
  176. package/dist/domains/video-tutorials/presentation/components/VideoTutorialSection.d.ts +25 -0
  177. package/dist/domains/video-tutorials/presentation/screens/VideoTutorialsScreen.d.ts +25 -0
  178. package/dist/domains/video-tutorials/types/index.d.ts +26 -0
  179. package/dist/index.d.ts +41 -0
  180. package/dist/infrastructure/repositories/SettingsRepository.d.ts +12 -0
  181. package/dist/infrastructure/services/SettingsService.d.ts +14 -0
  182. package/dist/infrastructure/utils/configFactory.d.ts +39 -0
  183. package/dist/infrastructure/utils/constants/textLimits.d.ts +16 -0
  184. package/dist/infrastructure/utils/sanitizers.d.ts +13 -0
  185. package/dist/infrastructure/utils/validation/core.d.ts +8 -0
  186. package/dist/infrastructure/utils/validation/formValidators.d.ts +26 -0
  187. package/dist/infrastructure/utils/validation/index.d.ts +5 -0
  188. package/dist/infrastructure/utils/validators.d.ts +21 -0
  189. package/dist/presentation/components/SettingsFooter.d.ts +7 -0
  190. package/dist/presentation/components/SettingsItemCard.d.ts +22 -0
  191. package/dist/presentation/components/SettingsNavigationItem.d.ts +67 -0
  192. package/dist/presentation/components/SettingsSection.d.ts +6 -0
  193. package/dist/presentation/components/settings/SettingsItemCardContent.d.ts +12 -0
  194. package/dist/presentation/components/settings/SettingsItemCardRightElement.d.ts +11 -0
  195. package/dist/presentation/components/settings/SettingsItemCardSection.d.ts +5 -0
  196. package/dist/presentation/hooks/mutations/useSettingsMutations.d.ts +20 -0
  197. package/dist/presentation/hooks/queries/useSettingsQuery.d.ts +7 -0
  198. package/dist/presentation/hooks/useSettings.d.ts +26 -0
  199. package/dist/presentation/hooks/useSettingsScreenConfig.d.ts +41 -0
  200. package/dist/presentation/navigation/SettingsStackNavigator.d.ts +9 -0
  201. package/dist/presentation/navigation/hooks/index.d.ts +5 -0
  202. package/dist/presentation/navigation/hooks/useNavigationHandlers.d.ts +14 -0
  203. package/dist/presentation/navigation/hooks/useSettingsNavigation.d.ts +22 -0
  204. package/dist/presentation/navigation/hooks/useSettingsScreens.d.ts +12 -0
  205. package/dist/presentation/navigation/types.d.ts +134 -0
  206. package/dist/presentation/navigation/utils/index.d.ts +5 -0
  207. package/dist/presentation/navigation/utils/navigationHelpers.d.ts +13 -0
  208. package/dist/presentation/navigation/utils/navigationTranslations.d.ts +35 -0
  209. package/dist/presentation/screens/AppearanceScreen.d.ts +6 -0
  210. package/dist/presentation/screens/SettingsScreen.d.ts +49 -0
  211. package/dist/presentation/screens/components/SettingsContent.d.ts +3 -0
  212. package/dist/presentation/screens/components/SettingsHeader.d.ts +8 -0
  213. package/dist/presentation/screens/components/sections/CustomSettingsList.d.ts +7 -0
  214. package/dist/presentation/screens/components/sections/FeatureSettingsSection.d.ts +13 -0
  215. package/dist/presentation/screens/components/sections/IdentitySettingsSection.d.ts +12 -0
  216. package/dist/presentation/screens/components/sections/ProfileSectionLoader.d.ts +17 -0
  217. package/dist/presentation/screens/components/sections/SupportSettingsSection.d.ts +13 -0
  218. package/dist/presentation/screens/components/types/SettingsContentProps.d.ts +47 -0
  219. package/dist/presentation/screens/components/utils/featureChecker.d.ts +10 -0
  220. package/dist/presentation/screens/hooks/useFeatureDetection.d.ts +28 -0
  221. package/dist/presentation/screens/hooks/useSettingsScreen.d.ts +36 -0
  222. package/dist/presentation/screens/types/BaseTypes.d.ts +11 -0
  223. package/dist/presentation/screens/types/ContentConfig.d.ts +76 -0
  224. package/dist/presentation/screens/types/CustomSection.d.ts +38 -0
  225. package/dist/presentation/screens/types/SettingsConfig.d.ts +122 -0
  226. package/dist/presentation/screens/types/SettingsTranslations.d.ts +159 -0
  227. package/dist/presentation/screens/types/UserFeatureConfig.d.ts +178 -0
  228. package/dist/presentation/screens/types/index.d.ts +11 -0
  229. package/dist/presentation/screens/utils/normalizeConfig.d.ts +68 -0
  230. package/dist/presentation/utils/accountConfigUtils.d.ts +34 -0
  231. package/dist/presentation/utils/config-creators/base-configs.d.ts +26 -0
  232. package/dist/presentation/utils/config-creators/feature-configs.d.ts +17 -0
  233. package/dist/presentation/utils/config-creators/index.d.ts +7 -0
  234. package/dist/presentation/utils/config-creators/support-configs.d.ts +19 -0
  235. package/dist/presentation/utils/config-creators/types.d.ts +20 -0
  236. package/dist/presentation/utils/faqTranslator.d.ts +3 -0
  237. package/dist/presentation/utils/index.d.ts +8 -0
  238. package/dist/presentation/utils/screenFactory.d.ts +26 -0
  239. package/dist/presentation/utils/settingsConfigFactory.d.ts +33 -0
  240. package/dist/presentation/utils/userProfileUtils.d.ts +20 -0
  241. package/dist/utils/appUtils.d.ts +4 -0
  242. package/dist/utils/devUtils.d.ts +31 -0
  243. package/dist/utils/errorUtils.d.ts +22 -0
  244. package/dist/utils/hooks/useAsyncStateUpdate.d.ts +35 -0
  245. package/dist/utils/hooks/useMountSafety.d.ts +1 -0
  246. package/package.json +20 -18
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @umituz/react-native-settings/account
3
+ *
4
+ * Subpath export for apps that use @umituz/react-native-auth.
5
+ * Import auth-dependent hooks and components from here.
6
+ *
7
+ * Usage:
8
+ * import {
9
+ * useSettingsScreenConfigWithAuth,
10
+ * AccountScreen,
11
+ * ProfileSection,
12
+ * } from '@umituz/react-native-settings/account';
13
+ *
14
+ * // Pass AccountScreen and ProfileSection as props to SettingsStackNavigator:
15
+ * <SettingsStackNavigator
16
+ * AccountScreenComponent={AccountScreen}
17
+ * ProfileSectionComponent={ProfileSection}
18
+ * ...
19
+ * />
20
+ */
21
+ export { AccountScreen, ProfileSection } from "@umituz/react-native-auth";
22
+ export { useAuth, useUserProfile, useAuthHandlers } from "@umituz/react-native-auth";
23
+ export type { AccountScreenConfig } from "@umituz/react-native-auth";
24
+ export { useSettingsScreenConfig } from './presentation/hooks/useSettingsScreenConfig';
25
+ export { useSettingsScreenConfig as useSettingsScreenConfigWithAuth } from './presentation/hooks/useSettingsScreenConfig';
26
+ export type { UseSettingsScreenConfigParams, SettingsScreenConfigResult, SettingsFeatures, } from './presentation/hooks/useSettingsScreenConfig';
27
+ export type { AccountConfig } from './presentation/navigation/types';
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Settings Repository Interface and Types
3
+ *
4
+ * Defines the contract for settings storage operations
5
+ * and the core types used throughout the settings domain.
6
+ */
7
+ /**
8
+ * User settings data structure
9
+ */
10
+ export interface UserSettings {
11
+ userId: string;
12
+ theme: 'light' | 'dark' | 'auto';
13
+ language: string;
14
+ notificationsEnabled: boolean;
15
+ emailNotifications: boolean;
16
+ pushNotifications: boolean;
17
+ soundEnabled: boolean;
18
+ vibrationEnabled: boolean;
19
+ privacyMode: boolean;
20
+ disclaimerAccepted: boolean;
21
+ updatedAt: Date;
22
+ }
23
+ /**
24
+ * Settings operation result
25
+ */
26
+ export interface SettingsResult<T> {
27
+ success: boolean;
28
+ data?: T;
29
+ error?: SettingsError;
30
+ }
31
+ /**
32
+ * Settings error types
33
+ */
34
+ export interface SettingsError {
35
+ code: string;
36
+ message: string;
37
+ }
38
+ /**
39
+ * Settings repository interface
40
+ */
41
+ export interface ISettingsRepository {
42
+ getSettings(userId: string): Promise<SettingsResult<UserSettings>>;
43
+ saveSettings(settings: UserSettings): Promise<SettingsResult<void>>;
44
+ deleteSettings(userId: string): Promise<SettingsResult<void>>;
45
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Domain Entity - Application Information
3
+ * Pure business logic, no external dependencies
4
+ * Part of About Domain
5
+ */
6
+ export interface AppInfo {
7
+ /** Application name */
8
+ name: string;
9
+ /** Application version (semver format) */
10
+ version: string;
11
+ /** Application description */
12
+ description?: string;
13
+ /** Developer/Company name */
14
+ developer?: string;
15
+ /** Contact email */
16
+ contactEmail?: string;
17
+ /** Website URL */
18
+ websiteUrl?: string;
19
+ /** Website display text */
20
+ websiteDisplay?: string;
21
+ /** More apps URL */
22
+ moreAppsUrl?: string;
23
+ }
24
+ /**
25
+ * Configuration interface for About component
26
+ * Fully configurable by parent application
27
+ */
28
+ export interface AboutConfig {
29
+ /** Application information */
30
+ appInfo?: Partial<AppInfo>;
31
+ /** Custom theme colors */
32
+ theme?: {
33
+ primary?: string;
34
+ secondary?: string;
35
+ background?: string;
36
+ text?: string;
37
+ border?: string;
38
+ };
39
+ /** Custom styling options */
40
+ style?: {
41
+ containerStyle?: Record<string, unknown>;
42
+ itemStyle?: Record<string, unknown>;
43
+ textStyle?: Record<string, unknown>;
44
+ iconStyle?: Record<string, unknown>;
45
+ };
46
+ /** Custom actions */
47
+ actions?: {
48
+ onWebsitePress?: () => void;
49
+ onEmailPress?: () => void;
50
+ onMoreAppsPress?: () => void;
51
+ };
52
+ /** Localized texts for section headers and labels */
53
+ texts?: {
54
+ title?: string;
55
+ contact?: string;
56
+ more?: string;
57
+ developer?: string;
58
+ email?: string;
59
+ website?: string;
60
+ moreApps?: string;
61
+ loading?: string;
62
+ errorPrefix?: string;
63
+ noInfo?: string;
64
+ versionPrefix?: string;
65
+ };
66
+ /** Navigation route name */
67
+ route?: string;
68
+ /** Default navigation route name */
69
+ defaultRoute?: string;
70
+ /** Section title */
71
+ title?: string;
72
+ /** Section description */
73
+ description?: string;
74
+ /** Custom onPress handler (overrides navigation) */
75
+ onPress?: () => void;
76
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Repository interface for About data
3
+ * Defines contract for data access layer
4
+ */
5
+ import { AppInfo } from '../entities/AppInfo';
6
+ export interface IAboutRepository {
7
+ /**
8
+ * Get application information
9
+ */
10
+ getAppInfo(): Promise<AppInfo>;
11
+ /**
12
+ * Save application information
13
+ */
14
+ saveAppInfo(appInfo: AppInfo): Promise<void>;
15
+ /**
16
+ * Update application information
17
+ */
18
+ updateAppInfo(updates: Partial<AppInfo>): Promise<AppInfo>;
19
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * About Domain
3
+ * User information, app details, version info
4
+ */
5
+ export * from './presentation/screens/AboutScreen';
6
+ export * from './presentation/components/AboutContent';
7
+ export * from './presentation/components/AboutSection';
8
+ export * from './presentation/components/AboutSettingItem';
9
+ export * from './presentation/components/AboutHeader';
10
+ export * from './domain/entities/AppInfo';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Repository implementation for About data
3
+ * Handles data persistence and retrieval
4
+ * Optimized for performance and memory safety
5
+ */
6
+ import { AppInfo } from '../../domain/entities/AppInfo';
7
+ import { IAboutRepository } from '../../domain/repositories/IAboutRepository';
8
+ export declare class AboutRepository implements IAboutRepository {
9
+ private appInfo;
10
+ private isDestroyed;
11
+ getAppInfo(): Promise<AppInfo>;
12
+ saveAppInfo(appInfo: AppInfo): Promise<void>;
13
+ updateAppInfo(updates: Partial<AppInfo>): Promise<AppInfo>;
14
+ /**
15
+ * Cleanup method to prevent memory leaks
16
+ */
17
+ destroy(): void;
18
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * About Content Component
3
+ * Displays the list of about items organized in sections
4
+ */
5
+ import React from 'react';
6
+ import { AppInfo } from '../../domain/entities/AppInfo';
7
+ import { AboutConfig } from '../../domain/entities/AppInfo';
8
+ export interface AboutContentProps {
9
+ /** App information to display */
10
+ appInfo: AppInfo;
11
+ /** Configuration for actions */
12
+ config: AboutConfig;
13
+ }
14
+ export declare const AboutContent: React.FC<AboutContentProps>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * About Header Component
3
+ * Displays app name, version, and description
4
+ */
5
+ import React from 'react';
6
+ import { ViewStyle, TextStyle } from 'react-native';
7
+ import { AppInfo } from '../../domain/entities/AppInfo';
8
+ export interface AboutHeaderProps {
9
+ /** App information to display */
10
+ appInfo: AppInfo;
11
+ /** Custom container style */
12
+ containerStyle?: ViewStyle;
13
+ /** Custom title style */
14
+ titleStyle?: TextStyle;
15
+ /** Custom version style */
16
+ versionStyle?: TextStyle;
17
+ descriptionStyle?: TextStyle;
18
+ versionPrefix?: string;
19
+ testID?: string;
20
+ }
21
+ export declare const AboutHeader: React.FC<AboutHeaderProps>;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+ import { AboutConfig } from '../../domain/entities/AppInfo';
4
+ export interface AboutSectionProps {
5
+ config?: AboutConfig;
6
+ onPress?: () => void;
7
+ containerStyle?: ViewStyle;
8
+ title?: string;
9
+ description?: string;
10
+ sectionTitle?: string;
11
+ noBackground?: boolean;
12
+ hideMargin?: boolean;
13
+ }
14
+ export declare const AboutSection: React.FC<AboutSectionProps>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * About Setting Item Component
3
+ * Reusable setting item for about screen
4
+ * Fully configurable and generic
5
+ * Optimized for performance and memory safety
6
+ */
7
+ import React from 'react';
8
+ import { ViewStyle, TextStyle } from 'react-native';
9
+ export interface AboutSettingItemProps {
10
+ /** Icon component (any React component) */
11
+ icon?: React.ReactNode;
12
+ /** Main title text */
13
+ title: string;
14
+ /** Optional description text */
15
+ description?: string;
16
+ /** Optional value to display on the right */
17
+ value?: string;
18
+ /** Callback when pressed */
19
+ onPress?: () => void;
20
+ /** Show chevron arrow on right */
21
+ showChevron?: boolean;
22
+ /** Custom container style */
23
+ containerStyle?: ViewStyle;
24
+ /** Custom title style */
25
+ titleStyle?: TextStyle;
26
+ /** Custom description style */
27
+ descriptionStyle?: TextStyle;
28
+ /** Custom value style */
29
+ valueStyle?: TextStyle;
30
+ /** Custom icon container style */
31
+ iconContainerStyle?: ViewStyle;
32
+ /** Make item look disabled */
33
+ disabled?: boolean;
34
+ /** Test ID for E2E testing */
35
+ testID?: string;
36
+ /** Custom chevron color */
37
+ chevronColor?: string;
38
+ }
39
+ export declare const AboutSettingItem: React.FC<AboutSettingItemProps>;
@@ -0,0 +1,2 @@
1
+ import type { UseAboutInfoOptions, UseAboutInfoReturn } from './useAboutInfo.types';
2
+ export declare const useAboutInfo: (options?: UseAboutInfoOptions) => UseAboutInfoReturn;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * useAboutInfo Hook Types
3
+ * Type definitions for about info hook
4
+ */
5
+ import type { AppInfo, AboutConfig } from '../../domain/entities/AppInfo';
6
+ export interface UseAboutInfoOptions {
7
+ /** Initial configuration */
8
+ initialConfig?: AboutConfig;
9
+ /** Auto-initialize on mount */
10
+ autoInit?: boolean;
11
+ }
12
+ export interface UseAboutInfoReturn {
13
+ /** Current app info */
14
+ appInfo: AppInfo | null;
15
+ /** Loading state */
16
+ loading: boolean;
17
+ /** Error state */
18
+ error: string | null;
19
+ /** Initialize with config */
20
+ initialize: (config: AboutConfig) => Promise<void>;
21
+ /** Update with new config */
22
+ update: (config: AboutConfig) => Promise<void>;
23
+ /** Update app info */
24
+ updateAppInfo: (updates: Partial<AppInfo>) => Promise<void>;
25
+ /** Refresh current app info */
26
+ refresh: () => Promise<void>;
27
+ /** Reset to initial state */
28
+ reset: () => void;
29
+ }
@@ -0,0 +1,21 @@
1
+ export interface AboutScreenProps {
2
+ /** Configuration for the about screen */
3
+ config: import('../../domain/entities/AppInfo').AboutConfig;
4
+ /** Custom container style */
5
+ containerStyle?: import('react-native').ViewStyle;
6
+ /** Custom header style */
7
+ headerStyle?: import('react-native').ViewStyle;
8
+ /** Custom title style */
9
+ titleStyle?: import('react-native').TextStyle;
10
+ /** Custom version style */
11
+ versionStyle?: import('react-native').TextStyle;
12
+ /** Show app header with name and version */
13
+ showHeader?: boolean;
14
+ /** Custom header component */
15
+ headerComponent?: React.ReactNode;
16
+ /** Custom footer component */
17
+ footerComponent?: React.ReactNode;
18
+ /** Test ID for E2E testing */
19
+ testID?: string;
20
+ }
21
+ export declare const AboutScreen: React.FC<AboutScreenProps>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * AboutScreen Content Component
3
+ * Pure presentational component for About screen
4
+ * No business logic, only rendering
5
+ */
6
+ import React from 'react';
7
+ import { AboutConfig, AppInfo } from '../../domain/entities/AppInfo';
8
+ import type { DesignTokens } from '@umituz/react-native-design-system/theme';
9
+ import type { AboutScreenProps } from './AboutScreen';
10
+ export interface AboutScreenContentProps extends Omit<AboutScreenProps, 'config'> {
11
+ appInfo: AppInfo;
12
+ config: AboutConfig;
13
+ _tokens: DesignTokens;
14
+ }
15
+ export declare const AboutScreenContent: React.FC<AboutScreenContentProps>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * AppInfo Factory Utility
3
+ * Creates AppInfo objects from AboutConfig
4
+ */
5
+ import { AppInfo, AboutConfig } from '../domain/entities/AppInfo';
6
+ /**
7
+ * Creates a default AppInfo object from AboutConfig
8
+ */
9
+ export declare const createDefaultAppInfo: (config: AboutConfig) => AppInfo;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Dynamic Color Palettes
3
+ *
4
+ * Generic color palettes that can be customized by host applications
5
+ * These serve as sensible defaults for appearance customization
6
+ */
7
+ export interface ColorPalette {
8
+ name: string;
9
+ colors: string[];
10
+ }
11
+ /**
12
+ * Generic primary color palette
13
+ * Suitable for most applications
14
+ */
15
+ export declare const DEFAULT_PRIMARY_COLORS: ColorPalette;
16
+ /**
17
+ * Generic secondary color palette
18
+ * Neutral colors for secondary elements
19
+ */
20
+ export declare const DEFAULT_SECONDARY_COLORS: ColorPalette;
21
+ /**
22
+ * Generic accent color palette
23
+ * Vibrant colors for accent elements
24
+ */
25
+ export declare const DEFAULT_ACCENT_COLORS: ColorPalette;
@@ -0,0 +1,11 @@
1
+ import { type CustomThemeColors } from "@umituz/react-native-design-system/theme";
2
+ import type { ThemeMode } from "../types";
3
+ export declare const useAppearance: () => {
4
+ themeMode: ThemeMode;
5
+ customColors: CustomThemeColors;
6
+ defaultColors: CustomThemeColors;
7
+ isLoading: boolean;
8
+ setThemeMode: (mode: ThemeMode) => void;
9
+ setCustomColors: (colors: CustomThemeColors) => void;
10
+ reset: () => void;
11
+ };
@@ -0,0 +1,9 @@
1
+ import type { CustomThemeColors } from "@umituz/react-native-design-system/theme";
2
+ import type { ThemeMode } from "../types";
3
+ export declare const useAppearanceActions: () => {
4
+ themeMode: ThemeMode;
5
+ localCustomColors: CustomThemeColors;
6
+ handleThemeSelect: (mode: ThemeMode) => void;
7
+ handleColorChange: (key: keyof CustomThemeColors, color: string) => void;
8
+ handleResetColors: () => void;
9
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Appearance Domain
3
+ * Theme management, dark mode
4
+ */
5
+ export * from './presentation/screens/AppearanceScreen';
6
+ export * from './presentation/components';
7
+ export { useAppearance } from './hooks/useAppearance';
8
+ export { useAppearanceActions } from './hooks/useAppearanceActions';
9
+ export * from './types';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Appearance Header Component
3
+ * Single Responsibility: Render appearance screen header
4
+ */
5
+ import React from "react";
6
+ import { type StyleProp, type ViewStyle } from "react-native";
7
+ import type { DesignTokens } from "@umituz/react-native-design-system/theme";
8
+ export interface AppearanceHeaderProps {
9
+ tokens: DesignTokens;
10
+ title?: string;
11
+ subtitle?: string;
12
+ titleType?: "headlineLarge" | "headlineMedium" | "headlineSmall";
13
+ subtitleType?: "bodyLarge" | "bodyMedium" | "bodySmall";
14
+ titleColor?: "primary" | "secondary" | "tertiary";
15
+ subtitleColor?: "primary" | "secondary" | "tertiary";
16
+ style?: StyleProp<ViewStyle>;
17
+ }
18
+ export declare const AppearanceHeader: React.FC<AppearanceHeaderProps>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Appearance Preview Component
3
+ * Single Responsibility: Render color preview section
4
+ */
5
+ import React from "react";
6
+ import type { DesignTokens } from "@umituz/react-native-design-system/theme";
7
+ import type { CustomThemeColors } from "../../types";
8
+ export interface PreviewColorItem {
9
+ key: keyof CustomThemeColors;
10
+ label: string;
11
+ fallbackColor: string;
12
+ }
13
+ export interface AppearancePreviewProps {
14
+ tokens: DesignTokens;
15
+ localCustomColors: CustomThemeColors;
16
+ title?: string;
17
+ description?: string;
18
+ previewColors?: PreviewColorItem[];
19
+ showPreview?: boolean;
20
+ }
21
+ export declare const AppearancePreview: React.FC<AppearancePreviewProps>;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { ViewStyle } from 'react-native';
3
+ import { AppearanceSectionConfig } from '../../types';
4
+ export interface AppearanceSectionProps {
5
+ config?: AppearanceSectionConfig;
6
+ onPress?: () => void;
7
+ containerStyle?: ViewStyle;
8
+ sectionTitle?: string;
9
+ /** Optional explicit title override */
10
+ title?: string;
11
+ /** Optional explicit description override */
12
+ description?: string;
13
+ noBackground?: boolean;
14
+ hideMargin?: boolean;
15
+ }
16
+ export declare const AppearanceSection: React.FC<AppearanceSectionProps>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Color Picker Component
3
+ *
4
+ * Simple color picker for theme customization
5
+ * Single Responsibility: Render color selection UI
6
+ */
7
+ import React from "react";
8
+ interface ColorPickerProps {
9
+ label: string;
10
+ value: string;
11
+ onValueChange: (color: string) => void;
12
+ colors: string[];
13
+ }
14
+ export declare const ColorPicker: React.FC<ColorPickerProps>;
15
+ export {};
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Custom Colors Section Component
3
+ * Single Responsibility: Render custom color picker section
4
+ */
5
+ import React from "react";
6
+ import type { DesignTokens } from "@umituz/react-native-design-system/theme";
7
+ import type { CustomThemeColors } from "../../types";
8
+ export interface ColorFieldConfig {
9
+ key: keyof CustomThemeColors;
10
+ label: string;
11
+ defaultColor: string;
12
+ colorPalette: string[];
13
+ }
14
+ export interface CustomColorsSectionProps {
15
+ tokens: DesignTokens;
16
+ localCustomColors: CustomThemeColors;
17
+ onColorChange: (key: keyof CustomThemeColors, color: string) => void;
18
+ onResetColors: () => void;
19
+ title?: string;
20
+ description?: string;
21
+ resetButtonText?: string;
22
+ colorFields?: ColorFieldConfig[];
23
+ showResetButton?: boolean;
24
+ }
25
+ export declare const CustomColorsSection: React.FC<CustomColorsSectionProps>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Theme Mode Section Component
3
+ * Single Responsibility: Render theme mode selection section
4
+ */
5
+ import React from "react";
6
+ import type { DesignTokens } from "@umituz/react-native-design-system/theme";
7
+ import type { ThemeMode } from "../../types";
8
+ export interface ThemeOptionConfig {
9
+ mode: ThemeMode;
10
+ title: string;
11
+ subtitle?: string;
12
+ description?: string;
13
+ features?: string[];
14
+ featuresTitle?: string;
15
+ }
16
+ export interface ThemeModeSectionProps {
17
+ tokens: DesignTokens;
18
+ themeMode: ThemeMode;
19
+ onThemeSelect: (mode: ThemeMode) => void;
20
+ title?: string;
21
+ description?: string;
22
+ themes?: ThemeOptionConfig[];
23
+ }
24
+ export declare const ThemeModeSection: React.FC<ThemeModeSectionProps>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Theme Option Component
3
+ *
4
+ * Theme mode selection option (Light/Dark)
5
+ * Single Responsibility: Render theme option UI
6
+ */
7
+ import React from "react";
8
+ import type { ThemeMode } from "../../types";
9
+ interface ThemeOptionProps {
10
+ mode: ThemeMode;
11
+ title: string;
12
+ subtitle?: string;
13
+ description?: string;
14
+ features?: string[];
15
+ featuresTitle?: string;
16
+ isSelected: boolean;
17
+ onSelect: () => void;
18
+ }
19
+ export declare const ThemeOption: React.FC<ThemeOptionProps>;
20
+ export {};
@@ -0,0 +1,6 @@
1
+ export { ThemeOption } from "./ThemeOption";
2
+ export { ColorPicker } from "./ColorPicker";
3
+ export { AppearanceHeader } from "./AppearanceHeader";
4
+ export { ThemeModeSection, type ThemeOptionConfig } from "./ThemeModeSection";
5
+ export { CustomColorsSection, type ColorFieldConfig } from "./CustomColorsSection";
6
+ export { AppearancePreview, type PreviewColorItem } from "./AppearancePreview";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Appearance Screen
3
+ *
4
+ * Screen for managing appearance settings including theme mode and custom colors.
5
+ * Uses ScreenLayout from design system for consistent UI.
6
+ */
7
+ import React from "react";
8
+ import type { AppearanceTexts } from "../../types";
9
+ export interface AppearanceScreenProps {
10
+ texts?: AppearanceTexts;
11
+ headerComponent?: React.ReactNode;
12
+ showThemeSection?: boolean;
13
+ showColorsSection?: boolean;
14
+ showPreviewSection?: boolean;
15
+ }
16
+ export declare const AppearanceScreen: React.FC<AppearanceScreenProps>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Appearance Domain Types
3
+ *
4
+ * Types for appearance settings including theme mode and custom colors
5
+ */
6
+ import type { ThemeMode as BaseThemeMode, CustomThemeColors } from "@umituz/react-native-design-system/theme";
7
+ export type ThemeMode = BaseThemeMode | 'auto';
8
+ export type { CustomThemeColors };
9
+ export interface AppearanceSettings {
10
+ themeMode: ThemeMode;
11
+ customColors?: CustomThemeColors;
12
+ }
13
+ export interface AppearanceState {
14
+ settings: AppearanceSettings;
15
+ isInitialized: boolean;
16
+ }
17
+ export interface AppearanceSectionConfig {
18
+ /** Section title */
19
+ title?: string;
20
+ /** Section description/value */
21
+ description?: string;
22
+ /** Navigation route name */
23
+ route?: string;
24
+ /** Default navigation route name */
25
+ defaultRoute?: string;
26
+ /** Custom onPress handler (overrides navigation) */
27
+ onPress?: () => void;
28
+ }
29
+ export interface ThemeModeTextConfig {
30
+ title: string;
31
+ subtitle?: string;
32
+ description?: string;
33
+ features: string[];
34
+ }
35
+ export interface AppearanceTexts {
36
+ title?: string;
37
+ subtitle?: string;
38
+ themeSectionTitle?: string;
39
+ themeSectionDescription?: string;
40
+ featuresSectionTitle?: string;
41
+ colorsSectionTitle?: string;
42
+ colorsSectionDescription?: string;
43
+ previewSectionTitle?: string;
44
+ previewSectionDescription?: string;
45
+ resetButtonText?: string;
46
+ lightMode?: ThemeModeTextConfig;
47
+ darkMode?: ThemeModeTextConfig;
48
+ }