@oxyhq/services 11.0.0 → 11.1.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 (434) hide show
  1. package/lib/commonjs/index.js +7 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AccountMenu.js +9 -5
  4. package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
  5. package/lib/commonjs/ui/components/AnotherDeviceQR.js +51 -56
  6. package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -1
  7. package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -0
  8. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  9. package/lib/commonjs/ui/components/FollowButton.js +18 -5
  10. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  11. package/lib/commonjs/ui/components/OxyLogo.js +1 -1
  12. package/lib/commonjs/ui/components/OxyLogo.js.map +1 -1
  13. package/lib/commonjs/ui/components/OxyProvider.js +23 -7
  14. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  15. package/lib/commonjs/ui/components/SignInModal.js +20 -1
  16. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  17. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +19 -9
  18. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  19. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +4 -2
  20. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  21. package/lib/commonjs/ui/context/OxyContext.js +153 -19
  22. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  23. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +6 -17
  24. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +5 -5
  26. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
  27. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +38 -38
  28. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  29. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +2 -2
  30. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -3
  32. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  33. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +1 -1
  34. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  35. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +16 -12
  36. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +10 -6
  38. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  39. package/lib/commonjs/ui/hooks/queryClient.js +6 -5
  40. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  41. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +40 -2
  42. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -1
  43. package/lib/commonjs/ui/hooks/useProfileEditing.js +21 -0
  44. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  45. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  46. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  47. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +100 -108
  48. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/AppInfoScreen.js +227 -273
  50. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -4
  52. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +20 -37
  54. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +89 -201
  56. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +80 -208
  58. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/FAQScreen.js +56 -208
  60. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/FeedbackScreen.js +303 -352
  62. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/FileManagementScreen.js +20 -20
  64. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/HelpSupportScreen.js +77 -89
  66. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/HistoryViewScreen.js +43 -58
  68. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +67 -90
  70. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +77 -177
  72. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +113 -107
  74. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/ManageAccountScreen.js +55 -114
  76. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/NotificationsScreen.js +67 -85
  78. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/OxyAuthScreen.js +71 -135
  80. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +15 -9
  82. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/PreferencesScreen.js +65 -83
  84. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +378 -1023
  86. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +294 -242
  88. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/ProfileScreen.js +194 -333
  90. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +57 -97
  92. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +41 -41
  94. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/UserLinksScreen.js +17 -24
  96. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/UserListScreen.js +83 -214
  98. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  99. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +115 -77
  100. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  101. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +70 -57
  102. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  103. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +136 -332
  104. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  105. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +47 -137
  106. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  107. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +182 -115
  108. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  109. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +138 -214
  110. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  111. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +54 -92
  112. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  113. package/lib/commonjs/ui/utils/activeAuthuser.js +15 -9
  114. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  115. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  116. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  117. package/lib/module/index.js +2 -0
  118. package/lib/module/index.js.map +1 -1
  119. package/lib/module/ui/components/AccountMenu.js +10 -6
  120. package/lib/module/ui/components/AccountMenu.js.map +1 -1
  121. package/lib/module/ui/components/AnotherDeviceQR.js +50 -56
  122. package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -1
  123. package/lib/module/ui/components/BottomSheetRouter.js +2 -1
  124. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  125. package/lib/module/ui/components/FollowButton.js +18 -5
  126. package/lib/module/ui/components/FollowButton.js.map +1 -1
  127. package/lib/module/ui/components/OxyLogo.js +1 -1
  128. package/lib/module/ui/components/OxyLogo.js.map +1 -1
  129. package/lib/module/ui/components/OxyProvider.js +23 -7
  130. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  131. package/lib/module/ui/components/SignInModal.js +20 -1
  132. package/lib/module/ui/components/SignInModal.js.map +1 -1
  133. package/lib/module/ui/components/fileManagement/FileViewer.js +19 -9
  134. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  135. package/lib/module/ui/components/fileManagement/UploadPreview.js +4 -2
  136. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  137. package/lib/module/ui/context/OxyContext.js +154 -20
  138. package/lib/module/ui/context/OxyContext.js.map +1 -1
  139. package/lib/module/ui/context/hooks/useAuthOperations.js +6 -17
  140. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  141. package/lib/module/ui/hooks/mutations/mutationFactory.js +5 -5
  142. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  143. package/lib/module/ui/hooks/mutations/useAccountMutations.js +38 -38
  144. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  145. package/lib/module/ui/hooks/mutations/useServicesMutations.js +2 -2
  146. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  147. package/lib/module/ui/hooks/queries/queryKeys.js +3 -3
  148. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  149. package/lib/module/ui/hooks/queries/useAccountQueries.js +1 -1
  150. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  151. package/lib/module/ui/hooks/queries/usePaymentQueries.js +16 -12
  152. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  153. package/lib/module/ui/hooks/queries/useServicesQueries.js +9 -6
  154. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  155. package/lib/module/ui/hooks/queryClient.js +6 -5
  156. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  157. package/lib/module/ui/hooks/useOxyAuthSession.js +40 -2
  158. package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -1
  159. package/lib/module/ui/hooks/useProfileEditing.js +21 -0
  160. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  161. package/lib/module/ui/hooks/useSessionManagement.js +4 -3
  162. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  163. package/lib/module/ui/screens/AccountVerificationScreen.js +101 -109
  164. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  165. package/lib/module/ui/screens/AppInfoScreen.js +228 -275
  166. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  167. package/lib/module/ui/screens/AvatarCropScreen.js +10 -4
  168. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  169. package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -39
  170. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  171. package/lib/module/ui/screens/CreateManagedAccountScreen.js +90 -202
  172. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  173. package/lib/module/ui/screens/EditProfileFieldScreen.js +77 -205
  174. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  175. package/lib/module/ui/screens/FAQScreen.js +55 -207
  176. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  177. package/lib/module/ui/screens/FeedbackScreen.js +301 -350
  178. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  179. package/lib/module/ui/screens/FileManagementScreen.js +20 -20
  180. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  181. package/lib/module/ui/screens/HelpSupportScreen.js +78 -90
  182. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  183. package/lib/module/ui/screens/HistoryViewScreen.js +44 -59
  184. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  185. package/lib/module/ui/screens/LanguageSelectorScreen.js +68 -91
  186. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  187. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +75 -177
  188. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  189. package/lib/module/ui/screens/LegalDocumentsScreen.js +116 -108
  190. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  191. package/lib/module/ui/screens/ManageAccountScreen.js +52 -112
  192. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  193. package/lib/module/ui/screens/NotificationsScreen.js +68 -86
  194. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  195. package/lib/module/ui/screens/OxyAuthScreen.js +69 -134
  196. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  197. package/lib/module/ui/screens/PaymentGatewayScreen.js +16 -10
  198. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  199. package/lib/module/ui/screens/PreferencesScreen.js +66 -84
  200. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  201. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +366 -1012
  202. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  203. package/lib/module/ui/screens/PrivacySettingsScreen.js +295 -243
  204. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  205. package/lib/module/ui/screens/ProfileScreen.js +192 -331
  206. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  207. package/lib/module/ui/screens/SavesCollectionsScreen.js +58 -98
  208. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  209. package/lib/module/ui/screens/SearchSettingsScreen.js +42 -42
  210. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  211. package/lib/module/ui/screens/UserLinksScreen.js +18 -25
  212. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  213. package/lib/module/ui/screens/UserListScreen.js +81 -212
  214. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  215. package/lib/module/ui/screens/WelcomeNewUserScreen.js +114 -76
  216. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  217. package/lib/module/ui/screens/trust/TrustAboutScreen.js +69 -57
  218. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  219. package/lib/module/ui/screens/trust/TrustCenterScreen.js +135 -332
  220. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  221. package/lib/module/ui/screens/trust/TrustFAQScreen.js +48 -138
  222. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  223. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +184 -117
  224. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  225. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +132 -208
  226. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  227. package/lib/module/ui/screens/trust/TrustRulesScreen.js +58 -94
  228. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  229. package/lib/module/ui/utils/activeAuthuser.js +15 -9
  230. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  231. package/lib/module/ui/utils/avatarUtils.js +1 -1
  232. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  233. package/lib/typescript/commonjs/index.d.ts +2 -0
  234. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +2 -0
  236. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +12 -2
  238. package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
  242. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  245. package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  246. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +34 -0
  247. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +6 -0
  250. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +3 -3
  252. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +22 -0
  256. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +3 -0
  258. package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +2 -1
  260. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  291. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  294. package/lib/typescript/module/index.d.ts +2 -0
  295. package/lib/typescript/module/index.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/components/AccountMenu.d.ts +2 -0
  297. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +12 -2
  299. package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -1
  300. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  301. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  302. package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
  303. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  305. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
  306. package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
  307. package/lib/typescript/module/ui/context/OxyContext.d.ts +34 -0
  308. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  310. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +6 -0
  311. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  312. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +3 -3
  313. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  315. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  316. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +22 -0
  317. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  318. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +3 -0
  319. package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +2 -1
  321. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  322. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  324. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  325. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  328. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  330. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  332. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  337. package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  338. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  340. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  342. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  344. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  347. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  349. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  350. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  351. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  352. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  353. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  354. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  355. package/lib/typescript/types/expo-haptics.d.ts +42 -0
  356. package/package.json +8 -3
  357. package/src/index.ts +2 -0
  358. package/src/types/expo-haptics.d.ts +42 -0
  359. package/src/ui/components/AccountMenu.tsx +11 -5
  360. package/src/ui/components/AnotherDeviceQR.tsx +53 -45
  361. package/src/ui/components/BottomSheetRouter.tsx +2 -1
  362. package/src/ui/components/FollowButton.tsx +24 -5
  363. package/src/ui/components/OxyLogo.tsx +1 -1
  364. package/src/ui/components/OxyProvider.tsx +22 -8
  365. package/src/ui/components/SignInModal.tsx +21 -2
  366. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
  367. package/src/ui/components/fileManagement/FileViewer.tsx +9 -9
  368. package/src/ui/components/fileManagement/UploadPreview.tsx +2 -2
  369. package/src/ui/context/OxyContext.tsx +178 -21
  370. package/src/ui/context/hooks/useAuthOperations.ts +6 -17
  371. package/src/ui/hooks/mutations/mutationFactory.ts +5 -5
  372. package/src/ui/hooks/mutations/useAccountMutations.ts +38 -38
  373. package/src/ui/hooks/mutations/useServicesMutations.ts +2 -2
  374. package/src/ui/hooks/queries/queryKeys.ts +6 -3
  375. package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
  376. package/src/ui/hooks/queries/usePaymentQueries.ts +12 -12
  377. package/src/ui/hooks/queries/useServicesQueries.ts +9 -6
  378. package/src/ui/hooks/queryClient.ts +5 -5
  379. package/src/ui/hooks/useOxyAuthSession.ts +76 -2
  380. package/src/ui/hooks/useProfileEditing.ts +24 -0
  381. package/src/ui/hooks/useSessionManagement.ts +9 -6
  382. package/src/ui/screens/AccountVerificationScreen.tsx +101 -113
  383. package/src/ui/screens/AppInfoScreen.tsx +200 -238
  384. package/src/ui/screens/AvatarCropScreen.tsx +17 -4
  385. package/src/ui/screens/ConnectedAppsScreen.tsx +16 -34
  386. package/src/ui/screens/CreateManagedAccountScreen.tsx +94 -170
  387. package/src/ui/screens/EditProfileFieldScreen.tsx +77 -190
  388. package/src/ui/screens/FAQScreen.tsx +77 -208
  389. package/src/ui/screens/FeedbackScreen.tsx +330 -239
  390. package/src/ui/screens/FileManagementScreen.tsx +20 -20
  391. package/src/ui/screens/HelpSupportScreen.tsx +67 -82
  392. package/src/ui/screens/HistoryViewScreen.tsx +32 -38
  393. package/src/ui/screens/LanguageSelectorScreen.tsx +79 -93
  394. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +81 -164
  395. package/src/ui/screens/LegalDocumentsScreen.tsx +184 -123
  396. package/src/ui/screens/ManageAccountScreen.tsx +48 -114
  397. package/src/ui/screens/NotificationsScreen.tsx +107 -106
  398. package/src/ui/screens/OxyAuthScreen.tsx +76 -109
  399. package/src/ui/screens/PaymentGatewayScreen.tsx +16 -7
  400. package/src/ui/screens/PreferencesScreen.tsx +96 -116
  401. package/src/ui/screens/PremiumSubscriptionScreen.tsx +419 -872
  402. package/src/ui/screens/PrivacySettingsScreen.tsx +203 -185
  403. package/src/ui/screens/ProfileScreen.tsx +162 -246
  404. package/src/ui/screens/SavesCollectionsScreen.tsx +78 -125
  405. package/src/ui/screens/SearchSettingsScreen.tsx +52 -41
  406. package/src/ui/screens/UserLinksScreen.tsx +18 -25
  407. package/src/ui/screens/UserListScreen.tsx +95 -188
  408. package/src/ui/screens/WelcomeNewUserScreen.tsx +109 -36
  409. package/src/ui/screens/trust/TrustAboutScreen.tsx +52 -41
  410. package/src/ui/screens/trust/TrustCenterScreen.tsx +184 -222
  411. package/src/ui/screens/trust/TrustFAQScreen.tsx +64 -124
  412. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +190 -67
  413. package/src/ui/screens/trust/TrustRewardsScreen.tsx +147 -182
  414. package/src/ui/screens/trust/TrustRulesScreen.tsx +77 -50
  415. package/src/ui/utils/activeAuthuser.ts +15 -9
  416. package/src/ui/utils/avatarUtils.ts +1 -1
  417. package/lib/commonjs/ui/components/feedback/FormInput.js +0 -72
  418. package/lib/commonjs/ui/components/feedback/FormInput.js.map +0 -1
  419. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -261
  420. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +0 -1
  421. package/lib/module/ui/components/feedback/FormInput.js +0 -67
  422. package/lib/module/ui/components/feedback/FormInput.js.map +0 -1
  423. package/lib/module/ui/components/feedback/feedbackStyles.js +0 -256
  424. package/lib/module/ui/components/feedback/feedbackStyles.js.map +0 -1
  425. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts +0 -20
  426. package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts.map +0 -1
  427. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -279
  428. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  429. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts +0 -20
  430. package/lib/typescript/module/ui/components/feedback/FormInput.d.ts.map +0 -1
  431. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -279
  432. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
  433. package/src/ui/components/feedback/FormInput.tsx +0 -84
  434. package/src/ui/components/feedback/feedbackStyles.ts +0 -246
