@oxyhq/services 5.14.0 → 5.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1157) hide show
  1. package/README.md +130 -54
  2. package/lib/commonjs/assets/assets/lottie/welcomeheader_background_op1.json +1 -0
  3. package/lib/commonjs/assets/lottie/welcomeheader_background_op1.json +1 -0
  4. package/lib/commonjs/core/HttpService.js +94 -4
  5. package/lib/commonjs/core/HttpService.js.map +1 -1
  6. package/lib/commonjs/core/OxyServices.base.js +3 -1
  7. package/lib/commonjs/core/OxyServices.base.js.map +1 -1
  8. package/lib/commonjs/core/mixins/OxyServices.assets.js +213 -22
  9. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
  10. package/lib/commonjs/core/mixins/OxyServices.auth.js +70 -99
  11. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  12. package/lib/commonjs/crypto/index.js +33 -0
  13. package/lib/commonjs/crypto/index.js.map +1 -0
  14. package/lib/commonjs/crypto/keyManager.js +208 -0
  15. package/lib/commonjs/crypto/keyManager.js.map +1 -0
  16. package/lib/commonjs/crypto/recoveryPhrase.js +137 -0
  17. package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
  18. package/lib/commonjs/crypto/signatureService.js +230 -0
  19. package/lib/commonjs/crypto/signatureService.js.map +1 -0
  20. package/lib/commonjs/i18n/locales/en-US.json +4 -0
  21. package/lib/commonjs/index.js +22 -0
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/ui/components/ActivityIndicator.js +203 -0
  24. package/lib/commonjs/ui/components/ActivityIndicator.js.map +1 -0
  25. package/lib/commonjs/ui/components/AutoHeightScrollView.js +46 -0
  26. package/lib/commonjs/ui/components/AutoHeightScrollView.js.map +1 -0
  27. package/lib/commonjs/ui/components/BottomSheet.js +407 -0
  28. package/lib/commonjs/ui/components/BottomSheet.js.map +1 -0
  29. package/lib/commonjs/ui/components/BottomSheetRouter.js +366 -0
  30. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -0
  31. package/lib/commonjs/ui/components/CrossFadeIcon.js +106 -0
  32. package/lib/commonjs/ui/components/CrossFadeIcon.js.map +1 -0
  33. package/lib/commonjs/ui/components/EmptyState.js +41 -0
  34. package/lib/commonjs/ui/components/EmptyState.js.map +1 -0
  35. package/lib/commonjs/ui/components/GroupedItem.js +87 -82
  36. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  37. package/lib/commonjs/ui/components/GroupedSection.js +25 -25
  38. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
  39. package/lib/commonjs/ui/components/Header.js +111 -47
  40. package/lib/commonjs/ui/components/Header.js.map +1 -1
  41. package/lib/commonjs/ui/components/HelperText.js +103 -0
  42. package/lib/commonjs/ui/components/HelperText.js.map +1 -0
  43. package/lib/commonjs/ui/components/Icon.js +109 -0
  44. package/lib/commonjs/ui/components/Icon.js.map +1 -0
  45. package/lib/commonjs/ui/components/IconButton/IconButton.js +159 -0
  46. package/lib/commonjs/ui/components/IconButton/IconButton.js.map +1 -0
  47. package/lib/commonjs/ui/components/IconButton/utils.js +155 -0
  48. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -0
  49. package/lib/commonjs/ui/components/LoadingState.js +47 -0
  50. package/lib/commonjs/ui/components/LoadingState.js.map +1 -0
  51. package/lib/commonjs/ui/components/OxyPayButton.js +1 -14
  52. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  53. package/lib/commonjs/ui/components/OxyProvider.js +41 -391
  54. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  55. package/lib/commonjs/ui/components/OxySignInButton.js +9 -13
  56. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  57. package/lib/commonjs/ui/components/ProfileCard.js +7 -4
  58. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  59. package/lib/commonjs/ui/components/QuickActions.js +7 -4
  60. package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
  61. package/lib/commonjs/ui/components/Section.js +4 -1
  62. package/lib/commonjs/ui/components/Section.js.map +1 -1
  63. package/lib/commonjs/ui/components/SectionTitle.js +6 -3
  64. package/lib/commonjs/ui/components/SectionTitle.js.map +1 -1
  65. package/lib/commonjs/ui/components/SettingRow.js +77 -0
  66. package/lib/commonjs/ui/components/SettingRow.js.map +1 -0
  67. package/lib/commonjs/ui/components/StepBasedScreen.js +188 -172
  68. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
  69. package/lib/commonjs/ui/components/Surface.js +258 -0
  70. package/lib/commonjs/ui/components/Surface.js.map +1 -0
  71. package/lib/commonjs/ui/components/TextField/Addons/Outline.js +46 -0
  72. package/lib/commonjs/ui/components/TextField/Addons/Outline.js.map +1 -0
  73. package/lib/commonjs/ui/components/TextField/Addons/Underline.js +53 -0
  74. package/lib/commonjs/ui/components/TextField/Addons/Underline.js.map +1 -0
  75. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js +155 -0
  76. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js.map +1 -0
  77. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js +144 -0
  78. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js.map +1 -0
  79. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js +137 -0
  80. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js.map +1 -0
  81. package/lib/commonjs/ui/components/TextField/Adornment/enums.js +22 -0
  82. package/lib/commonjs/ui/components/TextField/Adornment/enums.js.map +1 -0
  83. package/lib/commonjs/ui/components/TextField/Adornment/types.js +6 -0
  84. package/lib/commonjs/ui/components/TextField/Adornment/types.js.map +1 -0
  85. package/lib/commonjs/ui/components/TextField/Adornment/utils.js +62 -0
  86. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -0
  87. package/lib/commonjs/ui/components/TextField/Label/InputLabel.js +176 -0
  88. package/lib/commonjs/ui/components/TextField/Label/InputLabel.js.map +1 -0
  89. package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js +84 -0
  90. package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js.map +1 -0
  91. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js +377 -0
  92. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js.map +1 -0
  93. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js +361 -0
  94. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js.map +1 -0
  95. package/lib/commonjs/ui/components/TextField/constants.js +50 -0
  96. package/lib/commonjs/ui/components/TextField/constants.js.map +1 -0
  97. package/lib/commonjs/ui/components/TextField/helpers.js +490 -0
  98. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -0
  99. package/lib/commonjs/ui/components/TextField/types.js +6 -0
  100. package/lib/commonjs/ui/components/TextField/types.js.map +1 -0
  101. package/lib/commonjs/ui/components/TextField.js +339 -0
  102. package/lib/commonjs/ui/components/TextField.js.map +1 -0
  103. package/lib/commonjs/ui/components/TouchableRipple/Pressable.js +12 -0
  104. package/lib/commonjs/ui/components/TouchableRipple/Pressable.js.map +1 -0
  105. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js +258 -0
  106. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js.map +1 -0
  107. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js +107 -0
  108. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -0
  109. package/lib/commonjs/ui/components/TouchableRipple/utils.js +56 -0
  110. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -0
  111. package/lib/commonjs/ui/components/Typography/AnimatedText.js +62 -0
  112. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -0
  113. package/lib/commonjs/ui/components/Typography/types.js +26 -0
  114. package/lib/commonjs/ui/components/Typography/types.js.map +1 -0
  115. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +171 -0
  116. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -0
  117. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +409 -0
  118. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -0
  119. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +181 -0
  120. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -0
  121. package/lib/commonjs/ui/components/fileManagement/styles.js +868 -0
  122. package/lib/commonjs/ui/components/fileManagement/styles.js.map +1 -0
  123. package/lib/commonjs/ui/components/index.js +29 -1
  124. package/lib/commonjs/ui/components/index.js.map +1 -1
  125. package/lib/commonjs/ui/components/profile/EditBioModal.js +181 -0
  126. package/lib/commonjs/ui/components/profile/EditBioModal.js.map +1 -0
  127. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +207 -0
  128. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -0
  129. package/lib/commonjs/ui/components/profile/EditEmailModal.js +184 -0
  130. package/lib/commonjs/ui/components/profile/EditEmailModal.js.map +1 -0
  131. package/lib/commonjs/ui/components/profile/EditLinksModal.js +315 -0
  132. package/lib/commonjs/ui/components/profile/EditLinksModal.js.map +1 -0
  133. package/lib/commonjs/ui/components/profile/EditLocationModal.js +273 -0
  134. package/lib/commonjs/ui/components/profile/EditLocationModal.js.map +1 -0
  135. package/lib/commonjs/ui/components/profile/EditUsernameModal.js +180 -0
  136. package/lib/commonjs/ui/components/profile/EditUsernameModal.js.map +1 -0
  137. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +467 -0
  138. package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +1 -0
  139. package/lib/commonjs/ui/components/styles/overlay.js +85 -0
  140. package/lib/commonjs/ui/components/styles/overlay.js.map +1 -0
  141. package/lib/commonjs/ui/components/styles/shadow.js +132 -0
  142. package/lib/commonjs/ui/components/styles/shadow.js.map +1 -0
  143. package/lib/commonjs/ui/components/theming.js +116 -0
  144. package/lib/commonjs/ui/components/theming.js.map +1 -0
  145. package/lib/commonjs/ui/components/types.js +2 -0
  146. package/lib/commonjs/ui/components/types.js.map +1 -0
  147. package/lib/commonjs/ui/components/utils/forwardRef.js +18 -0
  148. package/lib/commonjs/ui/components/utils/forwardRef.js.map +1 -0
  149. package/lib/commonjs/ui/components/utils/hasTouchHandler.js +13 -0
  150. package/lib/commonjs/ui/components/utils/hasTouchHandler.js.map +1 -0
  151. package/lib/commonjs/ui/components/utils/roundLayoutSize.js +9 -0
  152. package/lib/commonjs/ui/components/utils/roundLayoutSize.js.map +1 -0
  153. package/lib/commonjs/ui/components/utils/splitStyles.js +50 -0
  154. package/lib/commonjs/ui/components/utils/splitStyles.js.map +1 -0
  155. package/lib/commonjs/ui/constants/iconColors.js +84 -0
  156. package/lib/commonjs/ui/constants/iconColors.js.map +1 -0
  157. package/lib/commonjs/ui/constants/spacing.js +50 -0
  158. package/lib/commonjs/ui/constants/spacing.js.map +1 -0
  159. package/lib/commonjs/ui/constants/theme.js +123 -0
  160. package/lib/commonjs/ui/constants/theme.js.map +1 -0
  161. package/lib/commonjs/ui/context/OxyContext.js +198 -853
  162. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  163. package/lib/commonjs/ui/context/ThemeContext.js +36 -0
  164. package/lib/commonjs/ui/context/ThemeContext.js.map +1 -0
  165. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +349 -0
  166. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -0
  167. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +73 -0
  168. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +1 -0
  169. package/lib/commonjs/ui/context/hooks/useLanguageManagement.js +112 -0
  170. package/lib/commonjs/ui/context/hooks/useLanguageManagement.js.map +1 -0
  171. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +261 -0
  172. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
  173. package/lib/commonjs/ui/context/hooks/useStorage.js +79 -0
  174. package/lib/commonjs/ui/context/hooks/useStorage.js.map +1 -0
  175. package/lib/commonjs/ui/context/utils/errorHandlers.js +90 -0
  176. package/lib/commonjs/ui/context/utils/errorHandlers.js.map +1 -0
  177. package/lib/commonjs/ui/context/utils/sessionHelpers.js +103 -0
  178. package/lib/commonjs/ui/context/utils/sessionHelpers.js.map +1 -0
  179. package/lib/commonjs/ui/context/utils/storageHelpers.js +119 -0
  180. package/lib/commonjs/ui/context/utils/storageHelpers.js.map +1 -0
  181. package/lib/commonjs/ui/hooks/index.js +14 -0
  182. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  183. package/lib/commonjs/ui/hooks/use-color-scheme.js +29 -0
  184. package/lib/commonjs/ui/hooks/use-color-scheme.js.map +1 -0
  185. package/lib/commonjs/ui/hooks/use-haptic-press.js +21 -0
  186. package/lib/commonjs/ui/hooks/use-haptic-press.js.map +1 -0
  187. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
  188. package/lib/commonjs/ui/hooks/useDeviceManagement.js +73 -0
  189. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -0
  190. package/lib/commonjs/ui/hooks/useLanguageManagement.js +112 -0
  191. package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -0
  192. package/lib/commonjs/ui/hooks/useProfileEditing.js +123 -0
  193. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -0
  194. package/lib/commonjs/ui/hooks/useSessionManagement.js +261 -0
  195. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -0
  196. package/lib/commonjs/ui/hooks/useStorage.js +79 -0
  197. package/lib/commonjs/ui/hooks/useStorage.js.map +1 -0
  198. package/lib/commonjs/ui/hooks/useThemeColors.js +31 -0
  199. package/lib/commonjs/ui/hooks/useThemeColors.js.map +1 -0
  200. package/lib/commonjs/ui/hooks/useThemeStyles.js +69 -0
  201. package/lib/commonjs/ui/hooks/useThemeStyles.js.map +1 -0
  202. package/lib/commonjs/ui/index.js +1 -4
  203. package/lib/commonjs/ui/index.js.map +1 -1
  204. package/lib/commonjs/ui/navigation/bottomSheetManager.js +180 -0
  205. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -0
  206. package/lib/commonjs/ui/navigation/routes.js +80 -154
  207. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  208. package/lib/commonjs/ui/screens/AccountCenterScreen.js +67 -67
  209. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  210. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +217 -98
  211. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  212. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +514 -429
  213. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  214. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +44 -59
  215. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  216. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +12 -19
  217. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  218. package/lib/commonjs/ui/screens/AppInfoScreen.js +36 -43
  219. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  220. package/lib/commonjs/ui/screens/FeedbackScreen.js +14 -14
  221. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  222. package/lib/commonjs/ui/screens/FileManagementScreen.js +674 -1968
  223. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  224. package/lib/commonjs/ui/screens/HelpSupportScreen.js +26 -23
  225. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  226. package/lib/commonjs/ui/screens/HistoryViewScreen.js +19 -59
  227. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  228. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +79 -170
  229. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  230. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +13 -40
  231. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  232. package/lib/commonjs/ui/screens/OxyAuthScreen.js +436 -0
  233. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -0
  234. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +18 -24
  235. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  236. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +21 -9
  237. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  238. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +180 -252
  239. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  240. package/lib/commonjs/ui/screens/ProfileScreen.js +7 -5
  241. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  242. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +32 -70
  243. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  244. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +26 -99
  245. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  246. package/lib/commonjs/ui/screens/SessionManagementScreen.js +24 -16
  247. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  248. package/lib/commonjs/ui/screens/UserLinksScreen.js +8 -10
  249. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  250. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +64 -67
  251. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  252. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +11 -8
  253. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  254. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +124 -122
  255. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  256. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +99 -112
  257. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  258. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +12 -9
  259. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  260. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +552 -79
  261. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  262. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +12 -8
  263. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  264. package/lib/commonjs/ui/styles/authStyles.js +5 -11
  265. package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
  266. package/lib/commonjs/ui/styles/spacing.js +60 -2
  267. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  268. package/lib/commonjs/ui/styles/theme.js +1 -1
  269. package/lib/commonjs/ui/types/fileManagement.js +6 -0
  270. package/lib/commonjs/ui/types/fileManagement.js.map +1 -0
  271. package/lib/commonjs/ui/types/navigation.js +6 -0
  272. package/lib/commonjs/ui/types/navigation.js.map +1 -0
  273. package/lib/commonjs/ui/utils/colorUtils.js +52 -0
  274. package/lib/commonjs/ui/utils/colorUtils.js.map +1 -0
  275. package/lib/commonjs/ui/utils/errorHandlers.js +90 -0
  276. package/lib/commonjs/ui/utils/errorHandlers.js.map +1 -0
  277. package/lib/commonjs/ui/utils/fileManagement.js +181 -0
  278. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -0
  279. package/lib/commonjs/ui/utils/sessionHelpers.js +103 -0
  280. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -0
  281. package/lib/commonjs/ui/utils/storageHelpers.js +119 -0
  282. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -0
  283. package/lib/commonjs/ui/utils/themeUtils.js +47 -0
  284. package/lib/commonjs/ui/utils/themeUtils.js.map +1 -0
  285. package/lib/commonjs/ui/utils/user-utils.js +53 -0
  286. package/lib/commonjs/ui/utils/user-utils.js.map +1 -0
  287. package/lib/commonjs/utils/errorUtils.js +14 -4
  288. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  289. package/lib/module/assets/assets/lottie/welcomeheader_background_op1.json +1 -0
  290. package/lib/module/assets/lottie/welcomeheader_background_op1.json +1 -0
  291. package/lib/module/core/HttpService.js +94 -4
  292. package/lib/module/core/HttpService.js.map +1 -1
  293. package/lib/module/core/OxyServices.base.js +3 -1
  294. package/lib/module/core/OxyServices.base.js.map +1 -1
  295. package/lib/module/core/mixins/OxyServices.assets.js +212 -20
  296. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  297. package/lib/module/core/mixins/OxyServices.auth.js +70 -99
  298. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  299. package/lib/module/crypto/index.js +16 -0
  300. package/lib/module/crypto/index.js.map +1 -0
  301. package/lib/module/crypto/keyManager.js +204 -0
  302. package/lib/module/crypto/keyManager.js.map +1 -0
  303. package/lib/module/crypto/recoveryPhrase.js +131 -0
  304. package/lib/module/crypto/recoveryPhrase.js.map +1 -0
  305. package/lib/module/crypto/signatureService.js +227 -0
  306. package/lib/module/crypto/signatureService.js.map +1 -0
  307. package/lib/module/i18n/locales/en-US.json +4 -0
  308. package/lib/module/index.js +2 -0
  309. package/lib/module/index.js.map +1 -1
  310. package/lib/module/ui/components/ActivityIndicator.js +198 -0
  311. package/lib/module/ui/components/ActivityIndicator.js.map +1 -0
  312. package/lib/module/ui/components/AutoHeightScrollView.js +41 -0
  313. package/lib/module/ui/components/AutoHeightScrollView.js.map +1 -0
  314. package/lib/module/ui/components/BottomSheet.js +402 -0
  315. package/lib/module/ui/components/BottomSheet.js.map +1 -0
  316. package/lib/module/ui/components/BottomSheetRouter.js +356 -0
  317. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -0
  318. package/lib/module/ui/components/CrossFadeIcon.js +101 -0
  319. package/lib/module/ui/components/CrossFadeIcon.js.map +1 -0
  320. package/lib/module/ui/components/EmptyState.js +36 -0
  321. package/lib/module/ui/components/EmptyState.js.map +1 -0
  322. package/lib/module/ui/components/GroupedItem.js +88 -82
  323. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  324. package/lib/module/ui/components/GroupedSection.js +23 -23
  325. package/lib/module/ui/components/GroupedSection.js.map +1 -1
  326. package/lib/module/ui/components/Header.js +109 -46
  327. package/lib/module/ui/components/Header.js.map +1 -1
  328. package/lib/module/ui/components/HelperText.js +99 -0
  329. package/lib/module/ui/components/HelperText.js.map +1 -0
  330. package/lib/module/ui/components/Icon.js +102 -0
  331. package/lib/module/ui/components/Icon.js.map +1 -0
  332. package/lib/module/ui/components/IconButton/IconButton.js +153 -0
  333. package/lib/module/ui/components/IconButton/IconButton.js.map +1 -0
  334. package/lib/module/ui/components/IconButton/utils.js +149 -0
  335. package/lib/module/ui/components/IconButton/utils.js.map +1 -0
  336. package/lib/module/ui/components/LoadingState.js +42 -0
  337. package/lib/module/ui/components/LoadingState.js.map +1 -0
  338. package/lib/module/ui/components/OxyPayButton.js +1 -14
  339. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  340. package/lib/module/ui/components/OxyProvider.js +45 -396
  341. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  342. package/lib/module/ui/components/OxySignInButton.js +9 -13
  343. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  344. package/lib/module/ui/components/ProfileCard.js +7 -4
  345. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  346. package/lib/module/ui/components/QuickActions.js +7 -4
  347. package/lib/module/ui/components/QuickActions.js.map +1 -1
  348. package/lib/module/ui/components/Section.js +4 -1
  349. package/lib/module/ui/components/Section.js.map +1 -1
  350. package/lib/module/ui/components/SectionTitle.js +6 -3
  351. package/lib/module/ui/components/SectionTitle.js.map +1 -1
  352. package/lib/module/ui/components/SettingRow.js +72 -0
  353. package/lib/module/ui/components/SettingRow.js.map +1 -0
  354. package/lib/module/ui/components/StepBasedScreen.js +190 -174
  355. package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
  356. package/lib/module/ui/components/Surface.js +252 -0
  357. package/lib/module/ui/components/Surface.js.map +1 -0
  358. package/lib/module/ui/components/TextField/Addons/Outline.js +40 -0
  359. package/lib/module/ui/components/TextField/Addons/Outline.js.map +1 -0
  360. package/lib/module/ui/components/TextField/Addons/Underline.js +47 -0
  361. package/lib/module/ui/components/TextField/Addons/Underline.js.map +1 -0
  362. package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js +148 -0
  363. package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js.map +1 -0
  364. package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js +141 -0
  365. package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js.map +1 -0
  366. package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js +135 -0
  367. package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js.map +1 -0
  368. package/lib/module/ui/components/TextField/Adornment/enums.js +18 -0
  369. package/lib/module/ui/components/TextField/Adornment/enums.js.map +1 -0
  370. package/lib/module/ui/components/TextField/Adornment/types.js +4 -0
  371. package/lib/module/ui/components/TextField/Adornment/types.js.map +1 -0
  372. package/lib/module/ui/components/TextField/Adornment/utils.js +57 -0
  373. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -0
  374. package/lib/module/ui/components/TextField/Label/InputLabel.js +171 -0
  375. package/lib/module/ui/components/TextField/Label/InputLabel.js.map +1 -0
  376. package/lib/module/ui/components/TextField/Label/LabelBackground.js +78 -0
  377. package/lib/module/ui/components/TextField/Label/LabelBackground.js.map +1 -0
  378. package/lib/module/ui/components/TextField/TextFieldFlat.js +372 -0
  379. package/lib/module/ui/components/TextField/TextFieldFlat.js.map +1 -0
  380. package/lib/module/ui/components/TextField/TextFieldOutlined.js +355 -0
  381. package/lib/module/ui/components/TextField/TextFieldOutlined.js.map +1 -0
  382. package/lib/module/ui/components/TextField/constants.js +46 -0
  383. package/lib/module/ui/components/TextField/constants.js.map +1 -0
  384. package/lib/module/ui/components/TextField/helpers.js +472 -0
  385. package/lib/module/ui/components/TextField/helpers.js.map +1 -0
  386. package/lib/module/ui/components/TextField/types.js +4 -0
  387. package/lib/module/ui/components/TextField/types.js.map +1 -0
  388. package/lib/module/ui/components/TextField.js +333 -0
  389. package/lib/module/ui/components/TextField.js.map +1 -0
  390. package/lib/module/ui/components/TouchableRipple/Pressable.js +9 -0
  391. package/lib/module/ui/components/TouchableRipple/Pressable.js.map +1 -0
  392. package/lib/module/ui/components/TouchableRipple/TouchableRipple.js +253 -0
  393. package/lib/module/ui/components/TouchableRipple/TouchableRipple.js.map +1 -0
  394. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js +101 -0
  395. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -0
  396. package/lib/module/ui/components/TouchableRipple/utils.js +50 -0
  397. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -0
  398. package/lib/module/ui/components/Typography/AnimatedText.js +56 -0
  399. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -0
  400. package/lib/module/ui/components/Typography/types.js +22 -0
  401. package/lib/module/ui/components/Typography/types.js.map +1 -0
  402. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +165 -0
  403. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -0
  404. package/lib/module/ui/components/fileManagement/FileViewer.js +402 -0
  405. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -0
  406. package/lib/module/ui/components/fileManagement/UploadPreview.js +175 -0
  407. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -0
  408. package/lib/module/ui/components/fileManagement/styles.js +864 -0
  409. package/lib/module/ui/components/fileManagement/styles.js.map +1 -0
  410. package/lib/module/ui/components/index.js +4 -1
  411. package/lib/module/ui/components/index.js.map +1 -1
  412. package/lib/module/ui/components/profile/EditBioModal.js +175 -0
  413. package/lib/module/ui/components/profile/EditBioModal.js.map +1 -0
  414. package/lib/module/ui/components/profile/EditDisplayNameModal.js +201 -0
  415. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -0
  416. package/lib/module/ui/components/profile/EditEmailModal.js +178 -0
  417. package/lib/module/ui/components/profile/EditEmailModal.js.map +1 -0
  418. package/lib/module/ui/components/profile/EditLinksModal.js +309 -0
  419. package/lib/module/ui/components/profile/EditLinksModal.js.map +1 -0
  420. package/lib/module/ui/components/profile/EditLocationModal.js +267 -0
  421. package/lib/module/ui/components/profile/EditLocationModal.js.map +1 -0
  422. package/lib/module/ui/components/profile/EditUsernameModal.js +174 -0
  423. package/lib/module/ui/components/profile/EditUsernameModal.js.map +1 -0
  424. package/lib/module/ui/components/profile/TwoFactorSetupModal.js +460 -0
  425. package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +1 -0
  426. package/lib/module/ui/components/styles/overlay.js +80 -0
  427. package/lib/module/ui/components/styles/overlay.js.map +1 -0
  428. package/lib/module/ui/components/styles/shadow.js +128 -0
  429. package/lib/module/ui/components/styles/shadow.js.map +1 -0
  430. package/lib/module/ui/components/theming.js +111 -0
  431. package/lib/module/ui/components/theming.js.map +1 -0
  432. package/lib/module/ui/components/types.js +2 -0
  433. package/lib/module/ui/components/types.js.map +1 -0
  434. package/lib/module/ui/components/utils/forwardRef.js +13 -0
  435. package/lib/module/ui/components/utils/forwardRef.js.map +1 -0
  436. package/lib/module/ui/components/utils/hasTouchHandler.js +9 -0
  437. package/lib/module/ui/components/utils/hasTouchHandler.js.map +1 -0
  438. package/lib/module/ui/components/utils/roundLayoutSize.js +4 -0
  439. package/lib/module/ui/components/utils/roundLayoutSize.js.map +1 -0
  440. package/lib/module/ui/components/utils/splitStyles.js +46 -0
  441. package/lib/module/ui/components/utils/splitStyles.js.map +1 -0
  442. package/lib/module/ui/constants/iconColors.js +78 -0
  443. package/lib/module/ui/constants/iconColors.js.map +1 -0
  444. package/lib/module/ui/constants/spacing.js +45 -0
  445. package/lib/module/ui/constants/spacing.js.map +1 -0
  446. package/lib/module/ui/constants/theme.js +119 -0
  447. package/lib/module/ui/constants/theme.js.map +1 -0
  448. package/lib/module/ui/context/OxyContext.js +199 -855
  449. package/lib/module/ui/context/OxyContext.js.map +1 -1
  450. package/lib/module/ui/context/ThemeContext.js +29 -0
  451. package/lib/module/ui/context/ThemeContext.js.map +1 -0
  452. package/lib/module/ui/context/hooks/useAuthOperations.js +344 -0
  453. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -0
  454. package/lib/module/ui/context/hooks/useDeviceManagement.js +68 -0
  455. package/lib/module/ui/context/hooks/useDeviceManagement.js.map +1 -0
  456. package/lib/module/ui/context/hooks/useLanguageManagement.js +107 -0
  457. package/lib/module/ui/context/hooks/useLanguageManagement.js.map +1 -0
  458. package/lib/module/ui/context/hooks/useSessionManagement.js +256 -0
  459. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
  460. package/lib/module/ui/context/hooks/useStorage.js +74 -0
  461. package/lib/module/ui/context/hooks/useStorage.js.map +1 -0
  462. package/lib/module/ui/context/utils/errorHandlers.js +83 -0
  463. package/lib/module/ui/context/utils/errorHandlers.js.map +1 -0
  464. package/lib/module/ui/context/utils/sessionHelpers.js +96 -0
  465. package/lib/module/ui/context/utils/sessionHelpers.js.map +1 -0
  466. package/lib/module/ui/context/utils/storageHelpers.js +111 -0
  467. package/lib/module/ui/context/utils/storageHelpers.js.map +1 -0
  468. package/lib/module/ui/hooks/index.js +2 -0
  469. package/lib/module/ui/hooks/index.js.map +1 -1
  470. package/lib/module/ui/hooks/use-color-scheme.js +26 -0
  471. package/lib/module/ui/hooks/use-color-scheme.js.map +1 -0
  472. package/lib/module/ui/hooks/use-haptic-press.js +17 -0
  473. package/lib/module/ui/hooks/use-haptic-press.js.map +1 -0
  474. package/lib/module/ui/hooks/useAssets.js.map +1 -1
  475. package/lib/module/ui/hooks/useDeviceManagement.js +68 -0
  476. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -0
  477. package/lib/module/ui/hooks/useLanguageManagement.js +107 -0
  478. package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -0
  479. package/lib/module/ui/hooks/useProfileEditing.js +118 -0
  480. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -0
  481. package/lib/module/ui/hooks/useSessionManagement.js +256 -0
  482. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -0
  483. package/lib/module/ui/hooks/useStorage.js +74 -0
  484. package/lib/module/ui/hooks/useStorage.js.map +1 -0
  485. package/lib/module/ui/hooks/useThemeColors.js +27 -0
  486. package/lib/module/ui/hooks/useThemeColors.js.map +1 -0
  487. package/lib/module/ui/hooks/useThemeStyles.js +64 -0
  488. package/lib/module/ui/hooks/useThemeStyles.js.map +1 -0
  489. package/lib/module/ui/index.js +2 -4
  490. package/lib/module/ui/index.js.map +1 -1
  491. package/lib/module/ui/navigation/bottomSheetManager.js +168 -0
  492. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -0
  493. package/lib/module/ui/navigation/routes.js +77 -152
  494. package/lib/module/ui/navigation/routes.js.map +1 -1
  495. package/lib/module/ui/screens/AccountCenterScreen.js +67 -67
  496. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  497. package/lib/module/ui/screens/AccountOverviewScreen.js +218 -100
  498. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  499. package/lib/module/ui/screens/AccountSettingsScreen.js +515 -430
  500. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  501. package/lib/module/ui/screens/AccountSwitcherScreen.js +45 -60
  502. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  503. package/lib/module/ui/screens/AccountVerificationScreen.js +12 -19
  504. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  505. package/lib/module/ui/screens/AppInfoScreen.js +36 -43
  506. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  507. package/lib/module/ui/screens/FeedbackScreen.js +14 -14
  508. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  509. package/lib/module/ui/screens/FileManagementScreen.js +670 -1965
  510. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  511. package/lib/module/ui/screens/HelpSupportScreen.js +26 -23
  512. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  513. package/lib/module/ui/screens/HistoryViewScreen.js +22 -62
  514. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  515. package/lib/module/ui/screens/LanguageSelectorScreen.js +80 -171
  516. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  517. package/lib/module/ui/screens/LegalDocumentsScreen.js +16 -43
  518. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  519. package/lib/module/ui/screens/OxyAuthScreen.js +432 -0
  520. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -0
  521. package/lib/module/ui/screens/PaymentGatewayScreen.js +18 -24
  522. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  523. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +21 -9
  524. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  525. package/lib/module/ui/screens/PrivacySettingsScreen.js +167 -239
  526. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  527. package/lib/module/ui/screens/ProfileScreen.js +7 -5
  528. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  529. package/lib/module/ui/screens/SavesCollectionsScreen.js +35 -73
  530. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  531. package/lib/module/ui/screens/SearchSettingsScreen.js +29 -102
  532. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  533. package/lib/module/ui/screens/SessionManagementScreen.js +24 -16
  534. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  535. package/lib/module/ui/screens/UserLinksScreen.js +8 -10
  536. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  537. package/lib/module/ui/screens/WelcomeNewUserScreen.js +65 -68
  538. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  539. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +11 -8
  540. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  541. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +124 -121
  542. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  543. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +101 -114
  544. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  545. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +12 -9
  546. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  547. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +554 -81
  548. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  549. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +12 -8
  550. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  551. package/lib/module/ui/styles/authStyles.js +5 -11
  552. package/lib/module/ui/styles/authStyles.js.map +1 -1
  553. package/lib/module/ui/styles/spacing.js +12 -2
  554. package/lib/module/ui/styles/spacing.js.map +1 -1
  555. package/lib/module/ui/styles/theme.js +1 -1
  556. package/lib/module/ui/types/fileManagement.js +4 -0
  557. package/lib/module/ui/types/fileManagement.js.map +1 -0
  558. package/lib/module/ui/types/navigation.js +4 -0
  559. package/lib/module/ui/types/navigation.js.map +1 -0
  560. package/lib/module/ui/utils/colorUtils.js +46 -0
  561. package/lib/module/ui/utils/colorUtils.js.map +1 -0
  562. package/lib/module/ui/utils/errorHandlers.js +83 -0
  563. package/lib/module/ui/utils/errorHandlers.js.map +1 -0
  564. package/lib/module/ui/utils/fileManagement.js +172 -0
  565. package/lib/module/ui/utils/fileManagement.js.map +1 -0
  566. package/lib/module/ui/utils/sessionHelpers.js +96 -0
  567. package/lib/module/ui/utils/sessionHelpers.js.map +1 -0
  568. package/lib/module/ui/utils/storageHelpers.js +111 -0
  569. package/lib/module/ui/utils/storageHelpers.js.map +1 -0
  570. package/lib/module/ui/utils/themeUtils.js +41 -0
  571. package/lib/module/ui/utils/themeUtils.js.map +1 -0
  572. package/lib/module/ui/utils/user-utils.js +46 -0
  573. package/lib/module/ui/utils/user-utils.js.map +1 -0
  574. package/lib/module/utils/errorUtils.js +14 -4
  575. package/lib/module/utils/errorUtils.js.map +1 -1
  576. package/lib/typescript/core/HttpService.d.ts +48 -0
  577. package/lib/typescript/core/HttpService.d.ts.map +1 -1
  578. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  579. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  580. package/lib/typescript/core/mixins/OxyServices.assets.d.ts +23 -1
  581. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  582. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +70 -42
  583. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  584. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  585. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  586. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  587. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  588. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  589. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  590. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  591. package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +1 -1
  592. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  593. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  594. package/lib/typescript/core/mixins/index.d.ts +26 -34
  595. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  596. package/lib/typescript/crypto/index.d.ts +11 -0
  597. package/lib/typescript/crypto/index.d.ts.map +1 -0
  598. package/lib/typescript/crypto/keyManager.d.ts +73 -0
  599. package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
  600. package/lib/typescript/crypto/recoveryPhrase.d.ts +57 -0
  601. package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
  602. package/lib/typescript/crypto/signatureService.d.ts +80 -0
  603. package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
  604. package/lib/typescript/index.d.ts +2 -0
  605. package/lib/typescript/index.d.ts.map +1 -1
  606. package/lib/typescript/models/interfaces.d.ts +1 -0
  607. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  608. package/lib/typescript/types/bip39.d.ts +28 -0
  609. package/lib/typescript/types/color.d.ts +18 -0
  610. package/lib/typescript/types/elliptic.d.ts +60 -0
  611. package/lib/typescript/types/expo-crypto.d.ts +28 -0
  612. package/lib/typescript/types/expo-random.d.ts +8 -0
  613. package/lib/typescript/types/expo-secure-store.d.ts +20 -0
  614. package/lib/typescript/types/expo-vector-icons.d.ts +9 -0
  615. package/lib/typescript/ui/components/ActivityIndicator.d.ts +45 -0
  616. package/lib/typescript/ui/components/ActivityIndicator.d.ts.map +1 -0
  617. package/lib/typescript/ui/components/AutoHeightScrollView.d.ts +23 -0
  618. package/lib/typescript/ui/components/AutoHeightScrollView.d.ts.map +1 -0
  619. package/lib/typescript/ui/components/BottomSheet.d.ts +29 -0
  620. package/lib/typescript/ui/components/BottomSheet.d.ts.map +1 -0
  621. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +14 -0
  622. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -0
  623. package/lib/typescript/ui/components/CrossFadeIcon.d.ts +27 -0
  624. package/lib/typescript/ui/components/CrossFadeIcon.d.ts.map +1 -0
  625. package/lib/typescript/ui/components/EmptyState.d.ts +8 -0
  626. package/lib/typescript/ui/components/EmptyState.d.ts.map +1 -0
  627. package/lib/typescript/ui/components/GroupedItem.d.ts +5 -9
  628. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  629. package/lib/typescript/ui/components/GroupedSection.d.ts +6 -7
  630. package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -1
  631. package/lib/typescript/ui/components/Header.d.ts +6 -1
  632. package/lib/typescript/ui/components/Header.d.ts.map +1 -1
  633. package/lib/typescript/ui/components/HelperText.d.ts +47 -0
  634. package/lib/typescript/ui/components/HelperText.d.ts.map +1 -0
  635. package/lib/typescript/ui/components/Icon.d.ts +60 -0
  636. package/lib/typescript/ui/components/Icon.d.ts.map +1 -0
  637. package/lib/typescript/ui/components/IconButton/IconButton.d.ts +99 -0
  638. package/lib/typescript/ui/components/IconButton/IconButton.d.ts.map +1 -0
  639. package/lib/typescript/ui/components/IconButton/utils.d.ts +19 -0
  640. package/lib/typescript/ui/components/IconButton/utils.d.ts.map +1 -0
  641. package/lib/typescript/ui/components/LoadingState.d.ts +9 -0
  642. package/lib/typescript/ui/components/LoadingState.d.ts.map +1 -0
  643. package/lib/typescript/ui/components/OxyPayButton.d.ts.map +1 -1
  644. package/lib/typescript/ui/components/OxyProvider.d.ts +4 -5
  645. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  646. package/lib/typescript/ui/components/OxySignInButton.d.ts +3 -8
  647. package/lib/typescript/ui/components/OxySignInButton.d.ts.map +1 -1
  648. package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -1
  649. package/lib/typescript/ui/components/QuickActions.d.ts.map +1 -1
  650. package/lib/typescript/ui/components/Section.d.ts +1 -1
  651. package/lib/typescript/ui/components/Section.d.ts.map +1 -1
  652. package/lib/typescript/ui/components/SectionTitle.d.ts +1 -1
  653. package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -1
  654. package/lib/typescript/ui/components/SettingRow.d.ts +14 -0
  655. package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -0
  656. package/lib/typescript/ui/components/StepBasedScreen.d.ts +3 -2
  657. package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -1
  658. package/lib/typescript/ui/components/Surface.d.ts +76 -0
  659. package/lib/typescript/ui/components/Surface.d.ts.map +1 -0
  660. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +16 -0
  661. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts.map +1 -0
  662. package/lib/typescript/ui/components/TextField/Addons/Underline.d.ts +19 -0
  663. package/lib/typescript/ui/components/TextField/Addons/Underline.d.ts.map +1 -0
  664. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +45 -0
  665. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAdornment.d.ts.map +1 -0
  666. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAffix.d.ts +73 -0
  667. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAffix.d.ts.map +1 -0
  668. package/lib/typescript/ui/components/TextField/Adornment/TextFieldIcon.d.ts +78 -0
  669. package/lib/typescript/ui/components/TextField/Adornment/TextFieldIcon.d.ts.map +1 -0
  670. package/lib/typescript/ui/components/TextField/Adornment/enums.d.ts +13 -0
  671. package/lib/typescript/ui/components/TextField/Adornment/enums.d.ts.map +1 -0
  672. package/lib/typescript/ui/components/TextField/Adornment/types.d.ts +12 -0
  673. package/lib/typescript/ui/components/TextField/Adornment/types.d.ts.map +1 -0
  674. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +12 -0
  675. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -0
  676. package/lib/typescript/ui/components/TextField/Label/InputLabel.d.ts +5 -0
  677. package/lib/typescript/ui/components/TextField/Label/InputLabel.d.ts.map +1 -0
  678. package/lib/typescript/ui/components/TextField/Label/LabelBackground.d.ts +4 -0
  679. package/lib/typescript/ui/components/TextField/Label/LabelBackground.d.ts.map +1 -0
  680. package/lib/typescript/ui/components/TextField/TextFieldFlat.d.ts +4 -0
  681. package/lib/typescript/ui/components/TextField/TextFieldFlat.d.ts.map +1 -0
  682. package/lib/typescript/ui/components/TextField/TextFieldOutlined.d.ts +4 -0
  683. package/lib/typescript/ui/components/TextField/TextFieldOutlined.d.ts.map +1 -0
  684. package/lib/typescript/ui/components/TextField/constants.d.ts +32 -0
  685. package/lib/typescript/ui/components/TextField/constants.d.ts.map +1 -0
  686. package/lib/typescript/ui/components/TextField/helpers.d.ts +97 -0
  687. package/lib/typescript/ui/components/TextField/helpers.d.ts.map +1 -0
  688. package/lib/typescript/ui/components/TextField/types.d.ts +156 -0
  689. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -0
  690. package/lib/typescript/ui/components/TextField.d.ts +192 -0
  691. package/lib/typescript/ui/components/TextField.d.ts.map +1 -0
  692. package/lib/typescript/ui/components/TouchableRipple/Pressable.d.ts +13 -0
  693. package/lib/typescript/ui/components/TouchableRipple/Pressable.d.ts.map +1 -0
  694. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.d.ts +62 -0
  695. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.d.ts.map +1 -0
  696. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.native.d.ts +25 -0
  697. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -0
  698. package/lib/typescript/ui/components/TouchableRipple/utils.d.ts +11 -0
  699. package/lib/typescript/ui/components/TouchableRipple/utils.d.ts.map +1 -0
  700. package/lib/typescript/ui/components/Typography/AnimatedText.d.ts +35 -0
  701. package/lib/typescript/ui/components/Typography/AnimatedText.d.ts.map +1 -0
  702. package/lib/typescript/ui/components/Typography/types.d.ts +19 -0
  703. package/lib/typescript/ui/components/Typography/types.d.ts.map +1 -0
  704. package/lib/typescript/ui/components/fileManagement/FileDetailsModal.d.ts +15 -0
  705. package/lib/typescript/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -0
  706. package/lib/typescript/ui/components/fileManagement/FileViewer.d.ts +18 -0
  707. package/lib/typescript/ui/components/fileManagement/FileViewer.d.ts.map +1 -0
  708. package/lib/typescript/ui/components/fileManagement/UploadPreview.d.ts +21 -0
  709. package/lib/typescript/ui/components/fileManagement/UploadPreview.d.ts.map +1 -0
  710. package/lib/typescript/ui/components/fileManagement/styles.d.ts +860 -0
  711. package/lib/typescript/ui/components/fileManagement/styles.d.ts.map +1 -0
  712. package/lib/typescript/ui/components/index.d.ts +4 -1
  713. package/lib/typescript/ui/components/index.d.ts.map +1 -1
  714. package/lib/typescript/ui/components/profile/EditBioModal.d.ts +11 -0
  715. package/lib/typescript/ui/components/profile/EditBioModal.d.ts.map +1 -0
  716. package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts +12 -0
  717. package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -0
  718. package/lib/typescript/ui/components/profile/EditEmailModal.d.ts +11 -0
  719. package/lib/typescript/ui/components/profile/EditEmailModal.d.ts.map +1 -0
  720. package/lib/typescript/ui/components/profile/EditLinksModal.d.ts +18 -0
  721. package/lib/typescript/ui/components/profile/EditLinksModal.d.ts.map +1 -0
  722. package/lib/typescript/ui/components/profile/EditLocationModal.d.ts +20 -0
  723. package/lib/typescript/ui/components/profile/EditLocationModal.d.ts.map +1 -0
  724. package/lib/typescript/ui/components/profile/EditUsernameModal.d.ts +11 -0
  725. package/lib/typescript/ui/components/profile/EditUsernameModal.d.ts.map +1 -0
  726. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +11 -0
  727. package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +1 -0
  728. package/lib/typescript/ui/components/styles/overlay.d.ts +4 -0
  729. package/lib/typescript/ui/components/styles/overlay.d.ts.map +1 -0
  730. package/lib/typescript/ui/components/styles/shadow.d.ts +3 -0
  731. package/lib/typescript/ui/components/styles/shadow.d.ts.map +1 -0
  732. package/lib/typescript/ui/components/theming.d.ts +8 -0
  733. package/lib/typescript/ui/components/theming.d.ts.map +1 -0
  734. package/lib/typescript/ui/components/types.d.ts +80 -0
  735. package/lib/typescript/ui/components/types.d.ts.map +1 -0
  736. package/lib/typescript/ui/components/utils/forwardRef.d.ts +12 -0
  737. package/lib/typescript/ui/components/utils/forwardRef.d.ts.map +1 -0
  738. package/lib/typescript/ui/components/utils/hasTouchHandler.d.ts +6 -0
  739. package/lib/typescript/ui/components/utils/hasTouchHandler.d.ts.map +1 -0
  740. package/lib/typescript/ui/components/utils/roundLayoutSize.d.ts +2 -0
  741. package/lib/typescript/ui/components/utils/roundLayoutSize.d.ts.map +1 -0
  742. package/lib/typescript/ui/components/utils/splitStyles.d.ts +20 -0
  743. package/lib/typescript/ui/components/utils/splitStyles.d.ts.map +1 -0
  744. package/lib/typescript/ui/constants/iconColors.d.ts +130 -0
  745. package/lib/typescript/ui/constants/iconColors.d.ts.map +1 -0
  746. package/lib/typescript/ui/constants/spacing.d.ts +33 -0
  747. package/lib/typescript/ui/constants/spacing.d.ts.map +1 -0
  748. package/lib/typescript/ui/constants/theme.d.ts +97 -0
  749. package/lib/typescript/ui/constants/theme.d.ts.map +1 -0
  750. package/lib/typescript/ui/context/OxyContext.d.ts +23 -17
  751. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  752. package/lib/typescript/ui/context/ThemeContext.d.ts +19 -0
  753. package/lib/typescript/ui/context/ThemeContext.d.ts.map +1 -0
  754. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +51 -0
  755. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -0
  756. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +27 -0
  757. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +1 -0
  758. package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts +25 -0
  759. package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts.map +1 -0
  760. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +39 -0
  761. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
  762. package/lib/typescript/ui/context/hooks/useStorage.d.ts +22 -0
  763. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +1 -0
  764. package/lib/typescript/ui/context/utils/errorHandlers.d.ts +30 -0
  765. package/lib/typescript/ui/context/utils/errorHandlers.d.ts.map +1 -0
  766. package/lib/typescript/ui/context/utils/sessionHelpers.d.ts +59 -0
  767. package/lib/typescript/ui/context/utils/sessionHelpers.d.ts.map +1 -0
  768. package/lib/typescript/ui/context/utils/storageHelpers.d.ts +31 -0
  769. package/lib/typescript/ui/context/utils/storageHelpers.d.ts.map +1 -0
  770. package/lib/typescript/ui/hooks/index.d.ts +2 -0
  771. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  772. package/lib/typescript/ui/hooks/use-color-scheme.d.ts +8 -0
  773. package/lib/typescript/ui/hooks/use-color-scheme.d.ts.map +1 -0
  774. package/lib/typescript/ui/hooks/use-haptic-press.d.ts +8 -0
  775. package/lib/typescript/ui/hooks/use-haptic-press.d.ts.map +1 -0
  776. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +27 -0
  777. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +1 -0
  778. package/lib/typescript/ui/hooks/useLanguageManagement.d.ts +25 -0
  779. package/lib/typescript/ui/hooks/useLanguageManagement.d.ts.map +1 -0
  780. package/lib/typescript/ui/hooks/useProfileEditing.d.ts +36 -0
  781. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -0
  782. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +39 -0
  783. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -0
  784. package/lib/typescript/ui/hooks/useStorage.d.ts +22 -0
  785. package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -0
  786. package/lib/typescript/ui/hooks/useThemeColors.d.ts +94 -0
  787. package/lib/typescript/ui/hooks/useThemeColors.d.ts.map +1 -0
  788. package/lib/typescript/ui/hooks/useThemeStyles.d.ts +45 -0
  789. package/lib/typescript/ui/hooks/useThemeStyles.d.ts.map +1 -0
  790. package/lib/typescript/ui/index.d.ts +2 -2
  791. package/lib/typescript/ui/index.d.ts.map +1 -1
  792. package/lib/typescript/ui/navigation/bottomSheetManager.d.ts +74 -0
  793. package/lib/typescript/ui/navigation/bottomSheetManager.d.ts.map +1 -0
  794. package/lib/typescript/ui/navigation/routes.d.ts +4 -7
  795. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
  796. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts +1 -1
  797. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  798. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts +1 -1
  799. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  800. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts +1 -1
  801. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  802. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts +1 -1
  803. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  804. package/lib/typescript/ui/screens/AccountVerificationScreen.d.ts +1 -1
  805. package/lib/typescript/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  806. package/lib/typescript/ui/screens/AppInfoScreen.d.ts +1 -1
  807. package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
  808. package/lib/typescript/ui/screens/FeedbackScreen.d.ts +1 -1
  809. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
  810. package/lib/typescript/ui/screens/FileManagementScreen.d.ts +1 -36
  811. package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -1
  812. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts +1 -1
  813. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  814. package/lib/typescript/ui/screens/HistoryViewScreen.d.ts +1 -1
  815. package/lib/typescript/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  816. package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts +1 -1
  817. package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  818. package/lib/typescript/ui/screens/LegalDocumentsScreen.d.ts +1 -1
  819. package/lib/typescript/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  820. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +16 -0
  821. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -0
  822. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +1 -1
  823. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  824. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts +1 -1
  825. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  826. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts +1 -1
  827. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  828. package/lib/typescript/ui/screens/ProfileScreen.d.ts +1 -1
  829. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  830. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts +1 -1
  831. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  832. package/lib/typescript/ui/screens/SearchSettingsScreen.d.ts +1 -1
  833. package/lib/typescript/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  834. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts +1 -1
  835. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  836. package/lib/typescript/ui/screens/UserLinksScreen.d.ts +2 -2
  837. package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -1
  838. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts +1 -1
  839. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  840. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts +1 -1
  841. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  842. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts +1 -1
  843. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  844. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts +1 -1
  845. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts +1 -1
  846. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  847. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts +1 -1
  848. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  849. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts +1 -1
  850. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  851. package/lib/typescript/ui/stores/authStore.d.ts +1 -2
  852. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  853. package/lib/typescript/ui/styles/authStyles.d.ts +0 -10
  854. package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -1
  855. package/lib/typescript/ui/styles/spacing.d.ts +7 -1
  856. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
  857. package/lib/typescript/ui/types/fileManagement.d.ts +41 -0
  858. package/lib/typescript/ui/types/fileManagement.d.ts.map +1 -0
  859. package/lib/typescript/ui/types/navigation.d.ts +36 -0
  860. package/lib/typescript/ui/types/navigation.d.ts.map +1 -0
  861. package/lib/typescript/ui/utils/colorUtils.d.ts +14 -0
  862. package/lib/typescript/ui/utils/colorUtils.d.ts.map +1 -0
  863. package/lib/typescript/ui/utils/errorHandlers.d.ts +30 -0
  864. package/lib/typescript/ui/utils/errorHandlers.d.ts.map +1 -0
  865. package/lib/typescript/ui/utils/fileManagement.d.ts +39 -0
  866. package/lib/typescript/ui/utils/fileManagement.d.ts.map +1 -0
  867. package/lib/typescript/ui/utils/sessionHelpers.d.ts +59 -0
  868. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -0
  869. package/lib/typescript/ui/utils/storageHelpers.d.ts +31 -0
  870. package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -0
  871. package/lib/typescript/ui/utils/themeUtils.d.ts +24 -0
  872. package/lib/typescript/ui/utils/themeUtils.d.ts.map +1 -0
  873. package/lib/typescript/ui/utils/user-utils.d.ts +29 -0
  874. package/lib/typescript/ui/utils/user-utils.d.ts.map +1 -0
  875. package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
  876. package/package.json +26 -15
  877. package/src/assets/lottie/welcomeheader_background_op1.json +1 -0
  878. package/src/core/HttpService.ts +97 -4
  879. package/src/core/OxyServices.base.ts +3 -1
  880. package/src/core/mixins/OxyServices.assets.ts +225 -27
  881. package/src/core/mixins/OxyServices.auth.ts +144 -80
  882. package/src/crypto/index.ts +20 -0
  883. package/src/crypto/keyManager.ts +213 -0
  884. package/src/crypto/recoveryPhrase.ts +146 -0
  885. package/src/crypto/signatureService.ts +258 -0
  886. package/src/i18n/locales/en-US.json +4 -0
  887. package/src/index.ts +13 -0
  888. package/src/models/interfaces.ts +1 -0
  889. package/src/types/bip39.d.ts +28 -0
  890. package/src/types/color.d.ts +18 -0
  891. package/src/types/elliptic.d.ts +60 -0
  892. package/src/types/expo-crypto.d.ts +28 -0
  893. package/src/types/expo-random.d.ts +8 -0
  894. package/src/types/expo-secure-store.d.ts +20 -0
  895. package/src/types/expo-vector-icons.d.ts +9 -0
  896. package/src/ui/components/ActivityIndicator.tsx +254 -0
  897. package/src/ui/components/AutoHeightScrollView.tsx +50 -0
  898. package/src/ui/components/BottomSheet.tsx +443 -0
  899. package/src/ui/components/BottomSheetRouter.tsx +407 -0
  900. package/src/ui/components/CrossFadeIcon.tsx +140 -0
  901. package/src/ui/components/EmptyState.tsx +39 -0
  902. package/src/ui/components/GroupedItem.tsx +98 -96
  903. package/src/ui/components/GroupedSection.tsx +24 -29
  904. package/src/ui/components/Header.tsx +129 -49
  905. package/src/ui/components/HelperText.tsx +160 -0
  906. package/src/ui/components/Icon.tsx +181 -0
  907. package/src/ui/components/IconButton/IconButton.tsx +235 -0
  908. package/src/ui/components/IconButton/utils.ts +190 -0
  909. package/src/ui/components/LoadingState.tsx +46 -0
  910. package/src/ui/components/OxyPayButton.tsx +1 -12
  911. package/src/ui/components/OxyProvider.tsx +49 -409
  912. package/src/ui/components/OxySignInButton.tsx +11 -18
  913. package/src/ui/components/ProfileCard.tsx +7 -4
  914. package/src/ui/components/QuickActions.tsx +7 -4
  915. package/src/ui/components/Section.tsx +6 -2
  916. package/src/ui/components/SectionTitle.tsx +7 -4
  917. package/src/ui/components/SettingRow.tsx +76 -0
  918. package/src/ui/components/StepBasedScreen.tsx +205 -187
  919. package/src/ui/components/Surface.tsx +384 -0
  920. package/src/ui/components/TextField/Addons/Outline.tsx +64 -0
  921. package/src/ui/components/TextField/Addons/Underline.tsx +78 -0
  922. package/src/ui/components/TextField/Adornment/TextFieldAdornment.tsx +208 -0
  923. package/src/ui/components/TextField/Adornment/TextFieldAffix.tsx +212 -0
  924. package/src/ui/components/TextField/Adornment/TextFieldIcon.tsx +195 -0
  925. package/src/ui/components/TextField/Adornment/enums.tsx +12 -0
  926. package/src/ui/components/TextField/Adornment/types.tsx +11 -0
  927. package/src/ui/components/TextField/Adornment/utils.ts +66 -0
  928. package/src/ui/components/TextField/Label/InputLabel.tsx +219 -0
  929. package/src/ui/components/TextField/Label/LabelBackground.tsx +100 -0
  930. package/src/ui/components/TextField/TextFieldFlat.tsx +488 -0
  931. package/src/ui/components/TextField/TextFieldOutlined.tsx +464 -0
  932. package/src/ui/components/TextField/constants.tsx +48 -0
  933. package/src/ui/components/TextField/helpers.tsx +612 -0
  934. package/src/ui/components/TextField/types.tsx +156 -0
  935. package/src/ui/components/TextField.tsx +578 -0
  936. package/src/ui/components/TouchableRipple/Pressable.tsx +41 -0
  937. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +146 -0
  938. package/src/ui/components/TouchableRipple/TouchableRipple.tsx +347 -0
  939. package/src/ui/components/TouchableRipple/utils.ts +66 -0
  940. package/src/ui/components/Typography/AnimatedText.tsx +107 -0
  941. package/src/ui/components/Typography/types.tsx +22 -0
  942. package/src/ui/components/fileManagement/FileDetailsModal.tsx +137 -0
  943. package/src/ui/components/fileManagement/FileViewer.tsx +380 -0
  944. package/src/ui/components/fileManagement/UploadPreview.tsx +175 -0
  945. package/src/ui/components/fileManagement/styles.ts +860 -0
  946. package/src/ui/components/index.ts +4 -1
  947. package/src/ui/components/profile/EditBioModal.tsx +184 -0
  948. package/src/ui/components/profile/EditDisplayNameModal.tsx +205 -0
  949. package/src/ui/components/profile/EditEmailModal.tsx +188 -0
  950. package/src/ui/components/profile/EditLinksModal.tsx +316 -0
  951. package/src/ui/components/profile/EditLocationModal.tsx +278 -0
  952. package/src/ui/components/profile/EditUsernameModal.tsx +183 -0
  953. package/src/ui/components/profile/TwoFactorSetupModal.tsx +442 -0
  954. package/src/ui/components/styles/overlay.tsx +88 -0
  955. package/src/ui/components/styles/shadow.tsx +136 -0
  956. package/src/ui/components/theming.tsx +114 -0
  957. package/src/ui/components/types.tsx +90 -0
  958. package/src/ui/components/utils/forwardRef.tsx +23 -0
  959. package/src/ui/components/utils/hasTouchHandler.tsx +23 -0
  960. package/src/ui/components/utils/roundLayoutSize.ts +2 -0
  961. package/src/ui/components/utils/splitStyles.ts +60 -0
  962. package/src/ui/constants/iconColors.ts +88 -0
  963. package/src/ui/constants/spacing.ts +45 -0
  964. package/src/ui/constants/theme.ts +120 -0
  965. package/src/ui/context/OxyContext.tsx +276 -894
  966. package/src/ui/context/ThemeContext.tsx +41 -0
  967. package/src/ui/context/hooks/useAuthOperations.ts +400 -0
  968. package/src/ui/context/hooks/useDeviceManagement.ts +108 -0
  969. package/src/ui/context/hooks/useLanguageManagement.ts +152 -0
  970. package/src/ui/context/hooks/useSessionManagement.ts +378 -0
  971. package/src/ui/context/hooks/useStorage.ts +104 -0
  972. package/src/ui/context/utils/errorHandlers.ts +136 -0
  973. package/src/ui/context/utils/sessionHelpers.ts +146 -0
  974. package/src/ui/context/utils/storageHelpers.ts +134 -0
  975. package/src/ui/hooks/index.ts +3 -1
  976. package/src/ui/hooks/use-color-scheme.ts +24 -0
  977. package/src/ui/hooks/use-haptic-press.ts +15 -0
  978. package/src/ui/hooks/useAssets.ts +1 -1
  979. package/src/ui/hooks/useDeviceManagement.ts +108 -0
  980. package/src/ui/hooks/useLanguageManagement.ts +152 -0
  981. package/src/ui/hooks/useProfileEditing.ts +151 -0
  982. package/src/ui/hooks/useSessionManagement.ts +378 -0
  983. package/src/ui/hooks/useStorage.ts +104 -0
  984. package/src/ui/hooks/useThemeColors.ts +26 -0
  985. package/src/ui/hooks/useThemeStyles.ts +85 -0
  986. package/src/ui/index.ts +1 -4
  987. package/src/ui/navigation/bottomSheetManager.ts +191 -0
  988. package/src/ui/navigation/routes.ts +107 -189
  989. package/src/ui/screens/AccountCenterScreen.tsx +67 -63
  990. package/src/ui/screens/AccountOverviewScreen.tsx +237 -95
  991. package/src/ui/screens/AccountSettingsScreen.tsx +546 -474
  992. package/src/ui/screens/AccountSwitcherScreen.tsx +113 -116
  993. package/src/ui/screens/AccountVerificationScreen.tsx +18 -20
  994. package/src/ui/screens/AppInfoScreen.tsx +37 -38
  995. package/src/ui/screens/FeedbackScreen.tsx +15 -12
  996. package/src/ui/screens/FileManagementScreen.tsx +764 -2026
  997. package/src/ui/screens/HelpSupportScreen.tsx +30 -23
  998. package/src/ui/screens/HistoryViewScreen.tsx +25 -56
  999. package/src/ui/screens/LanguageSelectorScreen.tsx +84 -170
  1000. package/src/ui/screens/LegalDocumentsScreen.tsx +18 -41
  1001. package/src/ui/screens/OxyAuthScreen.tsx +402 -0
  1002. package/src/ui/screens/PaymentGatewayScreen.tsx +20 -22
  1003. package/src/ui/screens/PremiumSubscriptionScreen.tsx +13 -10
  1004. package/src/ui/screens/PrivacySettingsScreen.tsx +150 -198
  1005. package/src/ui/screens/ProfileScreen.tsx +7 -6
  1006. package/src/ui/screens/SavesCollectionsScreen.tsx +39 -62
  1007. package/src/ui/screens/SearchSettingsScreen.tsx +36 -86
  1008. package/src/ui/screens/SessionManagementScreen.tsx +25 -17
  1009. package/src/ui/screens/UserLinksScreen.tsx +10 -11
  1010. package/src/ui/screens/WelcomeNewUserScreen.tsx +41 -41
  1011. package/src/ui/screens/karma/KarmaAboutScreen.tsx +13 -9
  1012. package/src/ui/screens/karma/KarmaCenterScreen.tsx +70 -70
  1013. package/src/ui/screens/karma/KarmaFAQScreen.tsx +96 -96
  1014. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +15 -10
  1015. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +605 -60
  1016. package/src/ui/screens/karma/KarmaRulesScreen.tsx +14 -9
  1017. package/src/ui/stores/authStore.ts +1 -1
  1018. package/src/ui/styles/authStyles.ts +5 -11
  1019. package/src/ui/styles/spacing.ts +21 -2
  1020. package/src/ui/styles/theme.ts +1 -1
  1021. package/src/ui/types/fileManagement.ts +51 -0
  1022. package/src/ui/types/navigation.ts +61 -0
  1023. package/src/ui/utils/colorUtils.ts +46 -0
  1024. package/src/ui/utils/errorHandlers.ts +136 -0
  1025. package/src/ui/utils/fileManagement.ts +190 -0
  1026. package/src/ui/utils/sessionHelpers.ts +146 -0
  1027. package/src/ui/utils/storageHelpers.ts +134 -0
  1028. package/src/ui/utils/themeUtils.ts +43 -0
  1029. package/src/ui/utils/user-utils.ts +58 -0
  1030. package/src/utils/errorUtils.ts +14 -4
  1031. package/lib/commonjs/ui/components/internal/TextField.js +0 -665
  1032. package/lib/commonjs/ui/components/internal/TextField.js.map +0 -1
  1033. package/lib/commonjs/ui/navigation/OxyRouter.js +0 -213
  1034. package/lib/commonjs/ui/navigation/OxyRouter.js.map +0 -1
  1035. package/lib/commonjs/ui/navigation/types.js +0 -13
  1036. package/lib/commonjs/ui/navigation/types.js.map +0 -1
  1037. package/lib/commonjs/ui/screens/AccountManagementDemo.js +0 -298
  1038. package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +0 -1
  1039. package/lib/commonjs/ui/screens/RecoverAccountScreen.js +0 -137
  1040. package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +0 -1
  1041. package/lib/commonjs/ui/screens/SignInScreen.js +0 -270
  1042. package/lib/commonjs/ui/screens/SignInScreen.js.map +0 -1
  1043. package/lib/commonjs/ui/screens/SignUpScreen.js +0 -229
  1044. package/lib/commonjs/ui/screens/SignUpScreen.js.map +0 -1
  1045. package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js +0 -135
  1046. package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js.map +0 -1
  1047. package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js +0 -165
  1048. package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js.map +0 -1
  1049. package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js +0 -159
  1050. package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js.map +0 -1
  1051. package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js +0 -144
  1052. package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js.map +0 -1
  1053. package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js +0 -358
  1054. package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js.map +0 -1
  1055. package/lib/commonjs/ui/screens/steps/SignInTotpStep.js +0 -188
  1056. package/lib/commonjs/ui/screens/steps/SignInTotpStep.js.map +0 -1
  1057. package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js +0 -509
  1058. package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js.map +0 -1
  1059. package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js +0 -200
  1060. package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js.map +0 -1
  1061. package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js +0 -185
  1062. package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js.map +0 -1
  1063. package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js +0 -138
  1064. package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js.map +0 -1
  1065. package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js +0 -150
  1066. package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js.map +0 -1
  1067. package/lib/module/package.json +0 -1
  1068. package/lib/module/ui/components/internal/TextField.js +0 -660
  1069. package/lib/module/ui/components/internal/TextField.js.map +0 -1
  1070. package/lib/module/ui/navigation/OxyRouter.js +0 -209
  1071. package/lib/module/ui/navigation/OxyRouter.js.map +0 -1
  1072. package/lib/module/ui/navigation/types.js +0 -22
  1073. package/lib/module/ui/navigation/types.js.map +0 -1
  1074. package/lib/module/ui/screens/AccountManagementDemo.js +0 -295
  1075. package/lib/module/ui/screens/AccountManagementDemo.js.map +0 -1
  1076. package/lib/module/ui/screens/RecoverAccountScreen.js +0 -133
  1077. package/lib/module/ui/screens/RecoverAccountScreen.js.map +0 -1
  1078. package/lib/module/ui/screens/SignInScreen.js +0 -265
  1079. package/lib/module/ui/screens/SignInScreen.js.map +0 -1
  1080. package/lib/module/ui/screens/SignUpScreen.js +0 -224
  1081. package/lib/module/ui/screens/SignUpScreen.js.map +0 -1
  1082. package/lib/module/ui/screens/steps/RecoverRequestStep.js +0 -130
  1083. package/lib/module/ui/screens/steps/RecoverRequestStep.js.map +0 -1
  1084. package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js +0 -160
  1085. package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js.map +0 -1
  1086. package/lib/module/ui/screens/steps/RecoverSuccessStep.js +0 -154
  1087. package/lib/module/ui/screens/steps/RecoverSuccessStep.js.map +0 -1
  1088. package/lib/module/ui/screens/steps/RecoverVerifyStep.js +0 -139
  1089. package/lib/module/ui/screens/steps/RecoverVerifyStep.js.map +0 -1
  1090. package/lib/module/ui/screens/steps/SignInPasswordStep.js +0 -353
  1091. package/lib/module/ui/screens/steps/SignInPasswordStep.js.map +0 -1
  1092. package/lib/module/ui/screens/steps/SignInTotpStep.js +0 -183
  1093. package/lib/module/ui/screens/steps/SignInTotpStep.js.map +0 -1
  1094. package/lib/module/ui/screens/steps/SignInUsernameStep.js +0 -504
  1095. package/lib/module/ui/screens/steps/SignInUsernameStep.js.map +0 -1
  1096. package/lib/module/ui/screens/steps/SignUpIdentityStep.js +0 -195
  1097. package/lib/module/ui/screens/steps/SignUpIdentityStep.js.map +0 -1
  1098. package/lib/module/ui/screens/steps/SignUpSecurityStep.js +0 -180
  1099. package/lib/module/ui/screens/steps/SignUpSecurityStep.js.map +0 -1
  1100. package/lib/module/ui/screens/steps/SignUpSummaryStep.js +0 -133
  1101. package/lib/module/ui/screens/steps/SignUpSummaryStep.js.map +0 -1
  1102. package/lib/module/ui/screens/steps/SignUpWelcomeStep.js +0 -145
  1103. package/lib/module/ui/screens/steps/SignUpWelcomeStep.js.map +0 -1
  1104. package/lib/typescript/ui/components/internal/TextField.d.ts +0 -41
  1105. package/lib/typescript/ui/components/internal/TextField.d.ts.map +0 -1
  1106. package/lib/typescript/ui/navigation/OxyRouter.d.ts +0 -7
  1107. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +0 -1
  1108. package/lib/typescript/ui/navigation/types.d.ts +0 -141
  1109. package/lib/typescript/ui/navigation/types.d.ts.map +0 -1
  1110. package/lib/typescript/ui/screens/AccountManagementDemo.d.ts +0 -8
  1111. package/lib/typescript/ui/screens/AccountManagementDemo.d.ts.map +0 -1
  1112. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +0 -5
  1113. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +0 -1
  1114. package/lib/typescript/ui/screens/SignInScreen.d.ts +0 -5
  1115. package/lib/typescript/ui/screens/SignInScreen.d.ts.map +0 -1
  1116. package/lib/typescript/ui/screens/SignUpScreen.d.ts +0 -5
  1117. package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +0 -1
  1118. package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts +0 -24
  1119. package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts.map +0 -1
  1120. package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts +0 -24
  1121. package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts.map +0 -1
  1122. package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts +0 -19
  1123. package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts.map +0 -1
  1124. package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts +0 -26
  1125. package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts.map +0 -1
  1126. package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts +0 -30
  1127. package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts.map +0 -1
  1128. package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts +0 -19
  1129. package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts.map +0 -1
  1130. package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts +0 -28
  1131. package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts.map +0 -1
  1132. package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts +0 -26
  1133. package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts.map +0 -1
  1134. package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts +0 -27
  1135. package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts.map +0 -1
  1136. package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts +0 -17
  1137. package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts.map +0 -1
  1138. package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts +0 -14
  1139. package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts.map +0 -1
  1140. package/src/ui/components/internal/TextField.tsx +0 -808
  1141. package/src/ui/navigation/OxyRouter.tsx +0 -216
  1142. package/src/ui/navigation/types.ts +0 -164
  1143. package/src/ui/screens/AccountManagementDemo.tsx +0 -297
  1144. package/src/ui/screens/RecoverAccountScreen.tsx +0 -141
  1145. package/src/ui/screens/SignInScreen.tsx +0 -297
  1146. package/src/ui/screens/SignUpScreen.tsx +0 -239
  1147. package/src/ui/screens/steps/RecoverRequestStep.tsx +0 -143
  1148. package/src/ui/screens/steps/RecoverResetPasswordStep.tsx +0 -162
  1149. package/src/ui/screens/steps/RecoverSuccessStep.tsx +0 -148
  1150. package/src/ui/screens/steps/RecoverVerifyStep.tsx +0 -154
  1151. package/src/ui/screens/steps/SignInPasswordStep.tsx +0 -343
  1152. package/src/ui/screens/steps/SignInTotpStep.tsx +0 -163
  1153. package/src/ui/screens/steps/SignInUsernameStep.tsx +0 -560
  1154. package/src/ui/screens/steps/SignUpIdentityStep.tsx +0 -217
  1155. package/src/ui/screens/steps/SignUpSecurityStep.tsx +0 -207
  1156. package/src/ui/screens/steps/SignUpSummaryStep.tsx +0 -155
  1157. package/src/ui/screens/steps/SignUpWelcomeStep.tsx +0 -127
