@oxyhq/services 5.16.23 → 5.16.25

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 (1371) hide show
  1. package/lib/commonjs/assets/OxyLogo.svg +1 -0
  2. package/lib/commonjs/assets/assets/OxyLogo.svg +1 -0
  3. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  4. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  5. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  6. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  7. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  8. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  9. package/lib/commonjs/assets/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  10. package/lib/commonjs/assets/assets/icons/OxyServices.tsx +67 -0
  11. package/lib/commonjs/assets/assets/icons/logo_OxyServices.svg +1 -0
  12. package/lib/commonjs/assets/assets/illustrations/HighFive.tsx +41 -0
  13. package/lib/commonjs/assets/assets/lottie/welcomeheader_background_op1.json +1 -0
  14. package/lib/commonjs/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  15. package/lib/commonjs/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  16. package/lib/commonjs/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  17. package/lib/commonjs/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  18. package/lib/commonjs/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  19. package/lib/commonjs/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  20. package/lib/commonjs/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  21. package/lib/commonjs/assets/icons/OxyServices.js +51 -0
  22. package/lib/commonjs/assets/icons/OxyServices.js.map +1 -0
  23. package/lib/commonjs/assets/icons/logo_OxyServices.svg +1 -0
  24. package/lib/commonjs/assets/illustrations/HighFive.js +59 -0
  25. package/lib/commonjs/assets/illustrations/HighFive.js.map +1 -0
  26. package/lib/commonjs/assets/lottie/welcomeheader_background_op1.json +1 -0
  27. package/lib/commonjs/constants/version.js +28 -0
  28. package/lib/commonjs/constants/version.js.map +1 -0
  29. package/lib/commonjs/core/HttpService.js +507 -0
  30. package/lib/commonjs/core/HttpService.js.map +1 -0
  31. package/lib/commonjs/core/OxyServices.base.js +283 -0
  32. package/lib/commonjs/core/OxyServices.base.js.map +1 -0
  33. package/lib/commonjs/core/OxyServices.errors.js +26 -0
  34. package/lib/commonjs/core/OxyServices.errors.js.map +1 -0
  35. package/lib/commonjs/core/OxyServices.js +146 -0
  36. package/lib/commonjs/core/OxyServices.js.map +1 -0
  37. package/lib/commonjs/core/index.js +126 -0
  38. package/lib/commonjs/core/index.js.map +1 -0
  39. package/lib/commonjs/core/mixins/OxyServices.analytics.js +60 -0
  40. package/lib/commonjs/core/mixins/OxyServices.analytics.js.map +1 -0
  41. package/lib/commonjs/core/mixins/OxyServices.assets.js +375 -0
  42. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -0
  43. package/lib/commonjs/core/mixins/OxyServices.auth.js +271 -0
  44. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -0
  45. package/lib/commonjs/core/mixins/OxyServices.developer.js +115 -0
  46. package/lib/commonjs/core/mixins/OxyServices.developer.js.map +1 -0
  47. package/lib/commonjs/core/mixins/OxyServices.devices.js +133 -0
  48. package/lib/commonjs/core/mixins/OxyServices.devices.js.map +1 -0
  49. package/lib/commonjs/core/mixins/OxyServices.karma.js +117 -0
  50. package/lib/commonjs/core/mixins/OxyServices.karma.js.map +1 -0
  51. package/lib/commonjs/core/mixins/OxyServices.language.js +124 -0
  52. package/lib/commonjs/core/mixins/OxyServices.language.js.map +1 -0
  53. package/lib/commonjs/core/mixins/OxyServices.location.js +55 -0
  54. package/lib/commonjs/core/mixins/OxyServices.location.js.map +1 -0
  55. package/lib/commonjs/core/mixins/OxyServices.payment.js +168 -0
  56. package/lib/commonjs/core/mixins/OxyServices.payment.js.map +1 -0
  57. package/lib/commonjs/core/mixins/OxyServices.privacy.js +174 -0
  58. package/lib/commonjs/core/mixins/OxyServices.privacy.js.map +1 -0
  59. package/lib/commonjs/core/mixins/OxyServices.security.js +96 -0
  60. package/lib/commonjs/core/mixins/OxyServices.security.js.map +1 -0
  61. package/lib/commonjs/core/mixins/OxyServices.user.js +403 -0
  62. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -0
  63. package/lib/commonjs/core/mixins/OxyServices.utility.js +165 -0
  64. package/lib/commonjs/core/mixins/OxyServices.utility.js.map +1 -0
  65. package/lib/commonjs/core/mixins/index.js +39 -0
  66. package/lib/commonjs/core/mixins/index.js.map +1 -0
  67. package/lib/commonjs/core/mixins/mixinHelpers.js +62 -0
  68. package/lib/commonjs/core/mixins/mixinHelpers.js.map +1 -0
  69. package/lib/commonjs/core/services/SessionService.js +163 -0
  70. package/lib/commonjs/core/services/SessionService.js.map +1 -0
  71. package/lib/commonjs/core/services/TokenService.js +206 -0
  72. package/lib/commonjs/core/services/TokenService.js.map +1 -0
  73. package/lib/commonjs/crypto/index.js +27 -0
  74. package/lib/commonjs/crypto/index.js.map +1 -0
  75. package/lib/commonjs/crypto/keyManager.js +511 -0
  76. package/lib/commonjs/crypto/keyManager.js.map +1 -0
  77. package/lib/commonjs/crypto/polyfill.js +86 -0
  78. package/lib/commonjs/crypto/polyfill.js.map +1 -0
  79. package/lib/commonjs/crypto/signatureService.js +289 -0
  80. package/lib/commonjs/crypto/signatureService.js.map +1 -0
  81. package/lib/commonjs/crypto/types.js +2 -0
  82. package/lib/commonjs/crypto/types.js.map +1 -0
  83. package/lib/commonjs/i18n/index.js +76 -0
  84. package/lib/commonjs/i18n/index.js.map +1 -0
  85. package/lib/commonjs/i18n/locales/ar-SA.json +120 -0
  86. package/lib/commonjs/i18n/locales/ca-ES.json +120 -0
  87. package/lib/commonjs/i18n/locales/de-DE.json +120 -0
  88. package/lib/commonjs/i18n/locales/en-US.json +956 -0
  89. package/lib/commonjs/i18n/locales/es-ES.json +723 -0
  90. package/lib/commonjs/i18n/locales/fr-FR.json +120 -0
  91. package/lib/commonjs/i18n/locales/it-IT.json +120 -0
  92. package/lib/commonjs/i18n/locales/ja-JP.json +119 -0
  93. package/lib/commonjs/i18n/locales/ko-KR.json +120 -0
  94. package/lib/commonjs/i18n/locales/pt-PT.json +120 -0
  95. package/lib/commonjs/i18n/locales/zh-CN.json +120 -0
  96. package/lib/commonjs/index.js +601 -0
  97. package/lib/commonjs/index.js.map +1 -0
  98. package/lib/commonjs/lib/sonner-safe.js +32 -0
  99. package/lib/commonjs/lib/sonner-safe.js.map +1 -0
  100. package/lib/commonjs/lib/sonner.js +23 -0
  101. package/lib/commonjs/lib/sonner.js.map +1 -0
  102. package/lib/commonjs/models/interfaces.js +76 -0
  103. package/lib/commonjs/models/interfaces.js.map +1 -0
  104. package/lib/commonjs/models/session.js +2 -0
  105. package/lib/commonjs/models/session.js.map +1 -0
  106. package/lib/commonjs/node/index.js +59 -0
  107. package/lib/commonjs/node/index.js.map +1 -0
  108. package/lib/commonjs/ui/components/ActivityIndicator.js +203 -0
  109. package/lib/commonjs/ui/components/ActivityIndicator.js.map +1 -0
  110. package/lib/commonjs/ui/components/AnimationExample.js +213 -0
  111. package/lib/commonjs/ui/components/AnimationExample.js.map +1 -0
  112. package/lib/commonjs/ui/components/AutoHeightScrollView.js +46 -0
  113. package/lib/commonjs/ui/components/AutoHeightScrollView.js.map +1 -0
  114. package/lib/commonjs/ui/components/Avatar.js +172 -0
  115. package/lib/commonjs/ui/components/Avatar.js.map +1 -0
  116. package/lib/commonjs/ui/components/BottomSheet.js +407 -0
  117. package/lib/commonjs/ui/components/BottomSheet.js.map +1 -0
  118. package/lib/commonjs/ui/components/BottomSheetRouter.js +366 -0
  119. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -0
  120. package/lib/commonjs/ui/components/CrossFadeIcon.js +106 -0
  121. package/lib/commonjs/ui/components/CrossFadeIcon.js.map +1 -0
  122. package/lib/commonjs/ui/components/EmptyState.js +41 -0
  123. package/lib/commonjs/ui/components/EmptyState.js.map +1 -0
  124. package/lib/commonjs/ui/components/ErrorBoundary.js +145 -0
  125. package/lib/commonjs/ui/components/ErrorBoundary.js.map +1 -0
  126. package/lib/commonjs/ui/components/FollowButton.js +230 -0
  127. package/lib/commonjs/ui/components/FollowButton.js.map +1 -0
  128. package/lib/commonjs/ui/components/FontLoader.js +162 -0
  129. package/lib/commonjs/ui/components/FontLoader.js.map +1 -0
  130. package/lib/commonjs/ui/components/GroupedItem.js +140 -0
  131. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -0
  132. package/lib/commonjs/ui/components/GroupedSection.js +42 -0
  133. package/lib/commonjs/ui/components/GroupedSection.js.map +1 -0
  134. package/lib/commonjs/ui/components/Header.js +434 -0
  135. package/lib/commonjs/ui/components/Header.js.map +1 -0
  136. package/lib/commonjs/ui/components/HelperText.js +103 -0
  137. package/lib/commonjs/ui/components/HelperText.js.map +1 -0
  138. package/lib/commonjs/ui/components/Icon.js +109 -0
  139. package/lib/commonjs/ui/components/Icon.js.map +1 -0
  140. package/lib/commonjs/ui/components/IconButton/IconButton.js +159 -0
  141. package/lib/commonjs/ui/components/IconButton/IconButton.js.map +1 -0
  142. package/lib/commonjs/ui/components/IconButton/utils.js +155 -0
  143. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -0
  144. package/lib/commonjs/ui/components/LoadingState.js +47 -0
  145. package/lib/commonjs/ui/components/LoadingState.js.map +1 -0
  146. package/lib/commonjs/ui/components/OxyLogo.js +54 -0
  147. package/lib/commonjs/ui/components/OxyLogo.js.map +1 -0
  148. package/lib/commonjs/ui/components/OxyPayButton.js +117 -0
  149. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -0
  150. package/lib/commonjs/ui/components/OxyProvider.js +144 -0
  151. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -0
  152. package/lib/commonjs/ui/components/OxySignInButton.js +180 -0
  153. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -0
  154. package/lib/commonjs/ui/components/ProfileCard.js +138 -0
  155. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -0
  156. package/lib/commonjs/ui/components/QuickActions.js +88 -0
  157. package/lib/commonjs/ui/components/QuickActions.js.map +1 -0
  158. package/lib/commonjs/ui/components/Section.js +39 -0
  159. package/lib/commonjs/ui/components/Section.js.map +1 -0
  160. package/lib/commonjs/ui/components/SectionTitle.js +35 -0
  161. package/lib/commonjs/ui/components/SectionTitle.js.map +1 -0
  162. package/lib/commonjs/ui/components/SettingRow.js +77 -0
  163. package/lib/commonjs/ui/components/SettingRow.js.map +1 -0
  164. package/lib/commonjs/ui/components/StepBasedScreen.js +397 -0
  165. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -0
  166. package/lib/commonjs/ui/components/Surface.js +258 -0
  167. package/lib/commonjs/ui/components/Surface.js.map +1 -0
  168. package/lib/commonjs/ui/components/TextField/Addons/Outline.js +46 -0
  169. package/lib/commonjs/ui/components/TextField/Addons/Outline.js.map +1 -0
  170. package/lib/commonjs/ui/components/TextField/Addons/Underline.js +53 -0
  171. package/lib/commonjs/ui/components/TextField/Addons/Underline.js.map +1 -0
  172. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js +155 -0
  173. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js.map +1 -0
  174. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js +144 -0
  175. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js.map +1 -0
  176. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js +137 -0
  177. package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js.map +1 -0
  178. package/lib/commonjs/ui/components/TextField/Adornment/enums.js +22 -0
  179. package/lib/commonjs/ui/components/TextField/Adornment/enums.js.map +1 -0
  180. package/lib/commonjs/ui/components/TextField/Adornment/types.js +6 -0
  181. package/lib/commonjs/ui/components/TextField/Adornment/types.js.map +1 -0
  182. package/lib/commonjs/ui/components/TextField/Adornment/utils.js +62 -0
  183. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -0
  184. package/lib/commonjs/ui/components/TextField/Label/InputLabel.js +176 -0
  185. package/lib/commonjs/ui/components/TextField/Label/InputLabel.js.map +1 -0
  186. package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js +84 -0
  187. package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js.map +1 -0
  188. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js +379 -0
  189. package/lib/commonjs/ui/components/TextField/TextFieldFlat.js.map +1 -0
  190. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js +363 -0
  191. package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js.map +1 -0
  192. package/lib/commonjs/ui/components/TextField/constants.js +50 -0
  193. package/lib/commonjs/ui/components/TextField/constants.js.map +1 -0
  194. package/lib/commonjs/ui/components/TextField/helpers.js +490 -0
  195. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -0
  196. package/lib/commonjs/ui/components/TextField/types.js +6 -0
  197. package/lib/commonjs/ui/components/TextField/types.js.map +1 -0
  198. package/lib/commonjs/ui/components/TextField.js +339 -0
  199. package/lib/commonjs/ui/components/TextField.js.map +1 -0
  200. package/lib/commonjs/ui/components/TouchableRipple/Pressable.js +12 -0
  201. package/lib/commonjs/ui/components/TouchableRipple/Pressable.js.map +1 -0
  202. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js +258 -0
  203. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js.map +1 -0
  204. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js +107 -0
  205. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -0
  206. package/lib/commonjs/ui/components/TouchableRipple/utils.js +56 -0
  207. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -0
  208. package/lib/commonjs/ui/components/Typography/AnimatedText.js +62 -0
  209. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -0
  210. package/lib/commonjs/ui/components/Typography/types.js +26 -0
  211. package/lib/commonjs/ui/components/Typography/types.js.map +1 -0
  212. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +171 -0
  213. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -0
  214. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +409 -0
  215. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -0
  216. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +181 -0
  217. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -0
  218. package/lib/commonjs/ui/components/fileManagement/styles.js +868 -0
  219. package/lib/commonjs/ui/components/fileManagement/styles.js.map +1 -0
  220. package/lib/commonjs/ui/components/icon/FAIRWalletIcon.js +64 -0
  221. package/lib/commonjs/ui/components/icon/FAIRWalletIcon.js.map +1 -0
  222. package/lib/commonjs/ui/components/icon/OxyIcon.js +25 -0
  223. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -0
  224. package/lib/commonjs/ui/components/icon/index.js +21 -0
  225. package/lib/commonjs/ui/components/icon/index.js.map +1 -0
  226. package/lib/commonjs/ui/components/index.js +132 -0
  227. package/lib/commonjs/ui/components/index.js.map +1 -0
  228. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +209 -0
  229. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -0
  230. package/lib/commonjs/ui/components/internal/PinInput.js +115 -0
  231. package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -0
  232. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +161 -0
  233. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -0
  234. package/lib/commonjs/ui/components/profile/EditBioModal.js +181 -0
  235. package/lib/commonjs/ui/components/profile/EditBioModal.js.map +1 -0
  236. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +204 -0
  237. package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -0
  238. package/lib/commonjs/ui/components/profile/EditEmailModal.js +184 -0
  239. package/lib/commonjs/ui/components/profile/EditEmailModal.js.map +1 -0
  240. package/lib/commonjs/ui/components/profile/EditLinksModal.js +315 -0
  241. package/lib/commonjs/ui/components/profile/EditLinksModal.js.map +1 -0
  242. package/lib/commonjs/ui/components/profile/EditLocationModal.js +273 -0
  243. package/lib/commonjs/ui/components/profile/EditLocationModal.js.map +1 -0
  244. package/lib/commonjs/ui/components/profile/EditUsernameModal.js +180 -0
  245. package/lib/commonjs/ui/components/profile/EditUsernameModal.js.map +1 -0
  246. package/lib/commonjs/ui/components/styles/overlay.js +85 -0
  247. package/lib/commonjs/ui/components/styles/overlay.js.map +1 -0
  248. package/lib/commonjs/ui/components/styles/shadow.js +132 -0
  249. package/lib/commonjs/ui/components/styles/shadow.js.map +1 -0
  250. package/lib/commonjs/ui/components/theming.js +116 -0
  251. package/lib/commonjs/ui/components/theming.js.map +1 -0
  252. package/lib/commonjs/ui/components/types.js +2 -0
  253. package/lib/commonjs/ui/components/types.js.map +1 -0
  254. package/lib/commonjs/ui/components/utils/forwardRef.js +18 -0
  255. package/lib/commonjs/ui/components/utils/forwardRef.js.map +1 -0
  256. package/lib/commonjs/ui/components/utils/hasTouchHandler.js +13 -0
  257. package/lib/commonjs/ui/components/utils/hasTouchHandler.js.map +1 -0
  258. package/lib/commonjs/ui/components/utils/roundLayoutSize.js +9 -0
  259. package/lib/commonjs/ui/components/utils/roundLayoutSize.js.map +1 -0
  260. package/lib/commonjs/ui/components/utils/splitStyles.js +50 -0
  261. package/lib/commonjs/ui/components/utils/splitStyles.js.map +1 -0
  262. package/lib/commonjs/ui/constants/iconColors.js +84 -0
  263. package/lib/commonjs/ui/constants/iconColors.js.map +1 -0
  264. package/lib/commonjs/ui/constants/spacing.js +50 -0
  265. package/lib/commonjs/ui/constants/spacing.js.map +1 -0
  266. package/lib/commonjs/ui/constants/theme.js +123 -0
  267. package/lib/commonjs/ui/constants/theme.js.map +1 -0
  268. package/lib/commonjs/ui/context/OxyContext.js +815 -0
  269. package/lib/commonjs/ui/context/OxyContext.js.map +1 -0
  270. package/lib/commonjs/ui/context/ThemeContext.js +36 -0
  271. package/lib/commonjs/ui/context/ThemeContext.js.map +1 -0
  272. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +621 -0
  273. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -0
  274. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +73 -0
  275. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +1 -0
  276. package/lib/commonjs/ui/context/hooks/useLanguageManagement.js +112 -0
  277. package/lib/commonjs/ui/context/hooks/useLanguageManagement.js.map +1 -0
  278. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +281 -0
  279. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
  280. package/lib/commonjs/ui/context/hooks/useStorage.js +79 -0
  281. package/lib/commonjs/ui/context/hooks/useStorage.js.map +1 -0
  282. package/lib/commonjs/ui/hooks/index.js +46 -0
  283. package/lib/commonjs/ui/hooks/index.js.map +1 -0
  284. package/lib/commonjs/ui/hooks/mutations/index.js +68 -0
  285. package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -0
  286. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +552 -0
  287. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -0
  288. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +193 -0
  289. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -0
  290. package/lib/commonjs/ui/hooks/queries/index.js +118 -0
  291. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -0
  292. package/lib/commonjs/ui/hooks/queries/queryKeys.js +96 -0
  293. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -0
  294. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +220 -0
  295. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -0
  296. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +58 -0
  297. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -0
  298. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +186 -0
  299. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -0
  300. package/lib/commonjs/ui/hooks/queryClient.js +117 -0
  301. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -0
  302. package/lib/commonjs/ui/hooks/use-color-scheme.js +29 -0
  303. package/lib/commonjs/ui/hooks/use-color-scheme.js.map +1 -0
  304. package/lib/commonjs/ui/hooks/use-haptic-press.js +21 -0
  305. package/lib/commonjs/ui/hooks/use-haptic-press.js.map +1 -0
  306. package/lib/commonjs/ui/hooks/useAssets.js +245 -0
  307. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -0
  308. package/lib/commonjs/ui/hooks/useDeviceManagement.js +73 -0
  309. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -0
  310. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +103 -0
  311. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -0
  312. package/lib/commonjs/ui/hooks/useFollow.js +167 -0
  313. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -0
  314. package/lib/commonjs/ui/hooks/useFollow.types.js +2 -0
  315. package/lib/commonjs/ui/hooks/useFollow.types.js.map +1 -0
  316. package/lib/commonjs/ui/hooks/useI18n.js +22 -0
  317. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -0
  318. package/lib/commonjs/ui/hooks/useLanguageManagement.js +112 -0
  319. package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -0
  320. package/lib/commonjs/ui/hooks/useProfileEditing.js +107 -0
  321. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -0
  322. package/lib/commonjs/ui/hooks/useQueryClient.js +20 -0
  323. package/lib/commonjs/ui/hooks/useQueryClient.js.map +1 -0
  324. package/lib/commonjs/ui/hooks/useSessionManagement.js +281 -0
  325. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -0
  326. package/lib/commonjs/ui/hooks/useSessionSocket.js +495 -0
  327. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -0
  328. package/lib/commonjs/ui/hooks/useStorage.js +79 -0
  329. package/lib/commonjs/ui/hooks/useStorage.js.map +1 -0
  330. package/lib/commonjs/ui/hooks/useThemeColors.js +31 -0
  331. package/lib/commonjs/ui/hooks/useThemeColors.js.map +1 -0
  332. package/lib/commonjs/ui/hooks/useThemeStyles.js +69 -0
  333. package/lib/commonjs/ui/hooks/useThemeStyles.js.map +1 -0
  334. package/lib/commonjs/ui/index.js +101 -0
  335. package/lib/commonjs/ui/index.js.map +1 -0
  336. package/lib/commonjs/ui/isFrontend.js +10 -0
  337. package/lib/commonjs/ui/isFrontend.js.map +1 -0
  338. package/lib/commonjs/ui/navigation/bottomSheetManager.js +180 -0
  339. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -0
  340. package/lib/commonjs/ui/navigation/routes.js +88 -0
  341. package/lib/commonjs/ui/navigation/routes.js.map +1 -0
  342. package/lib/commonjs/ui/screens/AccountCenterScreen.js +329 -0
  343. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -0
  344. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +752 -0
  345. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -0
  346. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2163 -0
  347. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -0
  348. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +703 -0
  349. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -0
  350. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +210 -0
  351. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -0
  352. package/lib/commonjs/ui/screens/AppInfoScreen.js +414 -0
  353. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -0
  354. package/lib/commonjs/ui/screens/FeedbackScreen.js +1191 -0
  355. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -0
  356. package/lib/commonjs/ui/screens/FileManagementScreen.js +2333 -0
  357. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -0
  358. package/lib/commonjs/ui/screens/HelpSupportScreen.js +134 -0
  359. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -0
  360. package/lib/commonjs/ui/screens/HistoryViewScreen.js +218 -0
  361. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -0
  362. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +218 -0
  363. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -0
  364. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +184 -0
  365. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -0
  366. package/lib/commonjs/ui/screens/OxyAuthScreen.js +537 -0
  367. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -0
  368. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +1587 -0
  369. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -0
  370. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +1647 -0
  371. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -0
  372. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +479 -0
  373. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -0
  374. package/lib/commonjs/ui/screens/ProfileScreen.js +647 -0
  375. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -0
  376. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +167 -0
  377. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -0
  378. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +166 -0
  379. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -0
  380. package/lib/commonjs/ui/screens/SessionManagementScreen.js +445 -0
  381. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -0
  382. package/lib/commonjs/ui/screens/UserLinksScreen.js +86 -0
  383. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -0
  384. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +434 -0
  385. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -0
  386. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +98 -0
  387. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -0
  388. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +343 -0
  389. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -0
  390. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +194 -0
  391. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -0
  392. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +151 -0
  393. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -0
  394. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +609 -0
  395. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -0
  396. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +109 -0
  397. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -0
  398. package/lib/commonjs/ui/stores/accountStore.js +252 -0
  399. package/lib/commonjs/ui/stores/accountStore.js.map +1 -0
  400. package/lib/commonjs/ui/stores/assetStore.js +225 -0
  401. package/lib/commonjs/ui/stores/assetStore.js.map +1 -0
  402. package/lib/commonjs/ui/stores/authStore.js +85 -0
  403. package/lib/commonjs/ui/stores/authStore.js.map +1 -0
  404. package/lib/commonjs/ui/stores/fileStore.js +153 -0
  405. package/lib/commonjs/ui/stores/fileStore.js.map +1 -0
  406. package/lib/commonjs/ui/stores/followStore.js +229 -0
  407. package/lib/commonjs/ui/stores/followStore.js.map +1 -0
  408. package/lib/commonjs/ui/styles/authStyles.js +338 -0
  409. package/lib/commonjs/ui/styles/authStyles.js.map +1 -0
  410. package/lib/commonjs/ui/styles/fonts.js +84 -0
  411. package/lib/commonjs/ui/styles/fonts.js.map +1 -0
  412. package/lib/commonjs/ui/styles/index.js +50 -0
  413. package/lib/commonjs/ui/styles/index.js.map +1 -0
  414. package/lib/commonjs/ui/styles/spacing.js +109 -0
  415. package/lib/commonjs/ui/styles/spacing.js.map +1 -0
  416. package/lib/commonjs/ui/styles/theme.js +121 -0
  417. package/lib/commonjs/ui/styles/theme.js.map +1 -0
  418. package/lib/commonjs/ui/types/fileManagement.js +6 -0
  419. package/lib/commonjs/ui/types/fileManagement.js.map +1 -0
  420. package/lib/commonjs/ui/types/navigation.js +6 -0
  421. package/lib/commonjs/ui/types/navigation.js.map +1 -0
  422. package/lib/commonjs/ui/utils/avatarUtils.js +131 -0
  423. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -0
  424. package/lib/commonjs/ui/utils/colorUtils.js +52 -0
  425. package/lib/commonjs/ui/utils/colorUtils.js.map +1 -0
  426. package/lib/commonjs/ui/utils/confirmAction.js +28 -0
  427. package/lib/commonjs/ui/utils/confirmAction.js.map +1 -0
  428. package/lib/commonjs/ui/utils/errorHandlers.js +137 -0
  429. package/lib/commonjs/ui/utils/errorHandlers.js.map +1 -0
  430. package/lib/commonjs/ui/utils/fileManagement.js +260 -0
  431. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -0
  432. package/lib/commonjs/ui/utils/sessionHelpers.js +101 -0
  433. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -0
  434. package/lib/commonjs/ui/utils/storageHelpers.js +119 -0
  435. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -0
  436. package/lib/commonjs/ui/utils/themeUtils.js +47 -0
  437. package/lib/commonjs/ui/utils/themeUtils.js.map +1 -0
  438. package/lib/commonjs/ui/utils/user-utils.js +53 -0
  439. package/lib/commonjs/ui/utils/user-utils.js.map +1 -0
  440. package/lib/commonjs/utils/apiUtils.js +79 -0
  441. package/lib/commonjs/utils/apiUtils.js.map +1 -0
  442. package/lib/commonjs/utils/asyncUtils.js +207 -0
  443. package/lib/commonjs/utils/asyncUtils.js.map +1 -0
  444. package/lib/commonjs/utils/cache.js +259 -0
  445. package/lib/commonjs/utils/cache.js.map +1 -0
  446. package/lib/commonjs/utils/deviceManager.js +177 -0
  447. package/lib/commonjs/utils/deviceManager.js.map +1 -0
  448. package/lib/commonjs/utils/errorUtils.js +181 -0
  449. package/lib/commonjs/utils/errorUtils.js.map +1 -0
  450. package/lib/commonjs/utils/hookUtils.js +399 -0
  451. package/lib/commonjs/utils/hookUtils.js.map +1 -0
  452. package/lib/commonjs/utils/index.js +106 -0
  453. package/lib/commonjs/utils/index.js.map +1 -0
  454. package/lib/commonjs/utils/languageUtils.js +159 -0
  455. package/lib/commonjs/utils/languageUtils.js.map +1 -0
  456. package/lib/commonjs/utils/loggerUtils.js +160 -0
  457. package/lib/commonjs/utils/loggerUtils.js.map +1 -0
  458. package/lib/commonjs/utils/requestUtils.js +217 -0
  459. package/lib/commonjs/utils/requestUtils.js.map +1 -0
  460. package/lib/commonjs/utils/sessionUtils.js +191 -0
  461. package/lib/commonjs/utils/sessionUtils.js.map +1 -0
  462. package/lib/commonjs/utils/validationUtils.js +191 -0
  463. package/lib/commonjs/utils/validationUtils.js.map +1 -0
  464. package/lib/module/assets/OxyLogo.svg +1 -0
  465. package/lib/module/assets/assets/OxyLogo.svg +1 -0
  466. package/lib/module/assets/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  467. package/lib/module/assets/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  468. package/lib/module/assets/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  469. package/lib/module/assets/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  470. package/lib/module/assets/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  471. package/lib/module/assets/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  472. package/lib/module/assets/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  473. package/lib/module/assets/assets/icons/OxyServices.tsx +67 -0
  474. package/lib/module/assets/assets/icons/logo_OxyServices.svg +1 -0
  475. package/lib/module/assets/assets/illustrations/HighFive.tsx +41 -0
  476. package/lib/module/assets/assets/lottie/welcomeheader_background_op1.json +1 -0
  477. package/lib/module/assets/fonts/Phudu/Phudu-Black.ttf +0 -0
  478. package/lib/module/assets/fonts/Phudu/Phudu-Bold.ttf +0 -0
  479. package/lib/module/assets/fonts/Phudu/Phudu-ExtraBold.ttf +0 -0
  480. package/lib/module/assets/fonts/Phudu/Phudu-Light.ttf +0 -0
  481. package/lib/module/assets/fonts/Phudu/Phudu-Medium.ttf +0 -0
  482. package/lib/module/assets/fonts/Phudu/Phudu-Regular.ttf +0 -0
  483. package/lib/module/assets/fonts/Phudu/Phudu-SemiBold.ttf +0 -0
  484. package/lib/module/assets/icons/OxyServices.js +45 -0
  485. package/lib/module/assets/icons/OxyServices.js.map +1 -0
  486. package/lib/module/assets/icons/logo_OxyServices.svg +1 -0
  487. package/lib/module/assets/illustrations/HighFive.js +54 -0
  488. package/lib/module/assets/illustrations/HighFive.js.map +1 -0
  489. package/lib/module/assets/lottie/welcomeheader_background_op1.json +1 -0
  490. package/lib/module/constants/version.js +21 -0
  491. package/lib/module/constants/version.js.map +1 -0
  492. package/lib/module/core/HttpService.js +502 -0
  493. package/lib/module/core/HttpService.js.map +1 -0
  494. package/lib/module/core/OxyServices.base.js +278 -0
  495. package/lib/module/core/OxyServices.base.js.map +1 -0
  496. package/lib/module/core/OxyServices.errors.js +20 -0
  497. package/lib/module/core/OxyServices.errors.js.map +1 -0
  498. package/lib/module/core/OxyServices.js +131 -0
  499. package/lib/module/core/OxyServices.js.map +1 -0
  500. package/lib/module/core/index.js +27 -0
  501. package/lib/module/core/index.js.map +1 -0
  502. package/lib/module/core/mixins/OxyServices.analytics.js +56 -0
  503. package/lib/module/core/mixins/OxyServices.analytics.js.map +1 -0
  504. package/lib/module/core/mixins/OxyServices.assets.js +371 -0
  505. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -0
  506. package/lib/module/core/mixins/OxyServices.auth.js +267 -0
  507. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -0
  508. package/lib/module/core/mixins/OxyServices.developer.js +111 -0
  509. package/lib/module/core/mixins/OxyServices.developer.js.map +1 -0
  510. package/lib/module/core/mixins/OxyServices.devices.js +129 -0
  511. package/lib/module/core/mixins/OxyServices.devices.js.map +1 -0
  512. package/lib/module/core/mixins/OxyServices.karma.js +113 -0
  513. package/lib/module/core/mixins/OxyServices.karma.js.map +1 -0
  514. package/lib/module/core/mixins/OxyServices.language.js +120 -0
  515. package/lib/module/core/mixins/OxyServices.language.js.map +1 -0
  516. package/lib/module/core/mixins/OxyServices.location.js +51 -0
  517. package/lib/module/core/mixins/OxyServices.location.js.map +1 -0
  518. package/lib/module/core/mixins/OxyServices.payment.js +164 -0
  519. package/lib/module/core/mixins/OxyServices.payment.js.map +1 -0
  520. package/lib/module/core/mixins/OxyServices.privacy.js +170 -0
  521. package/lib/module/core/mixins/OxyServices.privacy.js.map +1 -0
  522. package/lib/module/core/mixins/OxyServices.security.js +92 -0
  523. package/lib/module/core/mixins/OxyServices.security.js.map +1 -0
  524. package/lib/module/core/mixins/OxyServices.user.js +399 -0
  525. package/lib/module/core/mixins/OxyServices.user.js.map +1 -0
  526. package/lib/module/core/mixins/OxyServices.utility.js +160 -0
  527. package/lib/module/core/mixins/OxyServices.utility.js.map +1 -0
  528. package/lib/module/core/mixins/index.js +36 -0
  529. package/lib/module/core/mixins/index.js.map +1 -0
  530. package/lib/module/core/mixins/mixinHelpers.js +56 -0
  531. package/lib/module/core/mixins/mixinHelpers.js.map +1 -0
  532. package/lib/module/core/services/SessionService.js +159 -0
  533. package/lib/module/core/services/SessionService.js.map +1 -0
  534. package/lib/module/core/services/TokenService.js +203 -0
  535. package/lib/module/core/services/TokenService.js.map +1 -0
  536. package/lib/module/crypto/index.js +16 -0
  537. package/lib/module/crypto/index.js.map +1 -0
  538. package/lib/module/crypto/keyManager.js +508 -0
  539. package/lib/module/crypto/keyManager.js.map +1 -0
  540. package/lib/module/crypto/polyfill.js +78 -0
  541. package/lib/module/crypto/polyfill.js.map +1 -0
  542. package/lib/module/crypto/signatureService.js +286 -0
  543. package/lib/module/crypto/signatureService.js.map +1 -0
  544. package/lib/module/crypto/types.js +2 -0
  545. package/lib/module/crypto/types.js.map +1 -0
  546. package/lib/module/i18n/index.js +71 -0
  547. package/lib/module/i18n/index.js.map +1 -0
  548. package/lib/module/i18n/locales/ar-SA.json +120 -0
  549. package/lib/module/i18n/locales/ca-ES.json +120 -0
  550. package/lib/module/i18n/locales/de-DE.json +120 -0
  551. package/lib/module/i18n/locales/en-US.json +956 -0
  552. package/lib/module/i18n/locales/es-ES.json +723 -0
  553. package/lib/module/i18n/locales/fr-FR.json +120 -0
  554. package/lib/module/i18n/locales/it-IT.json +120 -0
  555. package/lib/module/i18n/locales/ja-JP.json +119 -0
  556. package/lib/module/i18n/locales/ko-KR.json +120 -0
  557. package/lib/module/i18n/locales/pt-PT.json +120 -0
  558. package/lib/module/i18n/locales/zh-CN.json +120 -0
  559. package/lib/module/index.js +74 -0
  560. package/lib/module/index.js.map +1 -0
  561. package/lib/module/lib/sonner-safe.js +29 -0
  562. package/lib/module/lib/sonner-safe.js.map +1 -0
  563. package/lib/module/lib/sonner.js +19 -0
  564. package/lib/module/lib/sonner.js.map +1 -0
  565. package/lib/module/models/interfaces.js +72 -0
  566. package/lib/module/models/interfaces.js.map +1 -0
  567. package/lib/module/models/session.js +2 -0
  568. package/lib/module/models/session.js.map +1 -0
  569. package/lib/module/node/index.js +20 -0
  570. package/lib/module/node/index.js.map +1 -0
  571. package/lib/module/ui/components/ActivityIndicator.js +198 -0
  572. package/lib/module/ui/components/ActivityIndicator.js.map +1 -0
  573. package/lib/module/ui/components/AnimationExample.js +209 -0
  574. package/lib/module/ui/components/AnimationExample.js.map +1 -0
  575. package/lib/module/ui/components/AutoHeightScrollView.js +41 -0
  576. package/lib/module/ui/components/AutoHeightScrollView.js.map +1 -0
  577. package/lib/module/ui/components/Avatar.js +168 -0
  578. package/lib/module/ui/components/Avatar.js.map +1 -0
  579. package/lib/module/ui/components/BottomSheet.js +402 -0
  580. package/lib/module/ui/components/BottomSheet.js.map +1 -0
  581. package/lib/module/ui/components/BottomSheetRouter.js +356 -0
  582. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -0
  583. package/lib/module/ui/components/CrossFadeIcon.js +101 -0
  584. package/lib/module/ui/components/CrossFadeIcon.js.map +1 -0
  585. package/lib/module/ui/components/EmptyState.js +36 -0
  586. package/lib/module/ui/components/EmptyState.js.map +1 -0
  587. package/lib/module/ui/components/ErrorBoundary.js +139 -0
  588. package/lib/module/ui/components/ErrorBoundary.js.map +1 -0
  589. package/lib/module/ui/components/FollowButton.js +226 -0
  590. package/lib/module/ui/components/FollowButton.js.map +1 -0
  591. package/lib/module/ui/components/FontLoader.js +157 -0
  592. package/lib/module/ui/components/FontLoader.js.map +1 -0
  593. package/lib/module/ui/components/GroupedItem.js +135 -0
  594. package/lib/module/ui/components/GroupedItem.js.map +1 -0
  595. package/lib/module/ui/components/GroupedSection.js +37 -0
  596. package/lib/module/ui/components/GroupedSection.js.map +1 -0
  597. package/lib/module/ui/components/Header.js +428 -0
  598. package/lib/module/ui/components/Header.js.map +1 -0
  599. package/lib/module/ui/components/HelperText.js +99 -0
  600. package/lib/module/ui/components/HelperText.js.map +1 -0
  601. package/lib/module/ui/components/Icon.js +102 -0
  602. package/lib/module/ui/components/Icon.js.map +1 -0
  603. package/lib/module/ui/components/IconButton/IconButton.js +153 -0
  604. package/lib/module/ui/components/IconButton/IconButton.js.map +1 -0
  605. package/lib/module/ui/components/IconButton/utils.js +149 -0
  606. package/lib/module/ui/components/IconButton/utils.js.map +1 -0
  607. package/lib/module/ui/components/LoadingState.js +42 -0
  608. package/lib/module/ui/components/LoadingState.js.map +1 -0
  609. package/lib/module/ui/components/OxyLogo.js +48 -0
  610. package/lib/module/ui/components/OxyLogo.js.map +1 -0
  611. package/lib/module/ui/components/OxyPayButton.js +112 -0
  612. package/lib/module/ui/components/OxyPayButton.js.map +1 -0
  613. package/lib/module/ui/components/OxyProvider.js +140 -0
  614. package/lib/module/ui/components/OxyProvider.js.map +1 -0
  615. package/lib/module/ui/components/OxySignInButton.js +174 -0
  616. package/lib/module/ui/components/OxySignInButton.js.map +1 -0
  617. package/lib/module/ui/components/ProfileCard.js +133 -0
  618. package/lib/module/ui/components/ProfileCard.js.map +1 -0
  619. package/lib/module/ui/components/QuickActions.js +84 -0
  620. package/lib/module/ui/components/QuickActions.js.map +1 -0
  621. package/lib/module/ui/components/Section.js +34 -0
  622. package/lib/module/ui/components/Section.js.map +1 -0
  623. package/lib/module/ui/components/SectionTitle.js +31 -0
  624. package/lib/module/ui/components/SectionTitle.js.map +1 -0
  625. package/lib/module/ui/components/SettingRow.js +72 -0
  626. package/lib/module/ui/components/SettingRow.js.map +1 -0
  627. package/lib/module/ui/components/StepBasedScreen.js +392 -0
  628. package/lib/module/ui/components/StepBasedScreen.js.map +1 -0
  629. package/lib/module/ui/components/Surface.js +252 -0
  630. package/lib/module/ui/components/Surface.js.map +1 -0
  631. package/lib/module/ui/components/TextField/Addons/Outline.js +40 -0
  632. package/lib/module/ui/components/TextField/Addons/Outline.js.map +1 -0
  633. package/lib/module/ui/components/TextField/Addons/Underline.js +47 -0
  634. package/lib/module/ui/components/TextField/Addons/Underline.js.map +1 -0
  635. package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js +148 -0
  636. package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js.map +1 -0
  637. package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js +141 -0
  638. package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js.map +1 -0
  639. package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js +135 -0
  640. package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js.map +1 -0
  641. package/lib/module/ui/components/TextField/Adornment/enums.js +18 -0
  642. package/lib/module/ui/components/TextField/Adornment/enums.js.map +1 -0
  643. package/lib/module/ui/components/TextField/Adornment/types.js +4 -0
  644. package/lib/module/ui/components/TextField/Adornment/types.js.map +1 -0
  645. package/lib/module/ui/components/TextField/Adornment/utils.js +57 -0
  646. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -0
  647. package/lib/module/ui/components/TextField/Label/InputLabel.js +171 -0
  648. package/lib/module/ui/components/TextField/Label/InputLabel.js.map +1 -0
  649. package/lib/module/ui/components/TextField/Label/LabelBackground.js +78 -0
  650. package/lib/module/ui/components/TextField/Label/LabelBackground.js.map +1 -0
  651. package/lib/module/ui/components/TextField/TextFieldFlat.js +374 -0
  652. package/lib/module/ui/components/TextField/TextFieldFlat.js.map +1 -0
  653. package/lib/module/ui/components/TextField/TextFieldOutlined.js +357 -0
  654. package/lib/module/ui/components/TextField/TextFieldOutlined.js.map +1 -0
  655. package/lib/module/ui/components/TextField/constants.js +46 -0
  656. package/lib/module/ui/components/TextField/constants.js.map +1 -0
  657. package/lib/module/ui/components/TextField/helpers.js +472 -0
  658. package/lib/module/ui/components/TextField/helpers.js.map +1 -0
  659. package/lib/module/ui/components/TextField/types.js +4 -0
  660. package/lib/module/ui/components/TextField/types.js.map +1 -0
  661. package/lib/module/ui/components/TextField.js +333 -0
  662. package/lib/module/ui/components/TextField.js.map +1 -0
  663. package/lib/module/ui/components/TouchableRipple/Pressable.js +9 -0
  664. package/lib/module/ui/components/TouchableRipple/Pressable.js.map +1 -0
  665. package/lib/module/ui/components/TouchableRipple/TouchableRipple.js +253 -0
  666. package/lib/module/ui/components/TouchableRipple/TouchableRipple.js.map +1 -0
  667. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js +101 -0
  668. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -0
  669. package/lib/module/ui/components/TouchableRipple/utils.js +50 -0
  670. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -0
  671. package/lib/module/ui/components/Typography/AnimatedText.js +56 -0
  672. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -0
  673. package/lib/module/ui/components/Typography/types.js +22 -0
  674. package/lib/module/ui/components/Typography/types.js.map +1 -0
  675. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +165 -0
  676. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -0
  677. package/lib/module/ui/components/fileManagement/FileViewer.js +402 -0
  678. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -0
  679. package/lib/module/ui/components/fileManagement/UploadPreview.js +175 -0
  680. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -0
  681. package/lib/module/ui/components/fileManagement/styles.js +864 -0
  682. package/lib/module/ui/components/fileManagement/styles.js.map +1 -0
  683. package/lib/module/ui/components/icon/FAIRWalletIcon.js +59 -0
  684. package/lib/module/ui/components/icon/FAIRWalletIcon.js.map +1 -0
  685. package/lib/module/ui/components/icon/OxyIcon.js +21 -0
  686. package/lib/module/ui/components/icon/OxyIcon.js.map +1 -0
  687. package/lib/module/ui/components/icon/index.js +5 -0
  688. package/lib/module/ui/components/icon/index.js.map +1 -0
  689. package/lib/module/ui/components/index.js +22 -0
  690. package/lib/module/ui/components/index.js.map +1 -0
  691. package/lib/module/ui/components/internal/GroupedPillButtons.js +205 -0
  692. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -0
  693. package/lib/module/ui/components/internal/PinInput.js +110 -0
  694. package/lib/module/ui/components/internal/PinInput.js.map +1 -0
  695. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +156 -0
  696. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -0
  697. package/lib/module/ui/components/profile/EditBioModal.js +175 -0
  698. package/lib/module/ui/components/profile/EditBioModal.js.map +1 -0
  699. package/lib/module/ui/components/profile/EditDisplayNameModal.js +198 -0
  700. package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -0
  701. package/lib/module/ui/components/profile/EditEmailModal.js +178 -0
  702. package/lib/module/ui/components/profile/EditEmailModal.js.map +1 -0
  703. package/lib/module/ui/components/profile/EditLinksModal.js +309 -0
  704. package/lib/module/ui/components/profile/EditLinksModal.js.map +1 -0
  705. package/lib/module/ui/components/profile/EditLocationModal.js +267 -0
  706. package/lib/module/ui/components/profile/EditLocationModal.js.map +1 -0
  707. package/lib/module/ui/components/profile/EditUsernameModal.js +174 -0
  708. package/lib/module/ui/components/profile/EditUsernameModal.js.map +1 -0
  709. package/lib/module/ui/components/styles/overlay.js +80 -0
  710. package/lib/module/ui/components/styles/overlay.js.map +1 -0
  711. package/lib/module/ui/components/styles/shadow.js +128 -0
  712. package/lib/module/ui/components/styles/shadow.js.map +1 -0
  713. package/lib/module/ui/components/theming.js +111 -0
  714. package/lib/module/ui/components/theming.js.map +1 -0
  715. package/lib/module/ui/components/types.js +2 -0
  716. package/lib/module/ui/components/types.js.map +1 -0
  717. package/lib/module/ui/components/utils/forwardRef.js +13 -0
  718. package/lib/module/ui/components/utils/forwardRef.js.map +1 -0
  719. package/lib/module/ui/components/utils/hasTouchHandler.js +9 -0
  720. package/lib/module/ui/components/utils/hasTouchHandler.js.map +1 -0
  721. package/lib/module/ui/components/utils/roundLayoutSize.js +4 -0
  722. package/lib/module/ui/components/utils/roundLayoutSize.js.map +1 -0
  723. package/lib/module/ui/components/utils/splitStyles.js +46 -0
  724. package/lib/module/ui/components/utils/splitStyles.js.map +1 -0
  725. package/lib/module/ui/constants/iconColors.js +78 -0
  726. package/lib/module/ui/constants/iconColors.js.map +1 -0
  727. package/lib/module/ui/constants/spacing.js +45 -0
  728. package/lib/module/ui/constants/spacing.js.map +1 -0
  729. package/lib/module/ui/constants/theme.js +119 -0
  730. package/lib/module/ui/constants/theme.js.map +1 -0
  731. package/lib/module/ui/context/OxyContext.js +809 -0
  732. package/lib/module/ui/context/OxyContext.js.map +1 -0
  733. package/lib/module/ui/context/ThemeContext.js +29 -0
  734. package/lib/module/ui/context/ThemeContext.js.map +1 -0
  735. package/lib/module/ui/context/hooks/useAuthOperations.js +615 -0
  736. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -0
  737. package/lib/module/ui/context/hooks/useDeviceManagement.js +68 -0
  738. package/lib/module/ui/context/hooks/useDeviceManagement.js.map +1 -0
  739. package/lib/module/ui/context/hooks/useLanguageManagement.js +107 -0
  740. package/lib/module/ui/context/hooks/useLanguageManagement.js.map +1 -0
  741. package/lib/module/ui/context/hooks/useSessionManagement.js +276 -0
  742. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
  743. package/lib/module/ui/context/hooks/useStorage.js +74 -0
  744. package/lib/module/ui/context/hooks/useStorage.js.map +1 -0
  745. package/lib/module/ui/hooks/index.js +7 -0
  746. package/lib/module/ui/hooks/index.js.map +1 -0
  747. package/lib/module/ui/hooks/mutations/index.js +15 -0
  748. package/lib/module/ui/hooks/mutations/index.js.map +1 -0
  749. package/lib/module/ui/hooks/mutations/useAccountMutations.js +544 -0
  750. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -0
  751. package/lib/module/ui/hooks/mutations/useServicesMutations.js +185 -0
  752. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -0
  753. package/lib/module/ui/hooks/queries/index.js +21 -0
  754. package/lib/module/ui/hooks/queries/index.js.map +1 -0
  755. package/lib/module/ui/hooks/queries/queryKeys.js +89 -0
  756. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -0
  757. package/lib/module/ui/hooks/queries/useAccountQueries.js +210 -0
  758. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -0
  759. package/lib/module/ui/hooks/queries/useSecurityQueries.js +52 -0
  760. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -0
  761. package/lib/module/ui/hooks/queries/useServicesQueries.js +178 -0
  762. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -0
  763. package/lib/module/ui/hooks/queryClient.js +110 -0
  764. package/lib/module/ui/hooks/queryClient.js.map +1 -0
  765. package/lib/module/ui/hooks/use-color-scheme.js +26 -0
  766. package/lib/module/ui/hooks/use-color-scheme.js.map +1 -0
  767. package/lib/module/ui/hooks/use-haptic-press.js +17 -0
  768. package/lib/module/ui/hooks/use-haptic-press.js.map +1 -0
  769. package/lib/module/ui/hooks/useAssets.js +239 -0
  770. package/lib/module/ui/hooks/useAssets.js.map +1 -0
  771. package/lib/module/ui/hooks/useDeviceManagement.js +68 -0
  772. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -0
  773. package/lib/module/ui/hooks/useFileDownloadUrl.js +97 -0
  774. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -0
  775. package/lib/module/ui/hooks/useFollow.js +161 -0
  776. package/lib/module/ui/hooks/useFollow.js.map +1 -0
  777. package/lib/module/ui/hooks/useFollow.types.js +2 -0
  778. package/lib/module/ui/hooks/useFollow.types.js.map +1 -0
  779. package/lib/module/ui/hooks/useI18n.js +18 -0
  780. package/lib/module/ui/hooks/useI18n.js.map +1 -0
  781. package/lib/module/ui/hooks/useLanguageManagement.js +107 -0
  782. package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -0
  783. package/lib/module/ui/hooks/useProfileEditing.js +102 -0
  784. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -0
  785. package/lib/module/ui/hooks/useQueryClient.js +15 -0
  786. package/lib/module/ui/hooks/useQueryClient.js.map +1 -0
  787. package/lib/module/ui/hooks/useSessionManagement.js +276 -0
  788. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -0
  789. package/lib/module/ui/hooks/useSessionSocket.js +490 -0
  790. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -0
  791. package/lib/module/ui/hooks/useStorage.js +74 -0
  792. package/lib/module/ui/hooks/useStorage.js.map +1 -0
  793. package/lib/module/ui/hooks/useThemeColors.js +27 -0
  794. package/lib/module/ui/hooks/useThemeColors.js.map +1 -0
  795. package/lib/module/ui/hooks/useThemeStyles.js +64 -0
  796. package/lib/module/ui/hooks/useThemeStyles.js.map +1 -0
  797. package/lib/module/ui/index.js +63 -0
  798. package/lib/module/ui/index.js.map +1 -0
  799. package/lib/module/ui/isFrontend.js +6 -0
  800. package/lib/module/ui/isFrontend.js.map +1 -0
  801. package/lib/module/ui/navigation/bottomSheetManager.js +168 -0
  802. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -0
  803. package/lib/module/ui/navigation/routes.js +82 -0
  804. package/lib/module/ui/navigation/routes.js.map +1 -0
  805. package/lib/module/ui/screens/AccountCenterScreen.js +324 -0
  806. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -0
  807. package/lib/module/ui/screens/AccountOverviewScreen.js +747 -0
  808. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -0
  809. package/lib/module/ui/screens/AccountSettingsScreen.js +2158 -0
  810. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -0
  811. package/lib/module/ui/screens/AccountSwitcherScreen.js +698 -0
  812. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -0
  813. package/lib/module/ui/screens/AccountVerificationScreen.js +205 -0
  814. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -0
  815. package/lib/module/ui/screens/AppInfoScreen.js +409 -0
  816. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -0
  817. package/lib/module/ui/screens/FeedbackScreen.js +1186 -0
  818. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -0
  819. package/lib/module/ui/screens/FileManagementScreen.js +2327 -0
  820. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -0
  821. package/lib/module/ui/screens/HelpSupportScreen.js +129 -0
  822. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -0
  823. package/lib/module/ui/screens/HistoryViewScreen.js +213 -0
  824. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -0
  825. package/lib/module/ui/screens/LanguageSelectorScreen.js +213 -0
  826. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -0
  827. package/lib/module/ui/screens/LegalDocumentsScreen.js +179 -0
  828. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -0
  829. package/lib/module/ui/screens/OxyAuthScreen.js +533 -0
  830. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -0
  831. package/lib/module/ui/screens/PaymentGatewayScreen.js +1583 -0
  832. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -0
  833. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +1643 -0
  834. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -0
  835. package/lib/module/ui/screens/PrivacySettingsScreen.js +474 -0
  836. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -0
  837. package/lib/module/ui/screens/ProfileScreen.js +642 -0
  838. package/lib/module/ui/screens/ProfileScreen.js.map +1 -0
  839. package/lib/module/ui/screens/SavesCollectionsScreen.js +162 -0
  840. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -0
  841. package/lib/module/ui/screens/SearchSettingsScreen.js +161 -0
  842. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -0
  843. package/lib/module/ui/screens/SessionManagementScreen.js +442 -0
  844. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -0
  845. package/lib/module/ui/screens/UserLinksScreen.js +82 -0
  846. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -0
  847. package/lib/module/ui/screens/WelcomeNewUserScreen.js +428 -0
  848. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -0
  849. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +94 -0
  850. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -0
  851. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +339 -0
  852. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -0
  853. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +189 -0
  854. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -0
  855. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +146 -0
  856. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -0
  857. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +605 -0
  858. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -0
  859. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +105 -0
  860. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -0
  861. package/lib/module/ui/stores/accountStore.js +244 -0
  862. package/lib/module/ui/stores/accountStore.js.map +1 -0
  863. package/lib/module/ui/stores/assetStore.js +212 -0
  864. package/lib/module/ui/stores/assetStore.js.map +1 -0
  865. package/lib/module/ui/stores/authStore.js +81 -0
  866. package/lib/module/ui/stores/authStore.js.map +1 -0
  867. package/lib/module/ui/stores/fileStore.js +145 -0
  868. package/lib/module/ui/stores/fileStore.js.map +1 -0
  869. package/lib/module/ui/stores/followStore.js +225 -0
  870. package/lib/module/ui/stores/followStore.js.map +1 -0
  871. package/lib/module/ui/styles/authStyles.js +333 -0
  872. package/lib/module/ui/styles/authStyles.js.map +1 -0
  873. package/lib/module/ui/styles/fonts.js +81 -0
  874. package/lib/module/ui/styles/fonts.js.map +1 -0
  875. package/lib/module/ui/styles/index.js +7 -0
  876. package/lib/module/ui/styles/index.js.map +1 -0
  877. package/lib/module/ui/styles/spacing.js +58 -0
  878. package/lib/module/ui/styles/spacing.js.map +1 -0
  879. package/lib/module/ui/styles/theme.js +114 -0
  880. package/lib/module/ui/styles/theme.js.map +1 -0
  881. package/lib/module/ui/types/fileManagement.js +4 -0
  882. package/lib/module/ui/types/fileManagement.js.map +1 -0
  883. package/lib/module/ui/types/navigation.js +4 -0
  884. package/lib/module/ui/types/navigation.js.map +1 -0
  885. package/lib/module/ui/utils/avatarUtils.js +126 -0
  886. package/lib/module/ui/utils/avatarUtils.js.map +1 -0
  887. package/lib/module/ui/utils/colorUtils.js +46 -0
  888. package/lib/module/ui/utils/colorUtils.js.map +1 -0
  889. package/lib/module/ui/utils/confirmAction.js +25 -0
  890. package/lib/module/ui/utils/confirmAction.js.map +1 -0
  891. package/lib/module/ui/utils/errorHandlers.js +129 -0
  892. package/lib/module/ui/utils/errorHandlers.js.map +1 -0
  893. package/lib/module/ui/utils/fileManagement.js +251 -0
  894. package/lib/module/ui/utils/fileManagement.js.map +1 -0
  895. package/lib/module/ui/utils/sessionHelpers.js +94 -0
  896. package/lib/module/ui/utils/sessionHelpers.js.map +1 -0
  897. package/lib/module/ui/utils/storageHelpers.js +111 -0
  898. package/lib/module/ui/utils/storageHelpers.js.map +1 -0
  899. package/lib/module/ui/utils/themeUtils.js +41 -0
  900. package/lib/module/ui/utils/themeUtils.js.map +1 -0
  901. package/lib/module/ui/utils/user-utils.js +46 -0
  902. package/lib/module/ui/utils/user-utils.js.map +1 -0
  903. package/lib/module/utils/apiUtils.js +72 -0
  904. package/lib/module/utils/apiUtils.js.map +1 -0
  905. package/lib/module/utils/asyncUtils.js +192 -0
  906. package/lib/module/utils/asyncUtils.js.map +1 -0
  907. package/lib/module/utils/cache.js +250 -0
  908. package/lib/module/utils/cache.js.map +1 -0
  909. package/lib/module/utils/deviceManager.js +171 -0
  910. package/lib/module/utils/deviceManager.js.map +1 -0
  911. package/lib/module/utils/errorUtils.js +167 -0
  912. package/lib/module/utils/errorUtils.js.map +1 -0
  913. package/lib/module/utils/hookUtils.js +381 -0
  914. package/lib/module/utils/hookUtils.js.map +1 -0
  915. package/lib/module/utils/index.js +11 -0
  916. package/lib/module/utils/index.js.map +1 -0
  917. package/lib/module/utils/languageUtils.js +151 -0
  918. package/lib/module/utils/languageUtils.js.map +1 -0
  919. package/lib/module/utils/loggerUtils.js +149 -0
  920. package/lib/module/utils/loggerUtils.js.map +1 -0
  921. package/lib/module/utils/requestUtils.js +210 -0
  922. package/lib/module/utils/requestUtils.js.map +1 -0
  923. package/lib/module/utils/sessionUtils.js +180 -0
  924. package/lib/module/utils/sessionUtils.js.map +1 -0
  925. package/lib/module/utils/validationUtils.js +170 -0
  926. package/lib/module/utils/validationUtils.js.map +1 -0
  927. package/lib/typescript/assets/icons/OxyServices.d.ts +29 -0
  928. package/lib/typescript/assets/icons/OxyServices.d.ts.map +1 -0
  929. package/lib/typescript/assets/illustrations/HighFive.d.ts +9 -0
  930. package/lib/typescript/assets/illustrations/HighFive.d.ts.map +1 -0
  931. package/lib/typescript/constants/version.d.ts +14 -0
  932. package/lib/typescript/constants/version.d.ts.map +1 -0
  933. package/lib/typescript/core/HttpService.d.ts +159 -0
  934. package/lib/typescript/core/HttpService.d.ts.map +1 -0
  935. package/lib/typescript/core/OxyServices.base.d.ts +133 -0
  936. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -0
  937. package/lib/typescript/core/OxyServices.d.ts +113 -0
  938. package/lib/typescript/core/OxyServices.d.ts.map +1 -0
  939. package/lib/typescript/core/OxyServices.errors.d.ts +12 -0
  940. package/lib/typescript/core/OxyServices.errors.d.ts.map +1 -0
  941. package/lib/typescript/core/index.d.ts +17 -0
  942. package/lib/typescript/core/index.d.ts.map +1 -0
  943. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts +67 -0
  944. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -0
  945. package/lib/typescript/core/mixins/OxyServices.assets.d.ts +136 -0
  946. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -0
  947. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +192 -0
  948. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -0
  949. package/lib/typescript/core/mixins/OxyServices.developer.d.ts +100 -0
  950. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -0
  951. package/lib/typescript/core/mixins/OxyServices.devices.d.ts +97 -0
  952. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -0
  953. package/lib/typescript/core/mixins/OxyServices.karma.d.ts +86 -0
  954. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -0
  955. package/lib/typescript/core/mixins/OxyServices.language.d.ts +82 -0
  956. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -0
  957. package/lib/typescript/core/mixins/OxyServices.location.d.ts +65 -0
  958. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -0
  959. package/lib/typescript/core/mixins/OxyServices.payment.d.ts +112 -0
  960. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -0
  961. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts +123 -0
  962. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -0
  963. package/lib/typescript/core/mixins/OxyServices.security.d.ts +79 -0
  964. package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -0
  965. package/lib/typescript/core/mixins/OxyServices.user.d.ts +183 -0
  966. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -0
  967. package/lib/typescript/core/mixins/OxyServices.utility.d.ts +94 -0
  968. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -0
  969. package/lib/typescript/core/mixins/index.d.ts +853 -0
  970. package/lib/typescript/core/mixins/index.d.ts.map +1 -0
  971. package/lib/typescript/core/mixins/mixinHelpers.d.ts +32 -0
  972. package/lib/typescript/core/mixins/mixinHelpers.d.ts.map +1 -0
  973. package/lib/typescript/core/services/SessionService.d.ts +78 -0
  974. package/lib/typescript/core/services/SessionService.d.ts.map +1 -0
  975. package/lib/typescript/core/services/TokenService.d.ts +72 -0
  976. package/lib/typescript/core/services/TokenService.d.ts.map +1 -0
  977. package/lib/typescript/crypto/index.d.ts +12 -0
  978. package/lib/typescript/crypto/index.d.ts.map +1 -0
  979. package/lib/typescript/crypto/keyManager.d.ts +97 -0
  980. package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
  981. package/lib/typescript/crypto/polyfill.d.ts +13 -0
  982. package/lib/typescript/crypto/polyfill.d.ts.map +1 -0
  983. package/lib/typescript/crypto/signatureService.d.ts +87 -0
  984. package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
  985. package/lib/typescript/crypto/types.d.ts +18 -0
  986. package/lib/typescript/crypto/types.d.ts.map +1 -0
  987. package/lib/typescript/i18n/index.d.ts +4 -0
  988. package/lib/typescript/i18n/index.d.ts.map +1 -0
  989. package/lib/typescript/index.d.ts +38 -0
  990. package/lib/typescript/index.d.ts.map +1 -0
  991. package/lib/typescript/lib/sonner-safe.d.ts +9 -0
  992. package/lib/typescript/lib/sonner-safe.d.ts.map +1 -0
  993. package/lib/typescript/lib/sonner.d.ts +15 -0
  994. package/lib/typescript/lib/sonner.d.ts.map +1 -0
  995. package/lib/typescript/models/interfaces.d.ts +428 -0
  996. package/lib/typescript/models/interfaces.d.ts.map +1 -0
  997. package/lib/typescript/models/session.d.ts +31 -0
  998. package/lib/typescript/models/session.d.ts.map +1 -0
  999. package/lib/typescript/node/index.d.ts +10 -0
  1000. package/lib/typescript/node/index.d.ts.map +1 -0
  1001. package/lib/typescript/types/buffer.d.ts +97 -0
  1002. package/lib/typescript/types/color.d.ts +20 -0
  1003. package/lib/typescript/types/elliptic.d.ts +62 -0
  1004. package/lib/typescript/types/expo-crypto.d.ts +30 -0
  1005. package/lib/typescript/types/expo-document-picker.d.ts +36 -0
  1006. package/lib/typescript/types/expo-secure-store.d.ts +22 -0
  1007. package/lib/typescript/types/expo-vector-icons.d.ts +19 -0
  1008. package/lib/typescript/types/express.d.ts +24 -0
  1009. package/lib/typescript/ui/components/ActivityIndicator.d.ts +45 -0
  1010. package/lib/typescript/ui/components/ActivityIndicator.d.ts.map +1 -0
  1011. package/lib/typescript/ui/components/AnimationExample.d.ts +4 -0
  1012. package/lib/typescript/ui/components/AnimationExample.d.ts.map +1 -0
  1013. package/lib/typescript/ui/components/AutoHeightScrollView.d.ts +23 -0
  1014. package/lib/typescript/ui/components/AutoHeightScrollView.d.ts.map +1 -0
  1015. package/lib/typescript/ui/components/Avatar.d.ts +61 -0
  1016. package/lib/typescript/ui/components/Avatar.d.ts.map +1 -0
  1017. package/lib/typescript/ui/components/BottomSheet.d.ts +29 -0
  1018. package/lib/typescript/ui/components/BottomSheet.d.ts.map +1 -0
  1019. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +14 -0
  1020. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -0
  1021. package/lib/typescript/ui/components/CrossFadeIcon.d.ts +27 -0
  1022. package/lib/typescript/ui/components/CrossFadeIcon.d.ts.map +1 -0
  1023. package/lib/typescript/ui/components/EmptyState.d.ts +8 -0
  1024. package/lib/typescript/ui/components/EmptyState.d.ts.map +1 -0
  1025. package/lib/typescript/ui/components/ErrorBoundary.d.ts +31 -0
  1026. package/lib/typescript/ui/components/ErrorBoundary.d.ts.map +1 -0
  1027. package/lib/typescript/ui/components/FollowButton.d.ts +18 -0
  1028. package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -0
  1029. package/lib/typescript/ui/components/FontLoader.d.ts +15 -0
  1030. package/lib/typescript/ui/components/FontLoader.d.ts.map +1 -0
  1031. package/lib/typescript/ui/components/GroupedItem.d.ts +20 -0
  1032. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -0
  1033. package/lib/typescript/ui/components/GroupedSection.d.ts +25 -0
  1034. package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -0
  1035. package/lib/typescript/ui/components/Header.d.ts +38 -0
  1036. package/lib/typescript/ui/components/Header.d.ts.map +1 -0
  1037. package/lib/typescript/ui/components/HelperText.d.ts +47 -0
  1038. package/lib/typescript/ui/components/HelperText.d.ts.map +1 -0
  1039. package/lib/typescript/ui/components/Icon.d.ts +60 -0
  1040. package/lib/typescript/ui/components/Icon.d.ts.map +1 -0
  1041. package/lib/typescript/ui/components/IconButton/IconButton.d.ts +99 -0
  1042. package/lib/typescript/ui/components/IconButton/IconButton.d.ts.map +1 -0
  1043. package/lib/typescript/ui/components/IconButton/utils.d.ts +19 -0
  1044. package/lib/typescript/ui/components/IconButton/utils.d.ts.map +1 -0
  1045. package/lib/typescript/ui/components/LoadingState.d.ts +9 -0
  1046. package/lib/typescript/ui/components/LoadingState.d.ts.map +1 -0
  1047. package/lib/typescript/ui/components/OxyLogo.d.ts +29 -0
  1048. package/lib/typescript/ui/components/OxyLogo.d.ts.map +1 -0
  1049. package/lib/typescript/ui/components/OxyPayButton.d.ts +29 -0
  1050. package/lib/typescript/ui/components/OxyPayButton.d.ts.map +1 -0
  1051. package/lib/typescript/ui/components/OxyProvider.d.ts +11 -0
  1052. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -0
  1053. package/lib/typescript/ui/components/OxySignInButton.d.ts +65 -0
  1054. package/lib/typescript/ui/components/OxySignInButton.d.ts.map +1 -0
  1055. package/lib/typescript/ui/components/ProfileCard.d.ts +18 -0
  1056. package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -0
  1057. package/lib/typescript/ui/components/QuickActions.d.ts +15 -0
  1058. package/lib/typescript/ui/components/QuickActions.d.ts.map +1 -0
  1059. package/lib/typescript/ui/components/Section.d.ts +12 -0
  1060. package/lib/typescript/ui/components/Section.d.ts.map +1 -0
  1061. package/lib/typescript/ui/components/SectionTitle.d.ts +10 -0
  1062. package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -0
  1063. package/lib/typescript/ui/components/SettingRow.d.ts +14 -0
  1064. package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -0
  1065. package/lib/typescript/ui/components/StepBasedScreen.d.ts +26 -0
  1066. package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -0
  1067. package/lib/typescript/ui/components/Surface.d.ts +76 -0
  1068. package/lib/typescript/ui/components/Surface.d.ts.map +1 -0
  1069. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +16 -0
  1070. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts.map +1 -0
  1071. package/lib/typescript/ui/components/TextField/Addons/Underline.d.ts +19 -0
  1072. package/lib/typescript/ui/components/TextField/Addons/Underline.d.ts.map +1 -0
  1073. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +45 -0
  1074. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAdornment.d.ts.map +1 -0
  1075. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAffix.d.ts +73 -0
  1076. package/lib/typescript/ui/components/TextField/Adornment/TextFieldAffix.d.ts.map +1 -0
  1077. package/lib/typescript/ui/components/TextField/Adornment/TextFieldIcon.d.ts +78 -0
  1078. package/lib/typescript/ui/components/TextField/Adornment/TextFieldIcon.d.ts.map +1 -0
  1079. package/lib/typescript/ui/components/TextField/Adornment/enums.d.ts +13 -0
  1080. package/lib/typescript/ui/components/TextField/Adornment/enums.d.ts.map +1 -0
  1081. package/lib/typescript/ui/components/TextField/Adornment/types.d.ts +12 -0
  1082. package/lib/typescript/ui/components/TextField/Adornment/types.d.ts.map +1 -0
  1083. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +12 -0
  1084. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -0
  1085. package/lib/typescript/ui/components/TextField/Label/InputLabel.d.ts +5 -0
  1086. package/lib/typescript/ui/components/TextField/Label/InputLabel.d.ts.map +1 -0
  1087. package/lib/typescript/ui/components/TextField/Label/LabelBackground.d.ts +4 -0
  1088. package/lib/typescript/ui/components/TextField/Label/LabelBackground.d.ts.map +1 -0
  1089. package/lib/typescript/ui/components/TextField/TextFieldFlat.d.ts +4 -0
  1090. package/lib/typescript/ui/components/TextField/TextFieldFlat.d.ts.map +1 -0
  1091. package/lib/typescript/ui/components/TextField/TextFieldOutlined.d.ts +4 -0
  1092. package/lib/typescript/ui/components/TextField/TextFieldOutlined.d.ts.map +1 -0
  1093. package/lib/typescript/ui/components/TextField/constants.d.ts +32 -0
  1094. package/lib/typescript/ui/components/TextField/constants.d.ts.map +1 -0
  1095. package/lib/typescript/ui/components/TextField/helpers.d.ts +97 -0
  1096. package/lib/typescript/ui/components/TextField/helpers.d.ts.map +1 -0
  1097. package/lib/typescript/ui/components/TextField/types.d.ts +156 -0
  1098. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -0
  1099. package/lib/typescript/ui/components/TextField.d.ts +192 -0
  1100. package/lib/typescript/ui/components/TextField.d.ts.map +1 -0
  1101. package/lib/typescript/ui/components/TouchableRipple/Pressable.d.ts +13 -0
  1102. package/lib/typescript/ui/components/TouchableRipple/Pressable.d.ts.map +1 -0
  1103. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.d.ts +62 -0
  1104. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.d.ts.map +1 -0
  1105. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.native.d.ts +25 -0
  1106. package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -0
  1107. package/lib/typescript/ui/components/TouchableRipple/utils.d.ts +11 -0
  1108. package/lib/typescript/ui/components/TouchableRipple/utils.d.ts.map +1 -0
  1109. package/lib/typescript/ui/components/Typography/AnimatedText.d.ts +35 -0
  1110. package/lib/typescript/ui/components/Typography/AnimatedText.d.ts.map +1 -0
  1111. package/lib/typescript/ui/components/Typography/types.d.ts +19 -0
  1112. package/lib/typescript/ui/components/Typography/types.d.ts.map +1 -0
  1113. package/lib/typescript/ui/components/fileManagement/FileDetailsModal.d.ts +15 -0
  1114. package/lib/typescript/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -0
  1115. package/lib/typescript/ui/components/fileManagement/FileViewer.d.ts +18 -0
  1116. package/lib/typescript/ui/components/fileManagement/FileViewer.d.ts.map +1 -0
  1117. package/lib/typescript/ui/components/fileManagement/UploadPreview.d.ts +21 -0
  1118. package/lib/typescript/ui/components/fileManagement/UploadPreview.d.ts.map +1 -0
  1119. package/lib/typescript/ui/components/fileManagement/styles.d.ts +860 -0
  1120. package/lib/typescript/ui/components/fileManagement/styles.d.ts.map +1 -0
  1121. package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts +9 -0
  1122. package/lib/typescript/ui/components/icon/FAIRWalletIcon.d.ts.map +1 -0
  1123. package/lib/typescript/ui/components/icon/OxyIcon.d.ts +10 -0
  1124. package/lib/typescript/ui/components/icon/OxyIcon.d.ts.map +1 -0
  1125. package/lib/typescript/ui/components/icon/index.d.ts +4 -0
  1126. package/lib/typescript/ui/components/icon/index.d.ts.map +1 -0
  1127. package/lib/typescript/ui/components/index.d.ts +17 -0
  1128. package/lib/typescript/ui/components/index.d.ts.map +1 -0
  1129. package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts +18 -0
  1130. package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts.map +1 -0
  1131. package/lib/typescript/ui/components/internal/PinInput.d.ts +23 -0
  1132. package/lib/typescript/ui/components/internal/PinInput.d.ts.map +1 -0
  1133. package/lib/typescript/ui/components/photogrid/JustifiedPhotoGrid.d.ts +27 -0
  1134. package/lib/typescript/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -0
  1135. package/lib/typescript/ui/components/profile/EditBioModal.d.ts +11 -0
  1136. package/lib/typescript/ui/components/profile/EditBioModal.d.ts.map +1 -0
  1137. package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts +12 -0
  1138. package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -0
  1139. package/lib/typescript/ui/components/profile/EditEmailModal.d.ts +11 -0
  1140. package/lib/typescript/ui/components/profile/EditEmailModal.d.ts.map +1 -0
  1141. package/lib/typescript/ui/components/profile/EditLinksModal.d.ts +18 -0
  1142. package/lib/typescript/ui/components/profile/EditLinksModal.d.ts.map +1 -0
  1143. package/lib/typescript/ui/components/profile/EditLocationModal.d.ts +20 -0
  1144. package/lib/typescript/ui/components/profile/EditLocationModal.d.ts.map +1 -0
  1145. package/lib/typescript/ui/components/profile/EditUsernameModal.d.ts +11 -0
  1146. package/lib/typescript/ui/components/profile/EditUsernameModal.d.ts.map +1 -0
  1147. package/lib/typescript/ui/components/styles/overlay.d.ts +4 -0
  1148. package/lib/typescript/ui/components/styles/overlay.d.ts.map +1 -0
  1149. package/lib/typescript/ui/components/styles/shadow.d.ts +3 -0
  1150. package/lib/typescript/ui/components/styles/shadow.d.ts.map +1 -0
  1151. package/lib/typescript/ui/components/theming.d.ts +8 -0
  1152. package/lib/typescript/ui/components/theming.d.ts.map +1 -0
  1153. package/lib/typescript/ui/components/types.d.ts +80 -0
  1154. package/lib/typescript/ui/components/types.d.ts.map +1 -0
  1155. package/lib/typescript/ui/components/utils/forwardRef.d.ts +12 -0
  1156. package/lib/typescript/ui/components/utils/forwardRef.d.ts.map +1 -0
  1157. package/lib/typescript/ui/components/utils/hasTouchHandler.d.ts +6 -0
  1158. package/lib/typescript/ui/components/utils/hasTouchHandler.d.ts.map +1 -0
  1159. package/lib/typescript/ui/components/utils/roundLayoutSize.d.ts +2 -0
  1160. package/lib/typescript/ui/components/utils/roundLayoutSize.d.ts.map +1 -0
  1161. package/lib/typescript/ui/components/utils/splitStyles.d.ts +20 -0
  1162. package/lib/typescript/ui/components/utils/splitStyles.d.ts.map +1 -0
  1163. package/lib/typescript/ui/constants/iconColors.d.ts +130 -0
  1164. package/lib/typescript/ui/constants/iconColors.d.ts.map +1 -0
  1165. package/lib/typescript/ui/constants/spacing.d.ts +33 -0
  1166. package/lib/typescript/ui/constants/spacing.d.ts.map +1 -0
  1167. package/lib/typescript/ui/constants/theme.d.ts +97 -0
  1168. package/lib/typescript/ui/constants/theme.d.ts.map +1 -0
  1169. package/lib/typescript/ui/context/OxyContext.d.ts +86 -0
  1170. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -0
  1171. package/lib/typescript/ui/context/ThemeContext.d.ts +19 -0
  1172. package/lib/typescript/ui/context/ThemeContext.d.ts.map +1 -0
  1173. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +59 -0
  1174. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -0
  1175. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +27 -0
  1176. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +1 -0
  1177. package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts +25 -0
  1178. package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts.map +1 -0
  1179. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +41 -0
  1180. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
  1181. package/lib/typescript/ui/context/hooks/useStorage.d.ts +22 -0
  1182. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +1 -0
  1183. package/lib/typescript/ui/hooks/index.d.ts +5 -0
  1184. package/lib/typescript/ui/hooks/index.d.ts.map +1 -0
  1185. package/lib/typescript/ui/hooks/mutations/index.d.ts +9 -0
  1186. package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -0
  1187. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +44 -0
  1188. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -0
  1189. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +23 -0
  1190. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -0
  1191. package/lib/typescript/ui/hooks/queries/index.d.ts +11 -0
  1192. package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -0
  1193. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +65 -0
  1194. package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -0
  1195. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +47 -0
  1196. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -0
  1197. package/lib/typescript/ui/hooks/queries/useSecurityQueries.d.ts +15 -0
  1198. package/lib/typescript/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -0
  1199. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts +34 -0
  1200. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -0
  1201. package/lib/typescript/ui/hooks/queryClient.d.ts +19 -0
  1202. package/lib/typescript/ui/hooks/queryClient.d.ts.map +1 -0
  1203. package/lib/typescript/ui/hooks/use-color-scheme.d.ts +8 -0
  1204. package/lib/typescript/ui/hooks/use-color-scheme.d.ts.map +1 -0
  1205. package/lib/typescript/ui/hooks/use-haptic-press.d.ts +8 -0
  1206. package/lib/typescript/ui/hooks/use-haptic-press.d.ts.map +1 -0
  1207. package/lib/typescript/ui/hooks/useAssets.d.ts +35 -0
  1208. package/lib/typescript/ui/hooks/useAssets.d.ts.map +1 -0
  1209. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +27 -0
  1210. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +1 -0
  1211. package/lib/typescript/ui/hooks/useFileDownloadUrl.d.ts +19 -0
  1212. package/lib/typescript/ui/hooks/useFileDownloadUrl.d.ts.map +1 -0
  1213. package/lib/typescript/ui/hooks/useFollow.d.ts +62 -0
  1214. package/lib/typescript/ui/hooks/useFollow.d.ts.map +1 -0
  1215. package/lib/typescript/ui/hooks/useFollow.types.d.ts +33 -0
  1216. package/lib/typescript/ui/hooks/useFollow.types.d.ts.map +1 -0
  1217. package/lib/typescript/ui/hooks/useI18n.d.ts +5 -0
  1218. package/lib/typescript/ui/hooks/useI18n.d.ts.map +1 -0
  1219. package/lib/typescript/ui/hooks/useLanguageManagement.d.ts +25 -0
  1220. package/lib/typescript/ui/hooks/useLanguageManagement.d.ts.map +1 -0
  1221. package/lib/typescript/ui/hooks/useProfileEditing.d.ts +36 -0
  1222. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -0
  1223. package/lib/typescript/ui/hooks/useQueryClient.d.ts +7 -0
  1224. package/lib/typescript/ui/hooks/useQueryClient.d.ts.map +1 -0
  1225. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +41 -0
  1226. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -0
  1227. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +28 -0
  1228. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -0
  1229. package/lib/typescript/ui/hooks/useStorage.d.ts +22 -0
  1230. package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -0
  1231. package/lib/typescript/ui/hooks/useThemeColors.d.ts +94 -0
  1232. package/lib/typescript/ui/hooks/useThemeColors.d.ts.map +1 -0
  1233. package/lib/typescript/ui/hooks/useThemeStyles.d.ts +45 -0
  1234. package/lib/typescript/ui/hooks/useThemeStyles.d.ts.map +1 -0
  1235. package/lib/typescript/ui/index.d.ts +5 -0
  1236. package/lib/typescript/ui/index.d.ts.map +1 -0
  1237. package/lib/typescript/ui/isFrontend.d.ts +3 -0
  1238. package/lib/typescript/ui/isFrontend.d.ts.map +1 -0
  1239. package/lib/typescript/ui/navigation/bottomSheetManager.d.ts +74 -0
  1240. package/lib/typescript/ui/navigation/bottomSheetManager.d.ts.map +1 -0
  1241. package/lib/typescript/ui/navigation/routes.d.ts +6 -0
  1242. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -0
  1243. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts +5 -0
  1244. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -0
  1245. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts +5 -0
  1246. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -0
  1247. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts +8 -0
  1248. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -0
  1249. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts +5 -0
  1250. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -0
  1251. package/lib/typescript/ui/screens/AccountVerificationScreen.d.ts +5 -0
  1252. package/lib/typescript/ui/screens/AccountVerificationScreen.d.ts.map +1 -0
  1253. package/lib/typescript/ui/screens/AppInfoScreen.d.ts +5 -0
  1254. package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -0
  1255. package/lib/typescript/ui/screens/FeedbackScreen.d.ts +5 -0
  1256. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -0
  1257. package/lib/typescript/ui/screens/FileManagementScreen.d.ts +5 -0
  1258. package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -0
  1259. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts +5 -0
  1260. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -0
  1261. package/lib/typescript/ui/screens/HistoryViewScreen.d.ts +5 -0
  1262. package/lib/typescript/ui/screens/HistoryViewScreen.d.ts.map +1 -0
  1263. package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts +7 -0
  1264. package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts.map +1 -0
  1265. package/lib/typescript/ui/screens/LegalDocumentsScreen.d.ts +5 -0
  1266. package/lib/typescript/ui/screens/LegalDocumentsScreen.d.ts.map +1 -0
  1267. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +17 -0
  1268. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -0
  1269. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +27 -0
  1270. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -0
  1271. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts +5 -0
  1272. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -0
  1273. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts +5 -0
  1274. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -0
  1275. package/lib/typescript/ui/screens/ProfileScreen.d.ts +9 -0
  1276. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -0
  1277. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts +5 -0
  1278. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -0
  1279. package/lib/typescript/ui/screens/SearchSettingsScreen.d.ts +5 -0
  1280. package/lib/typescript/ui/screens/SearchSettingsScreen.d.ts.map +1 -0
  1281. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts +5 -0
  1282. package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -0
  1283. package/lib/typescript/ui/screens/UserLinksScreen.d.ts +15 -0
  1284. package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -0
  1285. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts +13 -0
  1286. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -0
  1287. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts +5 -0
  1288. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -0
  1289. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts +5 -0
  1290. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -0
  1291. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts +5 -0
  1292. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -0
  1293. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts +5 -0
  1294. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -0
  1295. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts +5 -0
  1296. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -0
  1297. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts +5 -0
  1298. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -0
  1299. package/lib/typescript/ui/stores/accountStore.d.ts +34 -0
  1300. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -0
  1301. package/lib/typescript/ui/stores/assetStore.d.ts +54 -0
  1302. package/lib/typescript/ui/stores/assetStore.d.ts.map +1 -0
  1303. package/lib/typescript/ui/stores/authStore.d.ts +21 -0
  1304. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -0
  1305. package/lib/typescript/ui/stores/fileStore.d.ts +31 -0
  1306. package/lib/typescript/ui/stores/fileStore.d.ts.map +1 -0
  1307. package/lib/typescript/ui/stores/followStore.d.ts +25 -0
  1308. package/lib/typescript/ui/stores/followStore.d.ts.map +1 -0
  1309. package/lib/typescript/ui/styles/authStyles.d.ts +332 -0
  1310. package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -0
  1311. package/lib/typescript/ui/styles/fonts.d.ts +21 -0
  1312. package/lib/typescript/ui/styles/fonts.d.ts.map +1 -0
  1313. package/lib/typescript/ui/styles/index.d.ts +5 -0
  1314. package/lib/typescript/ui/styles/index.d.ts.map +1 -0
  1315. package/lib/typescript/ui/styles/spacing.d.ts +49 -0
  1316. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -0
  1317. package/lib/typescript/ui/styles/theme.d.ts +68 -0
  1318. package/lib/typescript/ui/styles/theme.d.ts.map +1 -0
  1319. package/lib/typescript/ui/types/fileManagement.d.ts +41 -0
  1320. package/lib/typescript/ui/types/fileManagement.d.ts.map +1 -0
  1321. package/lib/typescript/ui/types/navigation.d.ts +36 -0
  1322. package/lib/typescript/ui/types/navigation.d.ts.map +1 -0
  1323. package/lib/typescript/ui/utils/avatarUtils.d.ts +34 -0
  1324. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -0
  1325. package/lib/typescript/ui/utils/colorUtils.d.ts +14 -0
  1326. package/lib/typescript/ui/utils/colorUtils.d.ts.map +1 -0
  1327. package/lib/typescript/ui/utils/confirmAction.d.ts +7 -0
  1328. package/lib/typescript/ui/utils/confirmAction.d.ts.map +1 -0
  1329. package/lib/typescript/ui/utils/errorHandlers.d.ts +35 -0
  1330. package/lib/typescript/ui/utils/errorHandlers.d.ts.map +1 -0
  1331. package/lib/typescript/ui/utils/fileManagement.d.ts +87 -0
  1332. package/lib/typescript/ui/utils/fileManagement.d.ts.map +1 -0
  1333. package/lib/typescript/ui/utils/sessionHelpers.d.ts +59 -0
  1334. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -0
  1335. package/lib/typescript/ui/utils/storageHelpers.d.ts +31 -0
  1336. package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -0
  1337. package/lib/typescript/ui/utils/themeUtils.d.ts +24 -0
  1338. package/lib/typescript/ui/utils/themeUtils.d.ts.map +1 -0
  1339. package/lib/typescript/ui/utils/user-utils.d.ts +29 -0
  1340. package/lib/typescript/ui/utils/user-utils.d.ts.map +1 -0
  1341. package/lib/typescript/utils/apiUtils.d.ts +54 -0
  1342. package/lib/typescript/utils/apiUtils.d.ts.map +1 -0
  1343. package/lib/typescript/utils/asyncUtils.d.ts +59 -0
  1344. package/lib/typescript/utils/asyncUtils.d.ts.map +1 -0
  1345. package/lib/typescript/utils/cache.d.ts +128 -0
  1346. package/lib/typescript/utils/cache.d.ts.map +1 -0
  1347. package/lib/typescript/utils/deviceManager.d.ts +66 -0
  1348. package/lib/typescript/utils/deviceManager.d.ts.map +1 -0
  1349. package/lib/typescript/utils/errorUtils.d.ts +53 -0
  1350. package/lib/typescript/utils/errorUtils.d.ts.map +1 -0
  1351. package/lib/typescript/utils/hookUtils.d.ts +102 -0
  1352. package/lib/typescript/utils/hookUtils.d.ts.map +1 -0
  1353. package/lib/typescript/utils/index.d.ts +7 -0
  1354. package/lib/typescript/utils/index.d.ts.map +1 -0
  1355. package/lib/typescript/utils/languageUtils.d.ts +38 -0
  1356. package/lib/typescript/utils/languageUtils.d.ts.map +1 -0
  1357. package/lib/typescript/utils/loggerUtils.d.ts +49 -0
  1358. package/lib/typescript/utils/loggerUtils.d.ts.map +1 -0
  1359. package/lib/typescript/utils/requestUtils.d.ts +122 -0
  1360. package/lib/typescript/utils/requestUtils.d.ts.map +1 -0
  1361. package/lib/typescript/utils/sessionUtils.d.ts +55 -0
  1362. package/lib/typescript/utils/sessionUtils.d.ts.map +1 -0
  1363. package/lib/typescript/utils/validationUtils.d.ts +86 -0
  1364. package/lib/typescript/utils/validationUtils.d.ts.map +1 -0
  1365. package/package.json +1 -1
  1366. package/src/core/mixins/OxyServices.user.ts +14 -4
  1367. package/src/ui/context/OxyContext.tsx +40 -75
  1368. package/src/ui/hooks/mutations/useAccountMutations.ts +8 -6
  1369. package/src/ui/hooks/queries/useAccountQueries.ts +4 -2
  1370. package/src/ui/hooks/useSessionSocket.ts +156 -153
  1371. package/src/ui/screens/PrivacySettingsScreen.tsx +12 -6