@@ -7,6 +7,9 @@ exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  var _theme = require("@oxyhq/bloom/theme");
10
+ var _button = require("@oxyhq/bloom/button");
11
+ var _typography = require("@oxyhq/bloom/typography");
12
+ var _settingsList = require("@oxyhq/bloom/settings-list");
10
13
  var _Avatar = _interopRequireDefault(require("../components/Avatar.js"));
11
14
  var _FollowButton = _interopRequireDefault(require("../components/FollowButton.js"));
12
15
  var _useFollow = require("../hooks/useFollow.js");
@@ -17,6 +20,10 @@ var _core = require("@oxyhq/core");
17
20
  var _errorHandlers = require("../utils/errorHandlers.js");
18
21
  var _jsxRuntime = require("react/jsx-runtime");
19
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
+ const AVATAR_SIZE = 96;
24
+ const BANNER_HEIGHT = 160;
25
+ const AVATAR_OVERLAP = -56;
26
+ const INFO_ICON_SIZE = 18;
20
27
  const ProfileScreen = ({
21
28
  userId,
22
29
  username,
@@ -44,7 +51,6 @@ const ProfileScreen = ({
44
51
  isLoadingCounts
45
52
  } = (0, _useFollow.useFollow)(userId);
46
53
  const bloomTheme = (0, _theme.useTheme)();
47
- const styles = createStyles();
48
54
  const {
49
55
  t,
50
56
  locale
@@ -98,34 +104,8 @@ const ProfileScreen = ({
98
104
  setProfile(profileRes);
99
105
  setReputationTotal(typeof reputationRes.total === 'number' ? reputationRes.total : null);
100
106
 
101
- // Extract links from profile data
102
- if (profileRes.linksMetadata && Array.isArray(profileRes.linksMetadata)) {
103
- const linksWithIds = profileRes.linksMetadata.map((link, index) => ({
104
- ...link,
105
- id: link.id || `existing-${index}`
106
- }));
107
- setLinks(linksWithIds);
108
- } else if (Array.isArray(profileRes.links)) {
109
- const simpleLinks = profileRes.links.map(l => typeof l === 'string' ? l : typeof l === 'object' && 'link' in l ? l.link : '').filter(Boolean);
110
- const linksWithMetadata = simpleLinks.map((url, index) => ({
111
- url,
112
- title: url.replace(/^https?:\/\//, '').replace(/\/$/, ''),
113
- description: `Link to ${url}`,
114
- image: undefined,
115
- id: `existing-${index}`
116
- }));
117
- setLinks(linksWithMetadata);
118
- } else if (profileRes.website) {
119
- setLinks([{
120
- url: profileRes.website,
121
- title: profileRes.website.replace(/^https?:\/\//, '').replace(/\/$/, ''),
122
- description: `Link to ${profileRes.website}`,
123
- image: undefined,
124
- id: 'existing-0'
125
- }]);
126
- } else {
127
- setLinks([]);
128
- }
107
+ // Normalize profile links via the shared @oxyhq/core helper.
108
+ setLinks((0, _core.normalizeProfileLinks)(profileRes.linksMetadata, profileRes.links));
129
109
 
130
110
  // Follower/following counts are managed by the `useFollow` hook.
131
111
 
@@ -162,10 +142,8 @@ const ProfileScreen = ({
162
142
  }, [userId]);
163
143
  if (isLoading) {
164
144
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
165
- style: [styles.container, {
166
- justifyContent: 'center',
167
- backgroundColor: bloomTheme.colors.background
168
- }],
145
+ style: styles.centerContainer,
146
+ className: "bg-bg",
169
147
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
170
148
  size: "large",
171
149
  color: bloomTheme.colors.primary
@@ -174,82 +152,77 @@ const ProfileScreen = ({
174
152
  }
175
153
  if (error) {
176
154
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
177
- style: [styles.container, {
178
- backgroundColor: bloomTheme.colors.background
179
- }],
155
+ style: styles.container,
156
+ className: "bg-bg",
180
157
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
181
- style: [styles.errorHeader, {
182
- borderBottomColor: bloomTheme.colors.border
183
- }],
184
- children: [goBack && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
158
+ style: styles.errorHeader,
159
+ className: "px-screen-margin py-space-12 border-b border-border",
160
+ children: [goBack && /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
161
+ variant: "icon",
162
+ size: "icon",
185
163
  onPress: goBack,
186
- style: styles.backButton,
187
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
164
+ accessibilityLabel: t('common.back') || 'Back',
165
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
188
166
  name: "arrow-back",
189
- size: 24,
167
+ size: 22,
190
168
  color: bloomTheme.colors.text
191
169
  })
192
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
170
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.H2, {
193
171
  style: styles.errorTitle,
194
- className: "text-foreground",
195
- children: "Profile Error"
172
+ className: "text-text",
173
+ children: t('profile.errorTitle') || 'Profile Error'
196
174
  })]
197
175
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
198
176
  style: styles.errorContent,
177
+ className: "px-space-32 gap-space-12",
199
178
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
200
179
  name: "alert-circle",
201
180
  size: 48,
202
- color: bloomTheme.colors.error,
203
- style: styles.errorIcon
204
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
181
+ color: bloomTheme.colors.error
182
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
205
183
  style: styles.errorText,
206
- className: "text-destructive",
184
+ className: "text-text",
207
185
  children: error
208
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
186
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
209
187
  style: styles.errorSubtext,
210
- className: "text-muted-foreground",
211
- children: "This could happen if the user doesn't exist or the profile service is unavailable."
188
+ className: "text-text-secondary",
189
+ children: t('profile.errorSubtext') || "This could happen if the user doesn't exist or the profile service is unavailable."
212
190
  })]
213
191
  })]
214
192
  });
215
193
  }
