@oxyhq/services 6.9.45 → 6.10.1

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 (916) hide show
  1. package/lib/commonjs/index.js +36 -13
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/client.js +0 -20
  4. package/lib/commonjs/ui/client.js.map +1 -1
  5. package/lib/commonjs/ui/components/ActingAsBanner.js +0 -4
  6. package/lib/commonjs/ui/components/ActingAsBanner.js.map +1 -1
  7. package/lib/commonjs/ui/components/ActivityIndicator.js +1 -1
  8. package/lib/commonjs/ui/components/ActivityIndicator.js.map +1 -1
  9. package/lib/commonjs/ui/components/Avatar.js +0 -2
  10. package/lib/commonjs/ui/components/Avatar.js.map +1 -1
  11. package/lib/commonjs/ui/components/BottomSheet.js +33 -398
  12. package/lib/commonjs/ui/components/BottomSheet.js.map +1 -1
  13. package/lib/commonjs/ui/components/BottomSheetRouter.js +8 -0
  14. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  15. package/lib/commonjs/ui/components/FollowButton.js +3 -5
  16. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  17. package/lib/commonjs/ui/components/Header.js +0 -5
  18. package/lib/commonjs/ui/components/Header.js.map +1 -1
  19. package/lib/commonjs/ui/components/Icon.js +6 -7
  20. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  21. package/lib/commonjs/ui/components/IconButton/IconButton.js +1 -5
  22. package/lib/commonjs/ui/components/IconButton/IconButton.js.map +1 -1
  23. package/lib/commonjs/ui/components/OxyPayButton.js +0 -2
  24. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  25. package/lib/commonjs/ui/components/OxyProvider.js +102 -38
  26. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  27. package/lib/commonjs/ui/components/OxySignInButton.js +23 -9
  28. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  29. package/lib/commonjs/ui/components/ProfileCard.js +11 -8
  30. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  31. package/lib/commonjs/ui/components/QuickActions.js +2 -2
  32. package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
  33. package/lib/commonjs/ui/components/SignInModal.js +37 -13
  34. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  35. package/lib/commonjs/ui/components/StepBasedScreen.js +0 -2
  36. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
  37. package/lib/commonjs/ui/components/TextField.js +0 -1
  38. package/lib/commonjs/ui/components/TextField.js.map +1 -1
  39. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js +1 -1
  40. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -1
  41. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -2
  42. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -1
  43. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +0 -2
  44. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +1 -1
  45. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +80 -76
  46. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  47. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +30 -23
  48. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  49. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +18 -23
  50. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  51. package/lib/commonjs/ui/components/fileManagement/styles.js +213 -25
  52. package/lib/commonjs/ui/components/fileManagement/styles.js.map +1 -1
  53. package/lib/commonjs/ui/components/index.js +0 -35
  54. package/lib/commonjs/ui/components/index.js.map +1 -1
  55. package/lib/commonjs/ui/components/logo/LogoIcon.js +63 -0
  56. package/lib/commonjs/ui/components/logo/LogoIcon.js.map +1 -0
  57. package/lib/commonjs/ui/components/logo/LogoText.js +50 -0
  58. package/lib/commonjs/ui/components/logo/LogoText.js.map +1 -0
  59. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +54 -88
  60. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  61. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +28 -15
  62. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  63. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +50 -28
  64. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  65. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +83 -48
  66. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  67. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +12 -11
  68. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  69. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +38 -23
  70. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  71. package/lib/commonjs/ui/components/payment/paymentStyles.js +2 -10
  72. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -1
  73. package/lib/commonjs/ui/components/styles/overlay.js +7 -9
  74. package/lib/commonjs/ui/components/styles/overlay.js.map +1 -1
  75. package/lib/commonjs/ui/components/theming.js +0 -1
  76. package/lib/commonjs/ui/components/theming.js.map +1 -1
  77. package/lib/commonjs/ui/context/OxyContext.js +34 -21
  78. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  79. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +1 -2
  80. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  81. package/lib/commonjs/ui/hooks/index.js +32 -12
  82. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  83. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +10 -5
  84. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
  85. package/lib/commonjs/ui/hooks/mutations/mutationKeys.js +34 -0
  86. package/lib/commonjs/ui/hooks/mutations/mutationKeys.js.map +1 -0
  87. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +235 -57
  88. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  89. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +17 -13
  90. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  91. package/lib/commonjs/ui/hooks/queries/index.js +6 -0
  92. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -1
  93. package/lib/commonjs/ui/hooks/queries/queryKeys.js +2 -1
  94. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  95. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +80 -3
  96. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  97. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +36 -1
  98. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  99. package/lib/commonjs/ui/hooks/queryClient.js +168 -70
  100. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  101. package/lib/commonjs/ui/hooks/useAsyncAction.js +7 -7
  102. package/lib/commonjs/ui/hooks/useAsyncAction.js.map +1 -1
  103. package/lib/commonjs/ui/hooks/useAuth.js +0 -8
  104. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  105. package/lib/commonjs/ui/hooks/useAvatarPicker.js +71 -20
  106. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  107. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +12 -41
  108. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -1
  109. package/lib/commonjs/ui/hooks/useMutationStatus.js +86 -0
  110. package/lib/commonjs/ui/hooks/useMutationStatus.js.map +1 -0
  111. package/lib/commonjs/ui/hooks/useOnlineStatus.js +33 -0
  112. package/lib/commonjs/ui/hooks/useOnlineStatus.js.map +1 -0
  113. package/lib/commonjs/ui/hooks/useSessionSocket.js +101 -130
  114. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  115. package/lib/commonjs/ui/hooks/useSettingToggle.js +4 -4
  116. package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -1
  117. package/lib/commonjs/ui/index.js +1 -11
  118. package/lib/commonjs/ui/index.js.map +1 -1
  119. package/lib/commonjs/ui/navigation/routes.js +55 -3
  120. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  121. package/lib/commonjs/ui/screens/AccountCenterScreen.js +17 -19
  122. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  123. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +131 -162
  124. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +110 -87
  126. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +268 -216
  128. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +23 -23
  130. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/AppInfoScreen.js +22 -23
  132. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/AvatarCropScreen.js +939 -0
  134. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -0
  135. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +13 -20
  136. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  137. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +10 -13
  138. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  139. package/lib/commonjs/ui/screens/FAQScreen.js +4 -4
  140. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/FeedbackScreen.js +74 -66
  142. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/FileManagementScreen.js +822 -195
  144. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/HelpSupportScreen.js +8 -9
  146. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  147. package/lib/commonjs/ui/screens/HistoryViewScreen.js +58 -50
  148. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +18 -13
  150. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  151. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +63 -57
  152. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  153. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +14 -11
  154. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  155. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +75 -73
  156. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  157. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +185 -205
  158. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  159. package/lib/commonjs/ui/screens/ProfileScreen.js +4 -3
  160. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  161. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +23 -25
  162. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  163. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +16 -17
  164. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  165. package/lib/commonjs/ui/screens/SessionManagementScreen.js +83 -60
  166. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  167. package/lib/commonjs/ui/screens/UserLinksScreen.js +14 -31
  168. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  169. package/lib/commonjs/ui/screens/UserListScreen.js +39 -22
  170. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  171. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +128 -73
  172. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  173. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +0 -3
  174. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  175. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +6 -10
  176. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  177. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +4 -6
  178. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  179. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +6 -6
  180. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  181. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +13 -19
  182. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  183. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +5 -5
  184. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  185. package/lib/commonjs/ui/server.js +0 -5
  186. package/lib/commonjs/ui/server.js.map +1 -1
  187. package/lib/commonjs/ui/styles/authStyles.js +0 -5
  188. package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
  189. package/lib/commonjs/ui/styles/index.js +0 -11
  190. package/lib/commonjs/ui/styles/index.js.map +1 -1
  191. package/lib/commonjs/ui/styles/spacing.js +1 -42
  192. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  193. package/lib/commonjs/ui/styles/theme.js +0 -4
  194. package/lib/commonjs/ui/styles/theme.js.map +1 -1
  195. package/lib/commonjs/ui/utils/fileManagement.js +58 -39
  196. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  197. package/lib/commonjs/ui/utils/sessionHelpers.js +3 -1
  198. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  199. package/lib/commonjs/ui/utils/userUtils.js +33 -16
  200. package/lib/commonjs/ui/utils/userUtils.js.map +1 -1
  201. package/lib/module/index.js +9 -5
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/ui/client.js +0 -6
  204. package/lib/module/ui/client.js.map +1 -1
  205. package/lib/module/ui/components/ActingAsBanner.js +0 -4
  206. package/lib/module/ui/components/ActingAsBanner.js.map +1 -1
  207. package/lib/module/ui/components/ActivityIndicator.js +1 -1
  208. package/lib/module/ui/components/ActivityIndicator.js.map +1 -1
  209. package/lib/module/ui/components/Avatar.js +0 -2
  210. package/lib/module/ui/components/Avatar.js.map +1 -1
  211. package/lib/module/ui/components/BottomSheet.js +35 -400
  212. package/lib/module/ui/components/BottomSheet.js.map +1 -1
  213. package/lib/module/ui/components/BottomSheetRouter.js +9 -1
  214. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  215. package/lib/module/ui/components/FollowButton.js +2 -4
  216. package/lib/module/ui/components/FollowButton.js.map +1 -1
  217. package/lib/module/ui/components/Header.js +0 -5
  218. package/lib/module/ui/components/Header.js.map +1 -1
  219. package/lib/module/ui/components/Icon.js +6 -7
  220. package/lib/module/ui/components/Icon.js.map +1 -1
  221. package/lib/module/ui/components/IconButton/IconButton.js +1 -5
  222. package/lib/module/ui/components/IconButton/IconButton.js.map +1 -1
  223. package/lib/module/ui/components/OxyPayButton.js +0 -2
  224. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  225. package/lib/module/ui/components/OxyProvider.js +105 -41
  226. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  227. package/lib/module/ui/components/OxySignInButton.js +23 -9
  228. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  229. package/lib/module/ui/components/ProfileCard.js +11 -8
  230. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  231. package/lib/module/ui/components/QuickActions.js +2 -2
  232. package/lib/module/ui/components/QuickActions.js.map +1 -1
  233. package/lib/module/ui/components/SignInModal.js +37 -13
  234. package/lib/module/ui/components/SignInModal.js.map +1 -1
  235. package/lib/module/ui/components/StepBasedScreen.js +0 -2
  236. package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
  237. package/lib/module/ui/components/TextField.js +0 -1
  238. package/lib/module/ui/components/TextField.js.map +1 -1
  239. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js +1 -1
  240. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -1
  241. package/lib/module/ui/components/feedback/feedbackStyles.js +0 -2
  242. package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -1
  243. package/lib/module/ui/components/fileManagement/AnimatedButton.js +0 -1
  244. package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +1 -1
  245. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +80 -75
  246. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  247. package/lib/module/ui/components/fileManagement/FileViewer.js +30 -22
  248. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  249. package/lib/module/ui/components/fileManagement/UploadPreview.js +18 -22
  250. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  251. package/lib/module/ui/components/fileManagement/styles.js +212 -24
  252. package/lib/module/ui/components/fileManagement/styles.js.map +1 -1
  253. package/lib/module/ui/components/index.js +0 -5
  254. package/lib/module/ui/components/index.js.map +1 -1
  255. package/lib/module/ui/components/logo/LogoIcon.js +56 -0
  256. package/lib/module/ui/components/logo/LogoIcon.js.map +1 -0
  257. package/lib/module/ui/components/logo/LogoText.js +43 -0
  258. package/lib/module/ui/components/logo/LogoText.js.map +1 -0
  259. package/lib/module/ui/components/modals/DeleteAccountModal.js +55 -88
  260. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  261. package/lib/module/ui/components/payment/PaymentDetailsStep.js +27 -14
  262. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  263. package/lib/module/ui/components/payment/PaymentMethodStep.js +49 -26
  264. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  265. package/lib/module/ui/components/payment/PaymentReviewStep.js +84 -48
  266. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  267. package/lib/module/ui/components/payment/PaymentSuccessStep.js +12 -10
  268. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  269. package/lib/module/ui/components/payment/PaymentSummaryStep.js +38 -22
  270. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  271. package/lib/module/ui/components/payment/paymentStyles.js +2 -10
  272. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -1
  273. package/lib/module/ui/components/styles/overlay.js +8 -8
  274. package/lib/module/ui/components/styles/overlay.js.map +1 -1
  275. package/lib/module/ui/components/theming.js +0 -1
  276. package/lib/module/ui/components/theming.js.map +1 -1
  277. package/lib/module/ui/context/OxyContext.js +32 -19
  278. package/lib/module/ui/context/OxyContext.js.map +1 -1
  279. package/lib/module/ui/context/hooks/useAuthOperations.js +1 -2
  280. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  281. package/lib/module/ui/hooks/index.js +5 -3
  282. package/lib/module/ui/hooks/index.js.map +1 -1
  283. package/lib/module/ui/hooks/mutations/mutationFactory.js +6 -1
  284. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  285. package/lib/module/ui/hooks/mutations/mutationKeys.js +30 -0
  286. package/lib/module/ui/hooks/mutations/mutationKeys.js.map +1 -0
  287. package/lib/module/ui/hooks/mutations/useAccountMutations.js +231 -52
  288. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  289. package/lib/module/ui/hooks/mutations/useServicesMutations.js +9 -5
  290. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  291. package/lib/module/ui/hooks/queries/index.js +1 -1
  292. package/lib/module/ui/hooks/queries/index.js.map +1 -1
  293. package/lib/module/ui/hooks/queries/queryKeys.js +2 -1
  294. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  295. package/lib/module/ui/hooks/queries/useAccountQueries.js +80 -3
  296. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  297. package/lib/module/ui/hooks/queries/useSecurityQueries.js +35 -1
  298. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  299. package/lib/module/ui/hooks/queryClient.js +166 -68
  300. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  301. package/lib/module/ui/hooks/useAsyncAction.js +3 -3
  302. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -1
  303. package/lib/module/ui/hooks/useAuth.js +0 -3
  304. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  305. package/lib/module/ui/hooks/useAvatarPicker.js +73 -22
  306. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  307. package/lib/module/ui/hooks/useFileDownloadUrl.js +11 -39
  308. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -1
  309. package/lib/module/ui/hooks/useMutationStatus.js +82 -0
  310. package/lib/module/ui/hooks/useMutationStatus.js.map +1 -0
  311. package/lib/module/ui/hooks/useOnlineStatus.js +29 -0
  312. package/lib/module/ui/hooks/useOnlineStatus.js.map +1 -0
  313. package/lib/module/ui/hooks/useSessionSocket.js +101 -130
  314. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  315. package/lib/module/ui/hooks/useSettingToggle.js +1 -1
  316. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -1
  317. package/lib/module/ui/index.js +1 -10
  318. package/lib/module/ui/index.js.map +1 -1
  319. package/lib/module/ui/navigation/routes.js +54 -2
  320. package/lib/module/ui/navigation/routes.js.map +1 -1
  321. package/lib/module/ui/screens/AccountCenterScreen.js +16 -17
  322. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  323. package/lib/module/ui/screens/AccountOverviewScreen.js +117 -148
  324. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  325. package/lib/module/ui/screens/AccountSettingsScreen.js +109 -86
  326. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  327. package/lib/module/ui/screens/AccountSwitcherScreen.js +254 -201
  328. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  329. package/lib/module/ui/screens/AccountVerificationScreen.js +21 -21
  330. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  331. package/lib/module/ui/screens/AppInfoScreen.js +14 -15
  332. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  333. package/lib/module/ui/screens/AvatarCropScreen.js +936 -0
  334. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -0
  335. package/lib/module/ui/screens/CreateManagedAccountScreen.js +11 -18
  336. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  337. package/lib/module/ui/screens/EditProfileFieldScreen.js +8 -11
  338. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  339. package/lib/module/ui/screens/FAQScreen.js +3 -3
  340. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  341. package/lib/module/ui/screens/FeedbackScreen.js +62 -54
  342. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  343. package/lib/module/ui/screens/FileManagementScreen.js +789 -161
  344. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  345. package/lib/module/ui/screens/HelpSupportScreen.js +2 -3
  346. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  347. package/lib/module/ui/screens/HistoryViewScreen.js +56 -47
  348. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  349. package/lib/module/ui/screens/LanguageSelectorScreen.js +17 -12
  350. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  351. package/lib/module/ui/screens/LegalDocumentsScreen.js +62 -56
  352. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  353. package/lib/module/ui/screens/PaymentGatewayScreen.js +14 -11
  354. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  355. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +60 -57
  356. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  357. package/lib/module/ui/screens/PrivacySettingsScreen.js +182 -202
  358. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  359. package/lib/module/ui/screens/ProfileScreen.js +4 -3
  360. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  361. package/lib/module/ui/screens/SavesCollectionsScreen.js +23 -25
  362. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  363. package/lib/module/ui/screens/SearchSettingsScreen.js +17 -18
  364. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  365. package/lib/module/ui/screens/SessionManagementScreen.js +75 -52
  366. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  367. package/lib/module/ui/screens/UserLinksScreen.js +16 -33
  368. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  369. package/lib/module/ui/screens/UserListScreen.js +40 -23
  370. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  371. package/lib/module/ui/screens/WelcomeNewUserScreen.js +126 -71
  372. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  373. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +0 -3
  374. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  375. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +6 -10
  376. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  377. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +5 -7
  378. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  379. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +6 -6
  380. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  381. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +13 -19
  382. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  383. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +5 -5
  384. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  385. package/lib/module/ui/server.js +0 -4
  386. package/lib/module/ui/server.js.map +1 -1
  387. package/lib/module/ui/styles/authStyles.js +0 -5
  388. package/lib/module/ui/styles/authStyles.js.map +1 -1
  389. package/lib/module/ui/styles/index.js +0 -1
  390. package/lib/module/ui/styles/index.js.map +1 -1
  391. package/lib/module/ui/styles/spacing.js +0 -42
  392. package/lib/module/ui/styles/spacing.js.map +1 -1
  393. package/lib/module/ui/styles/theme.js +0 -4
  394. package/lib/module/ui/styles/theme.js.map +1 -1
  395. package/lib/module/ui/utils/fileManagement.js +54 -36
  396. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  397. package/lib/module/ui/utils/sessionHelpers.js +3 -1
  398. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  399. package/lib/module/ui/utils/userUtils.js +34 -16
  400. package/lib/module/ui/utils/userUtils.js.map +1 -1
  401. package/lib/typescript/commonjs/index.d.ts +7 -3
  402. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  403. package/lib/typescript/commonjs/ui/client.d.ts +0 -2
  404. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/ui/components/ActingAsBanner.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/ui/components/Avatar.d.ts.map +1 -1
  407. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts +27 -27
  408. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +1 -1
  412. package/lib/typescript/commonjs/ui/components/Icon.d.ts +3 -2
  413. package/lib/typescript/commonjs/ui/components/Icon.d.ts.map +1 -1
  414. package/lib/typescript/commonjs/ui/components/IconButton/IconButton.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  418. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts +4 -1
  419. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  421. package/lib/typescript/commonjs/ui/components/StepBasedScreen.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/ui/components/TextField/Addons/Outline.d.ts +2 -2
  423. package/lib/typescript/commonjs/ui/components/TextField/helpers.d.ts +2 -2
  424. package/lib/typescript/commonjs/ui/components/TextField/types.d.ts +0 -1
  425. package/lib/typescript/commonjs/ui/components/TextField/types.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/ui/components/TextField.d.ts +1 -1
  427. package/lib/typescript/commonjs/ui/components/TextField.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -1
  429. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +1 -1
  430. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -1
  431. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +1 -1
  432. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  433. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts +0 -2
  434. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  435. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +3 -2
  436. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  437. package/lib/typescript/commonjs/ui/components/fileManagement/styles.d.ts +200 -17
  438. package/lib/typescript/commonjs/ui/components/fileManagement/styles.d.ts.map +1 -1
  439. package/lib/typescript/commonjs/ui/components/index.d.ts +0 -5
  440. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  441. package/lib/typescript/commonjs/ui/components/logo/LogoIcon.d.ts +22 -0
  442. package/lib/typescript/commonjs/ui/components/logo/LogoIcon.d.ts.map +1 -0
  443. package/lib/typescript/commonjs/ui/components/logo/LogoText.d.ts +22 -0
  444. package/lib/typescript/commonjs/ui/components/logo/LogoText.d.ts.map +1 -0
  445. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  446. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  447. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  449. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  450. package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  451. package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/ui/components/payment/paymentStyles.d.ts +0 -7
  453. package/lib/typescript/commonjs/ui/components/payment/paymentStyles.d.ts.map +1 -1
  454. package/lib/typescript/commonjs/ui/components/styles/overlay.d.ts +3 -1
  455. package/lib/typescript/commonjs/ui/components/styles/overlay.d.ts.map +1 -1
  456. package/lib/typescript/commonjs/ui/components/theming.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/ui/components/types.d.ts.map +1 -1
  458. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  460. package/lib/typescript/commonjs/ui/hooks/index.d.ts +5 -3
  461. package/lib/typescript/commonjs/ui/hooks/index.d.ts.map +1 -1
  462. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +11 -0
  463. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/ui/hooks/mutations/mutationKeys.d.ts +25 -0
  465. package/lib/typescript/commonjs/ui/hooks/mutations/mutationKeys.d.ts.map +1 -0
  466. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +161 -9
  467. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  469. package/lib/typescript/commonjs/ui/hooks/queries/index.d.ts +1 -1
  470. package/lib/typescript/commonjs/ui/hooks/queries/index.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +1 -0
  472. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +22 -8
  474. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  475. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts +13 -3
  476. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  477. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +7 -5
  478. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  479. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts +57 -9
  480. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +1 -1
  482. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +0 -1
  483. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  484. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +10 -2
  485. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  486. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts +2 -6
  487. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  488. package/lib/typescript/commonjs/ui/hooks/useMutationStatus.d.ts +23 -0
  489. package/lib/typescript/commonjs/ui/hooks/useMutationStatus.d.ts.map +1 -0
  490. package/lib/typescript/commonjs/ui/hooks/useOnlineStatus.d.ts +13 -0
  491. package/lib/typescript/commonjs/ui/hooks/useOnlineStatus.d.ts.map +1 -0
  492. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts +1 -2
  493. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +1 -1
  494. package/lib/typescript/commonjs/ui/index.d.ts +1 -4
  495. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  496. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +1 -1
  497. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +48 -2
  499. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  500. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  501. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  502. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  503. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  505. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +49 -0
  507. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -0
  508. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  509. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  510. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  511. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  512. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  513. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  514. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  517. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  518. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  520. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  523. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  524. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  525. package/lib/typescript/commonjs/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  526. package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  527. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  528. package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  530. package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/ui/server.d.ts +0 -2
  532. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  533. package/lib/typescript/commonjs/ui/styles/authStyles.d.ts +0 -4
  534. package/lib/typescript/commonjs/ui/styles/authStyles.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/styles/index.d.ts +0 -1
  536. package/lib/typescript/commonjs/ui/styles/index.d.ts.map +1 -1
  537. package/lib/typescript/commonjs/ui/styles/spacing.d.ts +0 -36
  538. package/lib/typescript/commonjs/ui/styles/spacing.d.ts.map +1 -1
  539. package/lib/typescript/commonjs/ui/styles/theme.d.ts +0 -1
  540. package/lib/typescript/commonjs/ui/styles/theme.d.ts.map +1 -1
  541. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +39 -12
  542. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  543. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts +3 -1
  544. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts.map +1 -1
  545. package/lib/typescript/commonjs/ui/utils/userUtils.d.ts +19 -18
  546. package/lib/typescript/commonjs/ui/utils/userUtils.d.ts.map +1 -1
  547. package/lib/typescript/module/index.d.ts +7 -3
  548. package/lib/typescript/module/index.d.ts.map +1 -1
  549. package/lib/typescript/module/ui/client.d.ts +0 -2
  550. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  551. package/lib/typescript/module/ui/components/ActingAsBanner.d.ts.map +1 -1
  552. package/lib/typescript/module/ui/components/Avatar.d.ts.map +1 -1
  553. package/lib/typescript/module/ui/components/BottomSheet.d.ts +27 -27
  554. package/lib/typescript/module/ui/components/BottomSheet.d.ts.map +1 -1
  555. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  556. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  557. package/lib/typescript/module/ui/components/Header.d.ts.map +1 -1
  558. package/lib/typescript/module/ui/components/Icon.d.ts +3 -2
  559. package/lib/typescript/module/ui/components/Icon.d.ts.map +1 -1
  560. package/lib/typescript/module/ui/components/IconButton/IconButton.d.ts.map +1 -1
  561. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  562. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  563. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  564. package/lib/typescript/module/ui/components/ProfileCard.d.ts +4 -1
  565. package/lib/typescript/module/ui/components/ProfileCard.d.ts.map +1 -1
  566. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  567. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts.map +1 -1
  568. package/lib/typescript/module/ui/components/TextField/Addons/Outline.d.ts +2 -2
  569. package/lib/typescript/module/ui/components/TextField/helpers.d.ts +2 -2
  570. package/lib/typescript/module/ui/components/TextField/types.d.ts +0 -1
  571. package/lib/typescript/module/ui/components/TextField/types.d.ts.map +1 -1
  572. package/lib/typescript/module/ui/components/TextField.d.ts +1 -1
  573. package/lib/typescript/module/ui/components/TextField.d.ts.map +1 -1
  574. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -1
  575. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +1 -1
  576. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -1
  577. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +1 -1
  578. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  579. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts +0 -2
  580. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  581. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +3 -2
  582. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  583. package/lib/typescript/module/ui/components/fileManagement/styles.d.ts +200 -17
  584. package/lib/typescript/module/ui/components/fileManagement/styles.d.ts.map +1 -1
  585. package/lib/typescript/module/ui/components/index.d.ts +0 -5
  586. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  587. package/lib/typescript/module/ui/components/logo/LogoIcon.d.ts +22 -0
  588. package/lib/typescript/module/ui/components/logo/LogoIcon.d.ts.map +1 -0
  589. package/lib/typescript/module/ui/components/logo/LogoText.d.ts +22 -0
  590. package/lib/typescript/module/ui/components/logo/LogoText.d.ts.map +1 -0
  591. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  592. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  593. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  594. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  595. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  596. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  597. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  598. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts +0 -7
  599. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts.map +1 -1
  600. package/lib/typescript/module/ui/components/styles/overlay.d.ts +3 -1
  601. package/lib/typescript/module/ui/components/styles/overlay.d.ts.map +1 -1
  602. package/lib/typescript/module/ui/components/theming.d.ts.map +1 -1
  603. package/lib/typescript/module/ui/components/types.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  605. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  606. package/lib/typescript/module/ui/hooks/index.d.ts +5 -3
  607. package/lib/typescript/module/ui/hooks/index.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +11 -0
  609. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts.map +1 -1
  610. package/lib/typescript/module/ui/hooks/mutations/mutationKeys.d.ts +25 -0
  611. package/lib/typescript/module/ui/hooks/mutations/mutationKeys.d.ts.map +1 -0
  612. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +161 -9
  613. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  614. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  615. package/lib/typescript/module/ui/hooks/queries/index.d.ts +1 -1
  616. package/lib/typescript/module/ui/hooks/queries/index.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +1 -0
  618. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  619. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +22 -8
  620. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  621. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts +13 -3
  622. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  623. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +7 -5
  624. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  625. package/lib/typescript/module/ui/hooks/queryClient.d.ts +57 -9
  626. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  627. package/lib/typescript/module/ui/hooks/useAssets.d.ts +1 -1
  628. package/lib/typescript/module/ui/hooks/useAuth.d.ts +0 -1
  629. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  630. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +10 -2
  631. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts +2 -6
  633. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  634. package/lib/typescript/module/ui/hooks/useMutationStatus.d.ts +23 -0
  635. package/lib/typescript/module/ui/hooks/useMutationStatus.d.ts.map +1 -0
  636. package/lib/typescript/module/ui/hooks/useOnlineStatus.d.ts +13 -0
  637. package/lib/typescript/module/ui/hooks/useOnlineStatus.d.ts.map +1 -0
  638. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts +1 -2
  639. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +1 -1
  640. package/lib/typescript/module/ui/index.d.ts +1 -4
  641. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +1 -1
  643. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  644. package/lib/typescript/module/ui/navigation/routes.d.ts +48 -2
  645. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  646. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  647. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  648. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  649. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  651. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  652. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +49 -0
  653. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -0
  654. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  655. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  657. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  658. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  659. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  660. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  661. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  663. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  664. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  665. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  666. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  667. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  668. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  669. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  670. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  671. package/lib/typescript/module/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  672. package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  673. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  674. package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  676. package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/server.d.ts +0 -2
  678. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  679. package/lib/typescript/module/ui/styles/authStyles.d.ts +0 -4
  680. package/lib/typescript/module/ui/styles/authStyles.d.ts.map +1 -1
  681. package/lib/typescript/module/ui/styles/index.d.ts +0 -1
  682. package/lib/typescript/module/ui/styles/index.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/styles/spacing.d.ts +0 -36
  684. package/lib/typescript/module/ui/styles/spacing.d.ts.map +1 -1
  685. package/lib/typescript/module/ui/styles/theme.d.ts +0 -1
  686. package/lib/typescript/module/ui/styles/theme.d.ts.map +1 -1
  687. package/lib/typescript/module/ui/utils/fileManagement.d.ts +39 -12
  688. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  689. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts +3 -1
  690. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts.map +1 -1
  691. package/lib/typescript/module/ui/utils/userUtils.d.ts +19 -18
  692. package/lib/typescript/module/ui/utils/userUtils.d.ts.map +1 -1
  693. package/lib/typescript/types/expo-vector-icons.d.ts +7 -4
  694. package/package.json +64 -31
  695. package/src/index.ts +11 -4
  696. package/src/types/expo-vector-icons.d.ts +7 -4
  697. package/src/ui/client.ts +0 -6
  698. package/src/ui/components/ActingAsBanner.tsx +0 -4
  699. package/src/ui/components/ActivityIndicator.tsx +1 -1
  700. package/src/ui/components/Avatar.tsx +0 -2
  701. package/src/ui/components/BottomSheet.tsx +41 -440
  702. package/src/ui/components/BottomSheetRouter.tsx +12 -1
  703. package/src/ui/components/FollowButton.tsx +2 -4
  704. package/src/ui/components/Header.tsx +0 -5
  705. package/src/ui/components/Icon.tsx +12 -6
  706. package/src/ui/components/IconButton/IconButton.tsx +0 -3
  707. package/src/ui/components/OxyPayButton.tsx +0 -2
  708. package/src/ui/components/OxyProvider.tsx +129 -49
  709. package/src/ui/components/OxySignInButton.tsx +21 -9
  710. package/src/ui/components/ProfileCard.tsx +13 -10
  711. package/src/ui/components/QuickActions.tsx +2 -2
  712. package/src/ui/components/SignInModal.tsx +38 -13
  713. package/src/ui/components/StepBasedScreen.tsx +0 -2
  714. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  715. package/src/ui/components/TextField/helpers.tsx +2 -2
  716. package/src/ui/components/TextField/types.tsx +0 -1
  717. package/src/ui/components/TextField.tsx +1 -2
  718. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
  719. package/src/ui/components/feedback/feedbackStyles.ts +0 -2
  720. package/src/ui/components/fileManagement/AnimatedButton.tsx +0 -1
  721. package/src/ui/components/fileManagement/FileDetailsModal.tsx +71 -65
  722. package/src/ui/components/fileManagement/FileViewer.tsx +31 -24
  723. package/src/ui/components/fileManagement/UploadPreview.tsx +21 -25
  724. package/src/ui/components/fileManagement/styles.ts +206 -18
  725. package/src/ui/components/index.ts +0 -5
  726. package/src/ui/components/logo/LogoIcon.tsx +70 -0
  727. package/src/ui/components/logo/LogoText.tsx +70 -0
  728. package/src/ui/components/modals/DeleteAccountModal.tsx +56 -91
  729. package/src/ui/components/payment/PaymentDetailsStep.tsx +17 -20
  730. package/src/ui/components/payment/PaymentMethodStep.tsx +33 -35
  731. package/src/ui/components/payment/PaymentReviewStep.tsx +63 -67
  732. package/src/ui/components/payment/PaymentSuccessStep.tsx +5 -13
  733. package/src/ui/components/payment/PaymentSummaryStep.tsx +26 -33
  734. package/src/ui/components/payment/paymentStyles.ts +0 -8
  735. package/src/ui/components/styles/overlay.tsx +17 -8
  736. package/src/ui/components/theming.tsx +0 -1
  737. package/src/ui/components/types.tsx +3 -2
  738. package/src/ui/context/OxyContext.tsx +34 -19
  739. package/src/ui/context/hooks/useAuthOperations.ts +1 -2
  740. package/src/ui/hooks/index.ts +11 -4
  741. package/src/ui/hooks/mutations/mutationFactory.ts +16 -1
  742. package/src/ui/hooks/mutations/mutationKeys.ts +28 -0
  743. package/src/ui/hooks/mutations/useAccountMutations.ts +251 -59
  744. package/src/ui/hooks/mutations/useServicesMutations.ts +10 -4
  745. package/src/ui/hooks/queries/index.ts +1 -0
  746. package/src/ui/hooks/queries/queryKeys.ts +2 -0
  747. package/src/ui/hooks/queries/useAccountQueries.ts +83 -3
  748. package/src/ui/hooks/queries/useSecurityQueries.ts +42 -2
  749. package/src/ui/hooks/queryClient.ts +194 -69
  750. package/src/ui/hooks/useAsyncAction.ts +3 -3
  751. package/src/ui/hooks/useAuth.ts +0 -2
  752. package/src/ui/hooks/useAvatarPicker.ts +108 -27
  753. package/src/ui/hooks/useFileDownloadUrl.ts +15 -39
  754. package/src/ui/hooks/useMutationStatus.ts +111 -0
  755. package/src/ui/hooks/useOnlineStatus.ts +29 -0
  756. package/src/ui/hooks/useSessionSocket.ts +136 -126
  757. package/src/ui/hooks/useSettingToggle.ts +1 -1
  758. package/src/ui/index.ts +0 -12
  759. package/src/ui/navigation/routes.ts +93 -2
  760. package/src/ui/screens/AccountCenterScreen.tsx +17 -16
  761. package/src/ui/screens/AccountOverviewScreen.tsx +98 -129
  762. package/src/ui/screens/AccountSettingsScreen.tsx +138 -165
  763. package/src/ui/screens/AccountSwitcherScreen.tsx +414 -402
  764. package/src/ui/screens/AccountVerificationScreen.tsx +25 -24
  765. package/src/ui/screens/AppInfoScreen.tsx +8 -13
  766. package/src/ui/screens/AvatarCropScreen.tsx +1073 -0
  767. package/src/ui/screens/CreateManagedAccountScreen.tsx +5 -16
  768. package/src/ui/screens/EditProfileFieldScreen.tsx +5 -10
  769. package/src/ui/screens/FAQScreen.tsx +3 -3
  770. package/src/ui/screens/FeedbackScreen.tsx +64 -50
  771. package/src/ui/screens/FileManagementScreen.tsx +911 -158
  772. package/src/ui/screens/HelpSupportScreen.tsx +2 -3
  773. package/src/ui/screens/HistoryViewScreen.tsx +51 -17
  774. package/src/ui/screens/LanguageSelectorScreen.tsx +20 -10
  775. package/src/ui/screens/LegalDocumentsScreen.tsx +47 -64
  776. package/src/ui/screens/PaymentGatewayScreen.tsx +13 -14
  777. package/src/ui/screens/PremiumSubscriptionScreen.tsx +51 -56
  778. package/src/ui/screens/PrivacySettingsScreen.tsx +97 -207
  779. package/src/ui/screens/ProfileScreen.tsx +1 -2
  780. package/src/ui/screens/SavesCollectionsScreen.tsx +25 -25
  781. package/src/ui/screens/SearchSettingsScreen.tsx +11 -19
  782. package/src/ui/screens/SessionManagementScreen.tsx +64 -50
  783. package/src/ui/screens/UserLinksScreen.tsx +15 -33
  784. package/src/ui/screens/UserListScreen.tsx +30 -19
  785. package/src/ui/screens/WelcomeNewUserScreen.tsx +60 -38
  786. package/src/ui/screens/karma/KarmaAboutScreen.tsx +0 -3
  787. package/src/ui/screens/karma/KarmaCenterScreen.tsx +4 -8
  788. package/src/ui/screens/karma/KarmaFAQScreen.tsx +5 -7
  789. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +3 -4
  790. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +13 -18
  791. package/src/ui/screens/karma/KarmaRulesScreen.tsx +3 -4
  792. package/src/ui/server.ts +0 -4
  793. package/src/ui/styles/authStyles.ts +0 -5
  794. package/src/ui/styles/index.ts +0 -1
  795. package/src/ui/styles/spacing.ts +0 -43
  796. package/src/ui/styles/theme.ts +0 -4
  797. package/src/ui/utils/fileManagement.ts +66 -38
  798. package/src/ui/utils/sessionHelpers.ts +3 -1
  799. package/src/ui/utils/userUtils.ts +45 -29
  800. package/lib/commonjs/lib/sonner-safe.js +0 -32
  801. package/lib/commonjs/lib/sonner-safe.js.map +0 -1
  802. package/lib/commonjs/lib/sonner.js +0 -19
  803. package/lib/commonjs/lib/sonner.js.map +0 -1
  804. package/lib/commonjs/lib/sonner.native.js +0 -24
  805. package/lib/commonjs/lib/sonner.native.js.map +0 -1
  806. package/lib/commonjs/lib/sonner.web.js +0 -24
  807. package/lib/commonjs/lib/sonner.web.js.map +0 -1
  808. package/lib/commonjs/ui/components/GroupedItem.js +0 -138
  809. package/lib/commonjs/ui/components/GroupedItem.js.map +0 -1
  810. package/lib/commonjs/ui/components/GroupedSection.js +0 -41
  811. package/lib/commonjs/ui/components/GroupedSection.js.map +0 -1
  812. package/lib/commonjs/ui/components/Section.js +0 -39
  813. package/lib/commonjs/ui/components/Section.js.map +0 -1
  814. package/lib/commonjs/ui/components/SectionTitle.js +0 -29
  815. package/lib/commonjs/ui/components/SectionTitle.js.map +0 -1
  816. package/lib/commonjs/ui/components/SettingRow.js +0 -96
  817. package/lib/commonjs/ui/components/SettingRow.js.map +0 -1
  818. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +0 -208
  819. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +0 -1
  820. package/lib/commonjs/ui/hooks/useThemeColors.js +0 -33
  821. package/lib/commonjs/ui/hooks/useThemeColors.js.map +0 -1
  822. package/lib/commonjs/ui/hooks/useThemeStyles.js +0 -38
  823. package/lib/commonjs/ui/hooks/useThemeStyles.js.map +0 -1
  824. package/lib/commonjs/ui/styles/fonts.js +0 -84
  825. package/lib/commonjs/ui/styles/fonts.js.map +0 -1
  826. package/lib/module/lib/sonner-safe.js +0 -29
  827. package/lib/module/lib/sonner-safe.js.map +0 -1
  828. package/lib/module/lib/sonner.js +0 -14
  829. package/lib/module/lib/sonner.js.map +0 -1
  830. package/lib/module/lib/sonner.native.js +0 -19
  831. package/lib/module/lib/sonner.native.js.map +0 -1
  832. package/lib/module/lib/sonner.web.js +0 -19
  833. package/lib/module/lib/sonner.web.js.map +0 -1
  834. package/lib/module/ui/components/GroupedItem.js +0 -135
  835. package/lib/module/ui/components/GroupedItem.js.map +0 -1
  836. package/lib/module/ui/components/GroupedSection.js +0 -37
  837. package/lib/module/ui/components/GroupedSection.js.map +0 -1
  838. package/lib/module/ui/components/Section.js +0 -34
  839. package/lib/module/ui/components/Section.js.map +0 -1
  840. package/lib/module/ui/components/SectionTitle.js +0 -25
  841. package/lib/module/ui/components/SectionTitle.js.map +0 -1
  842. package/lib/module/ui/components/SettingRow.js +0 -91
  843. package/lib/module/ui/components/SettingRow.js.map +0 -1
  844. package/lib/module/ui/components/internal/GroupedPillButtons.js +0 -204
  845. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +0 -1
  846. package/lib/module/ui/hooks/useThemeColors.js +0 -29
  847. package/lib/module/ui/hooks/useThemeColors.js.map +0 -1
  848. package/lib/module/ui/hooks/useThemeStyles.js +0 -33
  849. package/lib/module/ui/hooks/useThemeStyles.js.map +0 -1
  850. package/lib/module/ui/styles/fonts.js +0 -81
  851. package/lib/module/ui/styles/fonts.js.map +0 -1
  852. package/lib/typescript/commonjs/lib/sonner-safe.d.ts +0 -9
  853. package/lib/typescript/commonjs/lib/sonner-safe.d.ts.map +0 -1
  854. package/lib/typescript/commonjs/lib/sonner.d.ts +0 -12
  855. package/lib/typescript/commonjs/lib/sonner.d.ts.map +0 -1
  856. package/lib/typescript/commonjs/lib/sonner.native.d.ts +0 -15
  857. package/lib/typescript/commonjs/lib/sonner.native.d.ts.map +0 -1
  858. package/lib/typescript/commonjs/lib/sonner.web.d.ts +0 -15
  859. package/lib/typescript/commonjs/lib/sonner.web.d.ts.map +0 -1
  860. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts +0 -24
  861. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +0 -1
  862. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts +0 -30
  863. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts.map +0 -1
  864. package/lib/typescript/commonjs/ui/components/Section.d.ts +0 -12
  865. package/lib/typescript/commonjs/ui/components/Section.d.ts.map +0 -1
  866. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts +0 -10
  867. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts.map +0 -1
  868. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +0 -20
  869. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +0 -1
  870. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  871. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  872. package/lib/typescript/commonjs/ui/hooks/useThemeColors.d.ts +0 -87
  873. package/lib/typescript/commonjs/ui/hooks/useThemeColors.d.ts.map +0 -1
  874. package/lib/typescript/commonjs/ui/hooks/useThemeStyles.d.ts +0 -22
  875. package/lib/typescript/commonjs/ui/hooks/useThemeStyles.d.ts.map +0 -1
  876. package/lib/typescript/commonjs/ui/styles/fonts.d.ts +0 -21
  877. package/lib/typescript/commonjs/ui/styles/fonts.d.ts.map +0 -1
  878. package/lib/typescript/module/lib/sonner-safe.d.ts +0 -9
  879. package/lib/typescript/module/lib/sonner-safe.d.ts.map +0 -1
  880. package/lib/typescript/module/lib/sonner.d.ts +0 -12
  881. package/lib/typescript/module/lib/sonner.d.ts.map +0 -1
  882. package/lib/typescript/module/lib/sonner.native.d.ts +0 -15
  883. package/lib/typescript/module/lib/sonner.native.d.ts.map +0 -1
  884. package/lib/typescript/module/lib/sonner.web.d.ts +0 -15
  885. package/lib/typescript/module/lib/sonner.web.d.ts.map +0 -1
  886. package/lib/typescript/module/ui/components/GroupedItem.d.ts +0 -24
  887. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +0 -1
  888. package/lib/typescript/module/ui/components/GroupedSection.d.ts +0 -30
  889. package/lib/typescript/module/ui/components/GroupedSection.d.ts.map +0 -1
  890. package/lib/typescript/module/ui/components/Section.d.ts +0 -12
  891. package/lib/typescript/module/ui/components/Section.d.ts.map +0 -1
  892. package/lib/typescript/module/ui/components/SectionTitle.d.ts +0 -10
  893. package/lib/typescript/module/ui/components/SectionTitle.d.ts.map +0 -1
  894. package/lib/typescript/module/ui/components/SettingRow.d.ts +0 -20
  895. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +0 -1
  896. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  897. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  898. package/lib/typescript/module/ui/hooks/useThemeColors.d.ts +0 -87
  899. package/lib/typescript/module/ui/hooks/useThemeColors.d.ts.map +0 -1
  900. package/lib/typescript/module/ui/hooks/useThemeStyles.d.ts +0 -22
  901. package/lib/typescript/module/ui/hooks/useThemeStyles.d.ts.map +0 -1
  902. package/lib/typescript/module/ui/styles/fonts.d.ts +0 -21
  903. package/lib/typescript/module/ui/styles/fonts.d.ts.map +0 -1
  904. package/src/lib/sonner-safe.ts +0 -31
  905. package/src/lib/sonner.native.ts +0 -28
  906. package/src/lib/sonner.ts +0 -11
  907. package/src/lib/sonner.web.ts +0 -28
  908. package/src/ui/components/GroupedItem.tsx +0 -161
  909. package/src/ui/components/GroupedSection.tsx +0 -60
  910. package/src/ui/components/Section.tsx +0 -42
  911. package/src/ui/components/SectionTitle.tsx +0 -27
  912. package/src/ui/components/SettingRow.tsx +0 -105
  913. package/src/ui/components/internal/GroupedPillButtons.tsx +0 -253
  914. package/src/ui/hooks/useThemeColors.ts +0 -27
  915. package/src/ui/hooks/useThemeStyles.ts +0 -50
  916. package/src/ui/styles/fonts.ts +0 -77
