@oxyhq/services 5.13.40 → 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 -372
  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 -377
  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 -381
  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 -733
  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 -729
  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 -876
  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
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
- var _OxyContext = require("../context/OxyContext");
10
9
  var _OxyIcon = _interopRequireDefault(require("../components/icon/OxyIcon"));
11
10
  var _vectorIcons = require("@expo/vector-icons");
12
11
  var _sonner = require("../../lib/sonner");
@@ -15,11 +14,28 @@ var _confirmAction = require("../utils/confirmAction");
15
14
  var _authStore = require("../stores/authStore");
16
15
  var _components = require("../components");
17
16
  var _useI18n = require("../hooks/useI18n");
18
- var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
17
+ var _useThemeStyles = require("../hooks/useThemeStyles");
18
+ var _useColorScheme = require("../hooks/use-color-scheme");
19
+ var _theme = require("../constants/theme");
20
+ var _themeUtils = require("../utils/themeUtils");
21
+ var _useHapticPress = require("../hooks/use-haptic-press");
22
+ var _EditDisplayNameModal = require("../components/profile/EditDisplayNameModal");
23
+ var _EditUsernameModal = require("../components/profile/EditUsernameModal");
24
+ var _EditEmailModal = require("../components/profile/EditEmailModal");
25
+ var _EditBioModal = require("../components/profile/EditBioModal");
26
+ var _EditLocationModal = require("../components/profile/EditLocationModal");
27
+ var _EditLinksModal = require("../components/profile/EditLinksModal");
28
+ var _TwoFactorSetupModal = require("../components/profile/TwoFactorSetupModal");
29
+ var _userUtils = require("../utils/user-utils");
19
30
  var _cache = require("../../utils/cache");
31
+ var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
32
+ var _OxyContext = require("../context/OxyContext");
33
+ var _spacing = require("../constants/spacing");
20
34
  var _jsxRuntime = require("react/jsx-runtime");
21
35
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
36
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
37
+ // @ts-ignore - MaterialCommunityIcons is available at runtime
38
+
23
39
  // Caches for link metadata and location searches
24
40
  const linkMetadataCache = new _cache.TTLCache(30 * 60 * 1000); // 30 minutes cache for link metadata
25
41
  const locationSearchCache = new _cache.TTLCache(60 * 60 * 1000); // 1 hour cache for location searches