194
+ const displayName = profile ? (0, _core.getAccountDisplayName)(profile, locale) : username || '';
216
195
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
217
- style: [styles.container, {
218
- backgroundColor: bloomTheme.colors.background
219
- }],
196
+ style: styles.container,
197
+ className: "bg-bg",
220
198
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
221
- style: {
222
- flex: 1
223
- },
199
+ style: styles.flex,
224
200
  contentContainerStyle: styles.scrollContainer,
225
201
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
226
202
  style: styles.bannerContainer,
227
- className: "bg-primary/20",
203
+ className: "bg-fill-brand/20",
228
204
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
229
- style: styles.bannerImage,
230
- className: "bg-primary"
205
+ style: styles.flex,
206
+ className: "bg-fill-brand"
231
207
  })
232
208
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
233
209
  style: styles.avatarRow,
210
+ className: "px-screen-margin",
234
211
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
235
212
  style: styles.avatarWrapper,
236
- className: "border-background bg-background",
213
+ className: "border-bg bg-bg rounded-radius-max",
237
214
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
238
215
  uri: profile?.avatar ? oxyServices.getFileDownloadUrl(profile.avatar, 'thumb') : undefined,
239
- name: profile ? (0, _core.getAccountDisplayName)(profile, locale) : username,
240
- size: 96
216
+ name: displayName || username,
217
+ size: AVATAR_SIZE
241
218
  })
