@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
@@ -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;