@oxyhq/services 11.0.0 → 11.1.0

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