242
219
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
243
220
  style: styles.actionButtonWrapper,
244
- children: isOwnProfile ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
245
- style: styles.actionButton,
246
- className: "bg-background border-primary",
221
+ children: isOwnProfile ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
222
+ variant: "secondary",
223
+ size: "small",
247
224
  onPress: () => navigate?.('ManageAccount'),
248
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
249
- style: styles.actionButtonText,
250
- className: "text-primary",
251
- children: t('editProfile.title') || 'Edit Profile'
252
- })
225
+ children: t('editProfile.title') || 'Edit Profile'
253
226
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_FollowButton.default, {
254
227
  userId: userId,
255
228
  onFollowChange: isFollowing => {
@@ -264,264 +237,192 @@ const ProfileScreen = ({
264
237
  })]
265
238
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
266
239
  style: styles.header,
267
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
240
+ className: "px-screen-margin",
241
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.H2, {
268
242
  style: styles.displayName,
269
- className: "text-foreground",
270
- children: profile ? (0, _core.getAccountDisplayName)(profile, locale) : username || ''
271
- }), profile?.username && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
243
+ className: "text-text",
244
+ children: displayName
245
+ }), profile?.username && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_typography.Text, {
272
246
  style: styles.subText,
273
- className: "text-muted-foreground",
247
+ className: "text-text-secondary",
274
248
  children: ["@", profile.username]
275
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
249
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
276
250
  style: styles.bio,
277
- className: "text-foreground",
251
+ className: "text-text",
278
252
  children: profile?.bio || t('profile.noBio') || 'This user has no bio yet.'
253
+ })]
254
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
255
+ children: [profile?.createdAt && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
256
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
257
+ name: "calendar-outline",
258
+ size: INFO_ICON_SIZE,
259
+ color: bloomTheme.colors.textSecondary
260
+ }),
261
+ title: t('profile.joinedOn', {
262
+ date: new Date(profile.createdAt).toLocaleDateString()
263
+ }) || `Joined ${new Date(profile.createdAt).toLocaleDateString()}`,
264
+ showChevron: false
265
+ }), profile?.location && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
266
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
267
+ name: "location-outline",
268
+ size: INFO_ICON_SIZE,
269
+ color: bloomTheme.colors.textSecondary
270
+ }),
271
+ title: profile.location,
272
+ showChevron: false
273
+ }), profile?.website && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
274
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
275
+ name: "globe-outline",
276
+ size: INFO_ICON_SIZE,
277
+ color: bloomTheme.colors.textSecondary
278
+ }),
279
+ title: profile.website,
280
+ showChevron: false
281
+ }), profile && 'company' in profile && typeof profile.company === 'string' && profile.company && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
282
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
283
+ name: "business-outline",
284
+ size: INFO_ICON_SIZE,
285
+ color: bloomTheme.colors.textSecondary
286
+ }),
287
+ title: profile.company,
288
+ showChevron: false
289
+ }), profile && 'jobTitle' in profile && typeof profile.jobTitle === 'string' && profile.jobTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
290
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
291
+ name: "briefcase-outline",
292
+ size: INFO_ICON_SIZE,
293
+ color: bloomTheme.colors.textSecondary
294
+ }),
295
+ title: profile.jobTitle,
296
+ showChevron: false
297
+ }), profile && 'education' in profile && typeof profile.education === 'string' && profile.education && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
298
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
299
+ name: "school-outline",
300
+ size: INFO_ICON_SIZE,
301
+ color: bloomTheme.colors.textSecondary
302
+ }),
303
+ title: profile.education,
304
+ showChevron: false
305
+ }), profile && 'birthday' in profile && typeof profile.birthday === 'string' && profile.birthday && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
306
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
307
+ name: "gift-outline",
308
+ size: INFO_ICON_SIZE,
309
+ color: bloomTheme.colors.textSecondary
310
+ }),
311
+ title: t('profile.bornOn', {
312
+ date: new Date(profile.birthday).toLocaleDateString()
313
+ }) || `Born ${new Date(profile.birthday).toLocaleDateString()}`,
314
+ showChevron: false
315
+ }), links.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
316
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
317
+ name: "link-outline",
318
+ size: INFO_ICON_SIZE,
319
+ color: bloomTheme.colors.textSecondary
320
+ }),
321
+ title: links[0].url,
322
+ value: links.length > 1 ? t('profile.more', {
323
+ count: links.length - 1
324
+ }) || `+ ${links.length - 1} more` : undefined,
325
+ onPress: () => navigate?.('UserLinks', {
326
+ userId,
327
+ links
328
+ })
329
+ })]
330
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
331
+ style: styles.statsRow,
332
+ className: "px-screen-margin",
333
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
334
+ style: styles.statItem,
335
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
336
+ style: styles.statAmount,
337
+ className: "text-text-inverse",
338
+ children: reputationTotal !== null && reputationTotal !== undefined ? reputationTotal : '--'
339
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
340
+ style: styles.statLabel,
341
+ className: "text-text-secondary",
342
+ children: t('profile.reputation') || 'Reputation'
343
+ })]
279
344
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
280
- style: styles.infoGrid,
281
- children: [profile?.createdAt && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
282
- style: styles.infoGridItem,
283
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
284
- name: "calendar-outline",
285
- size: 16,
286
- color: bloomTheme.colors.textSecondary,
287
- style: {
288
- marginRight: 6
289
- }
290
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
291
- style: styles.infoGridText,
292
- className: "text-muted-foreground",
293
- children: t('profile.joinedOn', {
294
- date: new Date(profile.createdAt).toLocaleDateString()
295
- }) || `Joined ${new Date(profile.createdAt).toLocaleDateString()}`
296
- })]
297
- }), profile?.location && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
298
- style: styles.infoGridItem,
299
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
300
- name: "location-outline",
301
- size: 16,
302
- color: bloomTheme.colors.textSecondary,
303
- style: {
304
- marginRight: 6
305
- }
306
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
307
- style: styles.infoGridText,
308
- className: "text-muted-foreground",
309
- numberOfLines: 1,
310
- children: profile.location
311
- })]
312
- }), profile?.website && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
313
- style: styles.infoGridItem,
314
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
315
- name: "globe-outline",
316
- size: 16,
317
- color: bloomTheme.colors.textSecondary,
318
- style: {
319
- marginRight: 6
320
- }
321
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
322
- style: styles.infoGridText,
323
- className: "text-muted-foreground",
324
- numberOfLines: 1,
325
- children: profile.website
326
- })]
327
- }), profile && 'company' in profile && typeof profile.company === 'string' && profile.company && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
328
- style: styles.infoGridItem,
329
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
330
- name: "business-outline",
331
- size: 16,
332
- color: bloomTheme.colors.textSecondary,
333
- style: {
334
- marginRight: 6
335
- }
336
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
337
- style: styles.infoGridText,
338
- className: "text-muted-foreground",
339
- numberOfLines: 1,
340
- children: profile.company
341
- })]
342
- }), profile && 'jobTitle' in profile && typeof profile.jobTitle === 'string' && profile.jobTitle && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
343
- style: styles.infoGridItem,
344
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
345
- name: "briefcase-outline",
346
- size: 16,
347
- color: bloomTheme.colors.textSecondary,
348
- style: {
349
- marginRight: 6
350
- }
351
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
352
- style: styles.infoGridText,
353
- className: "text-muted-foreground",
354
- numberOfLines: 1,
355
- children: profile.jobTitle
356
- })]
357
- }), profile && 'education' in profile && typeof profile.education === 'string' && profile.education && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
358
- style: styles.infoGridItem,
359
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
360
- name: "school-outline",
361
- size: 16,
362
- color: bloomTheme.colors.textSecondary,
363
- style: {
364
- marginRight: 6
365
- }
366
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
367
- style: styles.infoGridText,
368
- className: "text-muted-foreground",
369
- numberOfLines: 1,
370
- children: profile.education
371
- })]
372
- }), profile && 'birthday' in profile && typeof profile.birthday === 'string' && profile.birthday && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
373
- style: styles.infoGridItem,
374
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
375
- name: "gift-outline",
376
- size: 16,
377
- color: bloomTheme.colors.textSecondary,
378
- style: {
379
- marginRight: 6
380
- }
381
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
382
- style: styles.infoGridText,
383
- className: "text-muted-foreground",
384
- children: t('profile.bornOn', {
385
- date: new Date(profile.birthday).toLocaleDateString()
386
- }) || `Born ${new Date(profile.birthday).toLocaleDateString()}`
387
- })]
388
- }), links.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
389
- style: styles.infoGridItem,
390
- onPress: () => navigate?.('UserLinks', {
391
- userId,
392
- links
393
- }),
394
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
395
- name: "link-outline",
396
- size: 16,
397
- color: bloomTheme.colors.textSecondary,
398
- style: {
399
- marginRight: 6
400
- }
401
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
402
- style: styles.infoGridText,
403
- className: "text-muted-foreground",
404
- numberOfLines: 1,
405
- children: links[0].url
406
- }), links.length > 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
407
- style: styles.linksMore,
408
- className: "text-muted-foreground",
409
- children: t('profile.more', {
410
- count: links.length - 1
411
- }) || `+ ${links.length - 1} more`
412
- })]
345
+ style: styles.statItem,
346
+ children: [isLoadingCounts ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
347
+ size: "small",
348
+ color: bloomTheme.colors.text
349
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
350
+ style: styles.statAmount,
351
+ className: "text-text",
352
+ children: followerCount !== null ? followerCount : '--'
353
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
354
+ style: styles.statLabel,
355
+ className: "text-text-secondary",
356
+ children: t('profile.followers') || 'Followers'
413
357
  })]