@@ -0,0 +1,936 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * AvatarCropScreen
5
+ *
6
+ * Flagship-grade circular crop editor presented after the user picks an image
7
+ * but before the avatar is uploaded. Inspired by iOS Photos, Google Photos and
8
+ * Instagram crop tools.
9
+ *
10
+ * Architecture:
11
+ * - Full-bleed black canvas, independent of theme, so photos always read well.
12
+ * - Translucent top bar with Cancel / Title / Done (primary CTA).
13
+ * - Circular viewport with white ring, outer 50% black mask, and a 3x3
14
+ * rule-of-thirds grid that appears during gestures and fades after 800ms.
15
+ * - Floating zoom chip during pinch.
16
+ * - Pan + pinch via Gesture Handler, transform driven by Reanimated.
17
+ * - Reduced-motion aware entrance animation.
18
+ * - Haptics on milestones via dynamically imported expo-haptics (optional).
19
+ *
20
+ * `expo-image-manipulator` and `expo-haptics` are optional peer dependencies —
21
+ * loaded with `await import(...)`. A missing manipulator surfaces a clear
22
+ * error; missing haptics simply degrades silently.
23
+ */
24
+
25
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
26
+ import { View, Text, StyleSheet, ActivityIndicator, TouchableOpacity, Image, Platform, AccessibilityInfo, Pressable } from 'react-native';
27
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
28
+ import Animated, { Easing, runOnJS, useAnimatedStyle, useSharedValue, withDelay, withSpring, withTiming } from 'react-native-reanimated';
29
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
30
+ import { useTheme } from '@oxyhq/bloom/theme';
31
+ import { logger } from '@oxyhq/core';
32
+ import { useI18n } from "../hooks/useI18n.js";
33
+ import { toast } from '@oxyhq/bloom';
34
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
+ /** Component name used in `logger` context for filtered diagnostics. */
36
+ const LOG_COMPONENT = 'AvatarCropScreen';
37
+
38
+ /** Final crop result handed back to the caller. */
39
+
40
+ /** Side length (in dp) of the crop viewport. The output is always 512x512px. */
41
+ const VIEWPORT_SIZE = 320;
42
+ const OUTPUT_SIZE = 512;
43
+ const MIN_SCALE = 1;
44
+ const MAX_SCALE = 4;
45
+ /** Duration (ms) that the rule-of-thirds grid lingers after a gesture ends. */
46
+ const GRID_FADE_DELAY_MS = 800;
47
+ const GRID_FADE_DURATION_MS = 220;
48
+ /** Duration the zoom chip stays visible after a pinch ends. */
49
+ const ZOOM_CHIP_FADE_DELAY_MS = 600;
50
+ const ZOOM_CHIP_FADE_DURATION_MS = 200;
51
+ /** Backdrop color is fixed independent of theme so the photo always reads well. */
52
+ const CANVAS_BG = '#000000';
53
+ const RING_COLOR = '#ffffff';
54
+ const RING_WIDTH = 2;
55
+
56
+ /**
57
+ * Clamp the translation so the image edges never leave the viewport at any
58
+ * scale. Worklet-friendly (pure function, no closures over JS state) so the
59
+ * gesture handlers can reuse it without re-creating the closure each render.
60
+ */
61
+ function clampTranslation(tx, ty, s, baseW, baseH) {
62
+ 'worklet';
63
+
64
+ const scaledW = baseW * s;
65
+ const scaledH = baseH * s;
66
+ const maxX = Math.max(0, (scaledW - VIEWPORT_SIZE) / 2);
67
+ const maxY = Math.max(0, (scaledH - VIEWPORT_SIZE) / 2);
68
+ return {
69
+ tx: Math.min(Math.max(tx, -maxX), maxX),
70
+ ty: Math.min(Math.max(ty, -maxY), maxY)
71
+ };
72
+ }
73
+
74
+ /**
75
+ * Lazy-loaded reference to the expo-image-manipulator module. The module is an
76
+ * optional peer dep, so we resolve it on demand and surface a clean error
77
+ * upstream if the consuming app has not installed it.
78
+ */
79
+
80
+ async function loadImageManipulator() {
81
+ try {
82
+ const mod = await import('expo-image-manipulator');
83
+ if (!mod || typeof mod.manipulateAsync !== 'function') {
84
+ throw new Error('expo-image-manipulator did not export manipulateAsync');
85
+ }
86
+ return mod;
87
+ } catch (err) {
88
+ const message = err instanceof Error ? err.message : String(err);
89
+ throw new Error(`expo-image-manipulator is required for avatar cropping but is not installed: ${message}`);
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Haptic feedback wrapper. `expo-haptics` is an optional dependency — when not
95
+ * installed (or on web), all calls degrade silently. We resolve the module once
96
+ * and cache the promise so subsequent calls don't repeat the dynamic import.
97
+ */
98
+
99
+ let hapticsModulePromise = null;
100
+ function getHaptics() {
101
+ if (Platform.OS === 'web') return Promise.resolve(null);
102
+ if (hapticsModulePromise) return hapticsModulePromise;
103
+ hapticsModulePromise = (async () => {
104
+ try {
105
+ const mod = await import('expo-haptics');
106
+ if (!mod || typeof mod.impactAsync !== 'function') return null;
107
+ return mod;
108
+ } catch {
109
+ return null;
110
+ }
111
+ })();
112
+ return hapticsModulePromise;
113
+ }
114
+ async function hapticImpact(style) {
115
+ const h = await getHaptics();
116
+ if (!h) return;
117
+ const styleEnum = style === 'heavy' ? h.ImpactFeedbackStyle.Heavy : style === 'medium' ? h.ImpactFeedbackStyle.Medium : h.ImpactFeedbackStyle.Light;
118
+ try {
119
+ await h.impactAsync(styleEnum);
120
+ } catch {
121
+ // Silent — haptics are non-critical UX polish.
122
+ }
123
+ }
124
+ async function hapticNotification(type) {
125
+ const h = await getHaptics();
126
+ if (!h) return;
127
+ const typeEnum = type === 'error' ? h.NotificationFeedbackType.Error : type === 'warning' ? h.NotificationFeedbackType.Warning : h.NotificationFeedbackType.Success;
128
+ try {
129
+ await h.notificationAsync(typeEnum);
130
+ } catch {
131
+ // Silent.
132
+ }
133
+ }
134
+ async function hapticSelection() {
135
+ const h = await getHaptics();
136
+ if (!h) return;
137
+ try {
138
+ await h.selectionAsync();
139
+ } catch {
140
+ // Silent.
141
+ }
142
+ }
143
+ const AvatarCropScreen = ({
144
+ goBack,
145
+ onClose,
146
+ imageUri,
147
+ sourceWidth,
148
+ sourceHeight,
149
+ onConfirm,
150
+ onCancel
151
+ }) => {
152
+ const theme = useTheme();
153
+ const {
154
+ t
155
+ } = useI18n();
156
+ const insets = useSafeAreaInsets();
157
+
158
+ // Natural size of the source image. May be known up front (passed in) or
159
+ // measured lazily via Image.getSize once the image loads.
160
+ const [naturalSize, setNaturalSize] = useState(sourceWidth && sourceHeight ? {
161
+ width: sourceWidth,
162
+ height: sourceHeight
163
+ } : null);
164
+ const [isProcessing, setIsProcessing] = useState(false);
165
+ const [zoomLabel, setZoomLabel] = useState('1.0');
166
+ /** True when scale != MIN_SCALE OR translate != 0 — used to reveal the reset link. */
167
+ const [isModified, setIsModified] = useState(false);
168
+ const [reduceMotion, setReduceMotion] = useState(false);
169
+
170
+ // Shared values for the active gesture transform.
171
+ const scale = useSharedValue(MIN_SCALE);
172
+ const translateX = useSharedValue(0);
173
+ const translateY = useSharedValue(0);
174
+
175
+ // Entrance scale of the crop circle (pulse-in on mount).
176
+ const entrance = useSharedValue(reduceMotion ? 1 : 0.95);
177
+ /** 0..1 opacity for the rule-of-thirds grid and zoom chip. */
178
+ const gridOpacity = useSharedValue(0);
179
+ const zoomChipOpacity = useSharedValue(0);
180
+
181
+ // Refs that mirror the latest committed shared values so the JS-side
182
+ // confirm handler can read them without an extra `useSharedValue → react`
183
+ // bridge. Updated by `runOnJS(commit*)` from the gesture worklets.
184
+ const committedScale = useRef(MIN_SCALE);
185
+ const committedTranslateX = useRef(0);
186
+ const committedTranslateY = useRef(0);
187
+
188
+ // Saved start values for relative gesture math.
189
+ const savedScale = useSharedValue(MIN_SCALE);
190
+ const savedTranslateX = useSharedValue(0);
191
+ const savedTranslateY = useSharedValue(0);
192
+
193
+ // Track whether we've already announced a min/max bound during the current
194
+ // pinch so selection haptics don't fire on every frame.
195
+ const hitMinRef = useRef(false);
196
+ const hitMaxRef = useRef(false);
197
+
198
+ // The image is rendered at "cover" relative to the viewport. We compute
199
+ // `baseScale` so 1.0x means the image exactly covers the square; everything
200
+ // larger than that is user-zoom.
201
+ const baseFit = useMemo(() => {
202
+ if (!naturalSize) return null;
203
+ const ratio = naturalSize.width / naturalSize.height;
204
+ // Cover: the smaller dimension matches the viewport.
205
+ if (ratio >= 1) {
206
+ // Landscape — height fills viewport
207
+ return {
208
+ width: VIEWPORT_SIZE * ratio,
209
+ height: VIEWPORT_SIZE
210
+ };
211
+ }
212
+ return {
213
+ width: VIEWPORT_SIZE,
214
+ height: VIEWPORT_SIZE / ratio
215
+ };
216
+ }, [naturalSize]);
217
+
218
+ // Track in-flight measurement to avoid duplicate Image.getSize calls when
219
+ // the component re-renders before the previous getSize callback fires.
220
+ const measuringUriRef = useRef(null);
221
+ /** Failure state for measurement, surfaced to the user via the empty UI. */
222
+ const [measureError, setMeasureError] = useState(null);
223
+ const handleImageMeasured = useCallback(uri => {
224
+ if (measuringUriRef.current === uri) return;
225
+ measuringUriRef.current = uri;
226
+ // `logger.debug` is dev-gated upstream (no-op in production).
227
+ // We deliberately don't log the full file URI in any production
228
+ // path — only in debug builds — to avoid leaking on-device file
229
+ // paths into logcat / Sentry breadcrumbs.
230
+ logger.debug('Measuring image', {
231
+ component: LOG_COMPONENT
232
+ });
233
+ Image.getSize(uri, (w, h) => {
234
+ logger.debug('Image measured', {
235
+ component: LOG_COMPONENT
236
+ }, {
237
+ width: w,
238
+ height: h
239
+ });
240
+ if (!Number.isFinite(w) || !Number.isFinite(h) || w <= 0 || h <= 0) {
241
+ const message = t('editProfile.toasts.cropMeasureFailed') || 'Could not measure the image';
242
+ setMeasureError(message);
243
+ toast.error(message);
244
+ measuringUriRef.current = null;
245
+ return;
246
+ }
247
+ setMeasureError(null);
248
+ setNaturalSize({
249
+ width: w,
250
+ height: h
251
+ });
252
+ }, err => {
253
+ logger.error('Image.getSize failed', err, {
254
+ component: LOG_COMPONENT
255
+ });
256
+ const message = t('editProfile.toasts.cropMeasureFailed') || 'Could not measure the image';
257
+ setMeasureError(message);
258
+ toast.error(message);
259
+ measuringUriRef.current = null;
260
+ });
261
+ }, [t]);
262
+
263
+ // Kick off measurement once per imageUri. Using useEffect (not a render-body
264
+ // side effect) so the call is scheduled exactly when the URI changes,
265
+ // rather than being re-fired on every parent re-render.
266
+ useEffect(() => {
267
+ if (!imageUri) return;
268
+ if (sourceWidth && sourceHeight) return;
269
+ if (naturalSize) return;
270
+ handleImageMeasured(imageUri);
271
+ }, [handleImageMeasured, imageUri, naturalSize, sourceHeight, sourceWidth]);
272
+
273
+ // Dev-only one-time mount breadcrumb. `logger.debug` is dev-gated so
274
+ // this is a no-op in production releases; we additionally avoid logging
275
+ // the full `imageUri` to prevent leaking on-device file paths into any
276
+ // breadcrumb sink that picks up debug output.
277
+ useEffect(() => {
278
+ logger.debug('mount', {
279
+ component: LOG_COMPONENT
280
+ }, {
281
+ hasImageUri: !!imageUri,
282
+ hasSourceDimensions: !!(sourceWidth && sourceHeight)
283
+ });
284
+ }, [imageUri, sourceHeight, sourceWidth]);
285
+
286
+ // Detect reduce-motion preference once on mount + subscribe to changes.
287
+ useEffect(() => {
288
+ let cancelled = false;
289
+ AccessibilityInfo.isReduceMotionEnabled().then(enabled => {
290
+ if (cancelled) return;
291
+ setReduceMotion(enabled);
292
+ if (enabled) {
293
+ entrance.value = 1;
294
+ }
295
+ }).catch(() => {
296
+ // Best-effort — fall back to motion enabled.
297
+ });
298
+ const sub = AccessibilityInfo.addEventListener('reduceMotionChanged', enabled => {
299
+ setReduceMotion(enabled);
300
+ if (enabled) entrance.value = 1;
301
+ });
302
+ return () => {
303
+ cancelled = true;
304
+ sub.remove();
305
+ };
306
+ }, [entrance]);
307
+
308
+ // Play the entrance pulse exactly once when motion is allowed.
309
+ useEffect(() => {
310
+ if (reduceMotion) return;
311
+ entrance.value = withSpring(1, {
312
+ damping: 14,
313
+ stiffness: 180,
314
+ mass: 0.9
315
+ });
316
+ }, [entrance, reduceMotion]);
317
+ const commitTransform = useCallback((s, tx, ty) => {
318
+ committedScale.current = s;
319
+ committedTranslateX.current = tx;
320
+ committedTranslateY.current = ty;
321
+ const modified = Math.abs(s - MIN_SCALE) > 0.001 || Math.abs(tx) > 0.5 || Math.abs(ty) > 0.5;
322
+ setIsModified(modified);
323
+ setZoomLabel(s.toFixed(1));
324
+ }, []);
325
+
326
+ /** Show the rule-of-thirds grid; called from gesture worklets via runOnJS-free path. */
327
+ const showGrid = useCallback(() => {
328
+ gridOpacity.value = withTiming(1, {
329
+ duration: 120,
330
+ easing: Easing.out(Easing.quad)
331
+ });
332
+ }, [gridOpacity]);
333
+ const hideGrid = useCallback(() => {
334
+ gridOpacity.value = withDelay(GRID_FADE_DELAY_MS, withTiming(0, {
335
+ duration: GRID_FADE_DURATION_MS,
336
+ easing: Easing.in(Easing.quad)
337
+ }));
338
+ }, [gridOpacity]);
339
+ const showZoomChip = useCallback(() => {
340
+ zoomChipOpacity.value = withTiming(1, {
341
+ duration: 100
342
+ });
343
+ }, [zoomChipOpacity]);
344
+ const hideZoomChip = useCallback(() => {
345
+ zoomChipOpacity.value = withDelay(ZOOM_CHIP_FADE_DELAY_MS, withTiming(0, {
346
+ duration: ZOOM_CHIP_FADE_DURATION_MS
347
+ }));
348
+ }, [zoomChipOpacity]);
349
+
350
+ /** Dev-only ping fired once per gesture start so we can confirm in logs. */
351
+ const logGestureStart = useCallback(kind => {
352
+ logger.debug(`gesture start: ${kind}`, {
353
+ component: LOG_COMPONENT
354
+ });
355
+ }, []);
356
+ const panGesture = useMemo(() => Gesture.Pan().minDistance(2).onStart(() => {
357
+ 'worklet';
358
+
359
+ savedTranslateX.value = translateX.value;
360
+ savedTranslateY.value = translateY.value;
361
+ runOnJS(showGrid)();
362
+ runOnJS(logGestureStart)('pan');
363
+ }).onUpdate(event => {
364
+ 'worklet';
365
+
366
+ if (!baseFit) return;
367
+ const next = clampTranslation(savedTranslateX.value + event.translationX, savedTranslateY.value + event.translationY, scale.value, baseFit.width, baseFit.height);
368
+ translateX.value = next.tx;
369
+ translateY.value = next.ty;
370
+ }).onEnd(() => {
371
+ 'worklet';
372
+
373
+ runOnJS(commitTransform)(scale.value, translateX.value, translateY.value);
374
+ runOnJS(hideGrid)();
375
+ }), [baseFit, commitTransform, hideGrid, logGestureStart, savedTranslateX, savedTranslateY, scale, showGrid, translateX, translateY]);
376
+
377
+ /** Imperative helpers invoked from worklets via runOnJS. Stable refs. */
378
+ const resetPinchBounds = useCallback(() => {
379
+ hitMinRef.current = false;
380
+ hitMaxRef.current = false;
381
+ }, []);
382
+ const updateZoomLabel = useCallback(s => {
383
+ setZoomLabel(s.toFixed(1));
384
+ }, []);
385
+ const notifyMinBoundHit = useCallback(() => {
386
+ if (hitMinRef.current) return;
387
+ hitMinRef.current = true;
388
+ void hapticSelection();
389
+ }, []);
390
+ const notifyMaxBoundHit = useCallback(() => {
391
+ if (hitMaxRef.current) return;
392
+ hitMaxRef.current = true;
393
+ void hapticSelection();
394
+ }, []);
395
+ const pinchGesture = useMemo(() => Gesture.Pinch().onStart(() => {
396
+ 'worklet';
397
+
398
+ savedScale.value = scale.value;
399
+ runOnJS(showGrid)();
400
+ runOnJS(showZoomChip)();
401
+ runOnJS(resetPinchBounds)();
402
+ runOnJS(logGestureStart)('pinch');
403
+ }).onUpdate(event => {
404
+ 'worklet';
405
+
406
+ if (!baseFit) return;
407
+ const raw = savedScale.value * event.scale;
408
+ const nextScale = Math.min(MAX_SCALE, Math.max(MIN_SCALE, raw));
409
+ scale.value = nextScale;
410
+ // Re-clamp translation since the bounds depend on scale.
411
+ const clamped = clampTranslation(translateX.value, translateY.value, nextScale, baseFit.width, baseFit.height);
412
+ translateX.value = clamped.tx;
413
+ translateY.value = clamped.ty;
414
+ runOnJS(updateZoomLabel)(nextScale);
415
+ // Selection haptic on first frame at min/max.
416
+ if (nextScale <= MIN_SCALE + 0.001 && raw < MIN_SCALE) {
417
+ runOnJS(notifyMinBoundHit)();
418
+ } else if (nextScale >= MAX_SCALE - 0.001 && raw > MAX_SCALE) {
419
+ runOnJS(notifyMaxBoundHit)();
420
+ }
421
+ }).onEnd(() => {
422
+ 'worklet';
423
+
424
+ runOnJS(commitTransform)(scale.value, translateX.value, translateY.value);
425
+ runOnJS(hideGrid)();
426
+ runOnJS(hideZoomChip)();
427
+ }), [baseFit, commitTransform, hideGrid, hideZoomChip, logGestureStart, notifyMaxBoundHit, notifyMinBoundHit, resetPinchBounds, savedScale, scale, showGrid, showZoomChip, translateX, translateY, updateZoomLabel]);
428
+ const composedGesture = useMemo(() => Gesture.Simultaneous(panGesture, pinchGesture), [panGesture, pinchGesture]);
429
+ const imageAnimatedStyle = useAnimatedStyle(() => ({
430
+ transform: [{
431
+ translateX: translateX.value
432
+ }, {
433
+ translateY: translateY.value
434
+ }, {
435
+ scale: scale.value
436
+ }]
437
+ }));
438
+ const cropFrameAnimatedStyle = useAnimatedStyle(() => ({
439
+ transform: [{
440
+ scale: entrance.value
441
+ }]
442
+ }));
443
+ const gridAnimatedStyle = useAnimatedStyle(() => ({
444
+ opacity: gridOpacity.value
445
+ }));
446
+ const zoomChipAnimatedStyle = useAnimatedStyle(() => ({
447
+ opacity: zoomChipOpacity.value
448
+ }));
449
+ const resetTransform = useCallback(() => {
450
+ const duration = reduceMotion ? 0 : 220;
451
+ scale.value = withTiming(MIN_SCALE, {
452
+ duration
453
+ });
454
+ translateX.value = withTiming(0, {
455
+ duration
456
+ });
457
+ translateY.value = withTiming(0, {
458
+ duration
459
+ });
460
+ commitTransform(MIN_SCALE, 0, 0);
461
+ void hapticImpact('light');
462
+ AccessibilityInfo.announceForAccessibility(t('editProfile.crop.a11yResetAnnouncement') || 'Crop reset');
463
+ }, [commitTransform, reduceMotion, scale, t, translateX, translateY]);
464
+
465
+ /**
466
+ * Convert the on-screen transform into pixel-space crop coordinates
467
+ * relative to the source image, then invoke expo-image-manipulator to
468
+ * crop + resize to 512x512 JPEG.
469
+ */
470
+ const handleConfirm = useCallback(async () => {
471
+ // Dev-only breadcrumb. Avoid logging `imageUri` so on-device file
472
+ // paths don't leak into breadcrumb sinks that surface debug output.
473
+ logger.debug('handleConfirm start', {
474
+ component: LOG_COMPONENT
475
+ }, {
476
+ hasBaseFit: !!baseFit,
477
+ hasNaturalSize: !!naturalSize,
478
+ committedScale: committedScale.current,
479
+ committedTranslateX: committedTranslateX.current,
480
+ committedTranslateY: committedTranslateY.current
481
+ });
482
+ if (!imageUri || !baseFit || !naturalSize) {
483
+ toast.error(t('editProfile.toasts.cropNotReady') || 'Image not ready yet');
484
+ return;
485
+ }
486
+ setIsProcessing(true);
487
+ try {
488
+ const {
489
+ manipulateAsync,
490
+ SaveFormat
491
+ } = await loadImageManipulator();
492
+ const s = committedScale.current;
493
+ const tx = committedTranslateX.current;
494
+ const ty = committedTranslateY.current;
495
+
496
+ // Visible viewport in *displayed image* pixel space (with scale applied):
497
+ // The viewport is centered on the image origin, then offset by (-tx, -ty).
498
+ const scaledImageWidth = baseFit.width * s;
499
+ const scaledImageHeight = baseFit.height * s;
500
+
501
+ // Top-left of viewport in displayed-pixel space:
502
+ const viewportLeft = (scaledImageWidth - VIEWPORT_SIZE) / 2 - tx;
503
+ const viewportTop = (scaledImageHeight - VIEWPORT_SIZE) / 2 - ty;
504
+
505
+ // Convert to source-image pixel space:
506
+ const sourcePerDisplay = naturalSize.width / scaledImageWidth;
507
+ const cropX = Math.max(0, viewportLeft * sourcePerDisplay);
508
+ const cropY = Math.max(0, viewportTop * sourcePerDisplay);
509
+ const cropSize = Math.min(naturalSize.width - cropX, naturalSize.height - cropY, VIEWPORT_SIZE * sourcePerDisplay);
510
+ if (!Number.isFinite(cropSize) || cropSize <= 0) {
511
+ throw new Error('Computed crop region is invalid');
512
+ }
513
+
514
+ // Dev-only crop coordinates. We log the derived crop region but
515
+ // never the input URI — paths are PII-adjacent on some platforms.
516
+ logger.debug('manipulateAsync input', {
517
+ component: LOG_COMPONENT
518
+ }, {
519
+ cropX,
520
+ cropY,
521
+ cropSize,
522
+ outputSize: OUTPUT_SIZE
523
+ });
524
+ const result = await manipulateAsync(imageUri, [{
525
+ crop: {
526
+ originX: cropX,
527
+ originY: cropY,
528
+ width: cropSize,
529
+ height: cropSize
530
+ }
531
+ }, {
532
+ resize: {
533
+ width: OUTPUT_SIZE,
534
+ height: OUTPUT_SIZE
535
+ }
536
+ }], {
537
+ format: SaveFormat.JPEG,
538
+ compress: 0.85
539
+ });
540
+
541
+ // Log only the result's dimensions, never the on-disk URI.
542
+ logger.debug('manipulateAsync result', {
543
+ component: LOG_COMPONENT
544
+ }, {
545
+ width: result.width,
546
+ height: result.height
547
+ });
548
+ void hapticNotification('success');
549
+ await onConfirm?.({
550
+ uri: result.uri,
551
+ width: result.width,
552
+ height: result.height,
553
+ mime: 'image/jpeg'
554
+ });
555
+
556
+ // Close the sheet on success. The caller is responsible for any
557
+ // success toast (uploads typically toast their own outcome).
558
+ onClose?.();
559
+ } catch (err) {
560
+ logger.error('handleConfirm failed', err, {
561
+ component: LOG_COMPONENT
562
+ });
563
+ const message = err instanceof Error ? err.message : undefined;
564
+ void hapticNotification('error');
565
+ toast.error(message || t('editProfile.toasts.cropFailed') || 'Failed to crop image');
566
+ } finally {
567
+ setIsProcessing(false);
568
+ }
569
+ }, [baseFit, imageUri, naturalSize, onClose, onConfirm, t]);
570
+ const handleCancel = useCallback(() => {
571
+ onCancel?.();
572
+ goBack?.();
573
+ }, [goBack, onCancel]);
574
+ const topInset = Platform.OS === 'ios' ? Math.max(insets.top, 12) : Math.max(insets.top, 16);
575
+ const bottomInset = Math.max(insets.bottom, 16);
576
+ const styles = useMemo(() => StyleSheet.create({
577
+ container: {
578
+ flex: 1,
579
+ backgroundColor: CANVAS_BG
580
+ },
581
+ topBar: {
582
+ paddingTop: topInset,
583
+ paddingHorizontal: 12,
584
+ paddingBottom: 10,
585
+ flexDirection: 'row',
586
+ alignItems: 'center',
587
+ justifyContent: 'space-between',
588
+ backgroundColor: 'rgba(0,0,0,0.6)',
589
+ zIndex: 10
590
+ },
591
+ topBarTitleWrap: {
592
+ flex: 1,
593
+ alignItems: 'center',
594
+ justifyContent: 'center',
595
+ paddingHorizontal: 4
596
+ },
597
+ topBarTitle: {
598
+ color: '#ffffff',
599
+ fontSize: 17,
600
+ letterSpacing: -0.2,
601
+ ...(Platform.OS === 'web' ? {
602
+ fontWeight: '600'
603
+ } : null)
604
+ },
605
+ cancelBtn: {
606
+ minWidth: 64,
607
+ paddingHorizontal: 10,
608
+ paddingVertical: 8,
609
+ borderRadius: 18,
610
+ alignItems: 'flex-start',
611
+ justifyContent: 'center'
612
+ },
613
+ cancelLabel: {
614
+ color: '#ffffff',
615
+ fontSize: 15,
616
+ opacity: 0.85
617
+ },
618
+ doneBtn: {
619
+ minWidth: 76,
620
+ paddingHorizontal: 14,
621
+ paddingVertical: 8,
622
+ borderRadius: 18,
623
+ alignItems: 'center',
624
+ justifyContent: 'center',
625
+ backgroundColor: theme.colors.primary
626
+ },
627
+ doneBtnDisabled: {
628
+ opacity: 0.5
629
+ },
630
+ doneLabel: {
631
+ color: '#ffffff',
632
+ fontSize: 15,
633
+ letterSpacing: -0.1,
634
+ ...(Platform.OS === 'web' ? {
635
+ fontWeight: '600'
636
+ } : null)
637
+ },
638
+ doneLabelLoading: {
639
+ flexDirection: 'row',
640
+ alignItems: 'center',
641
+ justifyContent: 'center',
642
+ gap: 8
643
+ },
644
+ stage: {
645
+ flex: 1,
646
+ alignItems: 'center',
647
+ justifyContent: 'center',
648
+ paddingHorizontal: 16
649
+ },
650
+ cropFrame: {
651
+ width: VIEWPORT_SIZE,
652
+ height: VIEWPORT_SIZE,
653
+ alignItems: 'center',
654
+ justifyContent: 'center'
655
+ },
656
+ viewport: {
657
+ width: VIEWPORT_SIZE,
658
+ height: VIEWPORT_SIZE,
659
+ overflow: 'hidden',
660
+ borderRadius: VIEWPORT_SIZE / 2,
661
+ backgroundColor: '#1a1a1a',
662
+ alignItems: 'center',
663
+ justifyContent: 'center'
664
+ },
665
+ image: {
666
+ width: baseFit?.width ?? VIEWPORT_SIZE,
667
+ height: baseFit?.height ?? VIEWPORT_SIZE
668
+ },
669
+ // Outer mask: large square that overlays the canvas, with a
670
+ // round transparent cutout in the middle. We achieve this with
671
+ // four edge boxes around the circle (top/bottom/left/right) so
672
+ // there's no need for SVG. Each box is 50% black.
673
+ ringOverlay: {
674
+ position: 'absolute',
675
+ width: VIEWPORT_SIZE,
676
+ height: VIEWPORT_SIZE,
677
+ borderRadius: VIEWPORT_SIZE / 2,
678
+ borderWidth: RING_WIDTH,
679
+ borderColor: RING_COLOR,
680
+ // Subtle inner shadow approximated with a thin secondary border.
681
+ ...Platform.select({
682
+ web: {
683
+ boxShadow: 'inset 0 0 14px rgba(0,0,0,0.45)'
684
+ },
685
+ default: {}
686
+ })
687
+ },
688
+ gridOverlay: {
689
+ position: 'absolute',
690
+ width: VIEWPORT_SIZE,
691
+ height: VIEWPORT_SIZE,
692
+ borderRadius: VIEWPORT_SIZE / 2,
693
+ overflow: 'hidden',
694
+ pointerEvents: 'none'
695
+ },
696
+ gridLineH: {
697
+ position: 'absolute',
698
+ left: 0,
699
+ right: 0,
700
+ height: StyleSheet.hairlineWidth,
701
+ backgroundColor: 'rgba(255,255,255,0.45)'
702
+ },
703
+ gridLineV: {
704
+ position: 'absolute',
705
+ top: 0,
706
+ bottom: 0,
707
+ width: StyleSheet.hairlineWidth,
708
+ backgroundColor: 'rgba(255,255,255,0.45)'
709
+ },
710
+ zoomChip: {
711
+ position: 'absolute',
712
+ top: -44,
713
+ alignSelf: 'center',
714
+ paddingHorizontal: 12,
715
+ paddingVertical: 6,
716
+ borderRadius: 999,
717
+ backgroundColor: 'rgba(0,0,0,0.7)',
718
+ minWidth: 56,
719
+ alignItems: 'center',
720
+ justifyContent: 'center'
721
+ },
722
+ zoomChipText: {
723
+ color: '#ffffff',
724
+ fontFamily: Platform.select({
725
+ ios: 'Menlo',
726
+ android: 'monospace',
727
+ default: 'ui-monospace, SFMono-Regular, Menlo, monospace'
728
+ }),
729
+ fontSize: 12,
730
+ letterSpacing: 0.2
731
+ },
732
+ helperBlock: {
733
+ paddingHorizontal: 24,
734
+ paddingTop: 24,
735
+ paddingBottom: bottomInset,
736
+ alignItems: 'center',
737
+ justifyContent: 'flex-end',
738
+ gap: 10
739
+ },
740
+ helper: {
741
+ fontSize: 13,
742
+ lineHeight: 18,
743
+ color: 'rgba(255,255,255,0.6)',
744
+ textAlign: 'center',
745
+ maxWidth: 320
746
+ },
747
+ resetLink: {
748
+ paddingHorizontal: 12,
749
+ paddingVertical: 6
750
+ },
751
+ resetLinkText: {
752
+ fontSize: 13,
753
+ color: '#ffffff',
754
+ opacity: 0.85,
755
+ textDecorationLine: 'underline'
756
+ },
757
+ emptyState: {
758
+ flex: 1,
759
+ alignItems: 'center',
760
+ justifyContent: 'center',
761
+ padding: 24
762
+ },
763
+ emptyLabel: {
764
+ fontSize: 14,
765
+ color: 'rgba(255,255,255,0.7)',
766
+ textAlign: 'center'
767
+ }
768
+ }), [baseFit, bottomInset, theme, topInset]);
769
+
770
+ // Reset link reveal — only show when the image is not at the default
771
+ // transform. Use derived display state to avoid mounting/unmounting jank.
772
+ const resetLinkOpacity = isModified ? 1 : 0;
773
+
774
+ // No image supplied OR measurement failed — render a minimal empty state.
775
+ if (!imageUri || measureError) {
776
+ const emptyMessage = !imageUri ? t('editProfile.crop.noImage') || 'No image to crop' : measureError;
777
+ return /*#__PURE__*/_jsxs(View, {
778
+ style: styles.container,
779
+ children: [/*#__PURE__*/_jsxs(View, {
780
+ style: styles.topBar,
781
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
782
+ accessibilityLabel: t('editProfile.crop.cancel') || 'Cancel',
783
+ accessibilityRole: "button",
784
+ style: styles.cancelBtn,
785
+ onPress: handleCancel,
786
+ activeOpacity: 0.6,
787
+ children: /*#__PURE__*/_jsx(Text, {
788
+ style: styles.cancelLabel,
789
+ children: t('editProfile.crop.cancel') || 'Cancel'
790
+ })
791
+ }), /*#__PURE__*/_jsx(View, {
792
+ style: styles.topBarTitleWrap,
793
+ children: /*#__PURE__*/_jsx(Text, {
794
+ style: styles.topBarTitle,
795
+ children: t('editProfile.crop.title') || 'Crop avatar'
796
+ })
797
+ }), /*#__PURE__*/_jsx(View, {
798
+ style: styles.cancelBtn
799
+ })]
800
+ }), /*#__PURE__*/_jsx(View, {
801
+ style: styles.emptyState,
802
+ children: /*#__PURE__*/_jsx(Text, {
803
+ style: styles.emptyLabel,
804
+ children: emptyMessage
805
+ })
806
+ })]
807
+ });
808
+ }
809
+ return /*#__PURE__*/_jsxs(View, {
810
+ style: styles.container,
811
+ children: [/*#__PURE__*/_jsxs(View, {
812
+ style: styles.topBar,
813
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
814
+ accessibilityLabel: t('editProfile.crop.cancel') || 'Cancel',
815
+ accessibilityRole: "button",
816
+ style: styles.cancelBtn,
817
+ onPress: handleCancel,
818
+ disabled: isProcessing,
819
+ activeOpacity: 0.6,
820
+ children: /*#__PURE__*/_jsx(Text, {
821
+ style: styles.cancelLabel,
822
+ children: t('editProfile.crop.cancel') || 'Cancel'
823
+ })
824
+ }), /*#__PURE__*/_jsx(View, {
825
+ style: styles.topBarTitleWrap,
826
+ children: /*#__PURE__*/_jsx(Text, {
827
+ style: styles.topBarTitle,
828
+ numberOfLines: 1,
829
+ children: t('editProfile.crop.title') || 'Crop avatar'
830
+ })
831
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
832
+ accessibilityLabel: t('editProfile.crop.confirm') || 'Use photo',
833
+ accessibilityRole: "button",
834
+ accessibilityState: {
835
+ disabled: isProcessing || !baseFit,
836
+ busy: isProcessing
837
+ },
838
+ style: [styles.doneBtn, (isProcessing || !baseFit) && styles.doneBtnDisabled],
839
+ onPress: handleConfirm,
840
+ disabled: isProcessing || !baseFit,
841
+ activeOpacity: 0.85,
842
+ children: isProcessing ? /*#__PURE__*/_jsxs(View, {
843
+ style: styles.doneLabelLoading,
844
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
845
+ size: "small",
846
+ color: "#ffffff"
847
+ }), /*#__PURE__*/_jsx(Text, {
848
+ style: styles.doneLabel,
849
+ children: t('editProfile.crop.saving') || 'Saving…'
850
+ })]
851
+ }) : /*#__PURE__*/_jsx(Text, {
852
+ style: styles.doneLabel,
853
+ children: t('editProfile.crop.confirm') || 'Use photo'
854
+ })
855
+ })]
856
+ }), /*#__PURE__*/_jsx(View, {
857
+ style: styles.stage,
858
+ children: /*#__PURE__*/_jsxs(Animated.View, {
859
+ style: [styles.cropFrame, cropFrameAnimatedStyle],
860
+ accessible: true,
861
+ accessibilityRole: "image",
862
+ accessibilityLabel: t('editProfile.crop.a11yImage') || 'Crop preview. Pinch to zoom and drag to reposition the image.',
863
+ children: [/*#__PURE__*/_jsx(GestureDetector, {
864
+ gesture: composedGesture,
865
+ children: /*#__PURE__*/_jsx(View, {
866
+ style: styles.viewport,
867
+ children: baseFit ? /*#__PURE__*/_jsx(Animated.Image, {
868
+ source: {
869
+ uri: imageUri
870
+ },
871
+ style: [styles.image, imageAnimatedStyle],
872
+ resizeMode: "cover"
873
+ }) : /*#__PURE__*/_jsx(ActivityIndicator, {
874
+ color: "#ffffff"
875
+ })
876
+ })
877
+ }), /*#__PURE__*/_jsx(View, {
878
+ pointerEvents: "none",
879
+ style: styles.ringOverlay
880
+ }), /*#__PURE__*/_jsxs(Animated.View, {
881
+ pointerEvents: "none",
882
+ style: [styles.gridOverlay, gridAnimatedStyle],
883
+ children: [/*#__PURE__*/_jsx(View, {
884
+ style: [styles.gridLineH, {
885
+ top: VIEWPORT_SIZE / 3
886
+ }]
887
+ }), /*#__PURE__*/_jsx(View, {
888
+ style: [styles.gridLineH, {
889
+ top: VIEWPORT_SIZE * 2 / 3
890
+ }]
891
+ }), /*#__PURE__*/_jsx(View, {
892
+ style: [styles.gridLineV, {
893
+ left: VIEWPORT_SIZE / 3
894
+ }]
895
+ }), /*#__PURE__*/_jsx(View, {
896
+ style: [styles.gridLineV, {
897
+ left: VIEWPORT_SIZE * 2 / 3
898
+ }]
899
+ })]
900
+ }), /*#__PURE__*/_jsx(Animated.View, {
901
+ pointerEvents: "none",
902
+ style: [styles.zoomChip, zoomChipAnimatedStyle],
903
+ children: /*#__PURE__*/_jsx(Text, {
904
+ style: styles.zoomChipText,
905
+ children: t('editProfile.crop.zoom', {
906
+ value: zoomLabel
907
+ }) || `${zoomLabel}×`
908
+ })
909
+ })]
910
+ })
911
+ }), /*#__PURE__*/_jsxs(View, {
912
+ style: styles.helperBlock,
913
+ children: [/*#__PURE__*/_jsx(Text, {
914
+ style: styles.helper,
915
+ children: t('editProfile.crop.helper') || 'The cropped circle is what will appear on your profile. Pinch to zoom, drag to position.'
916
+ }), /*#__PURE__*/_jsx(Pressable, {
917
+ accessibilityLabel: t('editProfile.crop.a11yReset') || 'Reset crop to default position',
918
+ accessibilityRole: "button",
919
+ accessibilityState: {
920
+ disabled: !isModified || isProcessing
921
+ },
922
+ onPress: resetTransform,
923
+ disabled: !isModified || isProcessing,
924
+ style: [styles.resetLink, {
925
+ opacity: isProcessing ? 0.3 : resetLinkOpacity
926
+ }],
927
+ children: /*#__PURE__*/_jsx(Text, {
928
+ style: styles.resetLinkText,
929
+ children: t('editProfile.crop.resetToCenter') || 'Reset to center'
930
+ })
931
+ })]
932
+ })]
933
+ });
934
+ };
935
+ export default AvatarCropScreen;
936
+ //# sourceMappingURL=AvatarCropScreen.js.map