@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
@@ -1,4 +1,4 @@
1
- import React, { useCallback, useMemo, useState } from 'react';
1
+ import React, { useCallback, useState } from 'react';
2
2
  import { ActivityIndicator, FlatList, RefreshControl, StyleSheet, View } from 'react-native';
3
3
  import { Dialog, toast, useDialogControl } from '@oxyhq/bloom';
4
4
  import { useTheme } from '@oxyhq/bloom/theme';
@@ -7,15 +7,15 @@ import type { AuthorizedApp } from '@oxyhq/core';
7
7
  import { logger as loggerUtil } from '@oxyhq/core';
8
8
  import type { BaseScreenProps } from '../types/navigation';
9
9
  import Header from '../components/Header';
10
+ import Avatar from '../components/Avatar';
10
11
  import EmptyState from '../components/EmptyState';
11
- import { SettingsIcon } from '../components/SettingsIcon';
12
+ import LoadingState from '../components/LoadingState';
12
13
  import { useI18n } from '../hooks/useI18n';
13
14
  import { useOxy } from '../context/OxyContext';
14
15
  import { useAuthorizedApps } from '../hooks/queries/useAccountQueries';
15
16
  import { useRevokeAuthorizedApp } from '../hooks/mutations/useAccountMutations';
16
- import { useColorScheme } from '../hooks/useColorScheme';
17
- import { Colors } from '../constants/theme';
18
- import { normalizeColorScheme, normalizeTheme } from '@oxyhq/core';
17
+
18
+ const APP_ICON_SIZE = 40;
19
19
 
20
20
  /**
21
21
  * Format an ISO-8601 timestamp as a human-readable relative time. Mirrors the
@@ -46,14 +46,9 @@ const formatRelative = (iso: string): string => {
46
46
  * :origin`. Each revoke invalidates the connected-apps query so the list
47
47
  * refreshes immediately.
48
48
  */