@@ -2,17 +2,33 @@
2
2
 
3
3
  import React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
4
4
  import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator, ScrollView, TextInput, Animated, Platform, Image } from 'react-native';
5
- import { useOxy } from '../context/OxyContext';
6
5
  import OxyIcon from '../components/icon/OxyIcon';
7
6
  import { Ionicons } from '@expo/vector-icons';
7
+ // @ts-ignore - MaterialCommunityIcons is available at runtime
8
+ import { MaterialCommunityIcons } from '@expo/vector-icons';
8
9
  import { toast } from '../../lib/sonner';
9
10
  import { fontFamilies } from '../styles/fonts';
10
11
  import { confirmAction } from '../utils/confirmAction';
11
12
  import { useAuthStore } from '../stores/authStore';
12
- import { Header, GroupedSection } from '../components';
13
+ import { GroupedSection } from '../components';
13
14
  import { useI18n } from '../hooks/useI18n';
14
- import QRCode from 'react-native-qrcode-svg';
15
+ import { useThemeStyles } from '../hooks/useThemeStyles';
16
+ import { useColorScheme } from '../hooks/use-color-scheme';
17
+ import { Colors } from '../constants/theme';
18
+ import { normalizeColorScheme, normalizeTheme } from '../utils/themeUtils';
19
+ import { useHapticPress } from '../hooks/use-haptic-press';
20
+ import { EditDisplayNameModal } from '../components/profile/EditDisplayNameModal';
21
+ import { EditUsernameModal } from '../components/profile/EditUsernameModal';
22
+ import { EditEmailModal } from '../components/profile/EditEmailModal';
23
+ import { EditBioModal } from '../components/profile/EditBioModal';
24
+ import { EditLocationModal } from '../components/profile/EditLocationModal';
25
+ import { EditLinksModal } from '../components/profile/EditLinksModal';
26
+ import { TwoFactorSetupModal } from '../components/profile/TwoFactorSetupModal';
27
+ import { getDisplayName } from '../utils/user-utils';
15
28
  import { TTLCache, registerCacheForCleanup } from '../../utils/cache';
