@oxyhq/services 22.8.7 → 22.10.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 (502) hide show
  1. package/lib/commonjs/index.js +24 -5
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +150 -0
  4. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -0
  5. package/lib/commonjs/ui/components/OxyAuthChooser.js +137 -40
  6. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  7. package/lib/commonjs/ui/components/OxyConsentScreen.js +1 -1
  8. package/lib/commonjs/ui/components/OxyProvider.js +9 -29
  9. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  10. package/lib/commonjs/ui/components/ProfileButton.js +1 -1
  11. package/lib/commonjs/ui/components/RequireOxyAuth.js +1 -1
  12. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +63 -0
  13. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -0
  14. package/lib/commonjs/ui/components/SurfaceScreen.js +193 -0
  15. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -0
  16. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +46 -29
  17. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  18. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +47 -23
  19. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  20. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +22 -12
  21. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
  22. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +83 -0
  23. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  24. package/lib/commonjs/ui/context/OxyContext.js +49 -4
  25. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  26. package/lib/commonjs/ui/hooks/useAvatarPicker.js +34 -39
  27. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  28. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +46 -0
  29. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -0
  30. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +1 -1
  31. package/lib/commonjs/ui/navigation/accountDialogManager.js +14 -2
  32. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  33. package/lib/commonjs/ui/navigation/bottomSheetManager.js +38 -56
  34. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  35. package/lib/commonjs/ui/navigation/routes.js +7 -57
  36. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  37. package/lib/commonjs/ui/navigation/surfaceBackBridge.js +68 -0
  38. package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -0
  39. package/lib/commonjs/ui/navigation/surfaceNavStack.js +98 -0
  40. package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -0
  41. package/lib/commonjs/ui/navigation/surfaceRegistry.js +152 -0
  42. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -0
  43. package/lib/commonjs/ui/navigation/surfaces.js +256 -0
  44. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -0
  45. package/lib/commonjs/ui/screens/AccountMembersScreen.js +214 -283
  46. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +88 -118
  48. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +22 -36
  50. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/AppInfoScreen.js +219 -226
  52. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -14
  54. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +24 -39
  56. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/CreateAccountScreen.js +136 -158
  58. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +29 -36
  60. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/EditProfileScreen.js +101 -109
  62. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/FAQScreen.js +10 -15
  64. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/FeedbackScreen.js +8 -16
  66. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/FileManagementScreen.js +219 -206
  68. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/HelpSupportScreen.js +62 -69
  70. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/HistoryViewScreen.js +63 -79
  72. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +69 -98
  74. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +8 -14
  76. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +77 -94
  78. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/ManageAccountScreen.js +99 -134
  80. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/NotificationsScreen.js +69 -76
  82. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -8
  84. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/PreferencesScreen.js +67 -74
  86. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +55 -91
  88. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +291 -304
  90. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/ProfileScreen.js +100 -114
  92. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +38 -45
  94. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +44 -57
  96. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/UserLinksScreen.js +24 -31
  98. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  99. package/lib/commonjs/ui/screens/UserListScreen.js +14 -24
  100. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  101. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
  102. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +9 -7
  103. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  104. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +66 -75
  105. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +111 -139
  107. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  108. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +13 -20
  109. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  110. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +14 -27
  111. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  112. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +68 -85
  113. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  114. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +28 -36
  115. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  116. package/lib/commonjs/ui/types/surfaceScreen.js +6 -0
  117. package/lib/commonjs/ui/types/surfaceScreen.js.map +1 -0
  118. package/lib/module/index.js +12 -5
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/module/ui/components/OxyAccountDialogScreen.js +145 -0
  121. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
  122. package/lib/module/ui/components/OxyAuthChooser.js +137 -40
  123. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  124. package/lib/module/ui/components/OxyConsentScreen.js +1 -1
  125. package/lib/module/ui/components/OxyProvider.js +10 -30
  126. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  127. package/lib/module/ui/components/ProfileButton.js +1 -1
  128. package/lib/module/ui/components/RequireOxyAuth.js +1 -1
  129. package/lib/module/ui/components/SurfaceHeaderAction.js +58 -0
  130. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -0
  131. package/lib/module/ui/components/SurfaceScreen.js +188 -0
  132. package/lib/module/ui/components/SurfaceScreen.js.map +1 -0
  133. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +46 -29
  134. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  135. package/lib/module/ui/components/modals/DeleteAccountModal.js +46 -23
  136. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  137. package/lib/module/ui/components/oxyAuthChooserStyles.js +22 -12
  138. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
  139. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +78 -0
  140. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  141. package/lib/module/ui/context/OxyContext.js +49 -4
  142. package/lib/module/ui/context/OxyContext.js.map +1 -1
  143. package/lib/module/ui/hooks/useAvatarPicker.js +34 -39
  144. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  145. package/lib/module/ui/hooks/useSurfaceHeader.js +42 -0
  146. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -0
  147. package/lib/module/ui/hooks/useSwitchableAccounts.js +1 -1
  148. package/lib/module/ui/navigation/accountDialogManager.js +14 -2
  149. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  150. package/lib/module/ui/navigation/bottomSheetManager.js +37 -53
  151. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  152. package/lib/module/ui/navigation/routes.js +6 -56
  153. package/lib/module/ui/navigation/routes.js.map +1 -1
  154. package/lib/module/ui/navigation/surfaceBackBridge.js +63 -0
  155. package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -0
  156. package/lib/module/ui/navigation/surfaceNavStack.js +95 -0
  157. package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -0
  158. package/lib/module/ui/navigation/surfaceRegistry.js +146 -0
  159. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -0
  160. package/lib/module/ui/navigation/surfaces.js +244 -0
  161. package/lib/module/ui/navigation/surfaces.js.map +1 -0
  162. package/lib/module/ui/screens/AccountMembersScreen.js +218 -286
  163. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  164. package/lib/module/ui/screens/AccountSettingsScreen.js +92 -121
  165. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  166. package/lib/module/ui/screens/AccountVerificationScreen.js +25 -38
  167. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  168. package/lib/module/ui/screens/AppInfoScreen.js +220 -227
  169. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  170. package/lib/module/ui/screens/AvatarCropScreen.js +10 -14
  171. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  172. package/lib/module/ui/screens/ConnectedAppsScreen.js +26 -40
  173. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  174. package/lib/module/ui/screens/CreateAccountScreen.js +139 -160
  175. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  176. package/lib/module/ui/screens/EditProfileFieldScreen.js +32 -38
  177. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  178. package/lib/module/ui/screens/EditProfileScreen.js +102 -110
  179. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  180. package/lib/module/ui/screens/FAQScreen.js +11 -15
  181. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  182. package/lib/module/ui/screens/FeedbackScreen.js +10 -17
  183. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  184. package/lib/module/ui/screens/FileManagementScreen.js +222 -208
  185. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  186. package/lib/module/ui/screens/HelpSupportScreen.js +64 -70
  187. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  188. package/lib/module/ui/screens/HistoryViewScreen.js +65 -81
  189. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  190. package/lib/module/ui/screens/LanguageSelectorScreen.js +71 -99
  191. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  192. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +10 -15
  193. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  194. package/lib/module/ui/screens/LegalDocumentsScreen.js +78 -94
  195. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  196. package/lib/module/ui/screens/ManageAccountScreen.js +102 -137
  197. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  198. package/lib/module/ui/screens/NotificationsScreen.js +71 -77
  199. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  200. package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -9
  201. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  202. package/lib/module/ui/screens/PreferencesScreen.js +69 -75
  203. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  204. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +58 -93
  205. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  206. package/lib/module/ui/screens/PrivacySettingsScreen.js +293 -305
  207. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  208. package/lib/module/ui/screens/ProfileScreen.js +102 -116
  209. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  210. package/lib/module/ui/screens/SavesCollectionsScreen.js +40 -46
  211. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  212. package/lib/module/ui/screens/SearchSettingsScreen.js +46 -58
  213. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  214. package/lib/module/ui/screens/UserLinksScreen.js +26 -32
  215. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  216. package/lib/module/ui/screens/UserListScreen.js +14 -24
  217. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  218. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
  219. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +8 -7
  220. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  221. package/lib/module/ui/screens/trust/TrustAboutScreen.js +67 -75
  222. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  223. package/lib/module/ui/screens/trust/TrustCenterScreen.js +112 -139
  224. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  225. package/lib/module/ui/screens/trust/TrustFAQScreen.js +15 -21
  226. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  227. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +14 -26
  228. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  229. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +69 -85
  230. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  231. package/lib/module/ui/screens/trust/TrustRulesScreen.js +30 -37
  232. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  233. package/lib/module/ui/types/surfaceScreen.js +4 -0
  234. package/lib/module/ui/types/surfaceScreen.js.map +1 -0
  235. package/lib/typescript/commonjs/index.d.ts +2 -0
  236. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +39 -0
  238. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  239. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -3
  240. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.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/ProfileButton.d.ts +2 -2
  244. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +1 -1
  245. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +16 -0
  246. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +26 -0
  248. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  250. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  252. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +19 -9
  254. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  256. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  257. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +7 -11
  259. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +31 -0
  261. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  262. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  263. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +14 -2
  264. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +24 -16
  266. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +2 -60
  268. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts +16 -0
  270. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  271. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +51 -0
  272. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -0
  273. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +135 -0
  274. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +79 -0
  276. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +0 -4
  282. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  291. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  296. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/ui/types/navigation.d.ts +8 -0
  315. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/ui/types/surfaceScreen.d.ts +38 -0
  317. package/lib/typescript/commonjs/ui/types/surfaceScreen.d.ts.map +1 -0
  318. package/lib/typescript/module/index.d.ts +2 -0
  319. package/lib/typescript/module/index.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +39 -0
  321. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  322. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -3
  323. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  324. package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
  325. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/components/ProfileButton.d.ts +2 -2
  327. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +1 -1
  328. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +16 -0
  329. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  330. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +26 -0
  331. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -0
  332. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  333. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  335. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +19 -9
  337. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  338. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  339. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  340. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +7 -11
  342. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +31 -0
  344. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  345. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  346. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +14 -2
  347. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +24 -16
  349. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  350. package/lib/typescript/module/ui/navigation/routes.d.ts +2 -60
  351. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  352. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts +16 -0
  353. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  354. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +51 -0
  355. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -0
  356. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +135 -0
  357. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -0
  358. package/lib/typescript/module/ui/navigation/surfaces.d.ts +79 -0
  359. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -0
  360. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  361. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  362. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  363. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  364. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +0 -4
  365. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  366. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  367. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  368. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  369. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  370. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  371. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  372. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  373. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  374. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  375. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  376. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  377. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  378. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  379. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  380. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  381. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  382. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  383. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  384. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  385. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  386. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  387. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  388. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  389. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  390. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  391. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  392. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  393. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  394. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  395. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  396. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  397. package/lib/typescript/module/ui/types/navigation.d.ts +8 -0
  398. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  399. package/lib/typescript/module/ui/types/surfaceScreen.d.ts +38 -0
  400. package/lib/typescript/module/ui/types/surfaceScreen.d.ts.map +1 -0
  401. package/package.json +2 -2
  402. package/src/index.ts +12 -5
  403. package/src/ui/components/OxyAccountDialogScreen.tsx +148 -0
  404. package/src/ui/components/OxyAuthChooser.tsx +153 -33
  405. package/src/ui/components/OxyConsentScreen.tsx +1 -1
  406. package/src/ui/components/OxyProvider.tsx +12 -34
  407. package/src/ui/components/ProfileButton.tsx +2 -2
  408. package/src/ui/components/RequireOxyAuth.tsx +1 -1
  409. package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
  410. package/src/ui/components/SurfaceScreen.tsx +226 -0
  411. package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
  412. package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
  413. package/src/ui/components/oxyAuthChooserStyles.ts +22 -12
  414. package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
  415. package/src/ui/context/OxyContext.tsx +43 -3
  416. package/src/ui/hooks/useAvatarPicker.ts +53 -66
  417. package/src/ui/hooks/useSurfaceHeader.ts +56 -0
  418. package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
  419. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +39 -0
  420. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +68 -0
  421. package/src/ui/navigation/accountDialogManager.ts +14 -2
  422. package/src/ui/navigation/bottomSheetManager.ts +46 -73
  423. package/src/ui/navigation/routes.ts +7 -106
  424. package/src/ui/navigation/surfaceBackBridge.ts +69 -0
  425. package/src/ui/navigation/surfaceNavStack.ts +110 -0
  426. package/src/ui/navigation/surfaceRegistry.ts +240 -0
  427. package/src/ui/navigation/surfaces.ts +272 -0
  428. package/src/ui/screens/AccountMembersScreen.tsx +39 -100
  429. package/src/ui/screens/AccountSettingsScreen.tsx +32 -54
  430. package/src/ui/screens/AccountVerificationScreen.tsx +23 -51
  431. package/src/ui/screens/AppInfoScreen.tsx +6 -13
  432. package/src/ui/screens/AvatarCropScreen.tsx +8 -17
  433. package/src/ui/screens/ConnectedAppsScreen.tsx +39 -60
  434. package/src/ui/screens/CreateAccountScreen.tsx +13 -39
  435. package/src/ui/screens/EditProfileFieldScreen.tsx +30 -48
  436. package/src/ui/screens/EditProfileScreen.tsx +7 -16
  437. package/src/ui/screens/FAQScreen.tsx +9 -13
  438. package/src/ui/screens/FeedbackScreen.tsx +8 -22
  439. package/src/ui/screens/FileManagementScreen.tsx +191 -188
  440. package/src/ui/screens/HelpSupportScreen.tsx +7 -13
  441. package/src/ui/screens/HistoryViewScreen.tsx +26 -31
  442. package/src/ui/screens/LanguageSelectorScreen.tsx +12 -46
  443. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +8 -16
  444. package/src/ui/screens/LegalDocumentsScreen.tsx +7 -22
  445. package/src/ui/screens/ManageAccountScreen.tsx +96 -165
  446. package/src/ui/screens/NotificationsScreen.tsx +7 -13
  447. package/src/ui/screens/PaymentGatewayScreen.tsx +3 -10
  448. package/src/ui/screens/PreferencesScreen.tsx +7 -13
  449. package/src/ui/screens/PremiumSubscriptionScreen.tsx +52 -90
  450. package/src/ui/screens/PrivacySettingsScreen.tsx +9 -21
  451. package/src/ui/screens/ProfileScreen.tsx +9 -11
  452. package/src/ui/screens/SavesCollectionsScreen.tsx +7 -13
  453. package/src/ui/screens/SearchSettingsScreen.tsx +9 -21
  454. package/src/ui/screens/UserLinksScreen.tsx +7 -14
  455. package/src/ui/screens/UserListScreen.tsx +2 -5
  456. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +1 -1
  457. package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +9 -7
  458. package/src/ui/screens/trust/TrustAboutScreen.tsx +10 -17
  459. package/src/ui/screens/trust/TrustCenterScreen.tsx +9 -28
  460. package/src/ui/screens/trust/TrustFAQScreen.tsx +15 -18
  461. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +3 -5
  462. package/src/ui/screens/trust/TrustRewardsScreen.tsx +11 -26
  463. package/src/ui/screens/trust/TrustRulesScreen.tsx +10 -13
  464. package/src/ui/types/navigation.ts +8 -0
  465. package/src/ui/types/surfaceScreen.ts +38 -0
  466. package/lib/commonjs/ui/components/BottomSheet.js +0 -49
  467. package/lib/commonjs/ui/components/BottomSheet.js.map +0 -1
  468. package/lib/commonjs/ui/components/BottomSheetRouter.js +0 -298
  469. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +0 -1
  470. package/lib/commonjs/ui/components/Header.js +0 -305
  471. package/lib/commonjs/ui/components/Header.js.map +0 -1
  472. package/lib/commonjs/ui/components/OxyAccountDialog.js +0 -259
  473. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +0 -1
  474. package/lib/module/ui/components/BottomSheet.js +0 -45
  475. package/lib/module/ui/components/BottomSheet.js.map +0 -1
  476. package/lib/module/ui/components/BottomSheetRouter.js +0 -292
  477. package/lib/module/ui/components/BottomSheetRouter.js.map +0 -1
  478. package/lib/module/ui/components/Header.js +0 -299
  479. package/lib/module/ui/components/Header.js.map +0 -1
  480. package/lib/module/ui/components/OxyAccountDialog.js +0 -254
  481. package/lib/module/ui/components/OxyAccountDialog.js.map +0 -1
  482. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts +0 -29
  483. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts.map +0 -1
  484. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts +0 -9
  485. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +0 -1
  486. package/lib/typescript/commonjs/ui/components/Header.d.ts +0 -33
  487. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +0 -1
  488. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +0 -37
  489. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +0 -1
  490. package/lib/typescript/module/ui/components/BottomSheet.d.ts +0 -29
  491. package/lib/typescript/module/ui/components/BottomSheet.d.ts.map +0 -1
  492. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts +0 -9
  493. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +0 -1
  494. package/lib/typescript/module/ui/components/Header.d.ts +0 -33
  495. package/lib/typescript/module/ui/components/Header.d.ts.map +0 -1
  496. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +0 -37
  497. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +0 -1
  498. package/src/ui/components/BottomSheet.tsx +0 -48
  499. package/src/ui/components/BottomSheetRouter.tsx +0 -310
  500. package/src/ui/components/Header.tsx +0 -224
  501. package/src/ui/components/OxyAccountDialog.tsx +0 -243
  502. package/src/ui/navigation/__tests__/getSheetConfig.test.ts +0 -36
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useMemo, useState } from 'react';
4
- import { View, ScrollView, TouchableOpacity, ActivityIndicator, Platform, KeyboardAvoidingView } from 'react-native';
4
+ import { View, TouchableOpacity, ActivityIndicator } from 'react-native';
5
5
  import { Ionicons } from '@expo/vector-icons';