49
- const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack }) => {
49
+ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
50
50
  const bloomTheme = useTheme();
51
51
  const { t } = useI18n();
52
- const colorScheme = useColorScheme();
53
- const palette = useMemo(
54
- () => Colors[normalizeColorScheme(colorScheme, normalizeTheme(theme))],
55
- [colorScheme, theme],
56
- );
57
52
  const { isAuthenticated } = useOxy();
58
53
  const {
59
54
  data: apps,
@@ -104,7 +99,7 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
104
99
 
105
100
  const renderEmpty = useCallback(
106
101
  () => (
107
- <View style={styles.emptyContainer}>
102
+ <View className="flex-1 items-center justify-center py-space-32">
108
103
  <EmptyState
109
104
  message={
110
105
  t('connectedApps.empty.subtitle')
@@ -123,7 +118,7 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
123
118
  return (
124
119
  <SettingsListGroup>
125
120
  <SettingsListItem
126
- icon={<SettingsIcon name="apps" color={palette.iconData} />}
121
+ icon={<Avatar name={item.name} size={APP_ICON_SIZE} />}
127
122
  title={item.name}
128
123
  description={
129
124
  t('connectedApps.item.lastUsed', {
@@ -147,11 +142,11 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
147
142
  </SettingsListGroup>
148
143
  );
149
144
  },
150
- [bloomTheme.colors.error, confirmRevoke, palette.iconData, revokingOrigin, t],
145
+ [bloomTheme.colors.error, confirmRevoke, revokingOrigin, t],
151
146
  );
152
147
 
153
148
  return (
154
- <View style={[styles.container, { backgroundColor: bloomTheme.colors.background }]}>
149
+ <View className="flex-1 bg-bg">
155
150
  <Header
156
151
  title={t('connectedApps.title') || 'Connected apps'}
157
152
  onBack={goBack || onClose}
@@ -159,14 +154,13 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
159
154
  elevation="subtle"
160
155
  />
161
156
  {isLoading && !apps ? (
162
- <View style={styles.center}>
163
- <ActivityIndicator color={bloomTheme.colors.primary} size="large" />
164
- </View>
157
+ <LoadingState color={bloomTheme.colors.primary} />
165
158
  ) : (
166
159
  <FlatList
167
160
  data={apps ?? []}
168
161
  keyExtractor={(item) => item.origin}
169
162
  renderItem={renderItem}
163
+ contentContainerClassName="px-screen-margin py-space-16"
170
164
  contentContainerStyle={styles.listContent}
171
165
  ListEmptyComponent={renderEmpty}
172
166
  refreshControl={
@@ -200,26 +194,14 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
200
194
  );
201
195
  };
202
196
 
197
+ // Layout-only style: `flexGrow` lets the FlatList content fill the viewport so
198
+ // the empty state centers vertically. Not expressible as a Bloom token class —
199
+ // all colors, spacing, radius, and typography live on token classes + Bloom
200
+ // components.
203
201
  const styles = StyleSheet.create({
204
- container: {
205
- flex: 1,
206
- },
207
- center: {
208
- flex: 1,
209
- alignItems: 'center',
210
- justifyContent: 'center',
211
- },
212
202
  listContent: {
213
- paddingHorizontal: 16,
214
- paddingVertical: 16,
215
203
  flexGrow: 1,
216
204
  },
217
- emptyContainer: {
218
- flex: 1,
219
- justifyContent: 'center',
220
- alignItems: 'center',
221
- paddingVertical: 48,
222
- },
223
205
  });
224
206
 
225
207
  export default React.memo(ConnectedAppsScreen);
@@ -2,27 +2,29 @@ import type React from 'react';
2
2
  import { useState, useCallback, useRef, useEffect } from 'react';
3
3
  import {
4
4
  View,
5
- Text,
6
- TextInput,
7
- TouchableOpacity,
8
- StyleSheet,
5
+ Platform,
9
6
  ActivityIndicator,
10
7
  ScrollView,
11
- Platform,
12
8
  KeyboardAvoidingView,
13
9
  } from 'react-native';
10
+ import { Ionicons } from '@expo/vector-icons';
14
11
  import type { BaseScreenProps } from '../types/navigation';
15
12
  import Header from '../components/Header';
16
13
  import { useI18n } from '../hooks/useI18n';
17
14
  import { useTheme } from '@oxyhq/bloom/theme';
15
+ import { H1, Text } from '@oxyhq/bloom/typography';
16
+ import { Button } from '@oxyhq/bloom/button';
17
+ import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
18
18
  import { useOxy } from '../context/OxyContext';
19
19
  import { toast } from '@oxyhq/bloom';
20
- import { screenContentStyle } from '../constants/spacing';
21
20
 
22
21
  type UsernameStatus = 'idle' | 'checking' | 'available' | 'taken' | 'invalid';
23
22
 
24
23
  const USERNAME_REGEX = /^[a-zA-Z0-9_-]{3,30}$/;
25
24
  const DEBOUNCE_MS = 400;
25
+ const USERNAME_MAX = 30;
26
+ const DISPLAY_NAME_MAX = 50;
27
+ const BIO_MAX = 160;
26
28
 
27
29
  const CreateManagedAccountScreen: React.FC<BaseScreenProps> = ({
28
30
  onClose,
@@ -123,18 +125,16 @@ const CreateManagedAccountScreen: React.FC<BaseScreenProps> = ({
123
125
  }
124
126
  }, [canCreate, username, displayName, bio, createManagedAccount, setActingAs, onClose]);
125
127
 
126
- const getStatusColor = (): string => {
127
- switch (usernameStatus) {
128
- case 'available': return bloomTheme.colors.success;
129
- case 'taken':
130
- case 'invalid': return bloomTheme.colors.error;
131
- case 'checking': return bloomTheme.colors.primary;
132
- default: return 'transparent';
133
- }
134
- };
128
+ // Status icon + color shown alongside the username field message
129
+ const usernameIsInvalid = usernameStatus === 'taken' || usernameStatus === 'invalid';
130
+ const statusColor = usernameStatus === 'available'
131
+ ? bloomTheme.colors.success
132
+ : usernameIsInvalid
133
+ ? bloomTheme.colors.negative
134
+ : bloomTheme.colors.textSecondary;
135
135
 
136
136
  return (
137
- <View style={[styles.container, { backgroundColor: bloomTheme.colors.background }]}>
137
+ <View className="flex-1 bg-bg">
138
138
  <Header
139
139
  title="Create Identity"
140
140
  onBack={goBack}
@@ -145,183 +145,107 @@ const CreateManagedAccountScreen: React.FC<BaseScreenProps> = ({
145
145
  />
146
146
 
147
147
  <KeyboardAvoidingView
148
- style={styles.flex}
148
+ className="flex-1"
149
149
  behavior={Platform.OS === 'ios' ? 'padding' : undefined}
150
150
  keyboardVerticalOffset={Platform.OS === 'ios' ? 88 : 0}
151
151
  >
152
152
  <ScrollView
153
- style={styles.flex}
154
- contentContainerStyle={screenContentStyle}
153
+ className="flex-1"
154
+ contentContainerClassName="px-screen-margin pt-space-24 pb-space-32 gap-space-24"
155
+ showsVerticalScrollIndicator={false}
155
156
  keyboardShouldPersistTaps="handled"
156
157
  >
157
- <Text style={[styles.description, { color: bloomTheme.colors.text }]}>
158
- Create a managed identity that you control. It will have its own profile, posts, and interactions.
159
- </Text>
158
+ {/* Big Title */}
159
+ <View className="gap-space-8">
160
+ <H1 className="text-headerBold font-headerBold text-text">
161
+ Create Identity
162
+ </H1>
163
+ <Text className="text-body font-body text-text-secondary">
164
+ Create a managed identity that you control. It will have its own profile, posts, and interactions.
165
+ </Text>
166
+ </View>
160
167
 
161
- {/* Username */}
162
- <View style={styles.fieldGroup}>
163
- <Text style={[styles.label, { color: bloomTheme.colors.text }]}>Username</Text>
164
- <View style={[
165
- styles.inputContainer,
166
- { borderColor: usernameStatus !== 'idle' ? getStatusColor() : bloomTheme.colors.border },
167
- ]}>
168
- <Text style={[styles.inputPrefix, { color: bloomTheme.colors.text + '80' }]}>@</Text>
169
- <TextInput
170
- style={[styles.input, { color: bloomTheme.colors.text }]}
171
- value={username}
172
- onChangeText={handleUsernameChange}
173
- placeholder="username"
174
- placeholderTextColor={bloomTheme.colors.text + '40'}
175
- autoCapitalize="none"
176
- autoCorrect={false}
177
- autoComplete="off"
178
- maxLength={30}
179
- />
180
- {usernameStatus === 'checking' && (
181
- <ActivityIndicator size="small" color={bloomTheme.colors.primary} />
182
- )}
183
- {usernameStatus === 'available' && (
184
- <Text style={[styles.statusIcon, { color: bloomTheme.colors.success }]}>OK</Text>
185
- )}
168
+ {/* Form Content */}
169
+ <View className="gap-space-16 p-space-16 rounded-radius-20 bg-fill">
170
+ {/* Username */}
171
+ <View className="gap-space-8">
172
+ <TextField isInvalid={usernameIsInvalid}>
173
+ <TextFieldInput
174
+ floatingLabel
175
+ label="Username"
176
+ value={username}
177
+ onChangeText={handleUsernameChange}
178
+ isInvalid={usernameIsInvalid}
179
+ autoCapitalize="none"
180
+ autoCorrect={false}
181
+ autoComplete="off"
182
+ maxLength={USERNAME_MAX}
183
+ />
184
+ </TextField>
185
+ {(usernameStatus === 'checking' || usernameMessage) ? (
186
+ <View className="flex-row items-center gap-space-4 px-space-4">
187
+ {usernameStatus === 'checking' ? (
188
+ <ActivityIndicator size="small" color={bloomTheme.colors.primary} />
189
+ ) : usernameStatus === 'available' ? (
190
+ <Ionicons name="checkmark-circle" size={16} color={bloomTheme.colors.success} />
191
+ ) : usernameIsInvalid ? (
192
+ <Ionicons name="alert-circle" size={16} color={bloomTheme.colors.negative} />
193
+ ) : null}
194
+ {usernameMessage ? (
195
+ <Text className="text-caption font-caption" style={{ color: statusColor }}>
196
+ {usernameMessage}
197
+ </Text>
198
+ ) : null}
199
+ </View>
200
+ ) : null}
186
201
  </View>
187
- {usernameMessage ? (
188
- <Text style={[styles.statusMessage, { color: getStatusColor() }]}>
189
- {usernameMessage}
190
- </Text>
191
- ) : null}
192
- </View>
193
202
 
194
- {/* Display Name */}
195
- <View style={styles.fieldGroup}>
196
- <Text style={[styles.label, { color: bloomTheme.colors.text }]}>Display Name</Text>
197
- <View style={[styles.inputContainer, { borderColor: bloomTheme.colors.border }]}>
198
- <TextInput
199
- style={[styles.input, { color: bloomTheme.colors.text }]}
203
+ {/* Display Name */}
204
+ <TextField>
205
+ <TextFieldInput
206
+ floatingLabel
207
+ label="Display Name"
200
208
  value={displayName}
201
209
  onChangeText={setDisplayName}
202
- placeholder="Display name"
203
- placeholderTextColor={bloomTheme.colors.text + '40'}
204
- maxLength={50}
205
- />
206
- </View>
207
- </View>
208
-
209
- {/* Bio */}
210
- <View style={styles.fieldGroup}>
211
- <Text style={[styles.label, { color: bloomTheme.colors.text }]}>Bio (optional)</Text>
212
- <View style={[styles.inputContainer, styles.bioContainer, { borderColor: bloomTheme.colors.border }]}>
213
- <TextInput
214
- style={[styles.input, styles.bioInput, { color: bloomTheme.colors.text }]}
215
- value={bio}
216
- onChangeText={setBio}
217
- placeholder="Tell people about this identity"
218
- placeholderTextColor={bloomTheme.colors.text + '40'}
219
- maxLength={160}
220
- multiline
221
- numberOfLines={3}
222
- textAlignVertical="top"
210
+ maxLength={DISPLAY_NAME_MAX}
223
211
  />
212
+ </TextField>
213
+
214
+ {/* Bio */}
215
+ <View className="gap-space-4">
216
+ <TextField>
217
+ <TextFieldInput
218
+ floatingLabel
219
+ label="Bio (optional)"
220
+ value={bio}
221
+ onChangeText={setBio}
222
+ maxLength={BIO_MAX}
223
+ multiline
224
+ numberOfLines={3}
225
+ textAlignVertical="top"
226
+ />
227
+ </TextField>
228
+ <Text className="text-caption font-caption text-text-tertiary px-space-4 text-right">
229
+ {bio.length}/{BIO_MAX}
230
+ </Text>
224
231
  </View>
225
- <Text style={[styles.charCount, { color: bloomTheme.colors.text + '60' }]}>
226
- {bio.length}/160
227
- </Text>
228
232
  </View>
229
233
 
230
234
  {/* Create Button */}
231
- <TouchableOpacity
232
- style={[
233
- styles.createButton,
234
- { backgroundColor: bloomTheme.colors.primary },
235
- !canCreate && styles.createButtonDisabled,
236
- ]}
235
+ <Button
236
+ variant="primary"
237
237
  onPress={handleCreate}
238
238
  disabled={!canCreate}
239
- activeOpacity={0.7}
239
+ loading={isCreating}
240
+ accessibilityLabel="Create Identity"
241
+ className="w-full"
240
242
  >
241
- {isCreating ? (
242
- <ActivityIndicator size="small" color={bloomTheme.colors.negativeForeground} />
243
- ) : (
244
- <Text style={[styles.createButtonText, { color: bloomTheme.colors.negativeForeground }]}>Create Identity</Text>
245
- )}
246
- </TouchableOpacity>
243
+ Create Identity
244
+ </Button>
247
245
  </ScrollView>
248
246
  </KeyboardAvoidingView>
249
247
  </View>
250
248
  );
251
249
  };
252
250
 
253
- const styles = StyleSheet.create({
254
- container: {
255
- flex: 1,
256
- },
257
- flex: {
258
- flex: 1,
259
- },
260
- description: {
261
- fontSize: 15,
262
- lineHeight: 22,
263
- marginBottom: 24,
264
- },
265
- fieldGroup: {
266
- marginBottom: 20,
267
- },
268
- label: {
269
- fontSize: 14,
270
- fontWeight: Platform.OS === 'web' ? '600' : undefined,
271
- marginBottom: 8,
272
- },
273
- inputContainer: {
274
- flexDirection: 'row',
275
- alignItems: 'center',
276
- borderWidth: 1,
277
- borderRadius: 12,
278
- paddingHorizontal: 14,
279
- height: 48,
280
- },
281
- inputPrefix: {
282
- fontSize: 16,
283
- marginRight: 2,
284
- },
285
- input: {
286
- flex: 1,
287
- fontSize: 16,
288
- paddingVertical: 0,
289
- },
290
- bioContainer: {
291
- height: 88,
292
- alignItems: 'flex-start',
293
- paddingVertical: 12,
294
- },
295
- bioInput: {
296
- height: 64,
297
- },
298
- statusIcon: {
299
- fontSize: 13,
300
- fontWeight: Platform.OS === 'web' ? '600' : undefined,
301
- },
302
- statusMessage: {
303
- fontSize: 13,
304
- marginTop: 6,
305
- },
306
- charCount: {
307
- fontSize: 12,
308
- textAlign: 'right',
309
- marginTop: 4,
310
- },
311
- createButton: {
312
- height: 50,
313
- borderRadius: 25,
314
- alignItems: 'center',
315
- justifyContent: 'center',
316
- marginTop: 12,
317
- },
318
- createButtonDisabled: {
319
- opacity: 0.5,
320
- },
321
- createButtonText: {
322
- fontSize: 16,
323
- fontWeight: Platform.OS === 'web' ? '600' : undefined,
324
- },
325
- });
326
-
327
251
  export default CreateManagedAccountScreen;