29
+ import QRCode from 'react-native-qrcode-svg';
30
+ import { useOxy } from '../context/OxyContext';
31
+ import { SECTION_GAP_LARGE, COMPONENT_GAP, HEADER_PADDING_TOP_SETTINGS, createScreenContentStyle } from '../constants/spacing';
16
32
 
17
33
  // Caches for link metadata and location searches
18
34
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
@@ -26,19 +42,21 @@ const AccountSettingsScreen = ({
26
42
  goBack,
27
43
  navigate,
28
44
  initialField,
29
- initialSection
45
+ initialSection,
46
+ scrollTo
30
47
  }) => {
48
+ // Use useOxy() hook for OxyContext values
31
49
  const {
32
50
  user: userFromContext,
33
51
  oxyServices,
34
52
  isLoading: authLoading,
35
53
  isAuthenticated,
36
- showBottomSheet,
37
54
  activeSessionId
38
55
  } = useOxy();
39
56
  const {
40
57
  t
41
58
  } = useI18n();
59
+ const normalizedTheme = normalizeTheme(theme);
42
60
  const updateUser = useAuthStore(state => state.updateUser);
43
61
  // Get user directly from store to ensure reactivity to avatar changes
44
62
  const user = useAuthStore(state => state.user) || userFromContext;
@@ -85,7 +103,20 @@ const AccountSettingsScreen = ({
85
103
  const [links, setLinks] = useState([]);
86
104
  const [avatarFileId, setAvatarFileId] = useState('');
87
105
 
88
- // Editing states
106
+ // Modal visibility states
107
+ const [showEditDisplayNameModal, setShowEditDisplayNameModal] = useState(false);
108
+ const [showEditUsernameModal, setShowEditUsernameModal] = useState(false);
109
+ const [showEditEmailModal, setShowEditEmailModal] = useState(false);
110
+ const [showEditBioModal, setShowEditBioModal] = useState(false);
111
+ const [showEditLocationModal, setShowEditLocationModal] = useState(false);
112
+ const [showEditLinksModal, setShowEditLinksModal] = useState(false);
113
+ const [showTwoFactorModal, setShowTwoFactorModal] = useState(false);
114
+
115
+ // Location and links state (for display only - modals handle editing)
116
+ const [locations, setLocations] = useState([]);
117
+ const [linksMetadata, setLinksMetadata] = useState([]);
118
+
119
+ // State for inline editing (used by old renderEditingField code)
89
120
  const [editingField, setEditingField] = useState(null);
90
121
  const [tempDisplayName, setTempDisplayName] = useState('');
91
122
  const [tempLastName, setTempLastName] = useState('');
@@ -94,27 +125,29 @@ const AccountSettingsScreen = ({
94
125
  const [tempBio, setTempBio] = useState('');
95
126
  const [tempLocation, setTempLocation] = useState('');
96
127
  const [tempLinks, setTempLinks] = useState([]);
128
+ const [tempLocations, setTempLocations] = useState([]);
97
129
  const [tempLinksWithMetadata, setTempLinksWithMetadata] = useState([]);
130
+ const [isAddingLocation, setIsAddingLocation] = useState(false);
131
+ const [isSearchingLocations, setIsSearchingLocations] = useState(false);
132
+ const [locationSearchResults, setLocationSearchResults] = useState([]);
133
+ const [newLocationQuery, setNewLocationQuery] = useState('');
98
134
  const [isAddingLink, setIsAddingLink] = useState(false);
99
- const [newLinkUrl, setNewLinkUrl] = useState('');
100
135
  const [isFetchingMetadata, setIsFetchingMetadata] = useState(false);
136
+ const [newLinkUrl, setNewLinkUrl] = useState('');
101
137
 
102
- // Location management state
103
- const [tempLocations, setTempLocations] = useState([]);
104
- const [isAddingLocation, setIsAddingLocation] = useState(false);
105
- const [newLocationQuery, setNewLocationQuery] = useState('');
106
- const [locationSearchResults, setLocationSearchResults] = useState([]);
107
- const [isSearchingLocations, setIsSearchingLocations] = useState(false);
138
+ // Get theme colors using centralized hook
139
+ const colorScheme = useColorScheme();
140
+ const themeStyles = useThemeStyles(theme || 'light', colorScheme);
141
+ const handlePressIn = useHapticPress();
108
142
 
109
- // Memoize theme-related calculations to prevent unnecessary recalculations
110
- const themeStyles = useMemo(() => {
111
- const isDarkTheme = theme === 'dark';
112
- return {
113
- isDarkTheme,
114
- backgroundColor: isDarkTheme ? '#121212' : '#f2f2f2',
115
- primaryColor: '#007AFF'
116
- };
117
- }, [theme]);
143
+ // Extract colors for convenience - ensure it's always defined
144
+ // useThemeStyles always returns colors, but add safety check for edge cases
145
+ const colors = themeStyles.colors || Colors[normalizeColorScheme(colorScheme, theme || 'light')];
146
+
147
+ // Memoize onBack handler to provide stable reference for Reanimated
148
+ const handleBack = useMemo(() => {
149
+ return goBack || onClose || undefined;
150
+ }, [goBack, onClose]);
118
151
 
119
152
  // Memoize animation function to prevent recreation on every render
120
153
  const animateSaveButton = useCallback((toValue, onComplete) => {
@@ -158,7 +191,7 @@ const AccountSettingsScreen = ({
158
191
 
159
192
  // Handle locations - convert single location to array format
160
193
  if (user.locations && Array.isArray(user.locations)) {
161
- setTempLocations(user.locations.map((loc, index) => ({
194
+ setLocations(user.locations.map((loc, index) => ({
162
195
  id: loc.id || `existing-${index}`,
163
196
  name: loc.name,
164
197
  label: loc.label,
@@ -166,13 +199,13 @@ const AccountSettingsScreen = ({
166
199
  })));
167
200
  } else if (user.location) {
168
201
  // Convert single location string to array format
169
- setTempLocations([{
202
+ setLocations([{
170
203
  id: 'existing-0',
171
204
  name: user.location,
172
205
  label: 'Location'
173
206
  }]);
174
207
  } else {
175
- setTempLocations([]);
208
+ setLocations([]);
176
209
  }
177
210
 
178
211
  // Handle links - simple and direct like other fields
@@ -183,7 +216,7 @@ const AccountSettingsScreen = ({
183
216
  ...link,
184
217
  id: link.id || `existing-${index}`
185
218
  }));
186
- setTempLinksWithMetadata(metadataWithIds);
219
+ setLinksMetadata(metadataWithIds);
187
220
  } else if (Array.isArray(user.links)) {
188
221
  const simpleLinks = user.links.map(l => typeof l === 'string' ? l : l.link).filter(Boolean);
189
222
  setLinks(simpleLinks);
@@ -194,10 +227,10 @@ const AccountSettingsScreen = ({
194
227
  image: undefined,
195
228
  id: `existing-${index}`
196
229
  }));
197
- setTempLinksWithMetadata(linksWithMetadata);
230
+ setLinksMetadata(linksWithMetadata);
198
231
  } else if (user.website) {
199
232
  setLinks([user.website]);
200
- setTempLinksWithMetadata([{
233
+ setLinksMetadata([{
201
234
  url: user.website,
202
235
  title: user.website.replace(/^https?:\/\//, '').replace(/\/$/, ''),
203
236
  description: `Link to ${user.website}`,
@@ -206,7 +239,7 @@ const AccountSettingsScreen = ({
206
239
  }]);
207
240
  } else {
208
241
  setLinks([]);
209
- setTempLinksWithMetadata([]);
242
+ setLinksMetadata([]);
210
243
  }
211
244
  isInitializedRef.current = true;
212
245
  }
@@ -239,6 +272,109 @@ const AccountSettingsScreen = ({
239
272
  // Delay constant for scroll completion
240
273
  const SCROLL_DELAY_MS = 600;
241
274
 
275
+ // Helper functions for inline editing (legacy support)
276
+ const startEditing = useCallback((field, initialValue) => {
277
+ setEditingField(field);
278
+ switch (field) {
279
+ case 'displayName':
280
+ setTempDisplayName(initialValue || displayName);
281
+ setTempLastName(lastName);
282
+ break;
283
+ case 'username':
284
+ setTempUsername(initialValue || username);
285
+ break;
286
+ case 'email':
287
+ setTempEmail(initialValue || email);
288
+ break;
289
+ case 'bio':
290
+ setTempBio(initialValue || bio);
291
+ break;
292
+ case 'location':
293
+ setTempLocations([...locations]);
294
+ break;
295
+ case 'links':
296
+ setTempLinksWithMetadata([...linksMetadata]);
297
+ break;
298
+ case 'twoFactor':
299
+ // No temp state needed for twoFactor
300
+ break;
301
+ }
302
+ }, [displayName, lastName, username, email, bio, locations, linksMetadata]);
303
+ const cancelEditing = useCallback(() => {
304
+ setEditingField(null);
305
+ setTempDisplayName('');
306
+ setTempLastName('');
307
+ setTempUsername('');
308
+ setTempEmail('');
309
+ setTempBio('');
310
+ setTempLocation('');
311
+ setTempLinks([]);
312
+ setTempLocations([]);
313
+ setTempLinksWithMetadata([]);
314
+ setIsAddingLocation(false);
315
+ setIsSearchingLocations(false);
316
+ setLocationSearchResults([]);
317
+ setNewLocationQuery('');
318
+ setIsAddingLink(false);
319
+ setIsFetchingMetadata(false);
320
+ setNewLinkUrl('');
321
+ }, []);
322
+ const saveField = useCallback(async field => {
323
+ if (!field) return;
324
+ setIsSaving(true);
325
+ try {
326
+ switch (field) {
327
+ case 'displayName':
328
+ await updateUser({
329
+ name: {
330
+ first: tempDisplayName,
331
+ last: tempLastName
332
+ }
333
+ }, oxyServices);
334
+ setDisplayName(tempDisplayName);
335
+ setLastName(tempLastName);
336
+ break;
337
+ case 'username':
338
+ await updateUser({
339
+ username: tempUsername
340
+ }, oxyServices);
341
+ setUsername(tempUsername);
342
+ break;
343
+ case 'email':
344
+ await updateUser({
345
+ email: tempEmail
346
+ }, oxyServices);
347
+ setEmail(tempEmail);
348
+ break;
349
+ case 'bio':
350
+ await updateUser({
351
+ bio: tempBio
352
+ }, oxyServices);
353
+ setBio(tempBio);
354
+ break;
355
+ case 'location':
356
+ await updateUser({
357
+ locations: tempLocations
358
+ }, oxyServices);
359
+ setLocations(tempLocations);
360
+ break;
361
+ case 'links':
362
+ await updateUser({
363
+ linksMetadata: tempLinksWithMetadata
364
+ }, oxyServices);
365
+ setLinksMetadata(tempLinksWithMetadata);
366
+ setLinks(tempLinksWithMetadata.map(l => l.url));
367
+ break;
368
+ }
369
+ setEditingField(null);
370
+ toast.success(t('editProfile.toasts.saved') || 'Saved');
371
+ } catch (error) {
372
+ toast.error(error?.message || t('editProfile.toasts.saveFailed') || 'Failed to save');
373
+ } finally {
374
+ setIsSaving(false);
375
+ }
376
+ }, [tempDisplayName, tempLastName, tempUsername, tempEmail, tempBio, tempLocations, tempLinksWithMetadata, updateUser, oxyServices, t]);
377
+
242
378
  // Helper to get current value for a field
243
379
  const getFieldCurrentValue = useCallback(field => {
244
380
  switch (field) {
@@ -282,13 +418,10 @@ const AccountSettingsScreen = ({
282
418
  // Scroll to the specified section if initialSection is provided and we haven't scrolled yet
283
419
  if (initialSection && !hasScrolledToSectionRef.current) {
284
420
  const sectionY = sectionYPositions[initialSection];
285
- if (sectionY !== null && sectionY !== undefined && scrollViewRef.current) {
421
+ if (sectionY !== null && sectionY !== undefined && scrollTo) {
286
422
  requestAnimationFrame(() => {
287
423
  requestAnimationFrame(() => {
288
- scrollViewRef.current?.scrollTo({
289
- y: Math.max(0, sectionY - SCROLL_OFFSET),
290
- animated: true
291
- });
424
+ scrollTo(Math.max(0, sectionY - SCROLL_OFFSET), true);
292
425
  hasScrolledToSectionRef.current = true;
293
426
  });
294
427
  });
@@ -305,11 +438,11 @@ const AccountSettingsScreen = ({
305
438
  username,
306
439
  email,
307
440
  bio,
308
- location: tempLocations.length > 0 ? tempLocations[0].name : '',
441
+ location: locations.length > 0 ? locations[0].name : '',
309
442
  // Keep backward compatibility
310
- locations: tempLocations.length > 0 ? tempLocations : undefined,
443
+ locations: locations.length > 0 ? locations : undefined,
311
444
  links,
312
- linksMetadata: tempLinksWithMetadata.length > 0 ? tempLinksWithMetadata : undefined
445
+ linksMetadata: linksMetadata.length > 0 ? linksMetadata : undefined
313
446
  };
314
447
 
315
448
  // Handle name field
@@ -347,207 +480,106 @@ const AccountSettingsScreen = ({
347
480
  });
348
481
  };
349
482
  const openAvatarPicker = useCallback(() => {
350
- showBottomSheet?.({
351
- screen: 'FileManagement',
352
- props: {
353
- selectMode: true,
354
- multiSelect: false,
355
- afterSelect: 'back',
356
- onSelect: async file => {
357
- if (!file.contentType.startsWith('image/')) {
358
- toast.error(t('editProfile.toasts.selectImage') || 'Please select an image file');
359
- return;
360
- }
361
- // If already selected, do nothing
362
- if (file.id === avatarFileId) {
363
- toast.info?.(t('editProfile.toasts.avatarUnchanged') || 'Avatar unchanged');
364
- return;
365
- }
483
+ toast.info?.(t('editProfile.toasts.avatarPickerUnavailable') || 'Avatar picker is not available in this build.');
484
+ }, [t]);
366
485
 
367
- // Optimistically update UI immediately
368
- setOptimisticAvatarId(file.id);
369
- setAvatarFileId(file.id);
486
+ // Handlers to open modals
487
+ const handleOpenDisplayNameModal = useCallback(() => setShowEditDisplayNameModal(true), []);
488
+ const handleOpenUsernameModal = useCallback(() => setShowEditUsernameModal(true), []);
489
+ const handleOpenEmailModal = useCallback(() => setShowEditEmailModal(true), []);
490
+ const handleOpenBioModal = useCallback(() => setShowEditBioModal(true), []);
491
+ const handleOpenLocationModal = useCallback(() => setShowEditLocationModal(true), []);
492
+ const handleOpenLinksModal = useCallback(() => setShowEditLinksModal(true), []);
493
+ const handleOpenTwoFactorModal = useCallback(() => setShowTwoFactorModal(true), []);
370
494
 
371
- // Auto-save avatar immediately (does not close edit profile screen)
372
- (async () => {
373
- try {
374
- setIsUpdatingAvatar(true);
495
+ // Handler to refresh data after modal saves
496
+ // Note: Access user directly from store when invoked to get latest value,
497
+ // not from closure which may be stale after modal saves update the backend
498
+ const handleModalSave = useCallback(() => {
499
+ // Get fresh user data from store to ensure we have the latest values
500
+ // after the modal's save operation updates the backend
501
+ // Read from store directly (not from closure) to avoid stale data
502
+ const currentUser = useAuthStore.getState().user;
375
503
 
376
- // Update file visibility to public for avatar
377
- try {
378
- await oxyServices.assetUpdateVisibility(file.id, 'public');
379
- } catch (visError) {
380
- // Continue with avatar update even if visibility update fails
381
- }
504
+ // Reload user data to reflect changes
505
+ if (currentUser) {
506
+ const userDisplayName = typeof currentUser.name === 'string' ? currentUser.name : currentUser.name?.first || currentUser.name?.full || '';
507
+ const userLastName = typeof currentUser.name === 'object' ? currentUser.name?.last || '' : '';
508
+ setDisplayName(userDisplayName);
509
+ setLastName(userLastName);
510
+ setUsername(currentUser.username || '');
511
+ setEmail(currentUser.email || '');
512
+ setBio(currentUser.bio || '');
382
513
 
383
- // Update on server directly without using updateUser (which triggers fetchUser)
384
- // This prevents the entire component from re-rendering
385
- await oxyServices.updateProfile({
386
- avatar: file.id
387
- });
388
-
389
- // Update the user object in store directly without triggering fetchUser
390
- // This prevents isLoading from being set to true, which would show loading screen
391
- const currentUser = useAuthStore.getState().user;
392
- if (currentUser) {
393
- useAuthStore.setState({
394
- user: {
395
- ...currentUser,
396
- avatar: file.id
397
- }
398
- // Don't update lastUserFetch to avoid cache issues
399
- });
400
- }
401
-
402
- // Update local state - keep avatarFileId set to the new value
403
- // Don't clear optimisticAvatarId yet - let it persist until user object updates
404
- // This ensures the avatar displays correctly
405
- setAvatarFileId(file.id);
406
- toast.success(t('editProfile.toasts.avatarUpdated') || 'Avatar updated');
407
-
408
- // Scroll to avatar section after a brief delay to ensure UI is updated
409
- requestAnimationFrame(() => {
410
- requestAnimationFrame(() => {
411
- if (avatarSectionY !== null) {
412
- scrollViewRef.current?.scrollTo({
413
- y: Math.max(0, avatarSectionY - 100),
414
- // Offset to show section near top
415
- animated: true
416
- });
417
- } else {
418
- // Fallback: scroll to approximate position
419
- scrollViewRef.current?.scrollTo({
420
- y: 200,
421
- // Approximate position of avatar section
422
- animated: true
423
- });
424
- }
425
- });
426
- });
427
- } catch (e) {
428
- // Revert optimistic update on error
429
- setAvatarFileId(typeof user?.avatar === 'string' ? user.avatar : '');
430
- setOptimisticAvatarId(null);
431
- toast.error(e.message || t('editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar');
432
- } finally {
433
- setIsUpdatingAvatar(false);
434
- }
435
- })();
436
- },
437
- // Limit to images client-side by using photos view if later exposed
438
- disabledMimeTypes: ['video/', 'audio/', 'application/pdf']
514
+ // Reload locations and links
515
+ if (currentUser.locations && Array.isArray(currentUser.locations)) {
516
+ setLocations(currentUser.locations.map((loc, index) => ({
517
+ id: loc.id || `existing-${index}`,
518
+ name: loc.name,
519
+ label: loc.label,
520
+ coordinates: loc.coordinates
521
+ })));
522
+ } else if (currentUser.location) {
523
+ setLocations([{
524
+ id: 'existing-0',
525
+ name: currentUser.location,
526
+ label: 'Location'
527
+ }]);
528
+ } else {
529
+ setLocations([]);
530
+ }
531
+ if (currentUser.linksMetadata && Array.isArray(currentUser.linksMetadata)) {
532
+ setLinksMetadata(currentUser.linksMetadata.map((link, index) => ({
533
+ ...link,
534
+ id: link.id || `existing-${index}`
535
+ })));
536
+ } else {
537
+ setLinksMetadata([]);
439
538
  }
440
- });
441
- }, [showBottomSheet, oxyServices, avatarFileId, updateUser, user]);
442
- const startEditing = useCallback((type, currentValue) => {
443
- switch (type) {
444
- case 'displayName':
445
- setTempDisplayName(displayName);
446
- setTempLastName(lastName);
447
- break;
448
- case 'username':
449
- setTempUsername(currentValue);
450
- break;
451
- case 'email':
452
- setTempEmail(currentValue);
453
- break;
454
- case 'bio':
455
- setTempBio(currentValue);
456
- break;
457
- case 'location':
458
- // Don't reset the locations - keep the existing data
459
- break;
460
- case 'links':
461
- // Don't reset the metadata - keep the existing rich metadata
462
- // The tempLinksWithMetadata should already contain the rich data from the database
463
- break;
464
- case 'twoFactor':
465
- // Reset TOTP temp state
466
- setTotpSetupUrl(null);
467
- setTotpCode('');
468
- break;
469
539
  }
470
- setEditingField(type);
471
- }, [displayName, lastName]);
540
+ }, []); // Empty dependency array - callback reads fresh data from store at call time
472
541
 
473
- // Handle initialField prop - must be after startEditing and openAvatarPicker are declared
542
+ // Handle initialField prop - open appropriate modal
474
543
  useEffect(() => {
475
- // Clear any pending timeout
476
- if (initialFieldTimeoutRef.current) {
477
- clearTimeout(initialFieldTimeoutRef.current);
478
- initialFieldTimeoutRef.current = null;
479
- }
480
-
481
- // If initialField changed, reset the flag
482
- if (previousInitialFieldRef.current !== initialField) {
483
- hasSetInitialFieldRef.current = false;
484
- previousInitialFieldRef.current = initialField;
485
- }
486
-
487
- // Set the editing field if initialField is provided and we haven't set it yet
488
- if (initialField && !hasSetInitialFieldRef.current) {
544
+ if (initialField) {
489
545
  // Special handling for avatar - open avatar picker directly
490
546
  if (initialField === 'avatar') {
491
- // Wait for section to be scrolled, then open picker
492
- initialFieldTimeoutRef.current = setTimeout(() => {
547
+ setTimeout(() => {
493
548
  openAvatarPicker();
494
- hasSetInitialFieldRef.current = true;
495
- }, SCROLL_DELAY_MS);
549
+ }, 300);
496
550
  } else {
497
- // For other fields, get current value and start editing after scroll
498
- const currentValue = getFieldCurrentValue(initialField);
499
-
500
- // Wait for section to be scrolled, then start editing
501
- initialFieldTimeoutRef.current = setTimeout(() => {
502
- startEditing(initialField, currentValue);
503
- hasSetInitialFieldRef.current = true;
504
- }, SCROLL_DELAY_MS);
505
- }
506
- }
507
- return () => {
508
- if (initialFieldTimeoutRef.current) {
509
- clearTimeout(initialFieldTimeoutRef.current);
510
- initialFieldTimeoutRef.current = null;
551
+ // Open appropriate modal
552
+ setTimeout(() => {
553
+ switch (initialField) {
554
+ case 'displayName':
555
+ setShowEditDisplayNameModal(true);
556
+ break;
557
+ case 'username':
558
+ setShowEditUsernameModal(true);
559
+ break;
560
+ case 'email':
561
+ setShowEditEmailModal(true);
562
+ break;
563
+ case 'bio':
564
+ setShowEditBioModal(true);
565
+ break;
566
+ case 'location':
567
+ setShowEditLocationModal(true);
568
+ break;
569
+ case 'links':
570
+ setShowEditLinksModal(true);
571
+ break;
572
+ case 'twoFactor':
573
+ setShowTwoFactorModal(true);
574
+ break;
575
+ }
576
+ }, 300);
511
577
  }
512
- };
513
- }, [initialField, getFieldCurrentValue, startEditing, openAvatarPicker]);
514
- const saveField = type => {
515
- animateSaveButton(0.95); // Scale down slightly for animation
516
-
517
- switch (type) {
518
- case 'displayName':
519
- setDisplayName(tempDisplayName);
520
- setLastName(tempLastName);
521
- break;
522
- case 'username':
523
- setUsername(tempUsername);
524
- break;
525
- case 'email':
526
- setEmail(tempEmail);
527
- break;
528
- case 'bio':
529
- setBio(tempBio);
530
- break;
531
- case 'location':
532
- // Locations are handled in the main save function
533
- break;
534
- case 'links':
535
- // Save both URLs and metadata
536
- setLinks(tempLinksWithMetadata.map(link => link.url));
537
- // Store full metadata for database
538
- setTempLinksWithMetadata(tempLinksWithMetadata);
539
- break;
540
578
  }
579
+ }, [initialField, openAvatarPicker]);
541
580
 
542
- // Complete animation, then reset and close editing
543
- animateSaveButton(1, () => {
544
- setEditingField(null);
545
- });
546
- };
547
- const cancelEditing = () => {
548
- setEditingField(null);
549
- };
550
- const fetchLinkMetadata = async url => {
581
+ // Removed fetchLinkMetadata - now handled by EditLinksModal
582
+ const _fetchLinkMetadata = async url => {
551
583
  // Check cache first
552
584
  const cacheKey = url.toLowerCase().trim();
553
585
  const cached = linkMetadataCache.get(cacheKey);
@@ -583,6 +615,8 @@ const AccountSettingsScreen = ({
583
615
  setIsFetchingMetadata(false);
584
616
  }
585
617
  };
618
+
619
+ // Helper functions for inline editing (legacy support - still used by renderEditingField)
586
620
  const searchLocations = async query => {
587
621
  if (!query.trim() || query.length < 3) {
588
622
  setLocationSearchResults([]);
@@ -639,7 +673,7 @@ const AccountSettingsScreen = ({
639
673
  const addLink = async () => {
640
674
  if (!newLinkUrl.trim()) return;
641
675
  const url = newLinkUrl.trim();
642
- const metadata = await fetchLinkMetadata(url);
676
+ const metadata = await _fetchLinkMetadata(url);
643
677
  setTempLinksWithMetadata(prev => [...prev, metadata]);
644
678
  setNewLinkUrl('');
645
679
  setIsAddingLink(false);
@@ -655,12 +689,18 @@ const AccountSettingsScreen = ({
655
689
  return newLinks;
656
690
  });
657
691
  };
692
+
693
+ // Memoize display name for avatar
694
+ const displayNameForAvatar = useMemo(() => getDisplayName(user), [user]);
695
+
696
+ // Legacy renderEditingField function (still used for twoFactor and fallback)
658
697
  const renderEditingField = type => {
698
+ if (!type) return null;
659
699
  if (type === 'twoFactor') {
660
700
  const enabled = !!user?.privacySettings?.twoFactorEnabled;
661
701
  return /*#__PURE__*/_jsx(View, {
662
702
  style: [styles.editingFieldContainer, {
663
- backgroundColor: themeStyles.backgroundColor
703
+ backgroundColor: colors.background
664
704
  }],
665
705
  children: /*#__PURE__*/_jsx(View, {
666
706
  style: styles.editingFieldContent,
@@ -670,7 +710,7 @@ const AccountSettingsScreen = ({
670
710
  style: styles.editingFieldHeader,
671
711
  children: /*#__PURE__*/_jsx(Text, {
672
712
  style: [styles.editingFieldLabel, {
673
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
713
+ color: colors.text
674
714
  }],
675
715
  children: "Two\u2011Factor Authentication (TOTP)"
676
716
  })
@@ -679,7 +719,9 @@ const AccountSettingsScreen = ({
679
719
  style: styles.editingFieldDescription,
680
720
  children: "Protect your account with a 6\u2011digit code from an authenticator app. Scan the QR code then enter the code to enable."
681
721
  }), !totpSetupUrl ? /*#__PURE__*/_jsxs(TouchableOpacity, {
682
- style: styles.primaryButton,
722
+ style: [styles.primaryButton, {
723
+ backgroundColor: colors.iconSecurity
724
+ }],
683
725
  disabled: isTotpBusy,
684
726
  onPress: async () => {
685
727
  if (!activeSessionId) {
@@ -734,7 +776,9 @@ const AccountSettingsScreen = ({
734
776
  maxLength: 6
735
777
  })]
736
778
  }), /*#__PURE__*/_jsxs(TouchableOpacity, {
737
- style: styles.primaryButton,
779
+ style: [styles.primaryButton, {
780
+ backgroundColor: colors.iconSecurity
781
+ }],
738
782
  disabled: isTotpBusy || totpCode.length !== 6,
739
783
  onPress: async () => {
740
784
  if (!activeSessionId) {
@@ -791,7 +835,7 @@ const AccountSettingsScreen = ({
791
835
  })]
792
836
  }), /*#__PURE__*/_jsxs(TouchableOpacity, {
793
837
  style: [styles.primaryButton, {
794
- backgroundColor: '#d9534f'
838
+ backgroundColor: colors.sidebarIconSharing
795
839
  }],
796
840
  disabled: isTotpBusy || totpCode.length !== 6,
797
841
  onPress: async () => {
@@ -832,7 +876,7 @@ const AccountSettingsScreen = ({
832
876
  if (type === 'displayName') {
833
877
  return /*#__PURE__*/_jsx(View, {
834
878
  style: [styles.editingFieldContainer, {
835
- backgroundColor: themeStyles.backgroundColor
879
+ backgroundColor: colors.background
836
880
  }],
837
881
  children: /*#__PURE__*/_jsx(View, {
838
882
  style: styles.editingFieldContent,
@@ -842,7 +886,7 @@ const AccountSettingsScreen = ({
842
886
  style: styles.editingFieldHeader,
843
887
  children: /*#__PURE__*/_jsx(Text, {
844
888
  style: [styles.editingFieldLabel, {
845
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
889
+ color: colors.text
846
890
  }],
847
891
  children: "Edit Full Name"
848
892
  })
@@ -863,7 +907,7 @@ const AccountSettingsScreen = ({
863
907
  value: tempDisplayName,
864
908
  onChangeText: setTempDisplayName,
865
909
  placeholder: "Enter your first name",
866
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
910
+ placeholderTextColor: colors.secondaryText,
867
911
  autoFocus: true,
868
912
  selectionColor: themeStyles.primaryColor
869
913
  })]
@@ -879,7 +923,7 @@ const AccountSettingsScreen = ({
879
923
  value: tempLastName,
880
924
  onChangeText: setTempLastName,
881
925
  placeholder: "Enter your last name",
882
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
926
+ placeholderTextColor: colors.secondaryText,
883
927
  selectionColor: themeStyles.primaryColor
884
928
  })]
885
929
  })]
@@ -891,7 +935,7 @@ const AccountSettingsScreen = ({
891
935
  if (type === 'location') {
892
936
  return /*#__PURE__*/_jsx(View, {
893
937
  style: [styles.editingFieldContainer, {
894
- backgroundColor: themeStyles.backgroundColor
938
+ backgroundColor: colors.background
895
939
  }],
896
940
  children: /*#__PURE__*/_jsx(View, {
897
941
  style: styles.editingFieldContent,
@@ -901,7 +945,7 @@ const AccountSettingsScreen = ({
901
945
  style: styles.editingFieldHeader,
902
946
  children: /*#__PURE__*/_jsx(Text, {
903
947
  style: [styles.editingFieldLabel, {
904
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
948
+ color: colors.text
905
949
  }],
906
950
  children: "Manage Your Locations"
907
951
  })
@@ -910,7 +954,9 @@ const AccountSettingsScreen = ({
910
954
  children: [/*#__PURE__*/_jsxs(Text, {
911
955
  style: styles.addLocationLabel,
912
956
  children: ["Add New Location", isSearchingLocations && /*#__PURE__*/_jsx(Text, {
913
- style: styles.searchingText,
957
+ style: [styles.searchingText, {
958
+ color: colors.iconSecurity
959
+ }],
914
960
  children: " \u2022 Searching..."
915
961
  })]
916
962
  }), /*#__PURE__*/_jsxs(View, {
@@ -923,7 +969,7 @@ const AccountSettingsScreen = ({
923
969
  searchLocations(text);
924
970
  },
925
971
  placeholder: "Search for a location...",
926
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
972
+ placeholderTextColor: colors.secondaryText,
927
973
  autoFocus: true,
928
974
  selectionColor: themeStyles.primaryColor
929
975
  }), /*#__PURE__*/_jsx(View, {
@@ -964,7 +1010,9 @@ const AccountSettingsScreen = ({
964
1010
  size: 20,
965
1011
  color: themeStyles.primaryColor
966
1012
  }), /*#__PURE__*/_jsx(Text, {
967
- style: styles.addLocationTriggerText,
1013
+ style: [styles.addLocationTriggerText, {
1014
+ color: colors.iconSecurity
1015
+ }],
968
1016
  children: "Add a new location"
969
1017
  })]
970
1018
  }), tempLocations.length > 0 && /*#__PURE__*/_jsxs(View, {
@@ -1009,7 +1057,9 @@ const AccountSettingsScreen = ({
1009
1057
  numberOfLines: 1,
1010
1058
  children: location.name
1011
1059
  }), location.label && /*#__PURE__*/_jsx(View, {
1012
- style: styles.locationLabel,
1060
+ style: [styles.locationLabel, {
1061
+ backgroundColor: colors.iconSecurity
1062
+ }],
1013
1063
  children: /*#__PURE__*/_jsx(Text, {
1014
1064
  style: styles.locationLabelText,
1015
1065
  children: location.label
@@ -1049,7 +1099,7 @@ const AccountSettingsScreen = ({
1049
1099
  if (type === 'links') {
1050
1100
  return /*#__PURE__*/_jsx(View, {
1051
1101
  style: [styles.editingFieldContainer, {
1052
- backgroundColor: themeStyles.backgroundColor
1102
+ backgroundColor: colors.background
1053
1103
  }],
1054
1104
  children: /*#__PURE__*/_jsx(View, {
1055
1105
  style: styles.editingFieldContent,
@@ -1059,7 +1109,7 @@ const AccountSettingsScreen = ({
1059
1109
  style: styles.editingFieldHeader,
1060
1110
  children: /*#__PURE__*/_jsx(Text, {
1061
1111
  style: [styles.editingFieldLabel, {
1062
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
1112
+ color: colors.text
1063
1113
  }],
1064
1114
  children: "Manage Your Links"
1065
1115
  })
@@ -1068,11 +1118,10 @@ const AccountSettingsScreen = ({
1068
1118
  // Add new link item
1069
1119
  ...(isAddingLink ? [{
1070
1120
  id: 'add-link-input',
1071
- icon: 'add',
1072
- iconColor: '#32D74B',
1121
+ icon: 'plus',
1122
+ iconColor: colors.sidebarIconSharing,
1073
1123
  title: 'Add New Link',
1074
1124
  subtitle: isFetchingMetadata ? 'Fetching metadata...' : 'Enter URL to add a new link',
1075
- multiRow: true,
1076
1125
  customContent: /*#__PURE__*/_jsxs(View, {
1077
1126
  style: styles.addLinkInputContainer,
1078
1127
  children: [/*#__PURE__*/_jsx(TextInput, {
@@ -1080,7 +1129,7 @@ const AccountSettingsScreen = ({
1080
1129
  value: newLinkUrl,
1081
1130
  onChangeText: setNewLinkUrl,
1082
1131
  placeholder: "Enter URL (e.g., https://example.com)",
1083
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
1132
+ placeholderTextColor: colors.secondaryText,
1084
1133
  keyboardType: "url",
1085
1134
  autoFocus: true,
1086
1135
  selectionColor: themeStyles.primaryColor
@@ -1098,6 +1147,7 @@ const AccountSettingsScreen = ({
1098
1147
  })
1099
1148
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
1100
1149
  style: [styles.addLinkButton, styles.addButton, {
1150
+ backgroundColor: colors.iconSecurity,
1101
1151
  opacity: isFetchingMetadata ? 0.5 : 1
1102
1152
  }],
1103
1153
  onPress: addLink,
@@ -1114,8 +1164,8 @@ const AccountSettingsScreen = ({
1114
1164
  })
1115
1165
  }] : [{
1116
1166
  id: 'add-link-trigger',
1117
- icon: 'add',
1118
- iconColor: '#32D74B',
1167
+ icon: 'plus',
1168
+ iconColor: colors.sidebarIconSharing,
1119
1169
  title: 'Add a new link',
1120
1170
  subtitle: 'Tap to add a new link to your profile',
1121
1171
  onPress: () => setIsAddingLink(true)
@@ -1123,13 +1173,20 @@ const AccountSettingsScreen = ({
1123
1173
  // Existing links
1124
1174
  ...tempLinksWithMetadata.map((link, index) => ({
1125
1175
  id: link.id,
1126
- image: link.image || undefined,
1127
- imageSize: 32,
1128
- icon: link.image ? undefined : 'link',
1129
- iconColor: '#32D74B',
1176
+ customIcon: link.image ? /*#__PURE__*/_jsx(Image, {
1177
+ source: {
1178
+ uri: link.image
1179
+ },
1180
+ style: {
1181
+ width: 36,
1182
+ height: 36,
1183
+ borderRadius: 18
1184
+ }
1185
+ }) : undefined,
1186
+ icon: !link.image ? 'link-variant' : undefined,
1187
+ iconColor: colors.sidebarIconSharing,
1130
1188
  title: link.title || link.url,
1131
1189
  subtitle: link.description && link.description !== link.title ? link.description : link.url,
1132
- multiRow: true,
1133
1190
  customContent: /*#__PURE__*/_jsxs(View, {
1134
1191
  style: styles.linkItemActions,
1135
1192
  children: [/*#__PURE__*/_jsxs(View, {
@@ -1163,8 +1220,7 @@ const AccountSettingsScreen = ({
1163
1220
  })
1164
1221
  })]
1165
1222
  })
1166
- }))],
1167
- theme: theme
1223
+ }))]
1168
1224
  }), tempLinksWithMetadata.length > 0 && /*#__PURE__*/_jsx(View, {
1169
1225
  style: styles.reorderHint,
1170
1226
  children: /*#__PURE__*/_jsx(Text, {
@@ -1182,7 +1238,7 @@ const AccountSettingsScreen = ({
1182
1238
  value: displayName,
1183
1239
  placeholder: 'Enter your display name',
1184
1240
  icon: 'person',
1185
- color: '#007AFF',
1241
+ color: colors.iconPersonalInfo,
1186
1242
  multiline: false,
1187
1243
  keyboardType: 'default'
1188
1244
  },
@@ -1191,7 +1247,7 @@ const AccountSettingsScreen = ({
1191
1247
  value: username,
1192
1248
  placeholder: 'Choose a username',
1193
1249
  icon: 'at',
1194
- color: '#5856D6',
1250
+ color: colors.iconData,
1195
1251
  multiline: false,
1196
1252
  keyboardType: 'default'
1197
1253
  },
@@ -1200,7 +1256,7 @@ const AccountSettingsScreen = ({
1200
1256
  value: email,
1201
1257
  placeholder: 'Enter your email address',
1202
1258
  icon: 'mail',
1203
- color: '#FF9500',
1259
+ color: colors.iconStorage,
1204
1260
  multiline: false,
1205
1261
  keyboardType: 'email-address'
1206
1262
  },
@@ -1209,7 +1265,7 @@ const AccountSettingsScreen = ({
1209
1265
  value: bio,
1210
1266
  placeholder: 'Tell people about yourself...',
1211
1267
  icon: 'document-text',
1212
- color: '#34C759',
1268
+ color: colors.iconPersonalInfo,
1213
1269
  multiline: true,
1214
1270
  keyboardType: 'default'
1215
1271
  },
@@ -1218,7 +1274,7 @@ const AccountSettingsScreen = ({
1218
1274
  value: location,
1219
1275
  placeholder: 'Enter your location',
1220
1276
  icon: 'location',
1221
- color: '#FF3B30',
1277
+ color: colors.iconSharing,
1222
1278
  multiline: false,
1223
1279
  keyboardType: 'default'
1224
1280
  },
@@ -1227,7 +1283,7 @@ const AccountSettingsScreen = ({
1227
1283
  value: links.join(', '),
1228
1284
  placeholder: 'Enter your links (comma separated)',
1229
1285
  icon: 'link',
1230
- color: '#32D74B',
1286
+ color: colors.iconPersonalInfo,
1231
1287
  multiline: false,
1232
1288
  keyboardType: 'url'
1233
1289
  }
@@ -1276,7 +1332,7 @@ const AccountSettingsScreen = ({
1276
1332
  };
1277
1333
  return /*#__PURE__*/_jsx(View, {
1278
1334
  style: [styles.editingFieldContainer, {
1279
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#FFFFFF'
1335
+ backgroundColor: colors.background
1280
1336
  }],
1281
1337
  children: /*#__PURE__*/_jsx(View, {
1282
1338
  style: styles.editingFieldContent,
@@ -1286,7 +1342,7 @@ const AccountSettingsScreen = ({
1286
1342
  style: styles.editingFieldHeader,
1287
1343
  children: /*#__PURE__*/_jsx(Text, {
1288
1344
  style: [styles.editingFieldLabel, {
1289
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#000000'
1345
+ color: colors.text
1290
1346
  }],
1291
1347
  children: config.label
1292
1348
  })
@@ -1310,10 +1366,10 @@ const AccountSettingsScreen = ({
1310
1366
  })
1311
1367
  });
1312
1368
  };
1313
- if (authLoading || !isAuthenticated) {
1369
+ if (isLoading || !isAuthenticated) {
1314
1370
  return /*#__PURE__*/_jsx(View, {
1315
1371
  style: [styles.container, {
1316
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#F5F5F7',
1372
+ backgroundColor: themeStyles.backgroundColor,
1317
1373
  justifyContent: 'center'
1318
1374
  }],
1319
1375
  children: /*#__PURE__*/_jsx(ActivityIndicator, {
@@ -1324,40 +1380,40 @@ const AccountSettingsScreen = ({
1324
1380
  }
1325
1381
  return /*#__PURE__*/_jsxs(View, {
1326
1382
  style: [styles.container, {
1327
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#F5F5F7'
1383
+ backgroundColor: themeStyles.backgroundColor
1328
1384
  }],
1329
1385
  children: [editingField ? /*#__PURE__*/_jsxs(View, {
1330
1386
  style: [styles.editingHeader, {
1331
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#FFFFFF',
1332
- borderBottomColor: themeStyles.isDarkTheme ? '#38383A' : '#E5E5EA'
1387
+ backgroundColor: colors.background,
1388
+ borderBottomColor: colors.border
1333
1389
  }],
1334
1390
  children: [/*#__PURE__*/_jsxs(View, {
1335
1391
  style: styles.editingHeaderContent,
1336
1392
  children: [/*#__PURE__*/_jsx(TouchableOpacity, {
1337
1393
  style: [styles.editingBackButton, {
1338
- backgroundColor: themeStyles.isDarkTheme ? '#1C1C1E' : '#F2F2F7'
1394
+ backgroundColor: colors.card
1339
1395
  }],
1340
1396
  onPress: cancelEditing,
1341
1397
  children: /*#__PURE__*/_jsx(Ionicons, {
1342
1398
  name: "chevron-back",
1343
1399
  size: 20,
1344
- color: themeStyles.primaryColor
1400
+ color: colors.tint
1345
1401
  })
1346
1402
  }), /*#__PURE__*/_jsx(View, {
1347
1403
  style: styles.editingTitleContainer
1348
1404
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
1349
1405
  style: [styles.editingSaveButton, {
1350
1406
  opacity: isSaving ? 0.5 : 1,
1351
- backgroundColor: themeStyles.isDarkTheme ? '#1C1C1E' : '#F2F2F7'
1407
+ backgroundColor: colors.card
1352
1408
  }],
1353
1409
  onPress: () => saveField(editingField),
1354
1410
  disabled: isSaving,
1355
1411
  children: isSaving ? /*#__PURE__*/_jsx(ActivityIndicator, {
1356
1412
  size: "small",
1357
- color: themeStyles.primaryColor
1413
+ color: colors.tint
1358
1414
  }) : /*#__PURE__*/_jsx(Text, {
1359
1415
  style: [styles.editingSaveButtonText, {
1360
- color: themeStyles.primaryColor
1416
+ color: colors.tint
1361
1417
  }],
1362
1418
  children: "Save"
1363
1419
  })
@@ -1366,34 +1422,25 @@ const AccountSettingsScreen = ({
1366
1422
  style: styles.editingHeaderBottom,
1367
1423
  children: [/*#__PURE__*/_jsx(View, {
1368
1424
  style: [styles.editingIconContainer, {
1369
- backgroundColor: editingField === 'displayName' ? '#007AFF20' : editingField === 'username' ? '#5856D620' : editingField === 'email' ? '#FF950020' : editingField === 'bio' ? '#34C75920' : editingField === 'location' ? '#FF3B3020' : editingField === 'links' ? '#32D74B20' : '#007AFF20'
1425
+ backgroundColor: editingField === 'displayName' ? `${colors.sidebarIconPersonalInfo}20` : editingField === 'username' ? `${colors.sidebarIconData}20` : editingField === 'email' ? `${colors.sidebarIconSecurity}20` : editingField === 'bio' ? `${colors.sidebarIconPersonalInfo}20` : editingField === 'location' ? `${colors.sidebarIconSharing}20` : editingField === 'links' ? `${colors.sidebarIconPersonalInfo}20` : `${colors.tint}20`
1370
1426
  }],
1371
- children: /*#__PURE__*/_jsx(Ionicons, {
1372
- name: editingField === 'displayName' ? 'person' : editingField === 'username' ? 'at' : editingField === 'email' ? 'mail' : editingField === 'bio' ? 'document-text' : editingField === 'location' ? 'location' : editingField === 'links' ? 'link' : 'person',
1427
+ children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
1428
+ name: editingField === 'displayName' ? 'account-outline' : editingField === 'username' ? 'at' : editingField === 'email' ? 'email-outline' : editingField === 'bio' ? 'text-box-outline' : editingField === 'location' ? 'map-marker-outline' : editingField === 'links' ? 'link-variant' : 'account-outline',
1373
1429
  size: 28,
1374
- color: editingField === 'displayName' ? '#007AFF' : editingField === 'username' ? '#5856D6' : editingField === 'email' ? '#FF9500' : editingField === 'bio' ? '#34C759' : editingField === 'location' ? '#FF3B30' : editingField === 'links' ? '#32D74B' : '#007AFF'
1430
+ color: editingField === 'displayName' ? colors.sidebarIconPersonalInfo : editingField === 'username' ? colors.sidebarIconData : editingField === 'email' ? colors.sidebarIconSecurity : editingField === 'bio' ? colors.sidebarIconPersonalInfo : editingField === 'location' ? colors.sidebarIconSharing : editingField === 'links' ? colors.sidebarIconPersonalInfo : colors.tint
1375
1431
  })
1376
1432
  }), /*#__PURE__*/_jsx(Text, {
1377
1433
  style: [styles.editingBottomTitle, {
1378
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#000000'
1434
+ color: colors.text
1379
1435
  }],
1380
1436
  children: editingField === 'displayName' ? t('editProfile.items.displayName.title') || 'Display Name' : editingField === 'username' ? t('editProfile.items.username.title') || 'Username' : editingField === 'email' ? t('editProfile.items.email.title') || 'Email' : editingField === 'bio' ? t('editProfile.items.bio.title') || 'Bio' : editingField === 'location' ? t('editProfile.items.locations.title') || 'Location' : editingField === 'links' ? t('editProfile.items.links.title') || 'Links' : 'Field'
1381
1437
  })]
1382
1438
  })]
1383
- }) : /*#__PURE__*/_jsx(Header, {
1384
- title: t('editProfile.title') || 'Edit Profile',
1385
- theme: theme,
1386
- onBack: goBack || onClose,
1387
- rightAction: {
1388
- icon: 'checkmark',
1389
- onPress: handleSave,
1390
- loading: isSaving,
1391
- disabled: isSaving
1392
- },
1393
- elevation: "subtle"
1394
- }), /*#__PURE__*/_jsx(ScrollView, {
1439
+ }) : null, /*#__PURE__*/_jsx(ScrollView, {
1395
1440
  ref: scrollViewRef,
1396
1441
  style: editingField ? styles.contentEditing : styles.content,
1442
+ contentContainerStyle: styles.scrollContent,
1443
+ showsVerticalScrollIndicator: false,
1397
1444
  children: editingField ?
1398
1445
  /*#__PURE__*/
1399
1446
  // Show only the editing interface when editing
@@ -1404,7 +1451,24 @@ const AccountSettingsScreen = ({
1404
1451
  /*#__PURE__*/
1405
1452
  // Show all settings when not editing
1406
1453
  _jsxs(_Fragment, {
1407
- children: [showRecoveryModal && /*#__PURE__*/_jsx(View, {
1454
+ children: [/*#__PURE__*/_jsxs(View, {
1455
+ style: [styles.headerContainer, styles.headerSection],
1456
+ children: [/*#__PURE__*/_jsx(Text, {
1457
+ style: [styles.modernTitle, {
1458
+ color: themeStyles.textColor,
1459
+ marginBottom: 0,
1460
+ marginTop: 0
1461
+ }],
1462
+ children: t('accountOverview.items.editProfile.title') || t('editProfile.title') || 'Edit Profile'
1463
+ }), /*#__PURE__*/_jsx(Text, {
1464
+ style: [styles.modernSubtitle, {
1465
+ color: colors.secondaryText,
1466
+ marginBottom: 0,
1467
+ marginTop: 0
1468
+ }],
1469
+ children: t('accountOverview.items.editProfile.subtitle') || t('editProfile.subtitle') || 'Manage your profile and preferences'
1470
+ })]
1471
+ }), showRecoveryModal && /*#__PURE__*/_jsx(View, {
1408
1472
  style: {
1409
1473
  position: 'absolute',
1410
1474
  top: 0,
@@ -1490,6 +1554,7 @@ const AccountSettingsScreen = ({
1490
1554
  })]
1491
1555
  }), /*#__PURE__*/_jsxs(TouchableOpacity, {
1492
1556
  style: [styles.primaryButton, {
1557
+ backgroundColor: colors.iconSecurity,
1493
1558
  alignSelf: 'flex-end',
1494
1559
  marginTop: 8
1495
1560
  }],
@@ -1523,7 +1588,7 @@ const AccountSettingsScreen = ({
1523
1588
  },
1524
1589
  children: [/*#__PURE__*/_jsx(Text, {
1525
1590
  style: [styles.sectionTitle, {
1526
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1591
+ color: colors.secondaryText
1527
1592
  }],
1528
1593
  children: t('editProfile.sections.profilePicture') || 'PROFILE PICTURE'
1529
1594
  }), /*#__PURE__*/_jsx(View, {
@@ -1531,29 +1596,20 @@ const AccountSettingsScreen = ({
1531
1596
  children: /*#__PURE__*/_jsx(GroupedSection, {
1532
1597
  items: [{
1533
1598
  id: 'profile-photo',
1534
- icon: avatarFileId ? undefined : 'person',
1535
- iconColor: '#007AFF',
1536
- // Use optimistic avatar ID if available, otherwise use saved one
1537
- image: optimisticAvatarId || avatarFileId ? oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb') : undefined,
1538
- imageSize: 40,
1539
- title: 'Profile Photo',
1540
- subtitle: isUpdatingAvatar ? 'Updating profile picture...' : avatarFileId ? 'Tap to change your profile picture' : 'Tap to add a profile picture',
1541
- onPress: isUpdatingAvatar ? undefined : openAvatarPicker,
1542
- disabled: isUpdatingAvatar,
1543
- customIcon: isUpdatingAvatar ? /*#__PURE__*/_jsxs(Animated.View, {
1599
+ customIcon: optimisticAvatarId || avatarFileId ? isUpdatingAvatar ? /*#__PURE__*/_jsxs(Animated.View, {
1544
1600
  style: {
1545
1601
  position: 'relative',
1546
- width: 40,
1547
- height: 40
1602
+ width: 36,
1603
+ height: 36
1548
1604
  },
1549
- children: [(optimisticAvatarId || avatarFileId) && /*#__PURE__*/_jsx(Animated.Image, {
1605
+ children: [/*#__PURE__*/_jsx(Animated.Image, {
1550
1606
  source: {
1551
1607
  uri: oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb')
1552
1608
  },
1553
1609
  style: {
1554
- width: 40,
1555
- height: 40,
1556
- borderRadius: 22,
1610
+ width: 36,
1611
+ height: 36,
1612
+ borderRadius: 18,
1557
1613
  opacity: 0.6
1558
1614
  }
1559
1615
  }), /*#__PURE__*/_jsx(View, {
@@ -1565,24 +1621,38 @@ const AccountSettingsScreen = ({
1565
1621
  bottom: 0,
1566
1622
  justifyContent: 'center',
1567
1623
  alignItems: 'center',
1568
- backgroundColor: themeStyles.isDarkTheme ? 'rgba(0, 0, 0, 0.4)' : 'rgba(255, 255, 255, 0.7)',
1569
- borderRadius: 22
1624
+ backgroundColor: colorScheme === 'dark' ? 'rgba(0, 0, 0, 0.4)' : 'rgba(255, 255, 255, 0.7)',
1625
+ borderRadius: 18
1570
1626
  },
1571
1627
  children: /*#__PURE__*/_jsx(ActivityIndicator, {
1572
1628
  size: "small",
1573
- color: themeStyles.primaryColor
1629
+ color: colors.tint
1574
1630
  })
1575
1631
  })]
1576
- }) : undefined
1632
+ }) : /*#__PURE__*/_jsx(Image, {
1633
+ source: {
1634
+ uri: oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb')
1635
+ },
1636
+ style: {
1637
+ width: 36,
1638
+ height: 36,
1639
+ borderRadius: 18
1640
+ }
1641
+ }) : undefined,
1642
+ icon: !(optimisticAvatarId || avatarFileId) ? 'account-outline' : undefined,
1643
+ iconColor: colors.sidebarIconPersonalInfo,
1644
+ title: 'Profile Photo',
1645
+ subtitle: isUpdatingAvatar ? 'Updating profile picture...' : avatarFileId ? 'Tap to change your profile picture' : 'Tap to add a profile picture',
1646
+ onPress: isUpdatingAvatar ? undefined : openAvatarPicker,
1647
+ disabled: isUpdatingAvatar
1577
1648
  }, ...(avatarFileId && !isUpdatingAvatar ? [{
1578
1649
  id: 'remove-profile-photo',
1579
- icon: 'trash',
1580
- iconColor: '#FF3B30',
1650
+ icon: 'delete-outline',
1651
+ iconColor: colors.sidebarIconSharing,
1581
1652
  title: 'Remove Photo',
1582
1653
  subtitle: 'Delete current profile picture',
1583
1654
  onPress: handleAvatarRemove
1584
- }] : [])],
1585
- theme: theme
1655
+ }] : [])]
1586
1656
  })
1587
1657
  })]
1588
1658
  }), /*#__PURE__*/_jsxs(View, {
@@ -1596,7 +1666,7 @@ const AccountSettingsScreen = ({
1596
1666
  },
1597
1667
  children: [/*#__PURE__*/_jsx(Text, {
1598
1668
  style: [styles.sectionTitle, {
1599
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1669
+ color: colors.secondaryText
1600
1670
  }],
1601
1671
  children: t('editProfile.sections.basicInfo') || 'BASIC INFORMATION'
1602
1672
  }), /*#__PURE__*/_jsx(View, {
@@ -1604,27 +1674,26 @@ const AccountSettingsScreen = ({
1604
1674
  children: /*#__PURE__*/_jsx(GroupedSection, {
1605
1675
  items: [{
1606
1676
  id: 'display-name',
1607
- icon: 'person',
1608
- iconColor: '#007AFF',
1677
+ icon: 'account-outline',
1678
+ iconColor: colors.sidebarIconPersonalInfo,
1609
1679
  title: t('editProfile.items.displayName.title') || 'Display Name',
1610
1680
  subtitle: [displayName, lastName].filter(Boolean).join(' ') || t('editProfile.items.displayName.add') || 'Add your display name',
1611
- onPress: () => startEditing('displayName', '')
1681
+ onPress: handleOpenDisplayNameModal
1612
1682
  }, {
1613
1683
  id: 'username',
1614
1684
  icon: 'at',
1615
- iconColor: '#5856D6',
1685
+ iconColor: colors.sidebarIconData,
1616
1686
  title: t('editProfile.items.username.title') || 'Username',
1617
1687
  subtitle: username || t('editProfile.items.username.choose') || 'Choose a username',
1618
- onPress: () => startEditing('username', username)
1688
+ onPress: handleOpenUsernameModal
1619
1689
  }, {
1620
1690
  id: 'email',
1621
- icon: 'mail',
1622
- iconColor: '#FF9500',
1691
+ icon: 'email-outline',
1692
+ iconColor: colors.sidebarIconSecurity,
1623
1693
  title: t('editProfile.items.email.title') || 'Email',
1624
1694
  subtitle: email || t('editProfile.items.email.add') || 'Add your email address',
1625
- onPress: () => startEditing('email', email)
1626
- }],
1627
- theme: theme
1695
+ onPress: handleOpenEmailModal
1696
+ }]
1628
1697
  })
1629
1698
  })]
1630
1699
  }), /*#__PURE__*/_jsxs(View, {
@@ -1638,7 +1707,7 @@ const AccountSettingsScreen = ({
1638
1707
  },
1639
1708
  children: [/*#__PURE__*/_jsx(Text, {
1640
1709
  style: [styles.sectionTitle, {
1641
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1710
+ color: colors.secondaryText
1642
1711
  }],
1643
1712
  children: t('editProfile.sections.about') || 'ABOUT YOU'
1644
1713
  }), /*#__PURE__*/_jsx(View, {
@@ -1646,87 +1715,34 @@ const AccountSettingsScreen = ({
1646
1715
  children: /*#__PURE__*/_jsx(GroupedSection, {
1647
1716
  items: [{
1648
1717
  id: 'bio',
1649
- icon: 'document-text',
1650
- iconColor: '#34C759',
1718
+ icon: 'text-box-outline',
1719
+ iconColor: colors.sidebarIconPersonalInfo,
1651
1720
  title: t('editProfile.items.bio.title') || 'Bio',
1652
1721
  subtitle: bio || t('editProfile.items.bio.placeholder') || 'Tell people about yourself',
1653
- onPress: () => startEditing('bio', bio)
1722
+ onPress: handleOpenBioModal
1654
1723
  }, {
1655
1724
  id: 'locations',
1656
- icon: 'location',
1657
- iconColor: '#FF3B30',
1725
+ icon: 'map-marker-outline',
1726
+ iconColor: colors.sidebarIconSharing,
1658
1727
  title: t('editProfile.items.locations.title') || 'Locations',
1659
- subtitle: tempLocations.length > 0 ? tempLocations.length === 1 ? t('editProfile.items.locations.count', {
1660
- count: tempLocations.length
1661
- }) || `${tempLocations.length} location added` : t('editProfile.items.locations.count_plural', {
1662
- count: tempLocations.length
1663
- }) || `${tempLocations.length} locations added` : t('editProfile.items.locations.add') || 'Add your locations',
1664
- onPress: () => startEditing('location', ''),
1665
- customContentBelow: tempLocations.length > 0 && /*#__PURE__*/_jsxs(View, {
1666
- style: styles.linksPreviewContainer,
1667
- children: [tempLocations.slice(0, 2).map((location, index) => /*#__PURE__*/_jsxs(View, {
1668
- style: styles.linkPreviewItem,
1669
- children: [/*#__PURE__*/_jsx(View, {
1670
- style: styles.linkPreviewImage,
1671
- children: /*#__PURE__*/_jsx(Text, {
1672
- style: styles.linkPreviewImageText,
1673
- children: location.name.charAt(0).toUpperCase()
1674
- })
1675
- }), /*#__PURE__*/_jsxs(View, {
1676
- style: styles.linkPreviewContent,
1677
- children: [/*#__PURE__*/_jsx(Text, {
1678
- style: styles.linkPreviewTitle,
1679
- numberOfLines: 1,
1680
- children: location.name
1681
- }), location.label && /*#__PURE__*/_jsx(Text, {
1682
- style: styles.linkPreviewSubtitle,
1683
- children: location.label
1684
- })]
1685
- })]
1686
- }, location.id || index)), tempLocations.length > 2 && /*#__PURE__*/_jsxs(Text, {
1687
- style: styles.linkPreviewMore,
1688
- children: ["+", tempLocations.length - 2, " more"]
1689
- })]
1690
- })
1728
+ subtitle: locations.length > 0 ? locations.length === 1 ? t('editProfile.items.locations.count', {
1729
+ count: locations.length
1730
+ }) || `${locations.length} location added` : t('editProfile.items.locations.count_plural', {
1731
+ count: locations.length
1732
+ }) || `${locations.length} locations added` : t('editProfile.items.locations.add') || 'Add your locations',
1733
+ onPress: handleOpenLocationModal
1691
1734
  }, {
1692
1735
  id: 'links',
1693
- icon: 'link',
1694
- iconColor: '#32D74B',
1736
+ icon: 'link-variant',
1737
+ iconColor: colors.sidebarIconSharing,
1695
1738
  title: t('editProfile.items.links.title') || 'Links',
1696
- subtitle: tempLinksWithMetadata.length > 0 ? tempLinksWithMetadata.length === 1 ? t('editProfile.items.links.count', {
1697
- count: tempLinksWithMetadata.length
1698
- }) || `${tempLinksWithMetadata.length} link added` : t('editProfile.items.links.count_plural', {
1699
- count: tempLinksWithMetadata.length
1700
- }) || `${tempLinksWithMetadata.length} links added` : t('editProfile.items.links.add') || 'Add your links',
1701
- onPress: () => startEditing('links', ''),
1702
- multiRow: true,
1703
- customContentBelow: tempLinksWithMetadata.length > 0 && /*#__PURE__*/_jsxs(View, {
1704
- style: styles.linksPreviewContainer,
1705
- children: [tempLinksWithMetadata.slice(0, 2).map((link, index) => /*#__PURE__*/_jsxs(View, {
1706
- style: styles.linkPreviewItem,
1707
- children: [link.image ? /*#__PURE__*/_jsx(Image, {
1708
- source: {
1709
- uri: link.image
1710
- },
1711
- style: styles.linkPreviewImage
1712
- }) : /*#__PURE__*/_jsx(View, {
1713
- style: styles.linkPreviewImage,
1714
- children: /*#__PURE__*/_jsx(Text, {
1715
- style: styles.linkPreviewImageText,
1716
- children: link.title?.charAt(0).toUpperCase() || link.url.charAt(0).toUpperCase()
1717
- })
1718
- }), /*#__PURE__*/_jsx(Text, {
1719
- style: styles.linkPreviewTitle,
1720
- numberOfLines: 1,
1721
- children: link.title || link.url
1722
- })]
1723
- }, link.id || index)), tempLinksWithMetadata.length > 2 && /*#__PURE__*/_jsxs(Text, {
1724
- style: styles.linkPreviewMore,
1725
- children: ["+", tempLinksWithMetadata.length - 2, " more"]
1726
- })]
1727
- })
1728
- }],
1729
- theme: theme
1739
+ subtitle: linksMetadata.length > 0 ? linksMetadata.length === 1 ? t('editProfile.items.links.count', {
1740
+ count: linksMetadata.length
1741
+ }) || `${linksMetadata.length} link added` : t('editProfile.items.links.count_plural', {
1742
+ count: linksMetadata.length
1743
+ }) || `${linksMetadata.length} links added` : t('editProfile.items.links.add') || 'Add your links',
1744
+ onPress: handleOpenLinksModal
1745
+ }]
1730
1746
  })
1731
1747
  })]
1732
1748
  }), /*#__PURE__*/_jsxs(View, {
@@ -1740,7 +1756,7 @@ const AccountSettingsScreen = ({
1740
1756
  },
1741
1757
  children: [/*#__PURE__*/_jsx(Text, {
1742
1758
  style: [styles.sectionTitle, {
1743
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1759
+ color: colors.secondaryText
1744
1760
  }],
1745
1761
  children: t('editProfile.sections.quickActions') || 'QUICK ACTIONS'
1746
1762
  }), /*#__PURE__*/_jsx(View, {
@@ -1749,7 +1765,7 @@ const AccountSettingsScreen = ({
1749
1765
  items: [{
1750
1766
  id: 'preview-profile',
1751
1767
  icon: 'eye',
1752
- iconColor: '#007AFF',
1768
+ iconColor: colors.sidebarIconHome,
1753
1769
  title: t('editProfile.items.previewProfile.title') || 'Preview Profile',
1754
1770
  subtitle: t('editProfile.items.previewProfile.subtitle') || 'See how your profile looks to others',
1755
1771
  onPress: () => navigate?.('Profile', {
@@ -1757,20 +1773,19 @@ const AccountSettingsScreen = ({
1757
1773
  })
1758
1774
  }, {
1759
1775
  id: 'privacy-settings',
1760
- icon: 'shield-checkmark',
1761
- iconColor: '#8E8E93',
1776
+ icon: 'shield-check',
1777
+ iconColor: colors.sidebarIconSecurity,
1762
1778
  title: t('editProfile.items.privacySettings.title') || 'Privacy Settings',
1763
1779
  subtitle: t('editProfile.items.privacySettings.subtitle') || 'Control who can see your profile',
1764
1780
  onPress: () => navigate?.('PrivacySettings')
1765
1781
  }, {
1766
1782
  id: 'verify-account',
1767
- icon: 'checkmark-circle',
1768
- iconColor: '#30D158',
1783
+ icon: 'check-circle',
1784
+ iconColor: colors.sidebarIconPersonalInfo,
1769
1785
  title: t('editProfile.items.verifyAccount.title') || 'Verify Account',
1770
1786
  subtitle: t('editProfile.items.verifyAccount.subtitle') || 'Get a verified badge',
1771
1787
  onPress: () => navigate?.('AccountVerification')
1772
- }],
1773
- theme: theme
1788
+ }]
1774
1789
  })
1775
1790
  })]
1776
1791
  }), /*#__PURE__*/_jsxs(View, {
@@ -1784,7 +1799,7 @@ const AccountSettingsScreen = ({
1784
1799
  },
1785
1800
  children: [/*#__PURE__*/_jsx(Text, {
1786
1801
  style: [styles.sectionTitle, {
1787
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1802
+ color: colors.secondaryText
1788
1803
  }],
1789
1804
  children: t('editProfile.sections.security') || 'SECURITY'
1790
1805
  }), /*#__PURE__*/_jsx(View, {
@@ -1792,35 +1807,107 @@ const AccountSettingsScreen = ({
1792
1807
  children: /*#__PURE__*/_jsx(GroupedSection, {
1793
1808
  items: [{
1794
1809
  id: 'two-factor',
1795
- icon: 'shield-checkmark',
1796
- iconColor: '#007AFF',
1810
+ icon: 'shield-lock',
1811
+ iconColor: colors.sidebarIconSecurity,
1797
1812
  title: t('editProfile.items.twoFactor.title') || 'Two‑Factor Authentication',
1798
1813
  subtitle: user?.privacySettings?.twoFactorEnabled ? t('editProfile.items.twoFactor.enabled') || 'Enabled' : t('editProfile.items.twoFactor.disabled') || 'Disabled (recommended)',
1799
- onPress: () => startEditing('twoFactor', '')
1800
- }],
1801
- theme: theme
1814
+ onPress: handleOpenTwoFactorModal
1815
+ }]
1802
1816
  })
1803
1817
  })]
1804
1818
  })]
1805
1819
  })
1820
+ }), /*#__PURE__*/_jsx(EditDisplayNameModal, {
1821
+ visible: showEditDisplayNameModal,
1822
+ onClose: () => setShowEditDisplayNameModal(false),
1823
+ initialDisplayName: displayName,
1824
+ initialLastName: lastName,
1825
+ theme: normalizedTheme,
1826
+ onSave: handleModalSave
1827
+ }), /*#__PURE__*/_jsx(EditUsernameModal, {
1828
+ visible: showEditUsernameModal,
1829
+ onClose: () => setShowEditUsernameModal(false),
1830
+ initialValue: username,
1831
+ theme: normalizedTheme,
1832
+ onSave: handleModalSave
1833
+ }), /*#__PURE__*/_jsx(EditEmailModal, {
1834
+ visible: showEditEmailModal,
1835
+ onClose: () => setShowEditEmailModal(false),
1836
+ initialValue: email,
1837
+ theme: normalizedTheme,
1838
+ onSave: handleModalSave
1839
+ }), /*#__PURE__*/_jsx(EditBioModal, {
1840
+ visible: showEditBioModal,
1841
+ onClose: () => setShowEditBioModal(false),
1842
+ initialValue: bio,
1843
+ theme: normalizedTheme,
1844
+ onSave: handleModalSave
1845
+ }), /*#__PURE__*/_jsx(EditLocationModal, {
1846
+ visible: showEditLocationModal,
1847
+ onClose: () => setShowEditLocationModal(false),
1848
+ initialLocations: locations,
1849
+ theme: normalizedTheme,
1850
+ onSave: handleModalSave
1851
+ }), /*#__PURE__*/_jsx(EditLinksModal, {
1852
+ visible: showEditLinksModal,
1853
+ onClose: () => setShowEditLinksModal(false),
1854
+ initialLinks: linksMetadata,
1855
+ theme: normalizedTheme,
1856
+ onSave: handleModalSave
1857
+ }), /*#__PURE__*/_jsx(TwoFactorSetupModal, {
1858
+ visible: showTwoFactorModal,
1859
+ onClose: () => setShowTwoFactorModal(false),
1860
+ isEnabled: !!user?.privacySettings?.twoFactorEnabled,
1861
+ theme: normalizedTheme
1806
1862
  })]
1807
1863
  });
1808
1864
  };
1809
1865
  const styles = StyleSheet.create({
1810
1866
  container: {
1811
- flex: 1
1867
+ flexShrink: 1,
1868
+ width: '100%'
1812
1869
  },
1813
1870
  content: {
1814
- flex: 1,
1815
- paddingTop: 8,
1816
- paddingBottom: 24
1871
+ flexShrink: 1
1872
+ },
1873
+ scrollView: {
1874
+ flexShrink: 1
1817
1875
  },
1818
1876
  contentEditing: {
1819
1877
  flex: 1,
1820
1878
  padding: 0
1821
1879
  },
1880
+ scrollContent: createScreenContentStyle(HEADER_PADDING_TOP_SETTINGS),
1881
+ headerContainer: {
1882
+ width: '100%',
1883
+ maxWidth: 420,
1884
+ alignSelf: 'center',
1885
+ marginBottom: SECTION_GAP_LARGE
1886
+ },
1887
+ headerSection: {
1888
+ alignItems: 'flex-start',
1889
+ width: '100%',
1890
+ gap: COMPONENT_GAP
1891
+ },
1892
+ modernTitle: {
1893
+ fontFamily: fontFamilies.phuduBold,
1894
+ fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
1895
+ fontSize: 42,
1896
+ lineHeight: 50.4,
1897
+ // 42 * 1.2
1898
+ textAlign: 'left',
1899
+ letterSpacing: -0.5
1900
+ },
1901
+ modernSubtitle: {
1902
+ fontSize: 18,
1903
+ lineHeight: 24,
1904
+ textAlign: 'left',
1905
+ maxWidth: 320,
1906
+ alignSelf: 'flex-start',
1907
+ opacity: 0.8
1908
+ },
1822
1909
  section: {
1823
- marginBottom: 32
1910
+ marginBottom: SECTION_GAP_LARGE
1824
1911
  },
1825
1912
  sectionTitle: {
1826
1913
  fontSize: 13,
@@ -1828,13 +1915,11 @@ const styles = StyleSheet.create({
1828
1915
  color: '#8E8E93',
1829
1916
  marginBottom: 8,
1830
1917
  marginTop: 4,
1831
- marginHorizontal: 16,
1832
1918
  textTransform: 'uppercase',
1833
1919
  letterSpacing: 0.5,
1834
1920
  fontFamily: fontFamilies.phuduSemiBold
1835
1921
  },
1836
1922
  groupedSectionWrapper: {
1837
- marginHorizontal: 16,
1838
1923
  backgroundColor: 'transparent'
1839
1924
  },
1840
1925
  userIcon: {
@@ -1899,7 +1984,7 @@ const styles = StyleSheet.create({
1899
1984
  alignItems: 'center',
1900
1985
  justifyContent: 'center',
1901
1986
  gap: 8,
1902
- backgroundColor: '#007AFF',
1987
+ // backgroundColor should be applied inline using colors.iconSecurity
1903
1988
  paddingVertical: 12,
1904
1989
  paddingHorizontal: 16,
1905
1990
  borderRadius: 10
@@ -2046,7 +2131,7 @@ const styles = StyleSheet.create({
2046
2131
  color: '#6C757D'
2047
2132
  },
2048
2133
  addButton: {
2049
- backgroundColor: '#007AFF'
2134
+ // backgroundColor should be applied inline using colors.iconSecurity
2050
2135
  },
2051
2136
  addButtonText: {
2052
2137
  fontSize: 14,
@@ -2067,7 +2152,7 @@ const styles = StyleSheet.create({
2067
2152
  addLinkTriggerText: {
2068
2153
  fontSize: 14,
2069
2154
  fontWeight: '600',
2070
- color: '#007AFF',
2155
+ // color should be applied inline using colors.iconSecurity
2071
2156
  marginLeft: 6
2072
2157
  },
2073
2158
  linksList: {
@@ -2164,7 +2249,7 @@ const styles = StyleSheet.create({
2164
2249
  width: 32,
2165
2250
  height: 32,
2166
2251
  borderRadius: 16,
2167
- backgroundColor: '#007AFF',
2252
+ // backgroundColor should be applied inline using colors.iconSecurity
2168
2253
  alignItems: 'center',
2169
2254
  justifyContent: 'center',
2170
2255
  marginRight: 8
@@ -2176,7 +2261,7 @@ const styles = StyleSheet.create({
2176
2261
  },
2177
2262
  fetchingText: {
2178
2263
  fontSize: 12,
2179
- color: '#007AFF',
2264
+ // color should be applied inline using colors.iconSecurity
2180
2265
  fontStyle: 'italic'
2181
2266
  },
2182
2267
  linksFieldContent: {
@@ -2201,7 +2286,7 @@ const styles = StyleSheet.create({
2201
2286
  width: 20,
2202
2287
  height: 20,
2203
2288
  borderRadius: 10,
2204
- backgroundColor: '#007AFF',
2289
+ // backgroundColor should be applied inline using colors.iconSecurity
2205
2290
  alignItems: 'center',
2206
2291
  justifyContent: 'center',
2207
2292
  marginRight: 6
@@ -2242,7 +2327,7 @@ const styles = StyleSheet.create({
2242
2327
  },
2243
2328
  searchingText: {
2244
2329
  fontSize: 12,
2245
- color: '#007AFF',
2330
+ // color should be applied inline using colors.iconSecurity
2246
2331
  fontStyle: 'italic'
2247
2332
  },
2248
2333
  addLocationInputContainer: {
@@ -2283,7 +2368,7 @@ const styles = StyleSheet.create({
2283
2368
  addLocationTriggerText: {
2284
2369
  marginLeft: 8,
2285
2370
  fontSize: 16,
2286
- color: '#007AFF',
2371
+ // color should be applied inline using colors.iconSecurity
2287
2372
  fontWeight: '500'
2288
2373
  },
2289
2374
  searchResults: {
@@ -2347,7 +2432,7 @@ const styles = StyleSheet.create({
2347
2432
  flex: 1
2348
2433
  },
2349
2434
  locationLabel: {
2350
- backgroundColor: '#007AFF',
2435
+ // backgroundColor should be applied inline using colors.iconSecurity
2351
2436
  paddingHorizontal: 6,
2352
2437
  paddingVertical: 2,
2353
2438
  borderRadius: 4,