414
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
415
- style: styles.divider,
416
- className: "bg-border"
417
358
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
418
- style: styles.statsRow,
419
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
420
- style: styles.statItem,
421
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
422
- style: styles.statAmount,
423
- className: "text-primary",
424
- children: reputationTotal !== null && reputationTotal !== undefined ? reputationTotal : '--'
425
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
426
- style: styles.statLabel,
427
- className: "text-muted-foreground",
428
- children: t('profile.reputation') || 'Reputation'
429
- })]
430
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
431
- style: styles.statItem,
432
- children: [isLoadingCounts ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
433
- size: "small",
434
- color: bloomTheme.colors.text
435
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
436
- style: styles.statAmount,
437
- className: "text-foreground",
438
- children: followerCount !== null ? followerCount : '--'
439
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
440
- style: styles.statLabel,
441
- className: "text-muted-foreground",
442
- children: t('profile.followers') || 'Followers'
443
- })]
444
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
445
- style: styles.statItem,
446
- children: [isLoadingCounts ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
447
- size: "small",
448
- color: bloomTheme.colors.text
449
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
450
- style: styles.statAmount,
451
- className: "text-foreground",
452
- children: followingCount !== null ? followingCount : '--'
453
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
454
- style: styles.statLabel,
455
- className: "text-muted-foreground",
456
- children: t('profile.following') || 'Following'
457
- })]
359
+ style: styles.statItem,
360
+ children: [isLoadingCounts ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
361
+ size: "small",
362
+ color: bloomTheme.colors.text
363
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
364
+ style: styles.statAmount,
365
+ className: "text-text",
366
+ children: followingCount !== null ? followingCount : '--'
367
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
368
+ style: styles.statLabel,
369
+ className: "text-text-secondary",
370
+ children: t('profile.following') || 'Following'
458
371
  })]