@@ -31,19 +47,21 @@ const AccountSettingsScreen = ({
31
47
  goBack,
32
48
  navigate,
33
49
  initialField,
34
- initialSection
50
+ initialSection,
51
+ scrollTo
35
52
  }) => {
53
+ // Use useOxy() hook for OxyContext values
36
54
  const {
37
55
  user: userFromContext,
38
56
  oxyServices,
39
57
  isLoading: authLoading,
40
58
  isAuthenticated,
41
- showBottomSheet,
42
59
  activeSessionId
43
60
  } = (0, _OxyContext.useOxy)();
44
61
  const {
45
62
  t
46
63
  } = (0, _useI18n.useI18n)();
64
+ const normalizedTheme = (0, _themeUtils.normalizeTheme)(theme);
47
65
  const updateUser = (0, _authStore.useAuthStore)(state => state.updateUser);
48
66
  // Get user directly from store to ensure reactivity to avatar changes
49
67
  const user = (0, _authStore.useAuthStore)(state => state.user) || userFromContext;
@@ -90,7 +108,20 @@ const AccountSettingsScreen = ({
90
108
  const [links, setLinks] = (0, _react.useState)([]);
91
109
  const [avatarFileId, setAvatarFileId] = (0, _react.useState)('');
92
110
 
93
- // Editing states
111
+ // Modal visibility states
112
+ const [showEditDisplayNameModal, setShowEditDisplayNameModal] = (0, _react.useState)(false);
113
+ const [showEditUsernameModal, setShowEditUsernameModal] = (0, _react.useState)(false);
114
+ const [showEditEmailModal, setShowEditEmailModal] = (0, _react.useState)(false);
115
+ const [showEditBioModal, setShowEditBioModal] = (0, _react.useState)(false);
116
+ const [showEditLocationModal, setShowEditLocationModal] = (0, _react.useState)(false);
117
+ const [showEditLinksModal, setShowEditLinksModal] = (0, _react.useState)(false);
118
+ const [showTwoFactorModal, setShowTwoFactorModal] = (0, _react.useState)(false);
119
+
120
+ // Location and links state (for display only - modals handle editing)
121
+ const [locations, setLocations] = (0, _react.useState)([]);
122
+ const [linksMetadata, setLinksMetadata] = (0, _react.useState)([]);
123
+
124
+ // State for inline editing (used by old renderEditingField code)
94
125
  const [editingField, setEditingField] = (0, _react.useState)(null);
95
126
  const [tempDisplayName, setTempDisplayName] = (0, _react.useState)('');
96
127
  const [tempLastName, setTempLastName] = (0, _react.useState)('');
@@ -99,27 +130,29 @@ const AccountSettingsScreen = ({
99
130
  const [tempBio, setTempBio] = (0, _react.useState)('');
100
131
  const [tempLocation, setTempLocation] = (0, _react.useState)('');
101
132
  const [tempLinks, setTempLinks] = (0, _react.useState)([]);
133
+ const [tempLocations, setTempLocations] = (0, _react.useState)([]);
102
134
  const [tempLinksWithMetadata, setTempLinksWithMetadata] = (0, _react.useState)([]);
135
+ const [isAddingLocation, setIsAddingLocation] = (0, _react.useState)(false);
136
+ const [isSearchingLocations, setIsSearchingLocations] = (0, _react.useState)(false);
137
+ const [locationSearchResults, setLocationSearchResults] = (0, _react.useState)([]);
138
+ const [newLocationQuery, setNewLocationQuery] = (0, _react.useState)('');
103
139
  const [isAddingLink, setIsAddingLink] = (0, _react.useState)(false);
104
- const [newLinkUrl, setNewLinkUrl] = (0, _react.useState)('');
105
140
  const [isFetchingMetadata, setIsFetchingMetadata] = (0, _react.useState)(false);
141
+ const [newLinkUrl, setNewLinkUrl] = (0, _react.useState)('');
106
142
 
107
- // Location management state
108
- const [tempLocations, setTempLocations] = (0, _react.useState)([]);
109
- const [isAddingLocation, setIsAddingLocation] = (0, _react.useState)(false);
110
- const [newLocationQuery, setNewLocationQuery] = (0, _react.useState)('');
111
- const [locationSearchResults, setLocationSearchResults] = (0, _react.useState)([]);
112
- const [isSearchingLocations, setIsSearchingLocations] = (0, _react.useState)(false);
143
+ // Get theme colors using centralized hook
144
+ const colorScheme = (0, _useColorScheme.useColorScheme)();
145
+ const themeStyles = (0, _useThemeStyles.useThemeStyles)(theme || 'light', colorScheme);
146
+ const handlePressIn = (0, _useHapticPress.useHapticPress)();
113
147
 
114
- // Memoize theme-related calculations to prevent unnecessary recalculations
115
- const themeStyles = (0, _react.useMemo)(() => {
116
- const isDarkTheme = theme === 'dark';
117
- return {
118
- isDarkTheme,
119
- backgroundColor: isDarkTheme ? '#121212' : '#f2f2f2',
120
- primaryColor: '#007AFF'
121
- };
122
- }, [theme]);
148
+ // Extract colors for convenience - ensure it's always defined
149
+ // useThemeStyles always returns colors, but add safety check for edge cases
150
+ const colors = themeStyles.colors || _theme.Colors[(0, _themeUtils.normalizeColorScheme)(colorScheme, theme || 'light')];
151
+
152
+ // Memoize onBack handler to provide stable reference for Reanimated
153
+ const handleBack = (0, _react.useMemo)(() => {
154
+ return goBack || onClose || undefined;
155
+ }, [goBack, onClose]);
123
156
 
124
157
  // Memoize animation function to prevent recreation on every render
125
158
  const animateSaveButton = (0, _react.useCallback)((toValue, onComplete) => {
@@ -163,7 +196,7 @@ const AccountSettingsScreen = ({
163
196
 
164
197
  // Handle locations - convert single location to array format
165
198
  if (user.locations && Array.isArray(user.locations)) {
166
- setTempLocations(user.locations.map((loc, index) => ({
199
+ setLocations(user.locations.map((loc, index) => ({
167
200
  id: loc.id || `existing-${index}`,
168
201
  name: loc.name,
169
202
  label: loc.label,
@@ -171,13 +204,13 @@ const AccountSettingsScreen = ({
171
204
  })));
172
205
  } else if (user.location) {
173
206
  // Convert single location string to array format
174
- setTempLocations([{
207
+ setLocations([{
175
208
  id: 'existing-0',
176
209
  name: user.location,
177
210
  label: 'Location'
178
211
  }]);
179
212
  } else {
180
- setTempLocations([]);
213
+ setLocations([]);
181
214
  }
182
215
 
183
216
  // Handle links - simple and direct like other fields
@@ -188,7 +221,7 @@ const AccountSettingsScreen = ({
188
221
  ...link,
189
222
  id: link.id || `existing-${index}`
190
223
  }));
191
- setTempLinksWithMetadata(metadataWithIds);
224
+ setLinksMetadata(metadataWithIds);
192
225
  } else if (Array.isArray(user.links)) {
193
226
  const simpleLinks = user.links.map(l => typeof l === 'string' ? l : l.link).filter(Boolean);
194
227
  setLinks(simpleLinks);
@@ -199,10 +232,10 @@ const AccountSettingsScreen = ({
199
232
  image: undefined,
200
233
  id: `existing-${index}`
201
234
  }));
202
- setTempLinksWithMetadata(linksWithMetadata);
235
+ setLinksMetadata(linksWithMetadata);
203
236
  } else if (user.website) {
204
237
  setLinks([user.website]);
205
- setTempLinksWithMetadata([{
238
+ setLinksMetadata([{
206
239
  url: user.website,
207
240
  title: user.website.replace(/^https?:\/\//, '').replace(/\/$/, ''),
208
241
  description: `Link to ${user.website}`,
@@ -211,7 +244,7 @@ const AccountSettingsScreen = ({
211
244
  }]);
212
245
  } else {
213
246
  setLinks([]);
214
- setTempLinksWithMetadata([]);
247
+ setLinksMetadata([]);
215
248
  }
216
249
  isInitializedRef.current = true;
217
250
  }
@@ -244,6 +277,109 @@ const AccountSettingsScreen = ({
244
277
  // Delay constant for scroll completion
245
278
  const SCROLL_DELAY_MS = 600;
246
279
 
280
+ // Helper functions for inline editing (legacy support)
281
+ const startEditing = (0, _react.useCallback)((field, initialValue) => {
282
+ setEditingField(field);
283
+ switch (field) {
284
+ case 'displayName':
285
+ setTempDisplayName(initialValue || displayName);
286
+ setTempLastName(lastName);
287
+ break;
288
+ case 'username':
289
+ setTempUsername(initialValue || username);
290
+ break;
291
+ case 'email':
292
+ setTempEmail(initialValue || email);
293
+ break;
294
+ case 'bio':
295
+ setTempBio(initialValue || bio);
296
+ break;
297
+ case 'location':
298
+ setTempLocations([...locations]);
299
+ break;
300
+ case 'links':
301
+ setTempLinksWithMetadata([...linksMetadata]);
302
+ break;
303
+ case 'twoFactor':
304
+ // No temp state needed for twoFactor
305
+ break;
306
+ }
307
+ }, [displayName, lastName, username, email, bio, locations, linksMetadata]);
308
+ const cancelEditing = (0, _react.useCallback)(() => {
309
+ setEditingField(null);
310
+ setTempDisplayName('');
311
+ setTempLastName('');
312
+ setTempUsername('');
313
+ setTempEmail('');
314
+ setTempBio('');
315
+ setTempLocation('');
316
+ setTempLinks([]);
317
+ setTempLocations([]);
318
+ setTempLinksWithMetadata([]);
319
+ setIsAddingLocation(false);
320
+ setIsSearchingLocations(false);
321
+ setLocationSearchResults([]);
322
+ setNewLocationQuery('');
323
+ setIsAddingLink(false);
324
+ setIsFetchingMetadata(false);
325
+ setNewLinkUrl('');
326
+ }, []);
327
+ const saveField = (0, _react.useCallback)(async field => {
328
+ if (!field) return;
329
+ setIsSaving(true);
330
+ try {
331
+ switch (field) {
332
+ case 'displayName':
333
+ await updateUser({
334
+ name: {
335
+ first: tempDisplayName,
336
+ last: tempLastName
337
+ }
338
+ }, oxyServices);
339
+ setDisplayName(tempDisplayName);
340
+ setLastName(tempLastName);
341
+ break;
342
+ case 'username':
343
+ await updateUser({
344
+ username: tempUsername
345
+ }, oxyServices);
346
+ setUsername(tempUsername);
347
+ break;
348
+ case 'email':
349
+ await updateUser({
350
+ email: tempEmail
351
+ }, oxyServices);
352
+ setEmail(tempEmail);
353
+ break;
354
+ case 'bio':
355
+ await updateUser({
356
+ bio: tempBio
357
+ }, oxyServices);
358
+ setBio(tempBio);
359
+ break;
360
+ case 'location':
361
+ await updateUser({
362
+ locations: tempLocations
363
+ }, oxyServices);
364
+ setLocations(tempLocations);
365
+ break;
366
+ case 'links':
367
+ await updateUser({
368
+ linksMetadata: tempLinksWithMetadata
369
+ }, oxyServices);
370
+ setLinksMetadata(tempLinksWithMetadata);
371
+ setLinks(tempLinksWithMetadata.map(l => l.url));
372
+ break;
373
+ }
374
+ setEditingField(null);
375
+ _sonner.toast.success(t('editProfile.toasts.saved') || 'Saved');
376
+ } catch (error) {
377
+ _sonner.toast.error(error?.message || t('editProfile.toasts.saveFailed') || 'Failed to save');
378
+ } finally {
379
+ setIsSaving(false);
380
+ }
381
+ }, [tempDisplayName, tempLastName, tempUsername, tempEmail, tempBio, tempLocations, tempLinksWithMetadata, updateUser, oxyServices, t]);
382
+
247
383
  // Helper to get current value for a field
248
384
  const getFieldCurrentValue = (0, _react.useCallback)(field => {
249
385
  switch (field) {
@@ -287,13 +423,10 @@ const AccountSettingsScreen = ({
287
423
  // Scroll to the specified section if initialSection is provided and we haven't scrolled yet
288
424
  if (initialSection && !hasScrolledToSectionRef.current) {
289
425
  const sectionY = sectionYPositions[initialSection];
290
- if (sectionY !== null && sectionY !== undefined && scrollViewRef.current) {
426
+ if (sectionY !== null && sectionY !== undefined && scrollTo) {
291
427
  requestAnimationFrame(() => {
292
428
  requestAnimationFrame(() => {
293
- scrollViewRef.current?.scrollTo({
294
- y: Math.max(0, sectionY - SCROLL_OFFSET),
295
- animated: true
296
- });
429
+ scrollTo(Math.max(0, sectionY - SCROLL_OFFSET), true);
297
430
  hasScrolledToSectionRef.current = true;
298
431
  });
299
432
  });
@@ -310,11 +443,11 @@ const AccountSettingsScreen = ({
310
443
  username,
311
444
  email,
312
445
  bio,
313
- location: tempLocations.length > 0 ? tempLocations[0].name : '',
446
+ location: locations.length > 0 ? locations[0].name : '',
314
447
  // Keep backward compatibility
315
- locations: tempLocations.length > 0 ? tempLocations : undefined,
448
+ locations: locations.length > 0 ? locations : undefined,
316
449
  links,
317
- linksMetadata: tempLinksWithMetadata.length > 0 ? tempLinksWithMetadata : undefined
450
+ linksMetadata: linksMetadata.length > 0 ? linksMetadata : undefined
318
451
  };
319
452
 
320
453
  // Handle name field
@@ -352,207 +485,106 @@ const AccountSettingsScreen = ({
352
485
  });
353
486
  };
354
487
  const openAvatarPicker = (0, _react.useCallback)(() => {
355
- showBottomSheet?.({
356
- screen: 'FileManagement',
357
- props: {
358
- selectMode: true,
359
- multiSelect: false,
360
- afterSelect: 'back',
361
- onSelect: async file => {
362
- if (!file.contentType.startsWith('image/')) {
363
- _sonner.toast.error(t('editProfile.toasts.selectImage') || 'Please select an image file');
364
- return;
365
- }
366
- // If already selected, do nothing
367
- if (file.id === avatarFileId) {
368
- _sonner.toast.info?.(t('editProfile.toasts.avatarUnchanged') || 'Avatar unchanged');
369
- return;
370
- }
371
-
372
- // Optimistically update UI immediately
373
- setOptimisticAvatarId(file.id);
374
- setAvatarFileId(file.id);
375
-
376
- // Auto-save avatar immediately (does not close edit profile screen)
377
- (async () => {
378
- try {
379
- setIsUpdatingAvatar(true);
488
+ _sonner.toast.info?.(t('editProfile.toasts.avatarPickerUnavailable') || 'Avatar picker is not available in this build.');
489
+ }, [t]);
380
490
 
381
- // Update file visibility to public for avatar
382
- try {
383
- await oxyServices.assetUpdateVisibility(file.id, 'public');
384
- } catch (visError) {
385
- // Continue with avatar update even if visibility update fails
386
- }
491
+ // Handlers to open modals
492
+ const handleOpenDisplayNameModal = (0, _react.useCallback)(() => setShowEditDisplayNameModal(true), []);
493
+ const handleOpenUsernameModal = (0, _react.useCallback)(() => setShowEditUsernameModal(true), []);
494
+ const handleOpenEmailModal = (0, _react.useCallback)(() => setShowEditEmailModal(true), []);
495
+ const handleOpenBioModal = (0, _react.useCallback)(() => setShowEditBioModal(true), []);
496
+ const handleOpenLocationModal = (0, _react.useCallback)(() => setShowEditLocationModal(true), []);
497
+ const handleOpenLinksModal = (0, _react.useCallback)(() => setShowEditLinksModal(true), []);
498
+ const handleOpenTwoFactorModal = (0, _react.useCallback)(() => setShowTwoFactorModal(true), []);
387
499
 
388
- // Update on server directly without using updateUser (which triggers fetchUser)
389
- // This prevents the entire component from re-rendering
390
- await oxyServices.updateProfile({
391
- avatar: file.id
392
- });
500
+ // Handler to refresh data after modal saves
501
+ // Note: Access user directly from store when invoked to get latest value,
502
+ // not from closure which may be stale after modal saves update the backend
503
+ const handleModalSave = (0, _react.useCallback)(() => {
504
+ // Get fresh user data from store to ensure we have the latest values
505
+ // after the modal's save operation updates the backend
506
+ // Read from store directly (not from closure) to avoid stale data
507
+ const currentUser = _authStore.useAuthStore.getState().user;
393
508
 
394
- // Update the user object in store directly without triggering fetchUser
395
- // This prevents isLoading from being set to true, which would show loading screen
396
- const currentUser = _authStore.useAuthStore.getState().user;
397
- if (currentUser) {
398
- _authStore.useAuthStore.setState({
399
- user: {
400
- ...currentUser,
401
- avatar: file.id
402
- }
403
- // Don't update lastUserFetch to avoid cache issues
404
- });
405
- }
406
-
407
- // Update local state - keep avatarFileId set to the new value
408
- // Don't clear optimisticAvatarId yet - let it persist until user object updates
409
- // This ensures the avatar displays correctly
410
- setAvatarFileId(file.id);
411
- _sonner.toast.success(t('editProfile.toasts.avatarUpdated') || 'Avatar updated');
509
+ // Reload user data to reflect changes
510
+ if (currentUser) {
511
+ const userDisplayName = typeof currentUser.name === 'string' ? currentUser.name : currentUser.name?.first || currentUser.name?.full || '';
512
+ const userLastName = typeof currentUser.name === 'object' ? currentUser.name?.last || '' : '';
513
+ setDisplayName(userDisplayName);
514
+ setLastName(userLastName);
515
+ setUsername(currentUser.username || '');
516
+ setEmail(currentUser.email || '');
517
+ setBio(currentUser.bio || '');
412
518
 
413
- // Scroll to avatar section after a brief delay to ensure UI is updated
414
- requestAnimationFrame(() => {
415
- requestAnimationFrame(() => {
416
- if (avatarSectionY !== null) {
417
- scrollViewRef.current?.scrollTo({
418
- y: Math.max(0, avatarSectionY - 100),
419
- // Offset to show section near top
420
- animated: true
421
- });
422
- } else {
423
- // Fallback: scroll to approximate position
424
- scrollViewRef.current?.scrollTo({
425
- y: 200,
426
- // Approximate position of avatar section
427
- animated: true
428
- });
429
- }
430
- });
431
- });
432
- } catch (e) {
433
- // Revert optimistic update on error
434
- setAvatarFileId(typeof user?.avatar === 'string' ? user.avatar : '');
435
- setOptimisticAvatarId(null);
436
- _sonner.toast.error(e.message || t('editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar');
437
- } finally {
438
- setIsUpdatingAvatar(false);
439
- }
440
- })();
441
- },
442
- // Limit to images client-side by using photos view if later exposed
443
- disabledMimeTypes: ['video/', 'audio/', 'application/pdf']
519
+ // Reload locations and links
520
+ if (currentUser.locations && Array.isArray(currentUser.locations)) {
521
+ setLocations(currentUser.locations.map((loc, index) => ({
522
+ id: loc.id || `existing-${index}`,
523
+ name: loc.name,
524
+ label: loc.label,
525
+ coordinates: loc.coordinates
526
+ })));
527
+ } else if (currentUser.location) {
528
+ setLocations([{
529
+ id: 'existing-0',
530
+ name: currentUser.location,
531
+ label: 'Location'
532
+ }]);
533
+ } else {
534
+ setLocations([]);
535
+ }
536
+ if (currentUser.linksMetadata && Array.isArray(currentUser.linksMetadata)) {
537
+ setLinksMetadata(currentUser.linksMetadata.map((link, index) => ({
538
+ ...link,
539
+ id: link.id || `existing-${index}`
540
+ })));
541
+ } else {
542
+ setLinksMetadata([]);
444
543
  }
445
- });
446
- }, [showBottomSheet, oxyServices, avatarFileId, updateUser, user]);
447
- const startEditing = (0, _react.useCallback)((type, currentValue) => {
448
- switch (type) {
449
- case 'displayName':
450
- setTempDisplayName(displayName);
451
- setTempLastName(lastName);
452
- break;
453
- case 'username':
454
- setTempUsername(currentValue);
455
- break;
456
- case 'email':
457
- setTempEmail(currentValue);
458
- break;
459
- case 'bio':
460
- setTempBio(currentValue);
461
- break;
462
- case 'location':
463
- // Don't reset the locations - keep the existing data
464
- break;
465
- case 'links':
466
- // Don't reset the metadata - keep the existing rich metadata
467
- // The tempLinksWithMetadata should already contain the rich data from the database
468
- break;
469
- case 'twoFactor':
470
- // Reset TOTP temp state
471
- setTotpSetupUrl(null);
472
- setTotpCode('');
473
- break;
474
544
  }
475
- setEditingField(type);
476
- }, [displayName, lastName]);
545
+ }, []); // Empty dependency array - callback reads fresh data from store at call time
477
546
 
478
- // Handle initialField prop - must be after startEditing and openAvatarPicker are declared
547
+ // Handle initialField prop - open appropriate modal
479
548
  (0, _react.useEffect)(() => {
480
- // Clear any pending timeout
481
- if (initialFieldTimeoutRef.current) {
482
- clearTimeout(initialFieldTimeoutRef.current);
483
- initialFieldTimeoutRef.current = null;
484
- }
485
-
486
- // If initialField changed, reset the flag
487
- if (previousInitialFieldRef.current !== initialField) {
488
- hasSetInitialFieldRef.current = false;
489
- previousInitialFieldRef.current = initialField;
490
- }
491
-
492
- // Set the editing field if initialField is provided and we haven't set it yet
493
- if (initialField && !hasSetInitialFieldRef.current) {
549
+ if (initialField) {
494
550
  // Special handling for avatar - open avatar picker directly
495
551
  if (initialField === 'avatar') {
496
- // Wait for section to be scrolled, then open picker
497
- initialFieldTimeoutRef.current = setTimeout(() => {
552
+ setTimeout(() => {
498
553
  openAvatarPicker();
499
- hasSetInitialFieldRef.current = true;
500
- }, SCROLL_DELAY_MS);
554
+ }, 300);
501
555
  } else {
502
- // For other fields, get current value and start editing after scroll
503
- const currentValue = getFieldCurrentValue(initialField);
504
-
505
- // Wait for section to be scrolled, then start editing
506
- initialFieldTimeoutRef.current = setTimeout(() => {
507
- startEditing(initialField, currentValue);
508
- hasSetInitialFieldRef.current = true;
509
- }, SCROLL_DELAY_MS);
510
- }
511
- }
512
- return () => {
513
- if (initialFieldTimeoutRef.current) {
514
- clearTimeout(initialFieldTimeoutRef.current);
515
- initialFieldTimeoutRef.current = null;
556
+ // Open appropriate modal
557
+ setTimeout(() => {
558
+ switch (initialField) {
559
+ case 'displayName':
560
+ setShowEditDisplayNameModal(true);
561
+ break;
562
+ case 'username':
563
+ setShowEditUsernameModal(true);
564
+ break;
565
+ case 'email':
566
+ setShowEditEmailModal(true);
567
+ break;
568
+ case 'bio':
569
+ setShowEditBioModal(true);
570
+ break;
571
+ case 'location':
572
+ setShowEditLocationModal(true);
573
+ break;
574
+ case 'links':
575
+ setShowEditLinksModal(true);
576
+ break;
577
+ case 'twoFactor':
578
+ setShowTwoFactorModal(true);
579
+ break;
580
+ }
581
+ }, 300);
516
582
  }
517
- };
518
- }, [initialField, getFieldCurrentValue, startEditing, openAvatarPicker]);
519
- const saveField = type => {
520
- animateSaveButton(0.95); // Scale down slightly for animation
521
-
522
- switch (type) {
523
- case 'displayName':
524
- setDisplayName(tempDisplayName);
525
- setLastName(tempLastName);
526
- break;
527
- case 'username':
528
- setUsername(tempUsername);
529
- break;
530
- case 'email':
531
- setEmail(tempEmail);
532
- break;
533
- case 'bio':
534
- setBio(tempBio);
535
- break;
536
- case 'location':
537
- // Locations are handled in the main save function
538
- break;
539
- case 'links':
540
- // Save both URLs and metadata
541
- setLinks(tempLinksWithMetadata.map(link => link.url));
542
- // Store full metadata for database
543
- setTempLinksWithMetadata(tempLinksWithMetadata);
544
- break;
545
583
  }
584
+ }, [initialField, openAvatarPicker]);
546
585
 
547
- // Complete animation, then reset and close editing
548
- animateSaveButton(1, () => {
549
- setEditingField(null);
550
- });
551
- };
552
- const cancelEditing = () => {
553
- setEditingField(null);
554
- };
555
- const fetchLinkMetadata = async url => {
586
+ // Removed fetchLinkMetadata - now handled by EditLinksModal
587
+ const _fetchLinkMetadata = async url => {
556
588
  // Check cache first
557
589
  const cacheKey = url.toLowerCase().trim();
558
590
  const cached = linkMetadataCache.get(cacheKey);
@@ -588,6 +620,8 @@ const AccountSettingsScreen = ({
588
620
  setIsFetchingMetadata(false);
589
621
  }
590
622
  };
623
+
624
+ // Helper functions for inline editing (legacy support - still used by renderEditingField)
591
625
  const searchLocations = async query => {
592
626
  if (!query.trim() || query.length < 3) {
593
627
  setLocationSearchResults([]);
@@ -644,7 +678,7 @@ const AccountSettingsScreen = ({
644
678
  const addLink = async () => {
645
679
  if (!newLinkUrl.trim()) return;
646
680
  const url = newLinkUrl.trim();
647
- const metadata = await fetchLinkMetadata(url);
681
+ const metadata = await _fetchLinkMetadata(url);
648
682
  setTempLinksWithMetadata(prev => [...prev, metadata]);
649
683
  setNewLinkUrl('');
650
684
  setIsAddingLink(false);
@@ -660,12 +694,18 @@ const AccountSettingsScreen = ({
660
694
  return newLinks;
661
695
  });
662
696
  };
697
+
698
+ // Memoize display name for avatar
699
+ const displayNameForAvatar = (0, _react.useMemo)(() => (0, _userUtils.getDisplayName)(user), [user]);
700
+
701
+ // Legacy renderEditingField function (still used for twoFactor and fallback)
663
702
  const renderEditingField = type => {
703
+ if (!type) return null;
664
704
  if (type === 'twoFactor') {
665
705
  const enabled = !!user?.privacySettings?.twoFactorEnabled;
666
706
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
667
707
  style: [styles.editingFieldContainer, {
668
- backgroundColor: themeStyles.backgroundColor
708
+ backgroundColor: colors.background
669
709
  }],
670
710
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
671
711
  style: styles.editingFieldContent,
@@ -675,7 +715,7 @@ const AccountSettingsScreen = ({
675
715
  style: styles.editingFieldHeader,
676
716
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
677
717
  style: [styles.editingFieldLabel, {
678
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
718
+ color: colors.text
679
719
  }],
680
720
  children: "Two\u2011Factor Authentication (TOTP)"
681
721
  })
@@ -684,7 +724,9 @@ const AccountSettingsScreen = ({
684
724
  style: styles.editingFieldDescription,
685
725
  children: "Protect your account with a 6\u2011digit code from an authenticator app. Scan the QR code then enter the code to enable."
686
726
  }), !totpSetupUrl ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
687
- style: styles.primaryButton,
727
+ style: [styles.primaryButton, {
728
+ backgroundColor: colors.iconSecurity
729
+ }],
688
730
  disabled: isTotpBusy,
689
731
  onPress: async () => {
690
732
  if (!activeSessionId) {
@@ -739,7 +781,9 @@ const AccountSettingsScreen = ({
739
781
  maxLength: 6
740
782
  })]
741
783
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
742
- style: styles.primaryButton,
784
+ style: [styles.primaryButton, {
785
+ backgroundColor: colors.iconSecurity
786
+ }],
743
787
  disabled: isTotpBusy || totpCode.length !== 6,
744
788
  onPress: async () => {
745
789
  if (!activeSessionId) {
@@ -796,7 +840,7 @@ const AccountSettingsScreen = ({
796
840
  })]
797
841
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
798
842
  style: [styles.primaryButton, {
799
- backgroundColor: '#d9534f'
843
+ backgroundColor: colors.sidebarIconSharing
800
844
  }],
801
845
  disabled: isTotpBusy || totpCode.length !== 6,
802
846
  onPress: async () => {
@@ -837,7 +881,7 @@ const AccountSettingsScreen = ({
837
881
  if (type === 'displayName') {
838
882
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
839
883
  style: [styles.editingFieldContainer, {
840
- backgroundColor: themeStyles.backgroundColor
884
+ backgroundColor: colors.background
841
885
  }],
842
886
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
843
887
  style: styles.editingFieldContent,
@@ -847,7 +891,7 @@ const AccountSettingsScreen = ({
847
891
  style: styles.editingFieldHeader,
848
892
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
849
893
  style: [styles.editingFieldLabel, {
850
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
894
+ color: colors.text
851
895
  }],
852
896
  children: "Edit Full Name"
853
897
  })
@@ -868,7 +912,7 @@ const AccountSettingsScreen = ({
868
912
  value: tempDisplayName,
869
913
  onChangeText: setTempDisplayName,
870
914
  placeholder: "Enter your first name",
871
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
915
+ placeholderTextColor: colors.secondaryText,
872
916
  autoFocus: true,
873
917
  selectionColor: themeStyles.primaryColor
874
918
  })]
@@ -884,7 +928,7 @@ const AccountSettingsScreen = ({
884
928
  value: tempLastName,
885
929
  onChangeText: setTempLastName,
886
930
  placeholder: "Enter your last name",
887
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
931
+ placeholderTextColor: colors.secondaryText,
888
932
  selectionColor: themeStyles.primaryColor
889
933
  })]
890
934
  })]
@@ -896,7 +940,7 @@ const AccountSettingsScreen = ({
896
940
  if (type === 'location') {
897
941
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
898
942
  style: [styles.editingFieldContainer, {
899
- backgroundColor: themeStyles.backgroundColor
943
+ backgroundColor: colors.background
900
944
  }],
901
945
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
902
946
  style: styles.editingFieldContent,
@@ -906,7 +950,7 @@ const AccountSettingsScreen = ({
906
950
  style: styles.editingFieldHeader,
907
951
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
908
952
  style: [styles.editingFieldLabel, {
909
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
953
+ color: colors.text
910
954
  }],
911
955
  children: "Manage Your Locations"
912
956
  })
@@ -915,7 +959,9 @@ const AccountSettingsScreen = ({
915
959
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
916
960
  style: styles.addLocationLabel,
917
961
  children: ["Add New Location", isSearchingLocations && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
918
- style: styles.searchingText,
962
+ style: [styles.searchingText, {
963
+ color: colors.iconSecurity
964
+ }],
919
965
  children: " \u2022 Searching..."
920
966
  })]
921
967
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -928,7 +974,7 @@ const AccountSettingsScreen = ({
928
974
  searchLocations(text);
929
975
  },
930
976
  placeholder: "Search for a location...",
931
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
977
+ placeholderTextColor: colors.secondaryText,
932
978
  autoFocus: true,
933
979
  selectionColor: themeStyles.primaryColor
934
980
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -969,7 +1015,9 @@ const AccountSettingsScreen = ({
969
1015
  size: 20,
970
1016
  color: themeStyles.primaryColor
971
1017
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
972
- style: styles.addLocationTriggerText,
1018
+ style: [styles.addLocationTriggerText, {
1019
+ color: colors.iconSecurity
1020
+ }],
973
1021
  children: "Add a new location"
974
1022
  })]
975
1023
  }), tempLocations.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1014,7 +1062,9 @@ const AccountSettingsScreen = ({
1014
1062
  numberOfLines: 1,
1015
1063
  children: location.name
1016
1064
  }), location.label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1017
- style: styles.locationLabel,
1065
+ style: [styles.locationLabel, {
1066
+ backgroundColor: colors.iconSecurity
1067
+ }],
1018
1068
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1019
1069
  style: styles.locationLabelText,
1020
1070
  children: location.label
@@ -1054,7 +1104,7 @@ const AccountSettingsScreen = ({
1054
1104
  if (type === 'links') {
1055
1105
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1056
1106
  style: [styles.editingFieldContainer, {
1057
- backgroundColor: themeStyles.backgroundColor
1107
+ backgroundColor: colors.background
1058
1108
  }],
1059
1109
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1060
1110
  style: styles.editingFieldContent,
@@ -1064,7 +1114,7 @@ const AccountSettingsScreen = ({
1064
1114
  style: styles.editingFieldHeader,
1065
1115
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1066
1116
  style: [styles.editingFieldLabel, {
1067
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#1A1A1A'
1117
+ color: colors.text
1068
1118
  }],
1069
1119
  children: "Manage Your Links"
1070
1120
  })
@@ -1073,11 +1123,10 @@ const AccountSettingsScreen = ({
1073
1123
  // Add new link item
1074
1124
  ...(isAddingLink ? [{
1075
1125
  id: 'add-link-input',
1076
- icon: 'add',
1077
- iconColor: '#32D74B',
1126
+ icon: 'plus',
1127
+ iconColor: colors.sidebarIconSharing,
1078
1128
  title: 'Add New Link',
1079
1129
  subtitle: isFetchingMetadata ? 'Fetching metadata...' : 'Enter URL to add a new link',
1080
- multiRow: true,
1081
1130
  customContent: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1082
1131
  style: styles.addLinkInputContainer,
1083
1132
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
@@ -1085,7 +1134,7 @@ const AccountSettingsScreen = ({
1085
1134
  value: newLinkUrl,
1086
1135
  onChangeText: setNewLinkUrl,
1087
1136
  placeholder: "Enter URL (e.g., https://example.com)",
1088
- placeholderTextColor: themeStyles.isDarkTheme ? '#aaa' : '#999',
1137
+ placeholderTextColor: colors.secondaryText,
1089
1138
  keyboardType: "url",
1090
1139
  autoFocus: true,
1091
1140
  selectionColor: themeStyles.primaryColor
@@ -1103,6 +1152,7 @@ const AccountSettingsScreen = ({
1103
1152
  })
1104
1153
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
1105
1154
  style: [styles.addLinkButton, styles.addButton, {
1155
+ backgroundColor: colors.iconSecurity,
1106
1156
  opacity: isFetchingMetadata ? 0.5 : 1
1107
1157
  }],
1108
1158
  onPress: addLink,
@@ -1119,8 +1169,8 @@ const AccountSettingsScreen = ({
1119
1169
  })
1120
1170
  }] : [{
1121
1171
  id: 'add-link-trigger',
1122
- icon: 'add',
1123
- iconColor: '#32D74B',
1172
+ icon: 'plus',
1173
+ iconColor: colors.sidebarIconSharing,
1124
1174
  title: 'Add a new link',
1125
1175
  subtitle: 'Tap to add a new link to your profile',
1126
1176
  onPress: () => setIsAddingLink(true)
@@ -1128,13 +1178,20 @@ const AccountSettingsScreen = ({
1128
1178
  // Existing links
1129
1179
  ...tempLinksWithMetadata.map((link, index) => ({
1130
1180
  id: link.id,
1131
- image: link.image || undefined,
1132
- imageSize: 32,
1133
- icon: link.image ? undefined : 'link',
1134
- iconColor: '#32D74B',
1181
+ customIcon: link.image ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
1182
+ source: {
1183
+ uri: link.image
1184
+ },
1185
+ style: {
1186
+ width: 36,
1187
+ height: 36,
1188
+ borderRadius: 18
1189
+ }
1190
+ }) : undefined,
1191
+ icon: !link.image ? 'link-variant' : undefined,
1192
+ iconColor: colors.sidebarIconSharing,
1135
1193
  title: link.title || link.url,
1136
1194
  subtitle: link.description && link.description !== link.title ? link.description : link.url,
1137
- multiRow: true,
1138
1195
  customContent: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1139
1196
  style: styles.linkItemActions,
1140
1197
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1168,8 +1225,7 @@ const AccountSettingsScreen = ({
1168
1225
  })
1169
1226
  })]
1170
1227
  })
1171
- }))],
1172
- theme: theme
1228
+ }))]
1173
1229
  }), tempLinksWithMetadata.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1174
1230
  style: styles.reorderHint,
1175
1231
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
@@ -1187,7 +1243,7 @@ const AccountSettingsScreen = ({
1187
1243
  value: displayName,
1188
1244
  placeholder: 'Enter your display name',
1189
1245
  icon: 'person',
1190
- color: '#007AFF',
1246
+ color: colors.iconPersonalInfo,
1191
1247
  multiline: false,
1192
1248
  keyboardType: 'default'
1193
1249
  },
@@ -1196,7 +1252,7 @@ const AccountSettingsScreen = ({
1196
1252
  value: username,
1197
1253
  placeholder: 'Choose a username',
1198
1254
  icon: 'at',
1199
- color: '#5856D6',
1255
+ color: colors.iconData,
1200
1256
  multiline: false,
1201
1257
  keyboardType: 'default'
1202
1258
  },
@@ -1205,7 +1261,7 @@ const AccountSettingsScreen = ({
1205
1261
  value: email,
1206
1262
  placeholder: 'Enter your email address',
1207
1263
  icon: 'mail',
1208
- color: '#FF9500',
1264
+ color: colors.iconStorage,
1209
1265
  multiline: false,
1210
1266
  keyboardType: 'email-address'
1211
1267
  },
@@ -1214,7 +1270,7 @@ const AccountSettingsScreen = ({
1214
1270
  value: bio,
1215
1271
  placeholder: 'Tell people about yourself...',
1216
1272
  icon: 'document-text',
1217
- color: '#34C759',
1273
+ color: colors.iconPersonalInfo,
1218
1274
  multiline: true,
1219
1275
  keyboardType: 'default'
1220
1276
  },
@@ -1223,7 +1279,7 @@ const AccountSettingsScreen = ({
1223
1279
  value: location,
1224
1280
  placeholder: 'Enter your location',
1225
1281
  icon: 'location',
1226
- color: '#FF3B30',
1282
+ color: colors.iconSharing,
1227
1283
  multiline: false,
1228
1284
  keyboardType: 'default'
1229
1285
  },
@@ -1232,7 +1288,7 @@ const AccountSettingsScreen = ({
1232
1288
  value: links.join(', '),
1233
1289
  placeholder: 'Enter your links (comma separated)',
1234
1290
  icon: 'link',
1235
- color: '#32D74B',
1291
+ color: colors.iconPersonalInfo,
1236
1292
  multiline: false,
1237
1293
  keyboardType: 'url'
1238
1294
  }
@@ -1281,7 +1337,7 @@ const AccountSettingsScreen = ({
1281
1337
  };
1282
1338
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1283
1339
  style: [styles.editingFieldContainer, {
1284
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#FFFFFF'
1340
+ backgroundColor: colors.background
1285
1341
  }],
1286
1342
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1287
1343
  style: styles.editingFieldContent,
@@ -1291,7 +1347,7 @@ const AccountSettingsScreen = ({
1291
1347
  style: styles.editingFieldHeader,
1292
1348
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1293
1349
  style: [styles.editingFieldLabel, {
1294
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#000000'
1350
+ color: colors.text
1295
1351
  }],
1296
1352
  children: config.label
1297
1353
  })
@@ -1315,10 +1371,10 @@ const AccountSettingsScreen = ({
1315
1371
  })
1316
1372
  });
1317
1373
  };
1318
- if (authLoading || !isAuthenticated) {
1374
+ if (isLoading || !isAuthenticated) {
1319
1375
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1320
1376
  style: [styles.container, {
1321
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#F5F5F7',
1377
+ backgroundColor: themeStyles.backgroundColor,
1322
1378
  justifyContent: 'center'
1323
1379
  }],
1324
1380
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
@@ -1329,40 +1385,40 @@ const AccountSettingsScreen = ({
1329
1385
  }
1330
1386
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1331
1387
  style: [styles.container, {
1332
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#F5F5F7'
1388
+ backgroundColor: themeStyles.backgroundColor
1333
1389
  }],
1334
1390
  children: [editingField ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1335
1391
  style: [styles.editingHeader, {
1336
- backgroundColor: themeStyles.isDarkTheme ? '#000000' : '#FFFFFF',
1337
- borderBottomColor: themeStyles.isDarkTheme ? '#38383A' : '#E5E5EA'
1392
+ backgroundColor: colors.background,
1393
+ borderBottomColor: colors.border
1338
1394
  }],
1339
1395
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1340
1396
  style: styles.editingHeaderContent,
1341
1397
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
1342
1398
  style: [styles.editingBackButton, {
1343
- backgroundColor: themeStyles.isDarkTheme ? '#1C1C1E' : '#F2F2F7'
1399
+ backgroundColor: colors.card
1344
1400
  }],
1345
1401
  onPress: cancelEditing,
1346
1402
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
1347
1403
  name: "chevron-back",
1348
1404
  size: 20,
1349
- color: themeStyles.primaryColor
1405
+ color: colors.tint
1350
1406
  })
1351
1407
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1352
1408
  style: styles.editingTitleContainer
1353
1409
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
1354
1410
  style: [styles.editingSaveButton, {
1355
1411
  opacity: isSaving ? 0.5 : 1,
1356
- backgroundColor: themeStyles.isDarkTheme ? '#1C1C1E' : '#F2F2F7'
1412
+ backgroundColor: colors.card
1357
1413
  }],
1358
1414
  onPress: () => saveField(editingField),
1359
1415
  disabled: isSaving,
1360
1416
  children: isSaving ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
1361
1417
  size: "small",
1362
- color: themeStyles.primaryColor
1418
+ color: colors.tint
1363
1419
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1364
1420
  style: [styles.editingSaveButtonText, {
1365
- color: themeStyles.primaryColor
1421
+ color: colors.tint
1366
1422
  }],
1367
1423
  children: "Save"
1368
1424
  })
@@ -1371,34 +1427,25 @@ const AccountSettingsScreen = ({
1371
1427
  style: styles.editingHeaderBottom,
1372
1428
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1373
1429
  style: [styles.editingIconContainer, {
1374
- backgroundColor: editingField === 'displayName' ? '#007AFF20' : editingField === 'username' ? '#5856D620' : editingField === 'email' ? '#FF950020' : editingField === 'bio' ? '#34C75920' : editingField === 'location' ? '#FF3B3020' : editingField === 'links' ? '#32D74B20' : '#007AFF20'
1430
+ 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`
1375
1431
  }],
1376
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
1377
- name: editingField === 'displayName' ? 'person' : editingField === 'username' ? 'at' : editingField === 'email' ? 'mail' : editingField === 'bio' ? 'document-text' : editingField === 'location' ? 'location' : editingField === 'links' ? 'link' : 'person',
1432
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
1433
+ 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',
1378
1434
  size: 28,
1379
- color: editingField === 'displayName' ? '#007AFF' : editingField === 'username' ? '#5856D6' : editingField === 'email' ? '#FF9500' : editingField === 'bio' ? '#34C759' : editingField === 'location' ? '#FF3B30' : editingField === 'links' ? '#32D74B' : '#007AFF'
1435
+ 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
1380
1436
  })
1381
1437
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1382
1438
  style: [styles.editingBottomTitle, {
1383
- color: themeStyles.isDarkTheme ? '#FFFFFF' : '#000000'
1439
+ color: colors.text
1384
1440
  }],
1385
1441
  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'
1386
1442
  })]
1387
1443
  })]
1388
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Header, {
1389
- title: t('editProfile.title') || 'Edit Profile',
1390
- theme: theme,
1391
- onBack: goBack || onClose,
1392
- rightAction: {
1393
- icon: 'checkmark',
1394
- onPress: handleSave,
1395
- loading: isSaving,
1396
- disabled: isSaving
1397
- },
1398
- elevation: "subtle"
1399
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
1444
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
1400
1445
  ref: scrollViewRef,
1401
1446
  style: editingField ? styles.contentEditing : styles.content,
1447
+ contentContainerStyle: styles.scrollContent,
1448
+ showsVerticalScrollIndicator: false,
1402
1449
  children: editingField ?
1403
1450
  /*#__PURE__*/
1404
1451
  // Show only the editing interface when editing
@@ -1409,7 +1456,24 @@ const AccountSettingsScreen = ({
1409
1456
  /*#__PURE__*/
1410
1457
  // Show all settings when not editing
1411
1458
  (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
1412
- children: [showRecoveryModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1459
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1460
+ style: [styles.headerContainer, styles.headerSection],
1461
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1462
+ style: [styles.modernTitle, {
1463
+ color: themeStyles.textColor,
1464
+ marginBottom: 0,
1465
+ marginTop: 0
1466
+ }],
1467
+ children: t('accountOverview.items.editProfile.title') || t('editProfile.title') || 'Edit Profile'
1468
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1469
+ style: [styles.modernSubtitle, {
1470
+ color: colors.secondaryText,
1471
+ marginBottom: 0,
1472
+ marginTop: 0
1473
+ }],
1474
+ children: t('accountOverview.items.editProfile.subtitle') || t('editProfile.subtitle') || 'Manage your profile and preferences'
1475
+ })]
1476
+ }), showRecoveryModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1413
1477
  style: {
1414
1478
  position: 'absolute',
1415
1479
  top: 0,
@@ -1495,6 +1559,7 @@ const AccountSettingsScreen = ({
1495
1559
  })]
1496
1560
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
1497
1561
  style: [styles.primaryButton, {
1562
+ backgroundColor: colors.iconSecurity,
1498
1563
  alignSelf: 'flex-end',
1499
1564
  marginTop: 8
1500
1565
  }],
@@ -1528,7 +1593,7 @@ const AccountSettingsScreen = ({
1528
1593
  },
1529
1594
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1530
1595
  style: [styles.sectionTitle, {
1531
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1596
+ color: colors.secondaryText
1532
1597
  }],
1533
1598
  children: t('editProfile.sections.profilePicture') || 'PROFILE PICTURE'
1534
1599
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1536,29 +1601,20 @@ const AccountSettingsScreen = ({
1536
1601
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
1537
1602
  items: [{
1538
1603
  id: 'profile-photo',
1539
- icon: avatarFileId ? undefined : 'person',
1540
- iconColor: '#007AFF',
1541
- // Use optimistic avatar ID if available, otherwise use saved one
1542
- image: optimisticAvatarId || avatarFileId ? oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb') : undefined,
1543
- imageSize: 40,
1544
- title: 'Profile Photo',
1545
- subtitle: isUpdatingAvatar ? 'Updating profile picture...' : avatarFileId ? 'Tap to change your profile picture' : 'Tap to add a profile picture',
1546
- onPress: isUpdatingAvatar ? undefined : openAvatarPicker,
1547
- disabled: isUpdatingAvatar,
1548
- customIcon: isUpdatingAvatar ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
1604
+ customIcon: optimisticAvatarId || avatarFileId ? isUpdatingAvatar ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
1549
1605
  style: {
1550
1606
  position: 'relative',
1551
- width: 40,
1552
- height: 40
1607
+ width: 36,
1608
+ height: 36
1553
1609
  },
1554
- children: [(optimisticAvatarId || avatarFileId) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.Image, {
1610
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.Image, {
1555
1611
  source: {
1556
1612
  uri: oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb')
1557
1613
  },
1558
1614
  style: {
1559
- width: 40,
1560
- height: 40,
1561
- borderRadius: 22,
1615
+ width: 36,
1616
+ height: 36,
1617
+ borderRadius: 18,
1562
1618
  opacity: 0.6
1563
1619
  }
1564
1620
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1570,24 +1626,38 @@ const AccountSettingsScreen = ({
1570
1626
  bottom: 0,
1571
1627
  justifyContent: 'center',
1572
1628
  alignItems: 'center',
1573
- backgroundColor: themeStyles.isDarkTheme ? 'rgba(0, 0, 0, 0.4)' : 'rgba(255, 255, 255, 0.7)',
1574
- borderRadius: 22
1629
+ backgroundColor: colorScheme === 'dark' ? 'rgba(0, 0, 0, 0.4)' : 'rgba(255, 255, 255, 0.7)',
1630
+ borderRadius: 18
1575
1631
  },
1576
1632
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
1577
1633
  size: "small",
1578
- color: themeStyles.primaryColor
1634
+ color: colors.tint
1579
1635
  })
1580
1636
  })]
1581
- }) : undefined
1637
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
1638
+ source: {
1639
+ uri: oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb')
1640
+ },
1641
+ style: {
1642
+ width: 36,
1643
+ height: 36,
1644
+ borderRadius: 18
1645
+ }
1646
+ }) : undefined,
1647
+ icon: !(optimisticAvatarId || avatarFileId) ? 'account-outline' : undefined,
1648
+ iconColor: colors.sidebarIconPersonalInfo,
1649
+ title: 'Profile Photo',
1650
+ subtitle: isUpdatingAvatar ? 'Updating profile picture...' : avatarFileId ? 'Tap to change your profile picture' : 'Tap to add a profile picture',
1651
+ onPress: isUpdatingAvatar ? undefined : openAvatarPicker,
1652
+ disabled: isUpdatingAvatar
1582
1653
  }, ...(avatarFileId && !isUpdatingAvatar ? [{
1583
1654
  id: 'remove-profile-photo',
1584
- icon: 'trash',
1585
- iconColor: '#FF3B30',
1655
+ icon: 'delete-outline',
1656
+ iconColor: colors.sidebarIconSharing,
1586
1657
  title: 'Remove Photo',
1587
1658
  subtitle: 'Delete current profile picture',
1588
1659
  onPress: handleAvatarRemove
1589
- }] : [])],
1590
- theme: theme
1660
+ }] : [])]
1591
1661
  })
1592
1662
  })]
1593
1663
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1601,7 +1671,7 @@ const AccountSettingsScreen = ({
1601
1671
  },
1602
1672
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1603
1673
  style: [styles.sectionTitle, {
1604
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1674
+ color: colors.secondaryText
1605
1675
  }],
1606
1676
  children: t('editProfile.sections.basicInfo') || 'BASIC INFORMATION'
1607
1677
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1609,27 +1679,26 @@ const AccountSettingsScreen = ({
1609
1679
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
1610
1680
  items: [{
1611
1681
  id: 'display-name',
1612
- icon: 'person',
1613
- iconColor: '#007AFF',
1682
+ icon: 'account-outline',
1683
+ iconColor: colors.sidebarIconPersonalInfo,
1614
1684
  title: t('editProfile.items.displayName.title') || 'Display Name',
1615
1685
  subtitle: [displayName, lastName].filter(Boolean).join(' ') || t('editProfile.items.displayName.add') || 'Add your display name',
1616
- onPress: () => startEditing('displayName', '')
1686
+ onPress: handleOpenDisplayNameModal
1617
1687
  }, {
1618
1688
  id: 'username',
1619
1689
  icon: 'at',
1620
- iconColor: '#5856D6',
1690
+ iconColor: colors.sidebarIconData,
1621
1691
  title: t('editProfile.items.username.title') || 'Username',
1622
1692
  subtitle: username || t('editProfile.items.username.choose') || 'Choose a username',
1623
- onPress: () => startEditing('username', username)
1693
+ onPress: handleOpenUsernameModal
1624
1694
  }, {
1625
1695
  id: 'email',
1626
- icon: 'mail',
1627
- iconColor: '#FF9500',
1696
+ icon: 'email-outline',
1697
+ iconColor: colors.sidebarIconSecurity,
1628
1698
  title: t('editProfile.items.email.title') || 'Email',
1629
1699
  subtitle: email || t('editProfile.items.email.add') || 'Add your email address',
1630
- onPress: () => startEditing('email', email)
1631
- }],
1632
- theme: theme
1700
+ onPress: handleOpenEmailModal
1701
+ }]
1633
1702
  })
1634
1703
  })]
1635
1704
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1643,7 +1712,7 @@ const AccountSettingsScreen = ({
1643
1712
  },
1644
1713
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1645
1714
  style: [styles.sectionTitle, {
1646
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1715
+ color: colors.secondaryText
1647
1716
  }],
1648
1717
  children: t('editProfile.sections.about') || 'ABOUT YOU'
1649
1718
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1651,87 +1720,34 @@ const AccountSettingsScreen = ({
1651
1720
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
1652
1721
  items: [{
1653
1722
  id: 'bio',
1654
- icon: 'document-text',
1655
- iconColor: '#34C759',
1723
+ icon: 'text-box-outline',
1724
+ iconColor: colors.sidebarIconPersonalInfo,
1656
1725
  title: t('editProfile.items.bio.title') || 'Bio',
1657
1726
  subtitle: bio || t('editProfile.items.bio.placeholder') || 'Tell people about yourself',
1658
- onPress: () => startEditing('bio', bio)
1727
+ onPress: handleOpenBioModal
1659
1728
  }, {
1660
1729
  id: 'locations',
1661
- icon: 'location',
1662
- iconColor: '#FF3B30',
1730
+ icon: 'map-marker-outline',
1731
+ iconColor: colors.sidebarIconSharing,
1663
1732
  title: t('editProfile.items.locations.title') || 'Locations',
1664
- subtitle: tempLocations.length > 0 ? tempLocations.length === 1 ? t('editProfile.items.locations.count', {
1665
- count: tempLocations.length
1666
- }) || `${tempLocations.length} location added` : t('editProfile.items.locations.count_plural', {
1667
- count: tempLocations.length
1668
- }) || `${tempLocations.length} locations added` : t('editProfile.items.locations.add') || 'Add your locations',
1669
- onPress: () => startEditing('location', ''),
1670
- customContentBelow: tempLocations.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1671
- style: styles.linksPreviewContainer,
1672
- children: [tempLocations.slice(0, 2).map((location, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1673
- style: styles.linkPreviewItem,
1674
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1675
- style: styles.linkPreviewImage,
1676
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1677
- style: styles.linkPreviewImageText,
1678
- children: location.name.charAt(0).toUpperCase()
1679
- })
1680
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1681
- style: styles.linkPreviewContent,
1682
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1683
- style: styles.linkPreviewTitle,
1684
- numberOfLines: 1,
1685
- children: location.name
1686
- }), location.label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1687
- style: styles.linkPreviewSubtitle,
1688
- children: location.label
1689
- })]
1690
- })]
1691
- }, location.id || index)), tempLocations.length > 2 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
1692
- style: styles.linkPreviewMore,
1693
- children: ["+", tempLocations.length - 2, " more"]
1694
- })]
1695
- })
1733
+ subtitle: locations.length > 0 ? locations.length === 1 ? t('editProfile.items.locations.count', {
1734
+ count: locations.length
1735
+ }) || `${locations.length} location added` : t('editProfile.items.locations.count_plural', {
1736
+ count: locations.length
1737
+ }) || `${locations.length} locations added` : t('editProfile.items.locations.add') || 'Add your locations',
1738
+ onPress: handleOpenLocationModal
1696
1739
  }, {
1697
1740
  id: 'links',
1698
- icon: 'link',
1699
- iconColor: '#32D74B',
1741
+ icon: 'link-variant',
1742
+ iconColor: colors.sidebarIconSharing,
1700
1743
  title: t('editProfile.items.links.title') || 'Links',
1701
- subtitle: tempLinksWithMetadata.length > 0 ? tempLinksWithMetadata.length === 1 ? t('editProfile.items.links.count', {
1702
- count: tempLinksWithMetadata.length
1703
- }) || `${tempLinksWithMetadata.length} link added` : t('editProfile.items.links.count_plural', {
1704
- count: tempLinksWithMetadata.length
1705
- }) || `${tempLinksWithMetadata.length} links added` : t('editProfile.items.links.add') || 'Add your links',
1706
- onPress: () => startEditing('links', ''),
1707
- multiRow: true,
1708
- customContentBelow: tempLinksWithMetadata.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1709
- style: styles.linksPreviewContainer,
1710
- children: [tempLinksWithMetadata.slice(0, 2).map((link, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1711
- style: styles.linkPreviewItem,
1712
- children: [link.image ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
1713
- source: {
1714
- uri: link.image
1715
- },
1716
- style: styles.linkPreviewImage
1717
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1718
- style: styles.linkPreviewImage,
1719
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1720
- style: styles.linkPreviewImageText,
1721
- children: link.title?.charAt(0).toUpperCase() || link.url.charAt(0).toUpperCase()
1722
- })
1723
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1724
- style: styles.linkPreviewTitle,
1725
- numberOfLines: 1,
1726
- children: link.title || link.url
1727
- })]
1728
- }, link.id || index)), tempLinksWithMetadata.length > 2 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
1729
- style: styles.linkPreviewMore,
1730
- children: ["+", tempLinksWithMetadata.length - 2, " more"]
1731
- })]
1732
- })
1733
- }],
1734
- theme: theme
1744
+ subtitle: linksMetadata.length > 0 ? linksMetadata.length === 1 ? t('editProfile.items.links.count', {
1745
+ count: linksMetadata.length
1746
+ }) || `${linksMetadata.length} link added` : t('editProfile.items.links.count_plural', {
1747
+ count: linksMetadata.length
1748
+ }) || `${linksMetadata.length} links added` : t('editProfile.items.links.add') || 'Add your links',
1749
+ onPress: handleOpenLinksModal
1750
+ }]
1735
1751
  })
1736
1752
  })]
1737
1753
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1745,7 +1761,7 @@ const AccountSettingsScreen = ({
1745
1761
  },
1746
1762
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1747
1763
  style: [styles.sectionTitle, {
1748
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1764
+ color: colors.secondaryText
1749
1765
  }],
1750
1766
  children: t('editProfile.sections.quickActions') || 'QUICK ACTIONS'
1751
1767
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1754,7 +1770,7 @@ const AccountSettingsScreen = ({
1754
1770
  items: [{
1755
1771
  id: 'preview-profile',
1756
1772
  icon: 'eye',
1757
- iconColor: '#007AFF',
1773
+ iconColor: colors.sidebarIconHome,
1758
1774
  title: t('editProfile.items.previewProfile.title') || 'Preview Profile',
1759
1775
  subtitle: t('editProfile.items.previewProfile.subtitle') || 'See how your profile looks to others',
1760
1776
  onPress: () => navigate?.('Profile', {
@@ -1762,20 +1778,19 @@ const AccountSettingsScreen = ({
1762
1778
  })
1763
1779
  }, {
1764
1780
  id: 'privacy-settings',
1765
- icon: 'shield-checkmark',
1766
- iconColor: '#8E8E93',
1781
+ icon: 'shield-check',
1782
+ iconColor: colors.sidebarIconSecurity,
1767
1783
  title: t('editProfile.items.privacySettings.title') || 'Privacy Settings',
1768
1784
  subtitle: t('editProfile.items.privacySettings.subtitle') || 'Control who can see your profile',
1769
1785
  onPress: () => navigate?.('PrivacySettings')
1770
1786
  }, {
1771
1787
  id: 'verify-account',
1772
- icon: 'checkmark-circle',
1773
- iconColor: '#30D158',
1788
+ icon: 'check-circle',
1789
+ iconColor: colors.sidebarIconPersonalInfo,
1774
1790
  title: t('editProfile.items.verifyAccount.title') || 'Verify Account',
1775
1791
  subtitle: t('editProfile.items.verifyAccount.subtitle') || 'Get a verified badge',
1776
1792
  onPress: () => navigate?.('AccountVerification')
1777
- }],
1778
- theme: theme
1793
+ }]
1779
1794
  })
1780
1795
  })]
1781
1796
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -1789,7 +1804,7 @@ const AccountSettingsScreen = ({
1789
1804
  },
1790
1805
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
1791
1806
  style: [styles.sectionTitle, {
1792
- color: themeStyles.isDarkTheme ? '#8E8E93' : '#8E8E93'
1807
+ color: colors.secondaryText
1793
1808
  }],
1794
1809
  children: t('editProfile.sections.security') || 'SECURITY'
1795
1810
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1797,35 +1812,107 @@ const AccountSettingsScreen = ({
1797
1812
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
1798
1813
  items: [{
1799
1814
  id: 'two-factor',
1800
- icon: 'shield-checkmark',
1801
- iconColor: '#007AFF',
1815
+ icon: 'shield-lock',
1816
+ iconColor: colors.sidebarIconSecurity,
1802
1817
  title: t('editProfile.items.twoFactor.title') || 'Two‑Factor Authentication',
1803
1818
  subtitle: user?.privacySettings?.twoFactorEnabled ? t('editProfile.items.twoFactor.enabled') || 'Enabled' : t('editProfile.items.twoFactor.disabled') || 'Disabled (recommended)',
1804
- onPress: () => startEditing('twoFactor', '')
1805
- }],
1806
- theme: theme
1819
+ onPress: handleOpenTwoFactorModal
1820
+ }]
1807
1821
  })
1808
1822
  })]
1809
1823
  })]
1810
1824
  })
1825
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditDisplayNameModal.EditDisplayNameModal, {
1826
+ visible: showEditDisplayNameModal,
1827
+ onClose: () => setShowEditDisplayNameModal(false),
1828
+ initialDisplayName: displayName,
1829
+ initialLastName: lastName,
1830
+ theme: normalizedTheme,
1831
+ onSave: handleModalSave
1832
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditUsernameModal.EditUsernameModal, {
1833
+ visible: showEditUsernameModal,
1834
+ onClose: () => setShowEditUsernameModal(false),
1835
+ initialValue: username,
1836
+ theme: normalizedTheme,
1837
+ onSave: handleModalSave
1838
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditEmailModal.EditEmailModal, {
1839
+ visible: showEditEmailModal,
1840
+ onClose: () => setShowEditEmailModal(false),
1841
+ initialValue: email,
1842
+ theme: normalizedTheme,
1843
+ onSave: handleModalSave
1844
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditBioModal.EditBioModal, {
1845
+ visible: showEditBioModal,
1846
+ onClose: () => setShowEditBioModal(false),
1847
+ initialValue: bio,
1848
+ theme: normalizedTheme,
1849
+ onSave: handleModalSave
1850
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditLocationModal.EditLocationModal, {
1851
+ visible: showEditLocationModal,
1852
+ onClose: () => setShowEditLocationModal(false),
1853
+ initialLocations: locations,
1854
+ theme: normalizedTheme,
1855
+ onSave: handleModalSave
1856
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_EditLinksModal.EditLinksModal, {
1857
+ visible: showEditLinksModal,
1858
+ onClose: () => setShowEditLinksModal(false),
1859
+ initialLinks: linksMetadata,
1860
+ theme: normalizedTheme,
1861
+ onSave: handleModalSave
1862
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TwoFactorSetupModal.TwoFactorSetupModal, {
1863
+ visible: showTwoFactorModal,
1864
+ onClose: () => setShowTwoFactorModal(false),
1865
+ isEnabled: !!user?.privacySettings?.twoFactorEnabled,
1866
+ theme: normalizedTheme
1811
1867
  })]
1812
1868
  });
1813
1869
  };
1814
1870
  const styles = _reactNative.StyleSheet.create({
1815
1871
  container: {
1816
- flex: 1
1872
+ flexShrink: 1,
1873
+ width: '100%'
1817
1874
  },
1818
1875
  content: {
1819
- flex: 1,
1820
- paddingTop: 8,
1821
- paddingBottom: 24
1876
+ flexShrink: 1
1877
+ },
1878
+ scrollView: {
1879
+ flexShrink: 1
1822
1880
  },
1823
1881
  contentEditing: {
1824
1882
  flex: 1,
1825
1883
  padding: 0
1826
1884
  },
1885
+ scrollContent: (0, _spacing.createScreenContentStyle)(_spacing.HEADER_PADDING_TOP_SETTINGS),
1886
+ headerContainer: {
1887
+ width: '100%',
1888
+ maxWidth: 420,
1889
+ alignSelf: 'center',
1890
+ marginBottom: _spacing.SECTION_GAP_LARGE
1891
+ },
1892
+ headerSection: {
1893
+ alignItems: 'flex-start',
1894
+ width: '100%',
1895
+ gap: _spacing.COMPONENT_GAP
1896
+ },
1897
+ modernTitle: {
1898
+ fontFamily: _fonts.fontFamilies.phuduBold,
1899
+ fontWeight: _reactNative.Platform.OS === 'web' ? 'bold' : undefined,
1900
+ fontSize: 42,
1901
+ lineHeight: 50.4,
1902
+ // 42 * 1.2
1903
+ textAlign: 'left',
1904
+ letterSpacing: -0.5
1905
+ },
1906
+ modernSubtitle: {
1907
+ fontSize: 18,
1908
+ lineHeight: 24,
1909
+ textAlign: 'left',
1910
+ maxWidth: 320,
1911
+ alignSelf: 'flex-start',
1912
+ opacity: 0.8
1913
+ },
1827
1914
  section: {
1828
- marginBottom: 32
1915
+ marginBottom: _spacing.SECTION_GAP_LARGE
1829
1916
  },
1830
1917
  sectionTitle: {
1831
1918
  fontSize: 13,
@@ -1833,13 +1920,11 @@ const styles = _reactNative.StyleSheet.create({
1833
1920
  color: '#8E8E93',
1834
1921
  marginBottom: 8,
1835
1922
  marginTop: 4,
1836
- marginHorizontal: 16,
1837
1923
  textTransform: 'uppercase',
1838
1924
  letterSpacing: 0.5,
1839
1925
  fontFamily: _fonts.fontFamilies.phuduSemiBold
1840
1926
  },
1841
1927
  groupedSectionWrapper: {
1842
- marginHorizontal: 16,
1843
1928
  backgroundColor: 'transparent'
1844
1929
  },
1845
1930
  userIcon: {
@@ -1904,7 +1989,7 @@ const styles = _reactNative.StyleSheet.create({
1904
1989
  alignItems: 'center',
1905
1990
  justifyContent: 'center',
1906
1991
  gap: 8,
1907
- backgroundColor: '#007AFF',
1992
+ // backgroundColor should be applied inline using colors.iconSecurity
1908
1993
  paddingVertical: 12,
1909
1994
  paddingHorizontal: 16,
1910
1995
  borderRadius: 10
@@ -2051,7 +2136,7 @@ const styles = _reactNative.StyleSheet.create({
2051
2136
  color: '#6C757D'
2052
2137
  },
2053
2138
  addButton: {
2054
- backgroundColor: '#007AFF'
2139
+ // backgroundColor should be applied inline using colors.iconSecurity
2055
2140
  },
2056
2141
  addButtonText: {
2057
2142
  fontSize: 14,
@@ -2072,7 +2157,7 @@ const styles = _reactNative.StyleSheet.create({
2072
2157
  addLinkTriggerText: {
2073
2158
  fontSize: 14,
2074
2159
  fontWeight: '600',
2075
- color: '#007AFF',
2160
+ // color should be applied inline using colors.iconSecurity
2076
2161
  marginLeft: 6
2077
2162
  },
2078
2163
  linksList: {
@@ -2169,7 +2254,7 @@ const styles = _reactNative.StyleSheet.create({
2169
2254
  width: 32,
2170
2255
  height: 32,
2171
2256
  borderRadius: 16,
2172
- backgroundColor: '#007AFF',
2257
+ // backgroundColor should be applied inline using colors.iconSecurity
2173
2258
  alignItems: 'center',
2174
2259
  justifyContent: 'center',
2175
2260
  marginRight: 8
@@ -2181,7 +2266,7 @@ const styles = _reactNative.StyleSheet.create({
2181
2266
  },
2182
2267
  fetchingText: {
2183
2268
  fontSize: 12,
2184
- color: '#007AFF',
2269
+ // color should be applied inline using colors.iconSecurity
2185
2270
  fontStyle: 'italic'
2186
2271
  },
2187
2272
  linksFieldContent: {
@@ -2206,7 +2291,7 @@ const styles = _reactNative.StyleSheet.create({
2206
2291
  width: 20,
2207
2292
  height: 20,
2208
2293
  borderRadius: 10,
2209
- backgroundColor: '#007AFF',
2294
+ // backgroundColor should be applied inline using colors.iconSecurity
2210
2295
  alignItems: 'center',
2211
2296
  justifyContent: 'center',
2212
2297
  marginRight: 6
@@ -2247,7 +2332,7 @@ const styles = _reactNative.StyleSheet.create({
2247
2332
  },
2248
2333
  searchingText: {
2249
2334
  fontSize: 12,
2250
- color: '#007AFF',
2335
+ // color should be applied inline using colors.iconSecurity
2251
2336
  fontStyle: 'italic'
2252
2337
  },
2253
2338
  addLocationInputContainer: {
@@ -2288,7 +2373,7 @@ const styles = _reactNative.StyleSheet.create({
2288
2373
  addLocationTriggerText: {
2289
2374
  marginLeft: 8,
2290
2375
  fontSize: 16,
2291
- color: '#007AFF',
2376
+ // color should be applied inline using colors.iconSecurity
2292
2377
  fontWeight: '500'
2293
2378
  },
2294
2379
  searchResults: {
@@ -2352,7 +2437,7 @@ const styles = _reactNative.StyleSheet.create({
2352
2437
  flex: 1
2353
2438
  },
2354
2439
  locationLabel: {
2355
- backgroundColor: '#007AFF',
2440
+ // backgroundColor should be applied inline using colors.iconSecurity
2356
2441
  paddingHorizontal: 6,
2357
2442
  paddingVertical: 2,
2358
2443
  borderRadius: 4,