6
6
  import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
7
- import { toast, Dialog, useDialogControl } from '@oxyhq/bloom';
7
+ import { toast } from '@oxyhq/bloom';
8
+ import { surfaces } from '@oxyhq/bloom/surfaces';
8
9
  import { useTheme } from '@oxyhq/bloom/theme';
9
- import { H1, Text } from '@oxyhq/bloom/typography';
10
+ import { Text } from '@oxyhq/bloom/typography';
10
11
  import { Button } from '@oxyhq/bloom/button';
11
12
  import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
12
13
  import { Divider } from '@oxyhq/bloom/divider';
13
- import { logger as loggerUtil } from '@oxyhq/core';
14
- import Header from "../components/Header.js";
15
14
  import { useOxy } from "../context/OxyContext.js";
16
15
  import { useI18n } from "../hooks/useI18n.js";
16
+ import { useSurfaceHeader } from "../hooks/useSurfaceHeader.js";
17
17
 
18
18
  /** Roles assignable via invite / role change — everything except `owner`. */
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
20
20
  const ASSIGNABLE_ROLES = ['admin', 'editor', 'developer', 'billing', 'viewer'];
21
21
  const errorMessage = (error, fallback) => error instanceof Error && error.message ? error.message : fallback;
22
22
  const isUserNotFound = error => {
@@ -39,6 +39,10 @@ const AccountMembersScreen = ({
39
39
  const {
40
40
  t
41
41
  } = useI18n();
42
+ useSurfaceHeader({
43
+ title: t('accounts.members.title') || 'Members',
44
+ subtitle: t('accounts.members.subtitle') || 'People with access to this account.'
45
+ });
42
46
  const {
43
47
  oxyServices,
44
48
  canUsePrivateApi
@@ -141,10 +145,6 @@ const AccountMembersScreen = ({
141
145
  toast.error(errorMessage(error, t('accounts.members.toasts.transferFailed') || 'Failed to transfer ownership'));
142
146
  }
143
147
  });
144
- const [memberToRemove, setMemberToRemove] = useState(null);
145
- const [memberToPromote, setMemberToPromote] = useState(null);
146
- const removeDialog = useDialogControl();
147
- const transferDialog = useDialogControl();
148
148
  const handleInvite = useCallback(() => {
149
149
  const usernameOrEmail = inviteIdentifier.trim();
150
150
  if (!usernameOrEmail) {
@@ -166,298 +166,230 @@ const AccountMembersScreen = ({
166
166
  role
167
167
  });
168
168
  }, [updateMutation]);
169
- const confirmRemove = useCallback(member => {
170
- setMemberToRemove(member);
171
- removeDialog.open();
172
- }, [removeDialog]);
173
- const confirmTransfer = useCallback(member => {
174
- setMemberToPromote(member);
175
- transferDialog.open();
176
- }, [transferDialog]);
177
- const title = t('accounts.members.title') || 'Members';
169
+ const confirmRemove = useCallback(async member => {
170
+ const confirmed = await surfaces.confirm({
171
+ title: t('accounts.members.removeConfirm.title') || 'Remove member',
172
+ message: t('accounts.members.removeConfirm.description') || 'Remove this member from the account? They will lose all access.',
173
+ confirmLabel: t('accounts.members.actions.remove') || 'Remove',
174
+ cancelLabel: t('common.cancel') || 'Cancel',
175
+ destructive: true
176
+ });
177
+ if (confirmed) removeMutation.mutate(member._id);
178
+ }, [removeMutation, t]);
179
+ const confirmTransfer = useCallback(async member => {
180
+ const confirmed = await surfaces.confirm({
181
+ title: t('accounts.members.transferConfirm.title') || 'Transfer ownership',
182
+ message: t('accounts.members.transferConfirm.description') || 'Transfer ownership of this account to this member? You will be demoted to admin. This cannot be undone.',
183
+ confirmLabel: t('accounts.members.actions.transfer') || 'Transfer ownership',
184
+ cancelLabel: t('common.cancel') || 'Cancel',
185
+ destructive: true
186
+ });
187
+ if (confirmed) transferMutation.mutate(member.memberUserId);
188
+ }, [transferMutation, t]);
178
189
  if (!id) {
179
- return /*#__PURE__*/_jsxs(View, {
180
- className: "flex-1 bg-bg",
181
- children: [/*#__PURE__*/_jsx(Header, {
182
- title: title,
183
- onBack: goBack,
184
- onClose: onClose,
185
- showBackButton: true,
186
- showCloseButton: true,
187
- elevation: "subtle"
188
- }), /*#__PURE__*/_jsx(View, {
189
- className: "flex-1 items-center justify-center px-screen-margin",
190
+ return /*#__PURE__*/_jsx(_Fragment, {
191
+ children: /*#__PURE__*/_jsx(View, {
192
+ className: "items-center justify-center px-screen-margin py-space-40",
190
193
  children: /*#__PURE__*/_jsx(Text, {
191
194
  className: "text-body font-body text-text-secondary text-center",
192
195
  children: t('accounts.members.errors.missingAccount') || 'No account selected.'
193
196
  })
194
- })]
197
+ })
195
198
  });
196
199
  }
197
200
  return /*#__PURE__*/_jsxs(View, {
198
- className: "flex-1 bg-bg",
199
- children: [/*#__PURE__*/_jsx(Header, {
200
- title: title,
201
- onBack: goBack,
202
- onClose: onClose,
203
- showBackButton: true,
204
- showCloseButton: true,
205
- elevation: "subtle"
206
- }), /*#__PURE__*/_jsx(KeyboardAvoidingView, {
207
- className: "flex-1",
208
- behavior: Platform.OS === 'ios' ? 'padding' : undefined,
209
- keyboardVerticalOffset: Platform.OS === 'ios' ? 88 : 0,
210
- children: /*#__PURE__*/_jsxs(ScrollView, {
211
- className: "flex-1",
212
- contentContainerClassName: "px-screen-margin pt-space-24 pb-space-32 gap-space-24",
213
- showsVerticalScrollIndicator: false,
214
- keyboardShouldPersistTaps: "handled",
215
- children: [/*#__PURE__*/_jsxs(View, {
216
- className: "gap-space-8",
217
- children: [/*#__PURE__*/_jsx(H1, {
218
- className: "text-headerBold font-headerBold text-text",
219
- children: title
220
- }), /*#__PURE__*/_jsx(Text, {
221
- className: "text-body font-body text-text-secondary",
222
- children: t('accounts.members.subtitle') || 'People with access to this account.'
223
- })]
224
- }), !accountQuery.isLoading && !canRead ? /*#__PURE__*/_jsx(Text, {
225
- className: "text-body font-body text-text-secondary text-center py-space-24",
226
- children: t('accounts.members.errors.noPermission') || 'You do not have permission to view members.'
227
- }) : null, canInvite ? /*#__PURE__*/_jsxs(View, {
228
- className: "gap-space-12 p-space-16 rounded-radius-20 bg-fill",
229
- children: [/*#__PURE__*/_jsx(Text, {
230
- className: "text-body font-bodyBold text-text",
231
- children: t('accounts.members.invite.title') || 'Add a member'
232
- }), /*#__PURE__*/_jsx(TextField, {
233
- isInvalid: !!inviteError,
234
- children: /*#__PURE__*/_jsx(TextFieldInput, {
235
- floatingLabel: true,
236
- label: t('accounts.members.invite.identifierLabel') || 'Username or email',
237
- value: inviteIdentifier,
238
- onChangeText: value => {
239
- setInviteIdentifier(value);
240
- if (inviteError) setInviteError(null);
241
- },
242
- isInvalid: !!inviteError,
243
- autoCapitalize: "none",
244
- autoCorrect: false,
245
- autoComplete: "off"
246
- })
247
- }), inviteError ? /*#__PURE__*/_jsx(Text, {
248
- className: "text-caption font-caption px-space-4",
201
+ className: "px-screen-margin pt-space-16 pb-space-32 gap-space-24",
202
+ children: [!accountQuery.isLoading && !canRead ? /*#__PURE__*/_jsx(Text, {
203
+ className: "text-body font-body text-text-secondary text-center py-space-24",
204
+ children: t('accounts.members.errors.noPermission') || 'You do not have permission to view members.'
205
+ }) : null, canInvite ? /*#__PURE__*/_jsxs(View, {
206
+ className: "gap-space-12 p-space-16 rounded-radius-20 bg-fill",
207
+ children: [/*#__PURE__*/_jsx(Text, {
208
+ className: "text-body font-bodyBold text-text",
209
+ children: t('accounts.members.invite.title') || 'Add a member'
210
+ }), /*#__PURE__*/_jsx(TextField, {
211
+ isInvalid: !!inviteError,
212
+ children: /*#__PURE__*/_jsx(TextFieldInput, {
213
+ floatingLabel: true,
214
+ label: t('accounts.members.invite.identifierLabel') || 'Username or email',
215
+ value: inviteIdentifier,
216
+ onChangeText: value => {
217
+ setInviteIdentifier(value);
218
+ if (inviteError) setInviteError(null);
219
+ },
220
+ isInvalid: !!inviteError,
221
+ autoCapitalize: "none",
222
+ autoCorrect: false,
223
+ autoComplete: "off"
224
+ })
225
+ }), inviteError ? /*#__PURE__*/_jsx(Text, {
226
+ className: "text-caption font-caption px-space-4",
227
+ style: {
228
+ color: colors.negative
229
+ },
230
+ children: inviteError
231
+ }) : null, /*#__PURE__*/_jsx(Text, {
232
+ className: "text-caption font-caption text-text-secondary px-space-4",
233
+ children: t('accounts.members.invite.roleLabel') || 'Role'
234
+ }), /*#__PURE__*/_jsx(View, {
235
+ className: "flex-row flex-wrap gap-space-8",
236
+ children: ASSIGNABLE_ROLES.map(role => {
237
+ const selected = role === inviteRole;
238
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
239
+ accessibilityRole: "radio",
240
+ accessibilityState: {
241
+ selected
242
+ },
243
+ accessibilityLabel: roleLabel(role),
244
+ onPress: () => setInviteRole(role),
245
+ activeOpacity: 0.7,
246
+ className: "px-space-12 py-space-8 rounded-radius-full",
249
247
  style: {
250
- color: colors.negative
248
+ backgroundColor: selected ? colors.primary : colors.card,
249
+ borderWidth: 1,
250
+ borderColor: selected ? colors.primary : colors.border
251
251
  },
252
- children: inviteError
253
- }) : null, /*#__PURE__*/_jsx(Text, {
254
- className: "text-caption font-caption text-text-secondary px-space-4",
255
- children: t('accounts.members.invite.roleLabel') || 'Role'
256
- }), /*#__PURE__*/_jsx(View, {
257
- className: "flex-row flex-wrap gap-space-8",
258
- children: ASSIGNABLE_ROLES.map(role => {
259
- const selected = role === inviteRole;
260
- return /*#__PURE__*/_jsx(TouchableOpacity, {
261
- accessibilityRole: "radio",
262
- accessibilityState: {
263
- selected
264
- },
265
- accessibilityLabel: roleLabel(role),
266
- onPress: () => setInviteRole(role),
267
- activeOpacity: 0.7,
268
- className: "px-space-12 py-space-8 rounded-radius-full",
269
- style: {
270
- backgroundColor: selected ? colors.primary : colors.card,
271
- borderWidth: 1,
272
- borderColor: selected ? colors.primary : colors.border
273
- },
274
- children: /*#__PURE__*/_jsx(Text, {
275
- className: "text-caption font-bodyBold",
252
+ children: /*#__PURE__*/_jsx(Text, {
253
+ className: "text-caption font-bodyBold",
254
+ style: {
255
+ color: selected ? colors.background : colors.text
256
+ },
257
+ children: roleLabel(role)
258
+ })
259
+ }, role);
260
+ })
261
+ }), /*#__PURE__*/_jsx(Button, {
262
+ variant: "primary",
263
+ onPress: handleInvite,
264
+ disabled: inviteMutation.isPending || !inviteIdentifier.trim(),
265
+ loading: inviteMutation.isPending,
266
+ accessibilityLabel: t('accounts.members.invite.submit') || 'Add member',
267
+ className: "w-full",
268
+ children: t('accounts.members.invite.submit') || 'Add member'
269
+ })]
270
+ }) : null, canRead ? /*#__PURE__*/_jsx(View, {
271
+ className: "gap-space-8",
272
+ children: membersQuery.isLoading ? /*#__PURE__*/_jsx(View, {
273
+ className: "items-center py-space-24",
274
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
275
+ color: colors.primary
276
+ })
277
+ }) : members.length === 0 ? /*#__PURE__*/_jsx(Text, {
278
+ className: "text-body font-body text-text-secondary text-center py-space-24",
279
+ children: t('accounts.members.empty') || 'No members yet.'
280
+ }) : /*#__PURE__*/_jsx(View, {
281
+ className: "rounded-radius-20 bg-fill overflow-hidden",
282
+ children: members.map((member, index) => {
283
+ const isOwner = member.role === 'owner';
284
+ const isLastOwner = isOwner && ownerCount <= 1;
285
+ const canEditThisRole = canUpdate && !isOwner;
286
+ const canRemoveThisMember = canRemove && !isLastOwner && (!isOwner || canTransfer);
287
+ const canTransferToThis = canTransfer && !isOwner && member.status === 'active';
288
+ return /*#__PURE__*/_jsxs(View, {
289
+ children: [index > 0 ? /*#__PURE__*/_jsx(Divider, {
290
+ color: colors.border,
291
+ spacing: 0
292
+ }) : null, /*#__PURE__*/_jsxs(View, {
293
+ className: "p-space-16 gap-space-8",
294
+ children: [/*#__PURE__*/_jsxs(View, {
295
+ className: "flex-row items-center gap-space-8",
296
+ children: [/*#__PURE__*/_jsx(Text, {
297
+ className: "text-body font-bodyBold text-text flex-1",
298
+ numberOfLines: 1,
299
+ children: member.memberUserId
300
+ }), isOwner ? /*#__PURE__*/_jsx(View, {
301
+ className: "px-space-8 py-space-4 rounded-radius-full",
276
302
  style: {
277
- color: selected ? colors.background : colors.text
303
+ backgroundColor: colors.primarySubtle
278
304
  },
279
- children: roleLabel(role)
280
- })
281
- }, role);
282
- })
283
- }), /*#__PURE__*/_jsx(Button, {
284
- variant: "primary",
285
- onPress: handleInvite,
286
- disabled: inviteMutation.isPending || !inviteIdentifier.trim(),
287
- loading: inviteMutation.isPending,
288
- accessibilityLabel: t('accounts.members.invite.submit') || 'Add member',
289
- className: "w-full",
290
- children: t('accounts.members.invite.submit') || 'Add member'
291
- })]
292
- }) : null, canRead ? /*#__PURE__*/_jsx(View, {
293
- className: "gap-space-8",
294
- children: membersQuery.isLoading ? /*#__PURE__*/_jsx(View, {
295
- className: "items-center py-space-24",
296
- children: /*#__PURE__*/_jsx(ActivityIndicator, {
297
- color: colors.primary
298
- })
299
- }) : members.length === 0 ? /*#__PURE__*/_jsx(Text, {
300
- className: "text-body font-body text-text-secondary text-center py-space-24",
301
- children: t('accounts.members.empty') || 'No members yet.'
302
- }) : /*#__PURE__*/_jsx(View, {
303
- className: "rounded-radius-20 bg-fill overflow-hidden",
304
- children: members.map((member, index) => {
305
- const isOwner = member.role === 'owner';
306
- const isLastOwner = isOwner && ownerCount <= 1;
307
- const canEditThisRole = canUpdate && !isOwner;
308
- const canRemoveThisMember = canRemove && !isLastOwner && (!isOwner || canTransfer);
309
- const canTransferToThis = canTransfer && !isOwner && member.status === 'active';
310
- return /*#__PURE__*/_jsxs(View, {
311
- children: [index > 0 ? /*#__PURE__*/_jsx(Divider, {
312
- color: colors.border,
313
- spacing: 0
314
- }) : null, /*#__PURE__*/_jsxs(View, {
315
- className: "p-space-16 gap-space-8",
316
- children: [/*#__PURE__*/_jsxs(View, {
317
- className: "flex-row items-center gap-space-8",
318
- children: [/*#__PURE__*/_jsx(Text, {
319
- className: "text-body font-bodyBold text-text flex-1",
320
- numberOfLines: 1,
321
- children: member.memberUserId
322
- }), isOwner ? /*#__PURE__*/_jsx(View, {
323
- className: "px-space-8 py-space-4 rounded-radius-full",
324
- style: {
325
- backgroundColor: colors.primarySubtle
326
- },
327
- children: /*#__PURE__*/_jsx(Text, {
328
- className: "text-caption font-bodyBold",
329
- style: {
330
- color: colors.primary
331
- },
332
- children: roleLabel('owner')
333
- })
334
- }) : null, member.status !== 'active' ? /*#__PURE__*/_jsx(View, {
335
- className: "px-space-8 py-space-4 rounded-radius-full",
305
+ children: /*#__PURE__*/_jsx(Text, {
306
+ className: "text-caption font-bodyBold",
307
+ style: {
308
+ color: colors.primary
309
+ },
310
+ children: roleLabel('owner')
311
+ })
312
+ }) : null, member.status !== 'active' ? /*#__PURE__*/_jsx(View, {
313
+ className: "px-space-8 py-space-4 rounded-radius-full",
314
+ style: {
315
+ backgroundColor: colors.card
316
+ },
317
+ children: /*#__PURE__*/_jsx(Text, {
318
+ className: "text-caption font-caption capitalize text-text-secondary",
319
+ children: member.status
320
+ })
321
+ }) : null]
322
+ }), canEditThisRole ? /*#__PURE__*/_jsx(View, {
323
+ className: "flex-row flex-wrap gap-space-8",
324
+ children: ASSIGNABLE_ROLES.map(role => {
325
+ const selected = role === member.role;
326
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
327
+ accessibilityRole: "radio",
328
+ accessibilityState: {
329
+ selected
330
+ },
331
+ accessibilityLabel: roleLabel(role),
332
+ onPress: () => handleChangeRole(member, role),
333
+ disabled: updateMutation.isPending,
334
+ activeOpacity: 0.7,
335
+ className: "px-space-12 py-space-4 rounded-radius-full",
336
+ style: {
337
+ backgroundColor: selected ? colors.primary : colors.card,
338
+ borderWidth: 1,
339
+ borderColor: selected ? colors.primary : colors.border
340
+ },
341
+ children: /*#__PURE__*/_jsx(Text, {
342
+ className: "text-caption font-bodyBold",
336
343
  style: {
337
- backgroundColor: colors.card
344
+ color: selected ? colors.background : colors.text
338
345
  },
339
- children: /*#__PURE__*/_jsx(Text, {
340
- className: "text-caption font-caption capitalize text-text-secondary",
341
- children: member.status
342
- })
343
- }) : null]
344
- }), canEditThisRole ? /*#__PURE__*/_jsx(View, {
345
- className: "flex-row flex-wrap gap-space-8",
346
- children: ASSIGNABLE_ROLES.map(role => {
347
- const selected = role === member.role;
348
- return /*#__PURE__*/_jsx(TouchableOpacity, {
349
- accessibilityRole: "radio",
350
- accessibilityState: {
351
- selected
352
- },
353
- accessibilityLabel: roleLabel(role),
354
- onPress: () => handleChangeRole(member, role),
355
- disabled: updateMutation.isPending,
356
- activeOpacity: 0.7,
357
- className: "px-space-12 py-space-4 rounded-radius-full",
358
- style: {
359
- backgroundColor: selected ? colors.primary : colors.card,
360
- borderWidth: 1,
361
- borderColor: selected ? colors.primary : colors.border
362
- },
363
- children: /*#__PURE__*/_jsx(Text, {
364
- className: "text-caption font-bodyBold",
365
- style: {
366
- color: selected ? colors.background : colors.text
367
- },
368
- children: roleLabel(role)
369
- })
370
- }, role);
346
+ children: roleLabel(role)
371
347
  })
372
- }) : !isOwner ? /*#__PURE__*/_jsx(Text, {
373
- className: "text-caption font-caption text-text-secondary",
374
- children: roleLabel(member.role)
375
- }) : null, canTransferToThis || canRemoveThisMember ? /*#__PURE__*/_jsxs(View, {
376
- className: "flex-row gap-space-16 pt-space-4",
377
- children: [canTransferToThis ? /*#__PURE__*/_jsxs(TouchableOpacity, {
378
- accessibilityRole: "button",
379
- accessibilityLabel: t('accounts.members.actions.transfer') || 'Transfer ownership',
380
- onPress: () => confirmTransfer(member),
381
- activeOpacity: 0.7,
382
- className: "flex-row items-center gap-space-4",
383
- children: [/*#__PURE__*/_jsx(Ionicons, {
384
- name: "swap-horizontal-outline",
385
- size: 16,
386
- color: colors.icon
387
- }), /*#__PURE__*/_jsx(Text, {
388
- className: "text-caption font-bodyBold text-text-secondary",
389
- children: t('accounts.members.actions.transfer') || 'Transfer ownership'
390
- })]
391
- }) : null, canRemoveThisMember ? /*#__PURE__*/_jsxs(TouchableOpacity, {
392
- accessibilityRole: "button",
393
- accessibilityLabel: t('accounts.members.actions.remove') || 'Remove member',
394
- onPress: () => confirmRemove(member),
395
- activeOpacity: 0.7,
396
- className: "flex-row items-center gap-space-4",
397
- children: [/*#__PURE__*/_jsx(Ionicons, {
398
- name: "trash-outline",
399
- size: 16,
400
- color: colors.error
401
- }), /*#__PURE__*/_jsx(Text, {
402
- className: "text-caption font-bodyBold",
403
- style: {
404
- color: colors.error
405
- },
406
- children: t('accounts.members.actions.remove') || 'Remove'
407
- })]
408
- }) : null]
409
- }) : null]
410
- })]
411
- }, member._id);
412
- })
413
- })
414
- }) : null]
348
+ }, role);
349
+ })
350
+ }) : !isOwner ? /*#__PURE__*/_jsx(Text, {
351
+ className: "text-caption font-caption text-text-secondary",
352
+ children: roleLabel(member.role)
353
+ }) : null, canTransferToThis || canRemoveThisMember ? /*#__PURE__*/_jsxs(View, {
354
+ className: "flex-row gap-space-16 pt-space-4",
355
+ children: [canTransferToThis ? /*#__PURE__*/_jsxs(TouchableOpacity, {
356
+ accessibilityRole: "button",
357
+ accessibilityLabel: t('accounts.members.actions.transfer') || 'Transfer ownership',
358
+ onPress: () => confirmTransfer(member),
359
+ activeOpacity: 0.7,
360
+ className: "flex-row items-center gap-space-4",
361
+ children: [/*#__PURE__*/_jsx(Ionicons, {
362
+ name: "swap-horizontal-outline",
363
+ size: 16,
364
+ color: colors.icon
365
+ }), /*#__PURE__*/_jsx(Text, {
366
+ className: "text-caption font-bodyBold text-text-secondary",
367
+ children: t('accounts.members.actions.transfer') || 'Transfer ownership'
368
+ })]
369
+ }) : null, canRemoveThisMember ? /*#__PURE__*/_jsxs(TouchableOpacity, {
370
+ accessibilityRole: "button",
371
+ accessibilityLabel: t('accounts.members.actions.remove') || 'Remove member',
372
+ onPress: () => confirmRemove(member),
373
+ activeOpacity: 0.7,
374
+ className: "flex-row items-center gap-space-4",
375
+ children: [/*#__PURE__*/_jsx(Ionicons, {
376
+ name: "trash-outline",
377
+ size: 16,
378
+ color: colors.error
379
+ }), /*#__PURE__*/_jsx(Text, {
380
+ className: "text-caption font-bodyBold",
381
+ style: {
382
+ color: colors.error
383
+ },
384
+ children: t('accounts.members.actions.remove') || 'Remove'
385
+ })]
386
+ }) : null]
387
+ }) : null]
388
+ })]
389
+ }, member._id);
390
+ })
415
391
  })
416
- }), /*#__PURE__*/_jsx(Dialog, {
417
- control: removeDialog,
418
- title: t('accounts.members.removeConfirm.title') || 'Remove member',
419
- description: t('accounts.members.removeConfirm.description') || 'Remove this member from the account? They will lose all access.',
420
- actions: [{
421
- label: t('accounts.members.actions.remove') || 'Remove',
422
- color: 'destructive',
423
- onPress: () => {
424
- const target = memberToRemove;
425
- setMemberToRemove(null);
426
- if (target) {
427
- removeMutation.mutate(target._id);
428
- } else {
429
- loggerUtil.debug('Remove confirmed with no pending member', {
430
- component: 'AccountMembersScreen'
431
- });
432
- }
433
- }
434
- }, {
435
- label: t('common.cancel') || 'Cancel',
436
- color: 'cancel'
437
- }]
438
- }), /*#__PURE__*/_jsx(Dialog, {
439
- control: transferDialog,
440
- title: t('accounts.members.transferConfirm.title') || 'Transfer ownership',
441
- description: t('accounts.members.transferConfirm.description') || 'Transfer ownership of this account to this member? You will be demoted to admin. This cannot be undone.',
442
- actions: [{
443
- label: t('accounts.members.actions.transfer') || 'Transfer ownership',
444
- color: 'destructive',
445
- onPress: () => {
446
- const target = memberToPromote;
447
- setMemberToPromote(null);
448
- if (target) {
449
- transferMutation.mutate(target.memberUserId);
450
- } else {
451
- loggerUtil.debug('Transfer confirmed with no pending member', {
452
- component: 'AccountMembersScreen'
453
- });
454
- }
455
- }
456
- }, {
457
- label: t('common.cancel') || 'Cancel',
458
- color: 'cancel'
459
- }]
460
- })]
392
+ }) : null]
461
393
  });
462
394
  };
463
395
  export default AccountMembersScreen;