@@ -0,0 +1,2158 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
4
+ import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator, ScrollView, TextInput, Animated, Platform, Image } from 'react-native';
5
+ import OxyIcon from '../components/icon/OxyIcon';
6
+ import { Ionicons } from '@expo/vector-icons';
7
+ // @ts-ignore - MaterialCommunityIcons is available at runtime
8
+ import { MaterialCommunityIcons } from '@expo/vector-icons';
9
+ import { toast } from '../../lib/sonner';
10
+ import { fontFamilies } from '../styles/fonts';
11
+ import { confirmAction } from '../utils/confirmAction';
12
+ import { useAuthStore } from '../stores/authStore';
13
+ import { GroupedSection } from '../components';
14
+ import { useI18n } from '../hooks/useI18n';
15
+ import { useThemeStyles } from '../hooks/useThemeStyles';
16
+ import { useColorScheme } from '../hooks/use-color-scheme';
17
+ import { Colors } from '../constants/theme';
18
+ import { normalizeColorScheme, normalizeTheme } from '../utils/themeUtils';
19
+ import { useHapticPress } from '../hooks/use-haptic-press';
20
+ import { EditDisplayNameModal } from '../components/profile/EditDisplayNameModal';
21
+ import { EditUsernameModal } from '../components/profile/EditUsernameModal';
22
+ import { EditEmailModal } from '../components/profile/EditEmailModal';
23
+ import { EditBioModal } from '../components/profile/EditBioModal';
24
+ import { EditLocationModal } from '../components/profile/EditLocationModal';
25
+ import { EditLinksModal } from '../components/profile/EditLinksModal';
26
+ import { getDisplayName } from '../utils/user-utils';
27
+ import { TTLCache, registerCacheForCleanup } from '../../utils/cache';
28
+ import { useOxy } from '../context/OxyContext';
29
+ import { useCurrentUser } from '../hooks/queries/useAccountQueries';
30
+ import { useUpdateProfile, useUploadAvatar } from '../hooks/mutations/useAccountMutations';
31
+ import { SECTION_GAP_LARGE, COMPONENT_GAP, HEADER_PADDING_TOP_SETTINGS, createScreenContentStyle } from '../constants/spacing';
32
+
33
+ // Caches for link metadata and location searches
34
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
35
+ const linkMetadataCache = new TTLCache(30 * 60 * 1000); // 30 minutes cache for link metadata
36
+ const locationSearchCache = new TTLCache(60 * 60 * 1000); // 1 hour cache for location searches
37
+ registerCacheForCleanup(linkMetadataCache);
38
+ registerCacheForCleanup(locationSearchCache);
39
+ const AccountSettingsScreen = ({
40
+ onClose,
41
+ theme,
42
+ goBack,
43
+ navigate,
44
+ initialField,
45
+ initialSection,
46
+ scrollTo
47
+ }) => {
48
+ // Use useOxy() hook for OxyContext values
49
+ const {
50
+ oxyServices,
51
+ isAuthenticated,
52
+ activeSessionId
53
+ } = useOxy();
54
+ const {
55
+ t
56
+ } = useI18n();
57
+ const normalizedTheme = normalizeTheme(theme);
58
+
59
+ // Use TanStack Query for user data
60
+ const {
61
+ data: user,
62
+ isLoading: userLoading
63
+ } = useCurrentUser({
64
+ enabled: isAuthenticated
65
+ });
66
+ const updateProfileMutation = useUpdateProfile();
67
+ const uploadAvatarMutation = useUploadAvatar();
68
+
69
+ // Fallback to store for backward compatibility
70
+ const userFromStore = useAuthStore(state => state.user);
71
+ const finalUser = user || userFromStore;
72
+ const [isLoading, setIsLoading] = useState(false);
73
+ const isSaving = updateProfileMutation.isPending;
74
+ const isUpdatingAvatar = uploadAvatarMutation.isPending;
75
+ const [optimisticAvatarId, setOptimisticAvatarId] = useState(null);
76
+ const scrollViewRef = useRef(null);
77
+ const avatarSectionRef = useRef(null);
78
+ const [avatarSectionY, setAvatarSectionY] = useState(null);
79
+
80
+ // Section refs for navigation
81
+ const profilePictureSectionRef = useRef(null);
82
+ const basicInfoSectionRef = useRef(null);
83
+ const aboutSectionRef = useRef(null);
84
+ const quickActionsSectionRef = useRef(null);
85
+ const securitySectionRef = useRef(null);
86
+
87
+ // Section Y positions for scrolling
88
+ const [profilePictureSectionY, setProfilePictureSectionY] = useState(null);
89
+ const [basicInfoSectionY, setBasicInfoSectionY] = useState(null);
90
+ const [aboutSectionY, setAboutSectionY] = useState(null);
91
+ const [quickActionsSectionY, setQuickActionsSectionY] = useState(null);
92
+ const [securitySectionY, setSecuritySectionY] = useState(null);
93
+
94
+ // Animation refs
95
+ const saveButtonScale = useRef(new Animated.Value(1)).current;
96
+
97
+ // Form state
98
+ const [displayName, setDisplayName] = useState('');
99
+ const [lastName, setLastName] = useState('');
100
+ const [username, setUsername] = useState('');
101
+ const [email, setEmail] = useState('');
102
+ const [bio, setBio] = useState('');
103
+ const [location, setLocation] = useState('');
104
+ const [links, setLinks] = useState([]);
105
+ const [avatarFileId, setAvatarFileId] = useState('');
106
+
107
+ // Modal visibility states
108
+ const [showEditDisplayNameModal, setShowEditDisplayNameModal] = useState(false);
109
+ const [showEditUsernameModal, setShowEditUsernameModal] = useState(false);
110
+ const [showEditEmailModal, setShowEditEmailModal] = useState(false);
111
+ const [showEditBioModal, setShowEditBioModal] = useState(false);
112
+ const [showEditLocationModal, setShowEditLocationModal] = useState(false);
113
+ const [showEditLinksModal, setShowEditLinksModal] = useState(false);
114
+
115
+ // Location and links state (for display only - modals handle editing)
116
+ const [locations, setLocations] = useState([]);
117
+ const [linksMetadata, setLinksMetadata] = useState([]);
118
+
119
+ // State for inline editing (used by old renderEditingField code)
120
+ const [editingField, setEditingField] = useState(null);
121
+ const [tempDisplayName, setTempDisplayName] = useState('');
122
+ const [tempLastName, setTempLastName] = useState('');
123
+ const [tempUsername, setTempUsername] = useState('');
124
+ const [tempEmail, setTempEmail] = useState('');
125
+ const [tempBio, setTempBio] = useState('');
126
+ const [tempLocation, setTempLocation] = useState('');
127
+ const [tempLinks, setTempLinks] = useState([]);
128
+ const [tempLocations, setTempLocations] = useState([]);
129
+ const [tempLinksWithMetadata, setTempLinksWithMetadata] = useState([]);
130
+ const [isAddingLocation, setIsAddingLocation] = useState(false);
131
+ const [isSearchingLocations, setIsSearchingLocations] = useState(false);
132
+ const [locationSearchResults, setLocationSearchResults] = useState([]);
133
+ const [newLocationQuery, setNewLocationQuery] = useState('');
134
+ const [isAddingLink, setIsAddingLink] = useState(false);
135
+ const [isFetchingMetadata, setIsFetchingMetadata] = useState(false);
136
+ const [newLinkUrl, setNewLinkUrl] = useState('');
137
+
138
+ // Get theme colors using centralized hook
139
+ const colorScheme = useColorScheme();
140
+ const themeStyles = useThemeStyles(theme || 'light', colorScheme);
141
+ const handlePressIn = useHapticPress();
142
+
143
+ // Extract colors for convenience - ensure it's always defined
144
+ // useThemeStyles always returns colors, but add safety check for edge cases
145
+ const colors = themeStyles.colors || Colors[normalizeColorScheme(colorScheme, theme || 'light')];
146
+
147
+ // Memoize onBack handler to provide stable reference for Reanimated
148
+ const handleBack = useMemo(() => {
149
+ return goBack || onClose || undefined;
150
+ }, [goBack, onClose]);
151
+
152
+ // Memoize animation function to prevent recreation on every render
153
+ const animateSaveButton = useCallback((toValue, onComplete) => {
154
+ Animated.spring(saveButtonScale, {
155
+ toValue,
156
+ useNativeDriver: Platform.OS !== 'web',
157
+ tension: 150,
158
+ friction: 8
159
+ }).start(onComplete ? finished => {
160
+ if (finished) {
161
+ onComplete();
162
+ }
163
+ } : undefined);
164
+ }, [saveButtonScale]);
165
+
166
+ // Track initialization to prevent unnecessary resets
167
+ const isInitializedRef = useRef(false);
168
+ const previousUserIdRef = useRef(null);
169
+ const previousAvatarRef = useRef(null);
170
+
171
+ // Load user data - only reset fields when user actually changes (not just avatar)
172
+ useEffect(() => {
173
+ if (finalUser) {
174
+ const currentUserId = finalUser.id;
175
+ const currentAvatar = typeof finalUser.avatar === 'string' ? finalUser.avatar : '';
176
+ const isNewUser = previousUserIdRef.current !== currentUserId;
177
+ const isAvatarOnlyUpdate = !isNewUser && previousUserIdRef.current === currentUserId && previousAvatarRef.current !== currentAvatar && previousAvatarRef.current !== null;
178
+ const shouldInitialize = !isInitializedRef.current || isNewUser;
179
+
180
+ // Only reset all fields if it's a new user or first load
181
+ // Skip reset if it's just an avatar update
182
+ if (shouldInitialize && !isAvatarOnlyUpdate) {
183
+ const userDisplayName = typeof finalUser.name === 'string' ? finalUser.name : finalUser.name?.first || finalUser.name?.full || '';
184
+ const userLastName = typeof finalUser.name === 'object' ? finalUser.name?.last || '' : '';
185
+ setDisplayName(userDisplayName);
186
+ setLastName(userLastName);
187
+ setUsername(finalUser.username || '');
188
+ setEmail(finalUser.email || '');
189
+ setBio(finalUser.bio || '');
190
+ setLocation(finalUser.location || '');
191
+
192
+ // Handle locations - convert single location to array format
193
+ if (finalUser.locations && Array.isArray(finalUser.locations)) {
194
+ setLocations(finalUser.locations.map((loc, index) => ({
195
+ id: loc.id || `existing-${index}`,
196
+ name: loc.name,
197
+ label: loc.label,
198
+ coordinates: loc.coordinates
199
+ })));
200
+ } else if (finalUser.location) {
201
+ // Convert single location string to array format
202
+ setLocations([{
203
+ id: 'existing-0',
204
+ name: finalUser.location,
205
+ label: 'Location'
206
+ }]);
207
+ } else {
208
+ setLocations([]);
209
+ }
210
+
211
+ // Handle links - simple and direct like other fields
212
+ if (finalUser.linksMetadata && Array.isArray(finalUser.linksMetadata)) {
213
+ const urls = finalUser.linksMetadata.map(l => l.url);
214
+ setLinks(urls);
215
+ const metadataWithIds = finalUser.linksMetadata.map((link, index) => ({
216
+ ...link,
217
+ id: link.id || `existing-${index}`
218
+ }));
219
+ setLinksMetadata(metadataWithIds);
220
+ } else if (Array.isArray(finalUser.links)) {
221
+ const simpleLinks = finalUser.links.map(l => typeof l === 'string' ? l : l.link).filter(Boolean);
222
+ setLinks(simpleLinks);
223
+ const linksWithMetadata = simpleLinks.map((url, index) => ({
224
+ url,
225
+ title: url.replace(/^https?:\/\//, '').replace(/\/$/, ''),
226
+ description: `Link to ${url}`,
227
+ image: undefined,
228
+ id: `existing-${index}`
229
+ }));
230
+ setLinksMetadata(linksWithMetadata);
231
+ } else if (finalUser.website) {
232
+ setLinks([finalUser.website]);
233
+ setLinksMetadata([{
234
+ url: finalUser.website,
235
+ title: finalUser.website.replace(/^https?:\/\//, '').replace(/\/$/, ''),
236
+ description: `Link to ${finalUser.website}`,
237
+ image: undefined,
238
+ id: 'existing-0'
239
+ }]);
240
+ } else {
241
+ setLinks([]);
242
+ setLinksMetadata([]);
243
+ }
244
+ isInitializedRef.current = true;
245
+ }
246
+
247
+ // Update avatar only if it changed and we're not in optimistic/updating state
248
+ // This allows the server response to update the avatar without resetting other fields
249
+ // But don't override if we have a pending optimistic update
250
+ if (currentAvatar !== avatarFileId && !isUpdatingAvatar && !optimisticAvatarId) {
251
+ setAvatarFileId(currentAvatar);
252
+ }
253
+
254
+ // If we just finished updating and the server avatar matches our optimistic one, clear optimistic state
255
+ // Also clear if the server avatar matches our current avatarFileId (update completed)
256
+ if (isUpdatingAvatar === false && optimisticAvatarId) {
257
+ if (currentAvatar === optimisticAvatarId || currentAvatar === avatarFileId) {
258
+ setOptimisticAvatarId(null);
259
+ }
260
+ }
261
+ previousUserIdRef.current = currentUserId;
262
+ previousAvatarRef.current = currentAvatar;
263
+ }
264
+ }, [finalUser, avatarFileId, isUpdatingAvatar, optimisticAvatarId]);
265
+
266
+ // Set initial editing field if provided via props (e.g., from navigation)
267
+ // Use a ref to track if we've already set the initial field to avoid loops
268
+ const hasSetInitialFieldRef = useRef(false);
269
+ const previousInitialFieldRef = useRef(undefined);
270
+ const initialFieldTimeoutRef = useRef(null);
271
+
272
+ // Delay constant for scroll completion
273
+ const SCROLL_DELAY_MS = 600;
274
+
275
+ // Helper functions for inline editing (legacy support)
276
+ const startEditing = useCallback((field, initialValue) => {
277
+ setEditingField(field);
278
+ switch (field) {
279
+ case 'displayName':
280
+ setTempDisplayName(initialValue || displayName);
281
+ setTempLastName(lastName);
282
+ break;
283
+ case 'username':
284
+ setTempUsername(initialValue || username);
285
+ break;
286
+ case 'email':
287
+ setTempEmail(initialValue || email);
288
+ break;
289
+ case 'bio':
290
+ setTempBio(initialValue || bio);
291
+ break;
292
+ case 'location':
293
+ setTempLocations([...locations]);
294
+ break;
295
+ case 'links':
296
+ setTempLinksWithMetadata([...linksMetadata]);
297
+ break;
298
+ }
299
+ }, [displayName, lastName, username, email, bio, locations, linksMetadata]);
300
+ const cancelEditing = useCallback(() => {
301
+ setEditingField(null);
302
+ setTempDisplayName('');
303
+ setTempLastName('');
304
+ setTempUsername('');
305
+ setTempEmail('');
306
+ setTempBio('');
307
+ setTempLocation('');
308
+ setTempLinks([]);
309
+ setTempLocations([]);
310
+ setTempLinksWithMetadata([]);
311
+ setIsAddingLocation(false);
312
+ setIsSearchingLocations(false);
313
+ setLocationSearchResults([]);
314
+ setNewLocationQuery('');
315
+ setIsAddingLink(false);
316
+ setIsFetchingMetadata(false);
317
+ setNewLinkUrl('');
318
+ }, []);
319
+ const saveField = useCallback(async field => {
320
+ if (!field) return;
321
+ try {
322
+ switch (field) {
323
+ case 'displayName':
324
+ await updateProfileMutation.mutateAsync({
325
+ name: {
326
+ first: tempDisplayName,
327
+ last: tempLastName
328
+ }
329
+ });
330
+ setDisplayName(tempDisplayName);
331
+ setLastName(tempLastName);
332
+ break;
333
+ case 'username':
334
+ await updateProfileMutation.mutateAsync({
335
+ username: tempUsername
336
+ });
337
+ setUsername(tempUsername);
338
+ break;
339
+ case 'email':
340
+ await updateProfileMutation.mutateAsync({
341
+ email: tempEmail
342
+ });
343
+ setEmail(tempEmail);
344
+ break;
345
+ case 'bio':
346
+ await updateProfileMutation.mutateAsync({
347
+ bio: tempBio
348
+ });
349
+ setBio(tempBio);
350
+ break;
351
+ case 'location':
352
+ await updateProfileMutation.mutateAsync({
353
+ locations: tempLocations
354
+ });
355
+ setLocations(tempLocations);
356
+ break;
357
+ case 'links':
358
+ await updateProfileMutation.mutateAsync({
359
+ linksMetadata: tempLinksWithMetadata
360
+ });
361
+ setLinksMetadata(tempLinksWithMetadata);
362
+ setLinks(tempLinksWithMetadata.map(l => l.url));
363
+ break;
364
+ }
365
+ setEditingField(null);
366
+ toast.success(t('editProfile.toasts.saved') || 'Saved');
367
+ } catch (error) {
368
+ // Error is already handled by mutation's onError
369
+ }
370
+ }, [tempDisplayName, tempLastName, tempUsername, tempEmail, tempBio, tempLocations, tempLinksWithMetadata, updateProfileMutation, t]);
371
+
372
+ // Helper to get current value for a field
373
+ const getFieldCurrentValue = useCallback(field => {
374
+ switch (field) {
375
+ case 'displayName':
376
+ return displayName;
377
+ case 'username':
378
+ return username;
379
+ case 'email':
380
+ return email;
381
+ case 'bio':
382
+ return bio;
383
+ case 'location':
384
+ case 'links':
385
+ default:
386
+ return '';
387
+ }
388
+ }, [displayName, username, email, bio]);
389
+
390
+ // Handle initialSection prop to scroll to specific section
391
+ const hasScrolledToSectionRef = useRef(false);
392
+ const previousInitialSectionRef = useRef(undefined);
393
+ const SCROLL_OFFSET = 100; // Offset to show section near top of viewport
394
+
395
+ // Map section names to their Y positions
396
+ const sectionYPositions = useMemo(() => ({
397
+ profilePicture: profilePictureSectionY,
398
+ basicInfo: basicInfoSectionY,
399
+ about: aboutSectionY,
400
+ quickActions: quickActionsSectionY,
401
+ security: securitySectionY
402
+ }), [profilePictureSectionY, basicInfoSectionY, aboutSectionY, quickActionsSectionY, securitySectionY]);
403
+ useEffect(() => {
404
+ // If initialSection changed, reset the flag
405
+ if (previousInitialSectionRef.current !== initialSection) {
406
+ hasScrolledToSectionRef.current = false;
407
+ previousInitialSectionRef.current = initialSection;
408
+ }
409
+
410
+ // Scroll to the specified section if initialSection is provided and we haven't scrolled yet
411
+ if (initialSection && !hasScrolledToSectionRef.current) {
412
+ const sectionY = sectionYPositions[initialSection];
413
+ if (sectionY !== null && sectionY !== undefined && scrollTo) {
414
+ requestAnimationFrame(() => {
415
+ requestAnimationFrame(() => {
416
+ scrollTo(Math.max(0, sectionY - SCROLL_OFFSET), true);
417
+ hasScrolledToSectionRef.current = true;
418
+ });
419
+ });
420
+ }
421
+ }
422
+ }, [initialSection, sectionYPositions]);
423
+ const handleSave = async () => {
424
+ if (!finalUser) return;
425
+ try {
426
+ animateSaveButton(0.95); // Scale down slightly for animation
427
+
428
+ const updates = {
429
+ username,
430
+ email,
431
+ bio,
432
+ location: locations.length > 0 ? locations[0].name : '',
433
+ // Keep backward compatibility
434
+ locations: locations.length > 0 ? locations : undefined,
435
+ links,
436
+ linksMetadata: linksMetadata.length > 0 ? linksMetadata : undefined
437
+ };
438
+
439
+ // Handle name field
440
+ if (displayName || lastName) {
441
+ updates.name = {
442
+ first: displayName,
443
+ last: lastName
444
+ };
445
+ }
446
+
447
+ // Handle avatar
448
+ if (avatarFileId !== (typeof finalUser.avatar === 'string' ? finalUser.avatar : '')) {
449
+ updates.avatar = avatarFileId;
450
+ }
451
+ await updateProfileMutation.mutateAsync(updates);
452
+ toast.success(t('editProfile.toasts.profileUpdated') || 'Profile updated successfully');
453
+ animateSaveButton(1); // Scale back to normal
454
+
455
+ if (onClose) {
456
+ onClose();
457
+ } else if (goBack) {
458
+ goBack();
459
+ }
460
+ } catch (error) {
461
+ // Error is already handled by mutation's onError
462
+ animateSaveButton(1); // Scale back to normal on error
463
+ }
464
+ };
465
+ const handleAvatarRemove = () => {
466
+ confirmAction(t('editProfile.confirms.removeAvatar') || 'Remove your profile picture?', () => {
467
+ setAvatarFileId('');
468
+ toast.success(t('editProfile.toasts.avatarRemoved') || 'Avatar removed');
469
+ });
470
+ };
471
+ const {
472
+ openAvatarPicker
473
+ } = useOxy();
474
+
475
+ // Handlers to open modals
476
+ const handleOpenDisplayNameModal = useCallback(() => setShowEditDisplayNameModal(true), []);
477
+ const handleOpenUsernameModal = useCallback(() => setShowEditUsernameModal(true), []);
478
+ const handleOpenEmailModal = useCallback(() => setShowEditEmailModal(true), []);
479
+ const handleOpenBioModal = useCallback(() => setShowEditBioModal(true), []);
480
+ const handleOpenLocationModal = useCallback(() => setShowEditLocationModal(true), []);
481
+ const handleOpenLinksModal = useCallback(() => setShowEditLinksModal(true), []);
482
+
483
+ // Handler to refresh data after modal saves
484
+ // Note: Access user directly from store when invoked to get latest value,
485
+ // not from closure which may be stale after modal saves update the backend
486
+ const handleModalSave = useCallback(() => {
487
+ // Get fresh user data from store to ensure we have the latest values
488
+ // after the modal's save operation updates the backend
489
+ // Read from store directly (not from closure) to avoid stale data
490
+ const currentUser = useAuthStore.getState().user;
491
+
492
+ // Reload user data to reflect changes
493
+ if (currentUser) {
494
+ const userDisplayName = typeof currentUser.name === 'string' ? currentUser.name : currentUser.name?.first || currentUser.name?.full || '';
495
+ const userLastName = typeof currentUser.name === 'object' ? currentUser.name?.last || '' : '';
496
+ setDisplayName(userDisplayName);
497
+ setLastName(userLastName);
498
+ setUsername(currentUser.username || '');
499
+ setEmail(currentUser.email || '');
500
+ setBio(currentUser.bio || '');
501
+
502
+ // Reload locations and links
503
+ if (currentUser.locations && Array.isArray(currentUser.locations)) {
504
+ setLocations(currentUser.locations.map((loc, index) => ({
505
+ id: loc.id || `existing-${index}`,
506
+ name: loc.name,
507
+ label: loc.label,
508
+ coordinates: loc.coordinates
509
+ })));
510
+ } else if (currentUser.location) {
511
+ setLocations([{
512
+ id: 'existing-0',
513
+ name: currentUser.location,
514
+ label: 'Location'
515
+ }]);
516
+ } else {
517
+ setLocations([]);
518
+ }
519
+ if (currentUser.linksMetadata && Array.isArray(currentUser.linksMetadata)) {
520
+ setLinksMetadata(currentUser.linksMetadata.map((link, index) => ({
521
+ ...link,
522
+ id: link.id || `existing-${index}`
523
+ })));
524
+ } else {
525
+ setLinksMetadata([]);
526
+ }
527
+ }
528
+ }, []); // Empty dependency array - callback reads fresh data from store at call time
529
+
530
+ // Handle initialField prop - open appropriate modal
531
+ useEffect(() => {
532
+ if (initialField) {
533
+ // Special handling for avatar - open avatar picker directly
534
+ if (initialField === 'avatar') {
535
+ setTimeout(() => {
536
+ openAvatarPicker();
537
+ }, 300);
538
+ } else {
539
+ // Open appropriate modal
540
+ setTimeout(() => {
541
+ switch (initialField) {
542
+ case 'displayName':
543
+ setShowEditDisplayNameModal(true);
544
+ break;
545
+ case 'username':
546
+ setShowEditUsernameModal(true);
547
+ break;
548
+ case 'email':
549
+ setShowEditEmailModal(true);
550
+ break;
551
+ case 'bio':
552
+ setShowEditBioModal(true);
553
+ break;
554
+ case 'location':
555
+ setShowEditLocationModal(true);
556
+ break;
557
+ case 'links':
558
+ setShowEditLinksModal(true);
559
+ break;
560
+ }
561
+ }, 300);
562
+ }
563
+ }
564
+ }, [initialField, openAvatarPicker]);
565
+
566
+ // Removed fetchLinkMetadata - now handled by EditLinksModal
567
+ const _fetchLinkMetadata = async url => {
568
+ // Check cache first
569
+ const cacheKey = url.toLowerCase().trim();
570
+ const cached = linkMetadataCache.get(cacheKey);
571
+ if (cached) {
572
+ return cached;
573
+ }
574
+ try {
575
+ setIsFetchingMetadata(true);
576
+
577
+ // Use the backend API to fetch metadata
578
+ const metadata = await oxyServices.fetchLinkMetadata(url);
579
+ const result = {
580
+ ...metadata,
581
+ id: Date.now().toString()
582
+ };
583
+
584
+ // Cache the result
585
+ linkMetadataCache.set(cacheKey, result);
586
+ return result;
587
+ } catch (error) {
588
+ // Fallback to basic metadata
589
+ const fallback = {
590
+ url: url.startsWith('http') ? url : 'https://' + url,
591
+ title: url.replace(/^https?:\/\//, '').replace(/\/$/, ''),
592
+ description: 'Link',
593
+ image: undefined,
594
+ id: Date.now().toString()
595
+ };
596
+ // Cache fallback too (shorter TTL)
597
+ linkMetadataCache.set(cacheKey, fallback, 5 * 60 * 1000); // 5 minutes for fallbacks
598
+ return fallback;
599
+ } finally {
600
+ setIsFetchingMetadata(false);
601
+ }
602
+ };
603
+
604
+ // Helper functions for inline editing (legacy support - still used by renderEditingField)
605
+ const searchLocations = async query => {
606
+ if (!query.trim() || query.length < 3) {
607
+ setLocationSearchResults([]);
608
+ return;
609
+ }
610
+
611
+ // Check cache first
612
+ const cacheKey = query.toLowerCase().trim();
613
+ const cached = locationSearchCache.get(cacheKey);
614
+ if (cached) {
615
+ setLocationSearchResults(cached);
616
+ return;
617
+ }
618
+ try {
619
+ setIsSearchingLocations(true);
620
+ const response = await fetch(`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(query)}&limit=5&addressdetails=1`);
621
+ const data = await response.json();
622
+
623
+ // Cache the results
624
+ locationSearchCache.set(cacheKey, data);
625
+ setLocationSearchResults(data);
626
+ } catch (error) {
627
+ setLocationSearchResults([]);
628
+ } finally {
629
+ setIsSearchingLocations(false);
630
+ }
631
+ };
632
+ const addLocation = locationData => {
633
+ const newLocation = {
634
+ id: Date.now().toString(),
635
+ name: locationData.display_name,
636
+ label: locationData.type === 'city' ? 'City' : locationData.type === 'country' ? 'Country' : locationData.type === 'state' ? 'State' : 'Location',
637
+ coordinates: {
638
+ lat: Number.parseFloat(locationData.lat),
639
+ lon: Number.parseFloat(locationData.lon)
640
+ }
641
+ };
642
+ setTempLocations(prev => [...prev, newLocation]);
643
+ setNewLocationQuery('');
644
+ setLocationSearchResults([]);
645
+ setIsAddingLocation(false);
646
+ };
647
+ const removeLocation = id => {
648
+ setTempLocations(prev => prev.filter(loc => loc.id !== id));
649
+ };
650
+ const moveLocation = (fromIndex, toIndex) => {
651
+ setTempLocations(prev => {
652
+ const newLocations = [...prev];
653
+ const [movedLocation] = newLocations.splice(fromIndex, 1);
654
+ newLocations.splice(toIndex, 0, movedLocation);
655
+ return newLocations;
656
+ });
657
+ };
658
+ const addLink = async () => {
659
+ if (!newLinkUrl.trim()) return;
660
+ const url = newLinkUrl.trim();
661
+ const metadata = await _fetchLinkMetadata(url);
662
+ setTempLinksWithMetadata(prev => [...prev, metadata]);
663
+ setNewLinkUrl('');
664
+ setIsAddingLink(false);
665
+ };
666
+ const removeLink = id => {
667
+ setTempLinksWithMetadata(prev => prev.filter(link => link.id !== id));
668
+ };
669
+ const moveLink = (fromIndex, toIndex) => {
670
+ setTempLinksWithMetadata(prev => {
671
+ const newLinks = [...prev];
672
+ const [movedLink] = newLinks.splice(fromIndex, 1);
673
+ newLinks.splice(toIndex, 0, movedLink);
674
+ return newLinks;
675
+ });
676
+ };
677
+
678
+ // Memoize display name for avatar
679
+ const displayNameForAvatar = useMemo(() => getDisplayName(finalUser), [finalUser]);
680
+
681
+ // Legacy renderEditingField function (fallback)
682
+ const renderEditingField = type => {
683
+ if (!type) return null;
684
+ if (type === 'displayName') {
685
+ return /*#__PURE__*/_jsx(View, {
686
+ style: [styles.editingFieldContainer, {
687
+ backgroundColor: colors.background
688
+ }],
689
+ children: /*#__PURE__*/_jsx(View, {
690
+ style: styles.editingFieldContent,
691
+ children: /*#__PURE__*/_jsxs(View, {
692
+ style: styles.newValueSection,
693
+ children: [/*#__PURE__*/_jsx(View, {
694
+ style: styles.editingFieldHeader,
695
+ children: /*#__PURE__*/_jsx(Text, {
696
+ style: [styles.editingFieldLabel, {
697
+ color: colors.text
698
+ }],
699
+ children: "Edit Full Name"
700
+ })
701
+ }), /*#__PURE__*/_jsxs(View, {
702
+ style: {
703
+ flexDirection: 'row',
704
+ gap: 12
705
+ },
706
+ children: [/*#__PURE__*/_jsxs(View, {
707
+ style: {
708
+ flex: 1
709
+ },
710
+ children: [/*#__PURE__*/_jsx(Text, {
711
+ style: styles.editingFieldLabel,
712
+ children: "First Name"
713
+ }), /*#__PURE__*/_jsx(TextInput, {
714
+ style: styles.editingFieldInput,
715
+ value: tempDisplayName,
716
+ onChangeText: setTempDisplayName,
717
+ placeholder: "Enter your first name",
718
+ placeholderTextColor: colors.secondaryText,
719
+ autoFocus: true,
720
+ selectionColor: themeStyles.primaryColor
721
+ })]
722
+ }), /*#__PURE__*/_jsxs(View, {
723
+ style: {
724
+ flex: 1
725
+ },
726
+ children: [/*#__PURE__*/_jsx(Text, {
727
+ style: styles.editingFieldLabel,
728
+ children: "Last Name"
729
+ }), /*#__PURE__*/_jsx(TextInput, {
730
+ style: styles.editingFieldInput,
731
+ value: tempLastName,
732
+ onChangeText: setTempLastName,
733
+ placeholder: "Enter your last name",
734
+ placeholderTextColor: colors.secondaryText,
735
+ selectionColor: themeStyles.primaryColor
736
+ })]
737
+ })]
738
+ })]
739
+ })
740
+ })
741
+ });
742
+ }
743
+ if (type === 'location') {
744
+ return /*#__PURE__*/_jsx(View, {
745
+ style: [styles.editingFieldContainer, {
746
+ backgroundColor: colors.background
747
+ }],
748
+ children: /*#__PURE__*/_jsx(View, {
749
+ style: styles.editingFieldContent,
750
+ children: /*#__PURE__*/_jsxs(View, {
751
+ style: styles.newValueSection,
752
+ children: [/*#__PURE__*/_jsx(View, {
753
+ style: styles.editingFieldHeader,
754
+ children: /*#__PURE__*/_jsx(Text, {
755
+ style: [styles.editingFieldLabel, {
756
+ color: colors.text
757
+ }],
758
+ children: "Manage Your Locations"
759
+ })
760
+ }), isAddingLocation ? /*#__PURE__*/_jsxs(View, {
761
+ style: styles.addLocationSection,
762
+ children: [/*#__PURE__*/_jsxs(Text, {
763
+ style: styles.addLocationLabel,
764
+ children: ["Add New Location", isSearchingLocations && /*#__PURE__*/_jsx(Text, {
765
+ style: [styles.searchingText, {
766
+ color: colors.iconSecurity
767
+ }],
768
+ children: " \u2022 Searching..."
769
+ })]
770
+ }), /*#__PURE__*/_jsxs(View, {
771
+ style: styles.addLocationInputContainer,
772
+ children: [/*#__PURE__*/_jsx(TextInput, {
773
+ style: styles.addLocationInput,
774
+ value: newLocationQuery,
775
+ onChangeText: text => {
776
+ setNewLocationQuery(text);
777
+ searchLocations(text);
778
+ },
779
+ placeholder: "Search for a location...",
780
+ placeholderTextColor: colors.secondaryText,
781
+ autoFocus: true,
782
+ selectionColor: themeStyles.primaryColor
783
+ }), /*#__PURE__*/_jsx(View, {
784
+ style: styles.addLocationButtons,
785
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
786
+ style: [styles.addLocationButton, styles.cancelButton],
787
+ onPress: () => {
788
+ setIsAddingLocation(false);
789
+ setNewLocationQuery('');
790
+ setLocationSearchResults([]);
791
+ },
792
+ children: /*#__PURE__*/_jsx(Text, {
793
+ style: styles.cancelButtonText,
794
+ children: "Cancel"
795
+ })
796
+ })
797
+ })]
798
+ }), locationSearchResults.length > 0 && /*#__PURE__*/_jsx(View, {
799
+ style: styles.searchResults,
800
+ children: locationSearchResults.map(result => /*#__PURE__*/_jsxs(TouchableOpacity, {
801
+ style: styles.searchResultItem,
802
+ onPress: () => addLocation(result),
803
+ children: [/*#__PURE__*/_jsx(Text, {
804
+ style: styles.searchResultName,
805
+ numberOfLines: 2,
806
+ children: result.display_name
807
+ }), /*#__PURE__*/_jsx(Text, {
808
+ style: styles.searchResultType,
809
+ children: result.type
810
+ })]
811
+ }, result.place_id))
812
+ })]
813
+ }) : /*#__PURE__*/_jsxs(TouchableOpacity, {
814
+ style: styles.addLocationTrigger,
815
+ onPress: () => setIsAddingLocation(true),
816
+ children: [/*#__PURE__*/_jsx(OxyIcon, {
817
+ name: "add",
818
+ size: 20,
819
+ color: themeStyles.primaryColor
820
+ }), /*#__PURE__*/_jsx(Text, {
821
+ style: [styles.addLocationTriggerText, {
822
+ color: colors.iconSecurity
823
+ }],
824
+ children: "Add a new location"
825
+ })]
826
+ }), tempLocations.length > 0 && /*#__PURE__*/_jsxs(View, {
827
+ style: styles.locationsList,
828
+ children: [/*#__PURE__*/_jsxs(Text, {
829
+ style: styles.locationsListTitle,
830
+ children: ["Your Locations (", tempLocations.length, ")"]
831
+ }), tempLocations.map((location, index) => /*#__PURE__*/_jsxs(View, {
832
+ style: styles.locationItem,
833
+ children: [/*#__PURE__*/_jsxs(View, {
834
+ style: styles.locationItemContent,
835
+ children: [/*#__PURE__*/_jsx(View, {
836
+ style: styles.locationItemDragHandle,
837
+ children: /*#__PURE__*/_jsxs(View, {
838
+ style: styles.reorderButtons,
839
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
840
+ style: [styles.reorderButton, index === 0 && styles.reorderButtonDisabled],
841
+ onPress: () => index > 0 && moveLocation(index, index - 1),
842
+ disabled: index === 0,
843
+ children: /*#__PURE__*/_jsx(OxyIcon, {
844
+ name: "chevron-up",
845
+ size: 12,
846
+ color: index === 0 ? "#ccc" : "#666"
847
+ })
848
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
849
+ style: [styles.reorderButton, index === tempLocations.length - 1 && styles.reorderButtonDisabled],
850
+ onPress: () => index < tempLocations.length - 1 && moveLocation(index, index + 1),
851
+ disabled: index === tempLocations.length - 1,
852
+ children: /*#__PURE__*/_jsx(OxyIcon, {
853
+ name: "chevron-down",
854
+ size: 12,
855
+ color: index === tempLocations.length - 1 ? "#ccc" : "#666"
856
+ })
857
+ })]
858
+ })
859
+ }), /*#__PURE__*/_jsxs(View, {
860
+ style: styles.locationItemInfo,
861
+ children: [/*#__PURE__*/_jsxs(View, {
862
+ style: styles.locationItemHeader,
863
+ children: [/*#__PURE__*/_jsx(Text, {
864
+ style: styles.locationItemName,
865
+ numberOfLines: 1,
866
+ children: location.name
867
+ }), location.label && /*#__PURE__*/_jsx(View, {
868
+ style: [styles.locationLabel, {
869
+ backgroundColor: colors.iconSecurity
870
+ }],
871
+ children: /*#__PURE__*/_jsx(Text, {
872
+ style: styles.locationLabelText,
873
+ children: location.label
874
+ })
875
+ })]
876
+ }), location.coordinates && /*#__PURE__*/_jsxs(Text, {
877
+ style: styles.locationCoordinates,
878
+ children: [location.coordinates.lat.toFixed(4), ", ", location.coordinates.lon.toFixed(4)]
879
+ })]
880
+ }), /*#__PURE__*/_jsx(View, {
881
+ style: styles.locationItemActions,
882
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
883
+ style: styles.locationItemButton,
884
+ onPress: () => removeLocation(location.id),
885
+ children: /*#__PURE__*/_jsx(OxyIcon, {
886
+ name: "trash",
887
+ size: 14,
888
+ color: "#FF3B30"
889
+ })
890
+ })
891
+ })]
892
+ }), index < tempLocations.length - 1 && /*#__PURE__*/_jsx(View, {
893
+ style: styles.locationItemDivider
894
+ })]
895
+ }, location.id)), /*#__PURE__*/_jsx(View, {
896
+ style: styles.reorderHint,
897
+ children: /*#__PURE__*/_jsx(Text, {
898
+ style: styles.reorderHintText,
899
+ children: "Use \u2191\u2193 buttons to reorder your locations"
900
+ })
901
+ })]
902
+ })]
903
+ })
904
+ })
905
+ });
906
+ }
907
+ if (type === 'links') {
908
+ return /*#__PURE__*/_jsx(View, {
909
+ style: [styles.editingFieldContainer, {
910
+ backgroundColor: colors.background
911
+ }],
912
+ children: /*#__PURE__*/_jsx(View, {
913
+ style: styles.editingFieldContent,
914
+ children: /*#__PURE__*/_jsxs(View, {
915
+ style: styles.newValueSection,
916
+ children: [/*#__PURE__*/_jsx(View, {
917
+ style: styles.editingFieldHeader,
918
+ children: /*#__PURE__*/_jsx(Text, {
919
+ style: [styles.editingFieldLabel, {
920
+ color: colors.text
921
+ }],
922
+ children: "Manage Your Links"
923
+ })
924
+ }), /*#__PURE__*/_jsx(GroupedSection, {
925
+ items: [
926
+ // Add new link item
927
+ ...(isAddingLink ? [{
928
+ id: 'add-link-input',
929
+ icon: 'plus',
930
+ iconColor: colors.sidebarIconSharing,
931
+ title: 'Add New Link',
932
+ subtitle: isFetchingMetadata ? 'Fetching metadata...' : 'Enter URL to add a new link',
933
+ customContent: /*#__PURE__*/_jsxs(View, {
934
+ style: styles.addLinkInputContainer,
935
+ children: [/*#__PURE__*/_jsx(TextInput, {
936
+ style: styles.addLinkInput,
937
+ value: newLinkUrl,
938
+ onChangeText: setNewLinkUrl,
939
+ placeholder: "Enter URL (e.g., https://example.com)",
940
+ placeholderTextColor: colors.secondaryText,
941
+ keyboardType: "url",
942
+ autoFocus: true,
943
+ selectionColor: themeStyles.primaryColor
944
+ }), /*#__PURE__*/_jsxs(View, {
945
+ style: styles.addLinkButtons,
946
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
947
+ style: [styles.addLinkButton, styles.cancelButton],
948
+ onPress: () => {
949
+ setIsAddingLink(false);
950
+ setNewLinkUrl('');
951
+ },
952
+ children: /*#__PURE__*/_jsx(Text, {
953
+ style: styles.cancelButtonText,
954
+ children: "Cancel"
955
+ })
956
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
957
+ style: [styles.addLinkButton, styles.addButton, {
958
+ backgroundColor: colors.iconSecurity,
959
+ opacity: isFetchingMetadata ? 0.5 : 1
960
+ }],
961
+ onPress: addLink,
962
+ disabled: isFetchingMetadata,
963
+ children: isFetchingMetadata ? /*#__PURE__*/_jsx(ActivityIndicator, {
964
+ size: "small",
965
+ color: "#fff"
966
+ }) : /*#__PURE__*/_jsx(Text, {
967
+ style: styles.addButtonText,
968
+ children: "Add"
969
+ })
970
+ })]
971
+ })]
972
+ })
973
+ }] : [{
974
+ id: 'add-link-trigger',
975
+ icon: 'plus',
976
+ iconColor: colors.sidebarIconSharing,
977
+ title: 'Add a new link',
978
+ subtitle: 'Tap to add a new link to your profile',
979
+ onPress: () => setIsAddingLink(true)
980
+ }]),
981
+ // Existing links
982
+ ...tempLinksWithMetadata.map((link, index) => ({
983
+ id: link.id,
984
+ customIcon: link.image ? /*#__PURE__*/_jsx(Image, {
985
+ source: {
986
+ uri: link.image
987
+ },
988
+ style: {
989
+ width: 36,
990
+ height: 36,
991
+ borderRadius: 18
992
+ }
993
+ }) : undefined,
994
+ icon: !link.image ? 'link-variant' : undefined,
995
+ iconColor: colors.sidebarIconSharing,
996
+ title: link.title || link.url,
997
+ subtitle: link.description && link.description !== link.title ? link.description : link.url,
998
+ customContent: /*#__PURE__*/_jsxs(View, {
999
+ style: styles.linkItemActions,
1000
+ children: [/*#__PURE__*/_jsxs(View, {
1001
+ style: styles.reorderButtons,
1002
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
1003
+ style: [styles.reorderButton, index === 0 && styles.reorderButtonDisabled],
1004
+ onPress: () => index > 0 && moveLink(index, index - 1),
1005
+ disabled: index === 0,
1006
+ children: /*#__PURE__*/_jsx(OxyIcon, {
1007
+ name: "chevron-up",
1008
+ size: 12,
1009
+ color: index === 0 ? "#ccc" : "#666"
1010
+ })
1011
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
1012
+ style: [styles.reorderButton, index === tempLinksWithMetadata.length - 1 && styles.reorderButtonDisabled],
1013
+ onPress: () => index < tempLinksWithMetadata.length - 1 && moveLink(index, index + 1),
1014
+ disabled: index === tempLinksWithMetadata.length - 1,
1015
+ children: /*#__PURE__*/_jsx(OxyIcon, {
1016
+ name: "chevron-down",
1017
+ size: 12,
1018
+ color: index === tempLinksWithMetadata.length - 1 ? "#ccc" : "#666"
1019
+ })
1020
+ })]
1021
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
1022
+ style: styles.linkItemButton,
1023
+ onPress: () => removeLink(link.id),
1024
+ children: /*#__PURE__*/_jsx(OxyIcon, {
1025
+ name: "trash",
1026
+ size: 14,
1027
+ color: "#FF3B30"
1028
+ })
1029
+ })]
1030
+ })
1031
+ }))]
1032
+ }), tempLinksWithMetadata.length > 0 && /*#__PURE__*/_jsx(View, {
1033
+ style: styles.reorderHint,
1034
+ children: /*#__PURE__*/_jsx(Text, {
1035
+ style: styles.reorderHintText,
1036
+ children: "Use \u2191\u2193 buttons to reorder your links"
1037
+ })
1038
+ })]
1039
+ })
1040
+ })
1041
+ });
1042
+ }
1043
+ const fieldConfig = {
1044
+ displayName: {
1045
+ label: 'Display Name',
1046
+ value: displayName,
1047
+ placeholder: 'Enter your display name',
1048
+ icon: 'account',
1049
+ color: colors.iconPersonalInfo,
1050
+ multiline: false,
1051
+ keyboardType: 'default'
1052
+ },
1053
+ username: {
1054
+ label: 'Username',
1055
+ value: username,
1056
+ placeholder: 'Choose a username',
1057
+ icon: 'at',
1058
+ color: colors.iconData,
1059
+ multiline: false,
1060
+ keyboardType: 'default'
1061
+ },
1062
+ email: {
1063
+ label: 'Email',
1064
+ value: email,
1065
+ placeholder: 'Enter your email address',
1066
+ icon: 'mail',
1067
+ color: colors.iconStorage,
1068
+ multiline: false,
1069
+ keyboardType: 'email-address'
1070
+ },
1071
+ bio: {
1072
+ label: 'Bio',
1073
+ value: bio,
1074
+ placeholder: 'Tell people about yourself...',
1075
+ icon: 'file-document',
1076
+ color: colors.iconPersonalInfo,
1077
+ multiline: true,
1078
+ keyboardType: 'default'
1079
+ },
1080
+ location: {
1081
+ label: 'Location',
1082
+ value: location,
1083
+ placeholder: 'Enter your location',
1084
+ icon: 'location',
1085
+ color: colors.iconSharing,
1086
+ multiline: false,
1087
+ keyboardType: 'default'
1088
+ },
1089
+ links: {
1090
+ label: 'Links',
1091
+ value: links.join(', '),
1092
+ placeholder: 'Enter your links (comma separated)',
1093
+ icon: 'link',
1094
+ color: colors.iconPersonalInfo,
1095
+ multiline: false,
1096
+ keyboardType: 'url'
1097
+ }
1098
+ };
1099
+ const config = fieldConfig[type];
1100
+ if (!config) return null;
1101
+ const tempValue = (() => {
1102
+ switch (type) {
1103
+ case 'displayName':
1104
+ return tempDisplayName;
1105
+ case 'username':
1106
+ return tempUsername;
1107
+ case 'email':
1108
+ return tempEmail;
1109
+ case 'bio':
1110
+ return tempBio;
1111
+ case 'location':
1112
+ return tempLocation;
1113
+ case 'links':
1114
+ return tempLinks.join(', ');
1115
+ default:
1116
+ return '';
1117
+ }
1118
+ })();
1119
+ const setTempValue = text => {
1120
+ switch (type) {
1121
+ case 'displayName':
1122
+ setTempDisplayName(text);
1123
+ break;
1124
+ case 'username':
1125
+ setTempUsername(text);
1126
+ break;
1127
+ case 'email':
1128
+ setTempEmail(text);
1129
+ break;
1130
+ case 'bio':
1131
+ setTempBio(text);
1132
+ break;
1133
+ case 'location':
1134
+ setTempLocation(text);
1135
+ break;
1136
+ case 'links':
1137
+ setTempLinks(text.split(',').map(s => s.trim()).filter(Boolean));
1138
+ break;
1139
+ }
1140
+ };
1141
+ return /*#__PURE__*/_jsx(View, {
1142
+ style: [styles.editingFieldContainer, {
1143
+ backgroundColor: colors.background
1144
+ }],
1145
+ children: /*#__PURE__*/_jsx(View, {
1146
+ style: styles.editingFieldContent,
1147
+ children: /*#__PURE__*/_jsxs(View, {
1148
+ style: styles.newValueSection,
1149
+ children: [/*#__PURE__*/_jsx(View, {
1150
+ style: styles.editingFieldHeader,
1151
+ children: /*#__PURE__*/_jsx(Text, {
1152
+ style: [styles.editingFieldLabel, {
1153
+ color: colors.text
1154
+ }],
1155
+ children: config.label
1156
+ })
1157
+ }), /*#__PURE__*/_jsx(TextInput, {
1158
+ style: [config.multiline ? styles.editingFieldTextArea : styles.editingFieldInput, {
1159
+ backgroundColor: themeStyles.isDarkTheme ? '#1C1C1E' : '#F2F2F7',
1160
+ color: themeStyles.isDarkTheme ? '#FFFFFF' : '#000000',
1161
+ borderColor: themeStyles.isDarkTheme ? '#38383A' : '#E5E5EA'
1162
+ }],
1163
+ value: tempValue,
1164
+ onChangeText: setTempValue,
1165
+ placeholder: config.placeholder,
1166
+ placeholderTextColor: themeStyles.isDarkTheme ? '#636366' : '#8E8E93',
1167
+ multiline: config.multiline,
1168
+ numberOfLines: config.multiline ? 6 : 1,
1169
+ keyboardType: config.keyboardType,
1170
+ autoFocus: true,
1171
+ selectionColor: themeStyles.primaryColor
1172
+ })]
1173
+ })
1174
+ })
1175
+ });
1176
+ };
1177
+ if (userLoading || !isAuthenticated) {
1178
+ return /*#__PURE__*/_jsx(View, {
1179
+ style: [styles.container, {
1180
+ backgroundColor: themeStyles.backgroundColor,
1181
+ justifyContent: 'center'
1182
+ }],
1183
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
1184
+ size: "large",
1185
+ color: themeStyles.primaryColor
1186
+ })
1187
+ });
1188
+ }
1189
+ return /*#__PURE__*/_jsxs(View, {
1190
+ style: [styles.container, {
1191
+ backgroundColor: themeStyles.backgroundColor
1192
+ }],
1193
+ children: [editingField ? /*#__PURE__*/_jsxs(View, {
1194
+ style: [styles.editingHeader, {
1195
+ backgroundColor: colors.background,
1196
+ borderBottomColor: colors.border
1197
+ }],
1198
+ children: [/*#__PURE__*/_jsxs(View, {
1199
+ style: styles.editingHeaderContent,
1200
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
1201
+ style: [styles.editingBackButton, {
1202
+ backgroundColor: colors.card
1203
+ }],
1204
+ onPress: cancelEditing,
1205
+ children: /*#__PURE__*/_jsx(Ionicons, {
1206
+ name: "chevron-back",
1207
+ size: 20,
1208
+ color: colors.tint
1209
+ })
1210
+ }), /*#__PURE__*/_jsx(View, {
1211
+ style: styles.editingTitleContainer
1212
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
1213
+ style: [styles.editingSaveButton, {
1214
+ opacity: isSaving ? 0.5 : 1,
1215
+ backgroundColor: colors.card
1216
+ }],
1217
+ onPress: () => saveField(editingField),
1218
+ disabled: isSaving,
1219
+ children: isSaving ? /*#__PURE__*/_jsx(ActivityIndicator, {
1220
+ size: "small",
1221
+ color: colors.tint
1222
+ }) : /*#__PURE__*/_jsx(Text, {
1223
+ style: [styles.editingSaveButtonText, {
1224
+ color: colors.tint
1225
+ }],
1226
+ children: "Save"
1227
+ })
1228
+ })]
1229
+ }), /*#__PURE__*/_jsxs(View, {
1230
+ style: styles.editingHeaderBottom,
1231
+ children: [/*#__PURE__*/_jsx(View, {
1232
+ style: [styles.editingIconContainer, {
1233
+ 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`
1234
+ }],
1235
+ children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
1236
+ 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',
1237
+ size: 28,
1238
+ 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
1239
+ })
1240
+ }), /*#__PURE__*/_jsx(Text, {
1241
+ style: [styles.editingBottomTitle, {
1242
+ color: colors.text
1243
+ }],
1244
+ 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'
1245
+ })]
1246
+ })]
1247
+ }) : null, /*#__PURE__*/_jsx(ScrollView, {
1248
+ ref: scrollViewRef,
1249
+ style: editingField ? styles.contentEditing : styles.content,
1250
+ contentContainerStyle: styles.scrollContent,
1251
+ showsVerticalScrollIndicator: false,
1252
+ children: editingField ?
1253
+ /*#__PURE__*/
1254
+ // Show only the editing interface when editing
1255
+ _jsx(View, {
1256
+ style: styles.editingOnlyContainer,
1257
+ children: renderEditingField(editingField)
1258
+ }) :
1259
+ /*#__PURE__*/
1260
+ // Show all settings when not editing
1261
+ _jsxs(_Fragment, {
1262
+ children: [/*#__PURE__*/_jsxs(View, {
1263
+ style: [styles.headerContainer, styles.headerSection],
1264
+ children: [/*#__PURE__*/_jsx(Text, {
1265
+ style: [styles.modernTitle, {
1266
+ color: themeStyles.textColor,
1267
+ marginBottom: 0,
1268
+ marginTop: 0
1269
+ }],
1270
+ children: t('accountOverview.items.editProfile.title') || t('editProfile.title') || 'Edit Profile'
1271
+ }), /*#__PURE__*/_jsx(Text, {
1272
+ style: [styles.modernSubtitle, {
1273
+ color: colors.secondaryText,
1274
+ marginBottom: 0,
1275
+ marginTop: 0
1276
+ }],
1277
+ children: t('accountOverview.items.editProfile.subtitle') || t('editProfile.subtitle') || 'Manage your profile and preferences'
1278
+ })]
1279
+ }), /*#__PURE__*/_jsxs(View, {
1280
+ ref: ref => {
1281
+ avatarSectionRef.current = ref;
1282
+ profilePictureSectionRef.current = ref;
1283
+ },
1284
+ style: styles.section,
1285
+ onLayout: event => {
1286
+ const {
1287
+ y
1288
+ } = event.nativeEvent.layout;
1289
+ setAvatarSectionY(y);
1290
+ setProfilePictureSectionY(y);
1291
+ },
1292
+ children: [/*#__PURE__*/_jsx(Text, {
1293
+ style: [styles.sectionTitle, {
1294
+ color: colors.secondaryText
1295
+ }],
1296
+ children: t('editProfile.sections.profilePicture') || 'PROFILE PICTURE'
1297
+ }), /*#__PURE__*/_jsx(View, {
1298
+ style: styles.groupedSectionWrapper,
1299
+ children: /*#__PURE__*/_jsx(GroupedSection, {
1300
+ items: [{
1301
+ id: 'profile-photo',
1302
+ customIcon: optimisticAvatarId || avatarFileId ? isUpdatingAvatar ? /*#__PURE__*/_jsxs(Animated.View, {
1303
+ style: {
1304
+ position: 'relative',
1305
+ width: 36,
1306
+ height: 36
1307
+ },
1308
+ children: [/*#__PURE__*/_jsx(Animated.Image, {
1309
+ source: {
1310
+ uri: oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb')
1311
+ },
1312
+ style: {
1313
+ width: 36,
1314
+ height: 36,
1315
+ borderRadius: 18,
1316
+ opacity: 0.6
1317
+ }
1318
+ }), /*#__PURE__*/_jsx(View, {
1319
+ style: {
1320
+ position: 'absolute',
1321
+ top: 0,
1322
+ left: 0,
1323
+ right: 0,
1324
+ bottom: 0,
1325
+ justifyContent: 'center',
1326
+ alignItems: 'center',
1327
+ backgroundColor: colorScheme === 'dark' ? 'rgba(0, 0, 0, 0.4)' : 'rgba(255, 255, 255, 0.7)',
1328
+ borderRadius: 18
1329
+ },
1330
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
1331
+ size: "small",
1332
+ color: colors.tint
1333
+ })
1334
+ })]
1335
+ }) : /*#__PURE__*/_jsx(Image, {
1336
+ source: {
1337
+ uri: oxyServices.getFileDownloadUrl(optimisticAvatarId || avatarFileId, 'thumb')
1338
+ },
1339
+ style: {
1340
+ width: 36,
1341
+ height: 36,
1342
+ borderRadius: 18
1343
+ }
1344
+ }) : undefined,
1345
+ icon: !(optimisticAvatarId || avatarFileId) ? 'account-outline' : undefined,
1346
+ iconColor: colors.sidebarIconPersonalInfo,
1347
+ title: 'Profile Photo',
1348
+ subtitle: isUpdatingAvatar ? 'Updating profile picture...' : avatarFileId ? 'Tap to change your profile picture' : 'Tap to add a profile picture',
1349
+ onPress: isUpdatingAvatar ? undefined : openAvatarPicker,
1350
+ disabled: isUpdatingAvatar
1351
+ }, ...(avatarFileId && !isUpdatingAvatar ? [{
1352
+ id: 'remove-profile-photo',
1353
+ icon: 'delete-outline',
1354
+ iconColor: colors.sidebarIconSharing,
1355
+ title: 'Remove Photo',
1356
+ subtitle: 'Delete current profile picture',
1357
+ onPress: handleAvatarRemove
1358
+ }] : [])]
1359
+ })
1360
+ })]
1361
+ }), /*#__PURE__*/_jsxs(View, {
1362
+ ref: basicInfoSectionRef,
1363
+ style: styles.section,
1364
+ onLayout: event => {
1365
+ const {
1366
+ y
1367
+ } = event.nativeEvent.layout;
1368
+ setBasicInfoSectionY(y);
1369
+ },
1370
+ children: [/*#__PURE__*/_jsx(Text, {
1371
+ style: [styles.sectionTitle, {
1372
+ color: colors.secondaryText
1373
+ }],
1374
+ children: t('editProfile.sections.basicInfo') || 'BASIC INFORMATION'
1375
+ }), /*#__PURE__*/_jsx(View, {
1376
+ style: styles.groupedSectionWrapper,
1377
+ children: /*#__PURE__*/_jsx(GroupedSection, {
1378
+ items: [{
1379
+ id: 'display-name',
1380
+ icon: 'account-outline',
1381
+ iconColor: colors.sidebarIconPersonalInfo,
1382
+ title: t('editProfile.items.displayName.title') || 'Display Name',
1383
+ subtitle: [displayName, lastName].filter(Boolean).join(' ') || t('editProfile.items.displayName.add') || 'Add your display name',
1384
+ onPress: handleOpenDisplayNameModal
1385
+ }, {
1386
+ id: 'username',
1387
+ icon: 'at',
1388
+ iconColor: colors.sidebarIconData,
1389
+ title: t('editProfile.items.username.title') || 'Username',
1390
+ subtitle: username || t('editProfile.items.username.choose') || 'Choose a username',
1391
+ onPress: handleOpenUsernameModal
1392
+ }, {
1393
+ id: 'email',
1394
+ icon: 'email-outline',
1395
+ iconColor: colors.sidebarIconSecurity,
1396
+ title: t('editProfile.items.email.title') || 'Email',
1397
+ subtitle: email || t('editProfile.items.email.add') || 'Add your email address',
1398
+ onPress: handleOpenEmailModal
1399
+ }]
1400
+ })
1401
+ })]
1402
+ }), /*#__PURE__*/_jsxs(View, {
1403
+ ref: aboutSectionRef,
1404
+ style: styles.section,
1405
+ onLayout: event => {
1406
+ const {
1407
+ y
1408
+ } = event.nativeEvent.layout;
1409
+ setAboutSectionY(y);
1410
+ },
1411
+ children: [/*#__PURE__*/_jsx(Text, {
1412
+ style: [styles.sectionTitle, {
1413
+ color: colors.secondaryText
1414
+ }],
1415
+ children: t('editProfile.sections.about') || 'ABOUT YOU'
1416
+ }), /*#__PURE__*/_jsx(View, {
1417
+ style: styles.groupedSectionWrapper,
1418
+ children: /*#__PURE__*/_jsx(GroupedSection, {
1419
+ items: [{
1420
+ id: 'bio',
1421
+ icon: 'text-box-outline',
1422
+ iconColor: colors.sidebarIconPersonalInfo,
1423
+ title: t('editProfile.items.bio.title') || 'Bio',
1424
+ subtitle: bio || t('editProfile.items.bio.placeholder') || 'Tell people about yourself',
1425
+ onPress: handleOpenBioModal
1426
+ }, {
1427
+ id: 'locations',
1428
+ icon: 'map-marker-outline',
1429
+ iconColor: colors.sidebarIconSharing,
1430
+ title: t('editProfile.items.locations.title') || 'Locations',
1431
+ subtitle: locations.length > 0 ? locations.length === 1 ? t('editProfile.items.locations.count', {
1432
+ count: locations.length
1433
+ }) || `${locations.length} location added` : t('editProfile.items.locations.count_plural', {
1434
+ count: locations.length
1435
+ }) || `${locations.length} locations added` : t('editProfile.items.locations.add') || 'Add your locations',
1436
+ onPress: handleOpenLocationModal
1437
+ }, {
1438
+ id: 'links',
1439
+ icon: 'link-variant',
1440
+ iconColor: colors.sidebarIconSharing,
1441
+ title: t('editProfile.items.links.title') || 'Links',
1442
+ subtitle: linksMetadata.length > 0 ? linksMetadata.length === 1 ? t('editProfile.items.links.count', {
1443
+ count: linksMetadata.length
1444
+ }) || `${linksMetadata.length} link added` : t('editProfile.items.links.count_plural', {
1445
+ count: linksMetadata.length
1446
+ }) || `${linksMetadata.length} links added` : t('editProfile.items.links.add') || 'Add your links',
1447
+ onPress: handleOpenLinksModal
1448
+ }]
1449
+ })
1450
+ })]
1451
+ }), /*#__PURE__*/_jsxs(View, {
1452
+ ref: quickActionsSectionRef,
1453
+ style: styles.section,
1454
+ onLayout: event => {
1455
+ const {
1456
+ y
1457
+ } = event.nativeEvent.layout;
1458
+ setQuickActionsSectionY(y);
1459
+ },
1460
+ children: [/*#__PURE__*/_jsx(Text, {
1461
+ style: [styles.sectionTitle, {
1462
+ color: colors.secondaryText
1463
+ }],
1464
+ children: t('editProfile.sections.quickActions') || 'QUICK ACTIONS'
1465
+ }), /*#__PURE__*/_jsx(View, {
1466
+ style: styles.groupedSectionWrapper,
1467
+ children: /*#__PURE__*/_jsx(GroupedSection, {
1468
+ items: [{
1469
+ id: 'preview-profile',
1470
+ icon: 'eye',
1471
+ iconColor: colors.sidebarIconHome,
1472
+ title: t('editProfile.items.previewProfile.title') || 'Preview Profile',
1473
+ subtitle: t('editProfile.items.previewProfile.subtitle') || 'See how your profile looks to others',
1474
+ onPress: () => navigate?.('Profile', {
1475
+ userId: finalUser?.id
1476
+ })
1477
+ }, {
1478
+ id: 'privacy-settings',
1479
+ icon: 'shield-check',
1480
+ iconColor: colors.sidebarIconSecurity,
1481
+ title: t('editProfile.items.privacySettings.title') || 'Privacy Settings',
1482
+ subtitle: t('editProfile.items.privacySettings.subtitle') || 'Control who can see your profile',
1483
+ onPress: () => navigate?.('PrivacySettings')
1484
+ }, {
1485
+ id: 'verify-account',
1486
+ icon: 'check-circle',
1487
+ iconColor: colors.sidebarIconPersonalInfo,
1488
+ title: t('editProfile.items.verifyAccount.title') || 'Verify Account',
1489
+ subtitle: t('editProfile.items.verifyAccount.subtitle') || 'Get a verified badge',
1490
+ onPress: () => navigate?.('AccountVerification')
1491
+ }]
1492
+ })
1493
+ })]
1494
+ }), /*#__PURE__*/_jsxs(View, {
1495
+ ref: securitySectionRef,
1496
+ style: styles.section,
1497
+ onLayout: event => {
1498
+ const {
1499
+ y
1500
+ } = event.nativeEvent.layout;
1501
+ setSecuritySectionY(y);
1502
+ },
1503
+ children: [/*#__PURE__*/_jsx(Text, {
1504
+ style: [styles.sectionTitle, {
1505
+ color: colors.secondaryText
1506
+ }],
1507
+ children: t('editProfile.sections.security') || 'SECURITY'
1508
+ }), /*#__PURE__*/_jsx(View, {
1509
+ style: styles.groupedSectionWrapper
1510
+ })]
1511
+ })]
1512
+ })
1513
+ }), /*#__PURE__*/_jsx(EditDisplayNameModal, {
1514
+ visible: showEditDisplayNameModal,
1515
+ onClose: () => setShowEditDisplayNameModal(false),
1516
+ initialDisplayName: displayName,
1517
+ initialLastName: lastName,
1518
+ theme: normalizedTheme,
1519
+ onSave: handleModalSave
1520
+ }), /*#__PURE__*/_jsx(EditUsernameModal, {
1521
+ visible: showEditUsernameModal,
1522
+ onClose: () => setShowEditUsernameModal(false),
1523
+ initialValue: username,
1524
+ theme: normalizedTheme,
1525
+ onSave: handleModalSave
1526
+ }), /*#__PURE__*/_jsx(EditEmailModal, {
1527
+ visible: showEditEmailModal,
1528
+ onClose: () => setShowEditEmailModal(false),
1529
+ initialValue: email,
1530
+ theme: normalizedTheme,
1531
+ onSave: handleModalSave
1532
+ }), /*#__PURE__*/_jsx(EditBioModal, {
1533
+ visible: showEditBioModal,
1534
+ onClose: () => setShowEditBioModal(false),
1535
+ initialValue: bio,
1536
+ theme: normalizedTheme,
1537
+ onSave: handleModalSave
1538
+ }), /*#__PURE__*/_jsx(EditLocationModal, {
1539
+ visible: showEditLocationModal,
1540
+ onClose: () => setShowEditLocationModal(false),
1541
+ initialLocations: locations,
1542
+ theme: normalizedTheme,
1543
+ onSave: handleModalSave
1544
+ }), /*#__PURE__*/_jsx(EditLinksModal, {
1545
+ visible: showEditLinksModal,
1546
+ onClose: () => setShowEditLinksModal(false),
1547
+ initialLinks: linksMetadata,
1548
+ theme: normalizedTheme,
1549
+ onSave: handleModalSave
1550
+ })]
1551
+ });
1552
+ };
1553
+ const styles = StyleSheet.create({
1554
+ container: {
1555
+ flexShrink: 1,
1556
+ width: '100%'
1557
+ },
1558
+ content: {
1559
+ flexShrink: 1
1560
+ },
1561
+ scrollView: {
1562
+ flexShrink: 1
1563
+ },
1564
+ contentEditing: {
1565
+ flex: 1,
1566
+ padding: 0
1567
+ },
1568
+ scrollContent: createScreenContentStyle(HEADER_PADDING_TOP_SETTINGS),
1569
+ headerContainer: {
1570
+ width: '100%',
1571
+ maxWidth: 420,
1572
+ alignSelf: 'center',
1573
+ marginBottom: SECTION_GAP_LARGE
1574
+ },
1575
+ headerSection: {
1576
+ alignItems: 'flex-start',
1577
+ width: '100%',
1578
+ gap: COMPONENT_GAP
1579
+ },
1580
+ modernTitle: {
1581
+ fontFamily: fontFamilies.phuduBold,
1582
+ fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
1583
+ fontSize: 42,
1584
+ lineHeight: 50.4,
1585
+ // 42 * 1.2
1586
+ textAlign: 'left',
1587
+ letterSpacing: -0.5
1588
+ },
1589
+ modernSubtitle: {
1590
+ fontSize: 18,
1591
+ lineHeight: 24,
1592
+ textAlign: 'left',
1593
+ maxWidth: 320,
1594
+ alignSelf: 'flex-start',
1595
+ opacity: 0.8
1596
+ },
1597
+ section: {
1598
+ marginBottom: SECTION_GAP_LARGE
1599
+ },
1600
+ sectionTitle: {
1601
+ fontSize: 13,
1602
+ fontWeight: '600',
1603
+ color: '#8E8E93',
1604
+ marginBottom: 8,
1605
+ marginTop: 4,
1606
+ textTransform: 'uppercase',
1607
+ letterSpacing: 0.5,
1608
+ fontFamily: fontFamilies.phuduSemiBold
1609
+ },
1610
+ groupedSectionWrapper: {
1611
+ backgroundColor: 'transparent'
1612
+ },
1613
+ userIcon: {
1614
+ marginRight: 12
1615
+ },
1616
+ // Editing-only mode styles
1617
+ editingOnlyContainer: {
1618
+ flex: 1
1619
+ },
1620
+ editingFieldContainer: {
1621
+ backgroundColor: '#fff',
1622
+ padding: 16,
1623
+ flex: 1
1624
+ },
1625
+ editingFieldHeader: {
1626
+ marginBottom: 8,
1627
+ flexDirection: 'row',
1628
+ alignItems: 'center'
1629
+ },
1630
+ editingFieldTitleContainer: {
1631
+ flexDirection: 'row',
1632
+ alignItems: 'center'
1633
+ },
1634
+ editingFieldIcon: {
1635
+ marginRight: 12
1636
+ },
1637
+ editingFieldTitle: {
1638
+ fontSize: 20,
1639
+ fontWeight: '600',
1640
+ color: '#000'
1641
+ },
1642
+ editingFieldContent: {
1643
+ flex: 1
1644
+ },
1645
+ newValueSection: {
1646
+ flex: 1
1647
+ },
1648
+ editingFieldLabel: {
1649
+ fontSize: 13,
1650
+ fontWeight: '600',
1651
+ marginBottom: 8,
1652
+ fontFamily: fontFamilies.phuduSemiBold,
1653
+ textTransform: 'uppercase',
1654
+ letterSpacing: 0.5
1655
+ },
1656
+ editingFieldInput: {
1657
+ borderWidth: StyleSheet.hairlineWidth,
1658
+ borderRadius: 14,
1659
+ padding: 16,
1660
+ fontSize: 17,
1661
+ minHeight: 52,
1662
+ fontWeight: '400',
1663
+ letterSpacing: -0.2
1664
+ },
1665
+ editingFieldDescription: {
1666
+ fontSize: 14,
1667
+ color: '#666',
1668
+ marginBottom: 16
1669
+ },
1670
+ primaryButton: {
1671
+ flexDirection: 'row',
1672
+ alignItems: 'center',
1673
+ justifyContent: 'center',
1674
+ gap: 8,
1675
+ // backgroundColor should be applied inline using colors.iconSecurity
1676
+ paddingVertical: 12,
1677
+ paddingHorizontal: 16,
1678
+ borderRadius: 10
1679
+ },
1680
+ primaryButtonText: {
1681
+ color: '#fff',
1682
+ fontSize: 16,
1683
+ fontWeight: '600'
1684
+ },
1685
+ editingFieldTextArea: {
1686
+ borderWidth: StyleSheet.hairlineWidth,
1687
+ borderRadius: 14,
1688
+ padding: 16,
1689
+ fontSize: 17,
1690
+ minHeight: 120,
1691
+ textAlignVertical: 'top',
1692
+ fontWeight: '400',
1693
+ letterSpacing: -0.2
1694
+ },
1695
+ // Custom editing header styles
1696
+ editingHeader: {
1697
+ paddingTop: Platform.OS === 'ios' ? 50 : 16,
1698
+ paddingBottom: 0,
1699
+ borderBottomWidth: StyleSheet.hairlineWidth
1700
+ },
1701
+ editingHeaderContent: {
1702
+ flexDirection: 'row',
1703
+ alignItems: 'center',
1704
+ paddingHorizontal: 16,
1705
+ minHeight: 44
1706
+ },
1707
+ editingBackButton: {
1708
+ width: 36,
1709
+ height: 36,
1710
+ borderRadius: 20,
1711
+ alignItems: 'center',
1712
+ justifyContent: 'center',
1713
+ marginRight: 12
1714
+ },
1715
+ editingTitleContainer: {
1716
+ flex: 1,
1717
+ flexDirection: 'column',
1718
+ alignItems: 'flex-start',
1719
+ justifyContent: 'flex-end',
1720
+ paddingBottom: 8
1721
+ },
1722
+ editingTitleIcon: {
1723
+ marginBottom: 4,
1724
+ alignSelf: 'flex-start'
1725
+ },
1726
+ editingTitle: {
1727
+ fontSize: 18,
1728
+ fontWeight: '700',
1729
+ fontFamily: fontFamilies.phuduBold,
1730
+ letterSpacing: -0.3,
1731
+ lineHeight: 22,
1732
+ textAlign: 'left',
1733
+ alignSelf: 'flex-start'
1734
+ },
1735
+ editingSaveButton: {
1736
+ paddingHorizontal: 16,
1737
+ paddingVertical: 8,
1738
+ borderRadius: 20,
1739
+ minWidth: 60,
1740
+ alignItems: 'center',
1741
+ justifyContent: 'center'
1742
+ },
1743
+ editingSaveButtonText: {
1744
+ fontSize: 16,
1745
+ fontWeight: '600',
1746
+ fontFamily: fontFamilies.phuduSemiBold
1747
+ },
1748
+ editingHeaderBottom: {
1749
+ flexDirection: 'column',
1750
+ alignItems: 'flex-start',
1751
+ paddingHorizontal: 20,
1752
+ paddingBottom: 20,
1753
+ paddingTop: 24
1754
+ },
1755
+ editingIconContainer: {
1756
+ width: 64,
1757
+ height: 64,
1758
+ borderRadius: 20,
1759
+ alignItems: 'center',
1760
+ justifyContent: 'center',
1761
+ marginBottom: 16
1762
+ },
1763
+ editingBottomTitle: {
1764
+ fontSize: 28,
1765
+ fontWeight: '700',
1766
+ fontFamily: fontFamilies.phuduBold,
1767
+ letterSpacing: -0.5,
1768
+ lineHeight: 34,
1769
+ textAlign: 'left',
1770
+ alignSelf: 'flex-start'
1771
+ },
1772
+ // Links management styles
1773
+ addLinkSection: {
1774
+ marginBottom: 16,
1775
+ padding: 12,
1776
+ backgroundColor: '#F8F9FA',
1777
+ borderRadius: 8,
1778
+ borderWidth: 1,
1779
+ borderColor: '#E9ECEF'
1780
+ },
1781
+ addLinkLabel: {
1782
+ fontSize: 14,
1783
+ fontWeight: '600',
1784
+ color: '#333',
1785
+ marginBottom: 8
1786
+ },
1787
+ addLinkInputContainer: {
1788
+ gap: 8
1789
+ },
1790
+ addLinkInput: {
1791
+ backgroundColor: '#fff',
1792
+ borderWidth: 1,
1793
+ borderColor: '#E9ECEF',
1794
+ borderRadius: 6,
1795
+ padding: 10,
1796
+ fontSize: 14,
1797
+ minHeight: 36
1798
+ },
1799
+ addLinkButtons: {
1800
+ flexDirection: 'row',
1801
+ gap: 6
1802
+ },
1803
+ addLinkButton: {
1804
+ flex: 1,
1805
+ paddingVertical: 8,
1806
+ paddingHorizontal: 12,
1807
+ borderRadius: 6,
1808
+ alignItems: 'center',
1809
+ justifyContent: 'center'
1810
+ },
1811
+ cancelButton: {
1812
+ backgroundColor: '#F8F9FA',
1813
+ borderWidth: 1,
1814
+ borderColor: '#E9ECEF'
1815
+ },
1816
+ cancelButtonText: {
1817
+ fontSize: 14,
1818
+ fontWeight: '600',
1819
+ color: '#6C757D'
1820
+ },
1821
+ addButton: {
1822
+ // backgroundColor should be applied inline using colors.iconSecurity
1823
+ },
1824
+ addButtonText: {
1825
+ fontSize: 14,
1826
+ fontWeight: '600',
1827
+ color: '#fff'
1828
+ },
1829
+ addLinkTrigger: {
1830
+ flexDirection: 'row',
1831
+ alignItems: 'center',
1832
+ padding: 12,
1833
+ backgroundColor: '#F8F9FA',
1834
+ borderRadius: 8,
1835
+ borderWidth: 1,
1836
+ borderColor: '#E9ECEF',
1837
+ borderStyle: 'dashed',
1838
+ marginBottom: 16
1839
+ },
1840
+ addLinkTriggerText: {
1841
+ fontSize: 14,
1842
+ fontWeight: '600',
1843
+ // color should be applied inline using colors.iconSecurity
1844
+ marginLeft: 6
1845
+ },
1846
+ linksList: {
1847
+ gap: 8
1848
+ },
1849
+ linksListTitle: {
1850
+ fontSize: 16,
1851
+ fontWeight: '700',
1852
+ color: '#333',
1853
+ marginBottom: 6
1854
+ },
1855
+ linkItem: {
1856
+ backgroundColor: '#fff',
1857
+ borderRadius: 8,
1858
+ borderWidth: 1,
1859
+ borderColor: '#E9ECEF',
1860
+ overflow: 'hidden'
1861
+ },
1862
+ linkItemContent: {
1863
+ flexDirection: 'row',
1864
+ padding: 12,
1865
+ alignItems: 'center'
1866
+ },
1867
+ linkItemDragHandle: {
1868
+ width: 24,
1869
+ height: 24,
1870
+ alignItems: 'center',
1871
+ justifyContent: 'center',
1872
+ marginRight: 8
1873
+ },
1874
+ linkItemInfo: {
1875
+ flex: 1,
1876
+ marginRight: 8
1877
+ },
1878
+ linkItemTitle: {
1879
+ fontSize: 14,
1880
+ fontWeight: '600',
1881
+ color: '#333',
1882
+ marginBottom: 2
1883
+ },
1884
+ linkItemDescription: {
1885
+ fontSize: 12,
1886
+ color: '#666',
1887
+ marginBottom: 2
1888
+ },
1889
+ linkItemUrl: {
1890
+ fontSize: 12,
1891
+ color: '#6C757D'
1892
+ },
1893
+ linkItemActions: {
1894
+ flexDirection: 'row',
1895
+ gap: 6
1896
+ },
1897
+ linkItemButton: {
1898
+ width: 28,
1899
+ height: 28,
1900
+ borderRadius: 14,
1901
+ backgroundColor: '#F8F9FA',
1902
+ alignItems: 'center',
1903
+ justifyContent: 'center'
1904
+ },
1905
+ linkItemDivider: {
1906
+ height: 1,
1907
+ backgroundColor: '#E9ECEF',
1908
+ marginHorizontal: 12
1909
+ },
1910
+ reorderHint: {
1911
+ padding: 8,
1912
+ alignItems: 'center'
1913
+ },
1914
+ reorderHintText: {
1915
+ fontSize: 12,
1916
+ color: '#999',
1917
+ fontStyle: 'italic'
1918
+ },
1919
+ reorderButtons: {
1920
+ flexDirection: 'column',
1921
+ gap: 2
1922
+ },
1923
+ reorderButton: {
1924
+ width: 20,
1925
+ height: 16,
1926
+ borderRadius: 3,
1927
+ backgroundColor: '#F8F9FA',
1928
+ alignItems: 'center',
1929
+ justifyContent: 'center',
1930
+ borderWidth: 1,
1931
+ borderColor: '#E9ECEF'
1932
+ },
1933
+ reorderButtonDisabled: {
1934
+ opacity: 0.3
1935
+ },
1936
+ linkItemImage: {
1937
+ width: 32,
1938
+ height: 32,
1939
+ borderRadius: 16,
1940
+ // backgroundColor should be applied inline using colors.iconSecurity
1941
+ alignItems: 'center',
1942
+ justifyContent: 'center',
1943
+ marginRight: 8
1944
+ },
1945
+ linkItemImageText: {
1946
+ fontSize: 12,
1947
+ fontWeight: '600',
1948
+ color: '#fff'
1949
+ },
1950
+ fetchingText: {
1951
+ fontSize: 12,
1952
+ // color should be applied inline using colors.iconSecurity
1953
+ fontStyle: 'italic'
1954
+ },
1955
+ linksFieldContent: {
1956
+ flex: 1,
1957
+ marginLeft: 12
1958
+ },
1959
+ linksPreview: {
1960
+ marginTop: 4,
1961
+ flexDirection: 'column'
1962
+ },
1963
+ linksPreviewContainer: {
1964
+ marginTop: 4,
1965
+ flexDirection: 'column',
1966
+ width: '100%'
1967
+ },
1968
+ linkPreviewItem: {
1969
+ flexDirection: 'row',
1970
+ alignItems: 'center',
1971
+ marginBottom: 4
1972
+ },
1973
+ linkPreviewImage: {
1974
+ width: 20,
1975
+ height: 20,
1976
+ borderRadius: 10,
1977
+ // backgroundColor should be applied inline using colors.iconSecurity
1978
+ alignItems: 'center',
1979
+ justifyContent: 'center',
1980
+ marginRight: 6
1981
+ },
1982
+ linkPreviewImageText: {
1983
+ fontSize: 10,
1984
+ fontWeight: '600',
1985
+ color: '#fff'
1986
+ },
1987
+ linkPreviewTitle: {
1988
+ fontSize: 13,
1989
+ color: '#666',
1990
+ flex: 1
1991
+ },
1992
+ linkPreviewContent: {
1993
+ flex: 1
1994
+ },
1995
+ linkPreviewSubtitle: {
1996
+ fontSize: 11,
1997
+ color: '#999',
1998
+ marginTop: 1
1999
+ },
2000
+ linkPreviewMore: {
2001
+ fontSize: 12,
2002
+ color: '#999',
2003
+ fontStyle: 'italic'
2004
+ },
2005
+ // Location management styles
2006
+ addLocationSection: {
2007
+ marginBottom: 16
2008
+ },
2009
+ addLocationLabel: {
2010
+ fontSize: 14,
2011
+ fontWeight: '600',
2012
+ color: '#333',
2013
+ marginBottom: 8,
2014
+ fontFamily: fontFamilies.phuduSemiBold
2015
+ },
2016
+ searchingText: {
2017
+ fontSize: 12,
2018
+ // color should be applied inline using colors.iconSecurity
2019
+ fontStyle: 'italic'
2020
+ },
2021
+ addLocationInputContainer: {
2022
+ marginBottom: 8
2023
+ },
2024
+ addLocationInput: {
2025
+ backgroundColor: '#fff',
2026
+ borderWidth: 2,
2027
+ borderColor: '#e0e0e0',
2028
+ borderRadius: 12,
2029
+ padding: 16,
2030
+ fontSize: 17,
2031
+ minHeight: 52,
2032
+ fontWeight: '400',
2033
+ marginBottom: 8
2034
+ },
2035
+ addLocationButtons: {
2036
+ flexDirection: 'row',
2037
+ gap: 8
2038
+ },
2039
+ addLocationButton: {
2040
+ flex: 1,
2041
+ paddingVertical: 12,
2042
+ paddingHorizontal: 16,
2043
+ borderRadius: 8,
2044
+ alignItems: 'center',
2045
+ justifyContent: 'center'
2046
+ },
2047
+ addLocationTrigger: {
2048
+ flexDirection: 'row',
2049
+ alignItems: 'center',
2050
+ paddingVertical: 12,
2051
+ paddingHorizontal: 16,
2052
+ backgroundColor: '#F8F9FA',
2053
+ borderRadius: 8,
2054
+ marginBottom: 16
2055
+ },
2056
+ addLocationTriggerText: {
2057
+ marginLeft: 8,
2058
+ fontSize: 16,
2059
+ // color should be applied inline using colors.iconSecurity
2060
+ fontWeight: '500'
2061
+ },
2062
+ searchResults: {
2063
+ backgroundColor: '#fff',
2064
+ borderWidth: 1,
2065
+ borderColor: '#e0e0e0',
2066
+ borderRadius: 8,
2067
+ maxHeight: 200
2068
+ },
2069
+ searchResultItem: {
2070
+ padding: 12,
2071
+ borderBottomWidth: 1,
2072
+ borderBottomColor: '#f0f0f0'
2073
+ },
2074
+ searchResultName: {
2075
+ fontSize: 14,
2076
+ fontWeight: '500',
2077
+ color: '#333',
2078
+ marginBottom: 2
2079
+ },
2080
+ searchResultType: {
2081
+ fontSize: 12,
2082
+ color: '#666',
2083
+ textTransform: 'capitalize'
2084
+ },
2085
+ locationsList: {
2086
+ marginTop: 8
2087
+ },
2088
+ locationsListTitle: {
2089
+ fontSize: 14,
2090
+ fontWeight: '600',
2091
+ color: '#333',
2092
+ marginBottom: 12,
2093
+ fontFamily: fontFamilies.phuduSemiBold
2094
+ },
2095
+ locationItem: {
2096
+ marginBottom: 8
2097
+ },
2098
+ locationItemContent: {
2099
+ flexDirection: 'row',
2100
+ alignItems: 'center',
2101
+ padding: 12,
2102
+ backgroundColor: '#F8F9FA',
2103
+ borderRadius: 8
2104
+ },
2105
+ locationItemDragHandle: {
2106
+ marginRight: 12
2107
+ },
2108
+ locationItemInfo: {
2109
+ flex: 1
2110
+ },
2111
+ locationItemHeader: {
2112
+ flexDirection: 'row',
2113
+ alignItems: 'center',
2114
+ marginBottom: 4
2115
+ },
2116
+ locationItemName: {
2117
+ fontSize: 14,
2118
+ fontWeight: '500',
2119
+ color: '#333',
2120
+ flex: 1
2121
+ },
2122
+ locationLabel: {
2123
+ // backgroundColor should be applied inline using colors.iconSecurity
2124
+ paddingHorizontal: 6,
2125
+ paddingVertical: 2,
2126
+ borderRadius: 4,
2127
+ marginLeft: 8
2128
+ },
2129
+ locationLabelText: {
2130
+ fontSize: 10,
2131
+ fontWeight: '600',
2132
+ color: '#fff',
2133
+ textTransform: 'uppercase'
2134
+ },
2135
+ locationCoordinates: {
2136
+ fontSize: 12,
2137
+ color: '#666',
2138
+ fontFamily: 'monospace'
2139
+ },
2140
+ locationItemActions: {
2141
+ marginLeft: 8
2142
+ },
2143
+ locationItemButton: {
2144
+ width: 28,
2145
+ height: 28,
2146
+ borderRadius: 14,
2147
+ backgroundColor: '#F8F9FA',
2148
+ alignItems: 'center',
2149
+ justifyContent: 'center'
2150
+ },
2151
+ locationItemDivider: {
2152
+ height: 1,
2153
+ backgroundColor: '#E9ECEF',
2154
+ marginHorizontal: 12
2155
+ }
2156
+ });
2157
+ export default /*#__PURE__*/React.memo(AccountSettingsScreen);
2158
+ //# sourceMappingURL=AccountSettingsScreen.js.map