459
372
  })]
460
373
  })]
461
374
  })
462
375
  });
463
376
  };
464
- const createStyles = () => _reactNative.StyleSheet.create({
377
+
378
+ // Layout-only styles: flex, dimensions, and the measured banner/avatar overlap
379
+ // that no token class can express. Colors, spacing, radius, and typography roles
380
+ // live on Bloom components + NativeWind token classes.
381
+ const styles = _reactNative.StyleSheet.create({
465
382
  container: {
466
383
  flex: 1
467
384
  },
385
+ flex: {
386
+ flex: 1
387
+ },
388
+ centerContainer: {
389
+ flex: 1,
390
+ justifyContent: 'center',
391
+ alignItems: 'center'
392
+ },
468
393
  scrollContainer: {
469
394
  alignItems: 'stretch',
470
395
  paddingBottom: 40
471
396
  },
472
397
  bannerContainer: {
473
- height: 160,
398
+ height: BANNER_HEIGHT,
474
399
  position: 'relative',
475
400
  overflow: 'hidden'
476
401
  },
477
- bannerImage: {
478
- flex: 1
479
- },
480
402
  avatarRow: {
481
403
  flexDirection: 'row',
482
404
  alignItems: 'flex-end',
483
- marginTop: -56,
484
- paddingHorizontal: 20,
405
+ marginTop: AVATAR_OVERLAP,
485
406
  justifyContent: 'space-between',
486
407
  zIndex: 2
487
408
  },
488
409
  avatarWrapper: {
489
410
  borderWidth: 5,
490
- borderRadius: 64,
491
411
  overflow: 'hidden'
492
412
  },
493
413
  actionButtonWrapper: {
494
414
  flex: 1,
495
415
  alignItems: 'flex-end',
496
- justifyContent: 'flex-end'
497
- },
498
- actionButton: {
499
- borderWidth: 1,
500
- borderRadius: 24,
501
- paddingVertical: 7,
502
- paddingHorizontal: 22,
503
- marginBottom: 8,
504
- elevation: 2,
505
- shadowOffset: {
506
- width: 0,
507
- height: 1
508
- },
509
- shadowOpacity: 0.08,
510
- shadowRadius: 2
511
- },
512
- actionButtonText: {
513
- fontWeight: 'bold',
514
- fontSize: 16
416
+ justifyContent: 'flex-end',
417
+ paddingBottom: 8
515
418
  },
516
419
  header: {
517
420
  alignItems: 'flex-start',
518
421
  width: '100%',
519
- paddingHorizontal: 20
422
+ marginTop: 10
520
423
  },
521
424
  displayName: {
522
425
  fontSize: 24,
523
- fontWeight: 'bold',
524
- marginTop: 10,
525
426
  marginBottom: 2,
526
427
  letterSpacing: 0.1
527
428
  },
@@ -532,40 +433,13 @@ const createStyles = () => _reactNative.StyleSheet.create({
532
433
  bio: {
533
434
  fontSize: 16,
534
435
  marginTop: 10,
535
- marginBottom: 10,
536
436
  lineHeight: 22
537
437
  },
538
- infoGrid: {
539
- flexDirection: 'row',
540
- alignItems: 'center',
541
- marginBottom: 10,
542
- flexWrap: 'wrap'
543
- },
544
- infoGridItem: {
545
- flexDirection: 'row',
546
- alignItems: 'center',
547
- marginRight: 24,
548
- marginBottom: 4
549
- },
550
- infoGridText: {
551
- fontSize: 15
552
- },
553
- divider: {
554
- height: 1,
555
- width: '100%',
556
- marginVertical: 14
557
- },
558
- linksMore: {
559
- fontSize: 15,
560
- marginLeft: 4
561
- },
562
438
  statsRow: {
563
439
  width: '100%',
564
- flex: 1,
565
440
  flexDirection: 'row',
566
441
  alignItems: 'center',
567
- marginTop: 6,
568
- marginBottom: 2,
442
+ marginTop: 14,
569
443
  justifyContent: 'space-between'
570
444
  },
571
445
  statItem: {
@@ -585,41 +459,28 @@ const createStyles = () => _reactNative.StyleSheet.create({
585
459
  textAlign: 'center',
586
460
  letterSpacing: 0.2
587
461
  },
588
- // Error handling styles
462
+ // Error state layout
589
463
  errorHeader: {
590
464
  flexDirection: 'row',
591
465
  alignItems: 'center',
592
- paddingHorizontal: 16,
593
- paddingVertical: 12,
594
- borderBottomWidth: 1
595
- },
596
- backButton: {
597
- padding: 8,
598
- marginRight: 16
466
+ gap: 16
599
467
  },
600
468
  errorTitle: {
601
- fontSize: 20,
602
- fontWeight: 'bold'
469
+ fontSize: 20
603
470
  },
604
471
  errorContent: {
605
472
  flex: 1,
606
473
  justifyContent: 'center',
607
- alignItems: 'center',
608
- paddingHorizontal: 32
609
- },
610
- errorIcon: {
611
- marginBottom: 16
474
+ alignItems: 'center'
612
475
  },
613
476
  errorText: {
614
477
  fontSize: 18,
615
478
  fontWeight: '600',
616
- textAlign: 'center',
617
- marginBottom: 8
479
+ textAlign: 'center'
618
480
  },
619
481
  errorSubtext: {
620
482
  fontSize: 14,
621
- textAlign: 'center',
622
- opacity: 0.7
483
+ textAlign: 'center'
623
484
  }
624
485
  });
625
486
  var _default = exports.default = ProfileScreen;