@oxy.so/services 11.13.0 → 11.15.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 (856) hide show
  1. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +9 -9
  4. package/lib/commonjs/assets/assets/one/README.md +8 -0
  5. package/lib/commonjs/assets/assets/one/floral.jpg +0 -0
  6. package/lib/commonjs/assets/assets/one/floral.jpg.d.ts +2 -0
  7. package/lib/commonjs/assets/assets/one/floral.mp4 +0 -0
  8. package/lib/commonjs/assets/assets/one/floral.mp4.d.ts +2 -0
  9. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  10. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  11. package/lib/commonjs/assets/fonts/icons/manifest.json +9 -9
  12. package/lib/commonjs/assets/one/README.md +8 -0
  13. package/lib/commonjs/assets/one/floral.jpg +0 -0
  14. package/lib/commonjs/assets/one/floral.mp4 +0 -0
  15. package/lib/commonjs/index.js +3 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/ui/client.js.map +1 -1
  18. package/lib/commonjs/ui/components/AccountInvitationAcceptance.js +2 -2
  19. package/lib/commonjs/ui/components/AccountInvitationAcceptance.js.map +1 -1
  20. package/lib/commonjs/ui/components/BloomLocaleBridge.js +2 -2
  21. package/lib/commonjs/ui/components/BloomLocaleBridge.js.map +1 -1
  22. package/lib/commonjs/ui/components/FollowButton.js +2 -2
  23. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  24. package/lib/commonjs/ui/components/LanguageBridge.js +2 -2
  25. package/lib/commonjs/ui/components/LanguageBridge.js.map +1 -1
  26. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +5 -18
  27. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  28. package/lib/commonjs/ui/components/OxyAuthChooser.js +30 -25
  29. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  30. package/lib/commonjs/ui/components/OxyConsentScreen.js +6 -30
  31. package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
  32. package/lib/commonjs/ui/components/OxyOAuthCallback.js +2 -1
  33. package/lib/commonjs/ui/components/OxyOAuthCallback.js.map +1 -1
  34. package/lib/commonjs/ui/components/OxyProvider.js +36 -6
  35. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  36. package/lib/commonjs/ui/components/OxySignInButton.js +2 -2
  37. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  38. package/lib/commonjs/ui/components/ProfileButton.js +7 -5
  39. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  40. package/lib/commonjs/ui/components/ProfileSummaryCard.js +24 -57
  41. package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
  42. package/lib/commonjs/ui/components/RequireOxyAuth.js +17 -43
  43. package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -1
  44. package/lib/commonjs/ui/components/SettingsIcon.js +14 -25
  45. package/lib/commonjs/ui/components/SettingsIcon.js.map +1 -1
  46. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +1 -1
  47. package/lib/commonjs/ui/components/SurfaceScreen.js +38 -47
  48. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  49. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +232 -472
  50. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  51. package/lib/commonjs/ui/components/authChooser/storageUsage.js +62 -0
  52. package/lib/commonjs/ui/components/authChooser/storageUsage.js.map +1 -0
  53. package/lib/commonjs/ui/components/authChooser/styles.js +21 -70
  54. package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -1
  55. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  56. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +6 -5
  57. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  58. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +25 -25
  59. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  60. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +4 -4
  61. package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
  62. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js +2 -2
  63. package/lib/commonjs/ui/components/organizations/OrganizationClaims.js.map +1 -1
  64. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +2 -2
  65. package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
  66. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +3 -3
  67. package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -1
  68. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +16 -50
  69. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  70. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +3 -3
  71. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  72. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +10 -12
  73. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  74. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +3 -3
  75. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  76. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +13 -6
  77. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js.map +1 -1
  78. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +53 -112
  79. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  80. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +2 -2
  81. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  82. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +2 -2
  83. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  84. package/lib/commonjs/ui/components/signIn/OxyEmailAccountChoice.js +2 -2
  85. package/lib/commonjs/ui/components/signIn/OxyEmailAccountChoice.js.map +1 -1
  86. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +2 -2
  87. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  88. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +2 -2
  89. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  90. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +2 -2
  91. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  92. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +2 -2
  93. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  94. package/lib/commonjs/ui/components/signIn/ReauthStep.js +31 -13
  95. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
  96. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +2 -2
  97. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  98. package/lib/commonjs/ui/components/supervision/PersonPicker.js +2 -2
  99. package/lib/commonjs/ui/components/supervision/PersonPicker.js.map +1 -1
  100. package/lib/commonjs/ui/context/OxyContext.js +32 -58
  101. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  102. package/lib/commonjs/ui/context/oxyRuntimeContext.js +57 -0
  103. package/lib/commonjs/ui/context/oxyRuntimeContext.js.map +1 -0
  104. package/lib/commonjs/ui/context/oxySupportContext.js +10 -0
  105. package/lib/commonjs/ui/context/oxySupportContext.js.map +1 -0
  106. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +10 -10
  107. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  108. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +6 -6
  109. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  110. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +13 -10
  111. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  112. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +3 -3
  113. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -1
  114. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +3 -3
  115. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
  116. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +5 -5
  117. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  118. package/lib/commonjs/ui/hooks/queries/usePersonalPlans.js +3 -3
  119. package/lib/commonjs/ui/hooks/queries/usePersonalPlans.js.map +1 -1
  120. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +4 -4
  121. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  122. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +7 -7
  123. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  124. package/lib/commonjs/ui/hooks/queries/useSupervision.js +2 -2
  125. package/lib/commonjs/ui/hooks/queries/useSupervision.js.map +1 -1
  126. package/lib/commonjs/ui/hooks/useAuth.js +2 -2
  127. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  128. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +2 -2
  129. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
  130. package/lib/commonjs/ui/hooks/useDisplayCurrency.js +2 -2
  131. package/lib/commonjs/ui/hooks/useDisplayCurrency.js.map +1 -1
  132. package/lib/commonjs/ui/hooks/useFollow.js +3 -3
  133. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  134. package/lib/commonjs/ui/hooks/useFollowTarget.js +2 -2
  135. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  136. package/lib/commonjs/ui/hooks/useI18n.js +2 -2
  137. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  138. package/lib/commonjs/ui/hooks/useLanguageManagement.js +33 -18
  139. package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -1
  140. package/lib/commonjs/ui/hooks/useOxyEvent.js +2 -2
  141. package/lib/commonjs/ui/hooks/useOxyEvent.js.map +1 -1
  142. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +40 -2
  143. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -1
  144. package/lib/commonjs/ui/hooks/useUsernameAvailability.js +60 -0
  145. package/lib/commonjs/ui/hooks/useUsernameAvailability.js.map +1 -0
  146. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +4 -4
  147. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  148. package/lib/commonjs/ui/index.js +37 -0
  149. package/lib/commonjs/ui/index.js.map +1 -1
  150. package/lib/commonjs/ui/navigation/accountDialogManager.js +2 -0
  151. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  152. package/lib/commonjs/ui/navigation/bottomSheetManager.js +2 -2
  153. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  154. package/lib/commonjs/ui/navigation/routes.js +27 -101
  155. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  156. package/lib/commonjs/ui/navigation/screenComponents.js +101 -0
  157. package/lib/commonjs/ui/navigation/screenComponents.js.map +1 -0
  158. package/lib/commonjs/ui/navigation/surfaceBackBridge.js +1 -1
  159. package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -1
  160. package/lib/commonjs/ui/navigation/surfaceNavStack.js +25 -6
  161. package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
  162. package/lib/commonjs/ui/navigation/surfaceRegistry.js +4 -0
  163. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  164. package/lib/commonjs/ui/navigation/surfaces.js +19 -7
  165. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  166. package/lib/commonjs/ui/one-video.js +50 -0
  167. package/lib/commonjs/ui/one-video.js.map +1 -0
  168. package/lib/commonjs/ui/runtime/createOxyRuntime.js +7 -1
  169. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
  170. package/lib/commonjs/ui/screens/AccountMembersScreen.js +7 -6
  171. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  172. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +10 -10
  173. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  174. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +2 -2
  175. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  176. package/lib/commonjs/ui/screens/AppInfoScreen.js +36 -35
  177. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  178. package/lib/commonjs/ui/screens/AvatarCropScreen.js +35 -64
  179. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  180. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +8 -8
  181. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -1
  182. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +13 -14
  183. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  184. package/lib/commonjs/ui/screens/CreateAccountScreen.js +10 -10
  185. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  186. package/lib/commonjs/ui/screens/DomainsScreen.js +7 -14
  187. package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -1
  188. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +137 -285
  189. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  190. package/lib/commonjs/ui/screens/EditProfileScreen.js +19 -16
  191. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  192. package/lib/commonjs/ui/screens/FileManagementScreen.js +38 -189
  193. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  194. package/lib/commonjs/ui/screens/FileTrashScreen.js +2 -2
  195. package/lib/commonjs/ui/screens/FileTrashScreen.js.map +1 -1
  196. package/lib/commonjs/ui/screens/HelpSupportScreen.js +74 -62
  197. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  198. package/lib/commonjs/ui/screens/HistoryViewScreen.js +9 -14
  199. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  200. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +35 -36
  201. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  202. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +9 -17
  203. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  204. package/lib/commonjs/ui/screens/ManageAccountScreen.js +319 -328
  205. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  206. package/lib/commonjs/ui/screens/NotificationsScreen.js +10 -10
  207. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  208. package/lib/commonjs/ui/screens/OxyOneScreen.js +213 -0
  209. package/lib/commonjs/ui/screens/OxyOneScreen.js.map +1 -0
  210. package/lib/commonjs/ui/screens/PreferencesScreen.js +12 -12
  211. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  212. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +64 -87
  213. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  214. package/lib/commonjs/ui/screens/ProfileScreen.js +309 -233
  215. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  216. package/lib/commonjs/ui/screens/ReportBugScreen.js +72 -0
  217. package/lib/commonjs/ui/screens/ReportBugScreen.js.map +1 -0
  218. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +32 -61
  219. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  220. package/lib/commonjs/ui/screens/SupervisionScreen.js +4 -4
  221. package/lib/commonjs/ui/screens/SupervisionScreen.js.map +1 -1
  222. package/lib/commonjs/ui/screens/UserListScreen.js +66 -58
  223. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  224. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +2 -2
  225. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  226. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +6 -5
  227. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
  228. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +17 -82
  229. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  230. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +3 -1
  231. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
  232. package/lib/commonjs/ui/screens/index.js +7 -0
  233. package/lib/commonjs/ui/screens/index.js.map +1 -1
  234. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +12 -22
  235. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  236. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +37 -67
  237. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  238. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +20 -8
  239. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  240. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +6 -10
  241. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  242. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  243. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  244. package/lib/module/assets/assets/fonts/icons/manifest.json +9 -9
  245. package/lib/module/assets/assets/one/README.md +8 -0
  246. package/lib/module/assets/assets/one/floral.jpg +0 -0
  247. package/lib/module/assets/assets/one/floral.jpg.d.ts +2 -0
  248. package/lib/module/assets/assets/one/floral.mp4 +0 -0
  249. package/lib/module/assets/assets/one/floral.mp4.d.ts +2 -0
  250. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  251. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  252. package/lib/module/assets/fonts/icons/manifest.json +9 -9
  253. package/lib/module/assets/one/README.md +8 -0
  254. package/lib/module/assets/one/floral.jpg +0 -0
  255. package/lib/module/assets/one/floral.mp4 +0 -0
  256. package/lib/module/index.js +3 -0
  257. package/lib/module/index.js.map +1 -1
  258. package/lib/module/ui/client.js +2 -3
  259. package/lib/module/ui/client.js.map +1 -1
  260. package/lib/module/ui/components/AccountInvitationAcceptance.js +1 -1
  261. package/lib/module/ui/components/AccountInvitationAcceptance.js.map +1 -1
  262. package/lib/module/ui/components/BloomLocaleBridge.js +1 -1
  263. package/lib/module/ui/components/BloomLocaleBridge.js.map +1 -1
  264. package/lib/module/ui/components/FollowButton.js +1 -1
  265. package/lib/module/ui/components/FollowButton.js.map +1 -1
  266. package/lib/module/ui/components/LanguageBridge.js +1 -1
  267. package/lib/module/ui/components/LanguageBridge.js.map +1 -1
  268. package/lib/module/ui/components/OxyAccountDialogScreen.js +4 -17
  269. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  270. package/lib/module/ui/components/OxyAuthChooser.js +29 -24
  271. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  272. package/lib/module/ui/components/OxyConsentScreen.js +8 -32
  273. package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
  274. package/lib/module/ui/components/OxyOAuthCallback.js +3 -2
  275. package/lib/module/ui/components/OxyOAuthCallback.js.map +1 -1
  276. package/lib/module/ui/components/OxyProvider.js +38 -6
  277. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  278. package/lib/module/ui/components/OxySignInButton.js +1 -1
  279. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  280. package/lib/module/ui/components/ProfileButton.js +6 -4
  281. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  282. package/lib/module/ui/components/ProfileSummaryCard.js +24 -57
  283. package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
  284. package/lib/module/ui/components/RequireOxyAuth.js +17 -43
  285. package/lib/module/ui/components/RequireOxyAuth.js.map +1 -1
  286. package/lib/module/ui/components/SettingsIcon.js +14 -25
  287. package/lib/module/ui/components/SettingsIcon.js.map +1 -1
  288. package/lib/module/ui/components/SurfaceHeaderAction.js +1 -1
  289. package/lib/module/ui/components/SurfaceScreen.js +39 -48
  290. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  291. package/lib/module/ui/components/authChooser/AccountsMenuView.js +237 -475
  292. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  293. package/lib/module/ui/components/authChooser/storageUsage.js +56 -0
  294. package/lib/module/ui/components/authChooser/storageUsage.js.map +1 -0
  295. package/lib/module/ui/components/authChooser/styles.js +21 -70
  296. package/lib/module/ui/components/authChooser/styles.js.map +1 -1
  297. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  298. package/lib/module/ui/components/fileManagement/FileViewer.js +7 -6
  299. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  300. package/lib/module/ui/components/modals/DeleteAccountModal.js +26 -26
  301. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  302. package/lib/module/ui/components/organizations/OrganizationClaimReview.js +1 -1
  303. package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
  304. package/lib/module/ui/components/organizations/OrganizationClaims.js +1 -1
  305. package/lib/module/ui/components/organizations/OrganizationClaims.js.map +1 -1
  306. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +1 -1
  307. package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
  308. package/lib/module/ui/components/organizations/OrganizationSettings.js +1 -1
  309. package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -1
  310. package/lib/module/ui/components/payment/PaymentDetailsStep.js +17 -51
  311. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  312. package/lib/module/ui/components/payment/PaymentMethodStep.js +3 -3
  313. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  314. package/lib/module/ui/components/payment/PaymentReviewStep.js +11 -13
  315. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  316. package/lib/module/ui/components/payment/PaymentSummaryStep.js +3 -3
  317. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  318. package/lib/module/ui/components/signIn/InlineCommonsQr.js +14 -7
  319. package/lib/module/ui/components/signIn/InlineCommonsQr.js.map +1 -1
  320. package/lib/module/ui/components/signIn/OxyAccountPicker.js +54 -113
  321. package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  322. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +1 -1
  323. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
  324. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +1 -1
  325. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  326. package/lib/module/ui/components/signIn/OxyEmailAccountChoice.js +1 -1
  327. package/lib/module/ui/components/signIn/OxyEmailAccountChoice.js.map +1 -1
  328. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +1 -1
  329. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  330. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +1 -1
  331. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
  332. package/lib/module/ui/components/signIn/OxySignInPanel.js +1 -1
  333. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  334. package/lib/module/ui/components/signIn/OxySignUpPanel.js +1 -1
  335. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  336. package/lib/module/ui/components/signIn/ReauthStep.js +30 -12
  337. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
  338. package/lib/module/ui/components/signIn/accountFlowParts.js +1 -1
  339. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  340. package/lib/module/ui/components/supervision/PersonPicker.js +1 -1
  341. package/lib/module/ui/components/supervision/PersonPicker.js.map +1 -1
  342. package/lib/module/ui/context/OxyContext.js +7 -51
  343. package/lib/module/ui/context/OxyContext.js.map +1 -1
  344. package/lib/module/ui/context/oxyRuntimeContext.js +49 -0
  345. package/lib/module/ui/context/oxyRuntimeContext.js.map +1 -0
  346. package/lib/module/ui/context/oxySupportContext.js +7 -0
  347. package/lib/module/ui/context/oxySupportContext.js.map +1 -0
  348. package/lib/module/ui/hooks/mutations/useAccountMutations.js +1 -1
  349. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  350. package/lib/module/ui/hooks/mutations/useServicesMutations.js +1 -1
  351. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  352. package/lib/module/ui/hooks/queries/useAccountQueries.js +5 -2
  353. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  354. package/lib/module/ui/hooks/queries/useAuthMethods.js +1 -1
  355. package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -1
  356. package/lib/module/ui/hooks/queries/useFileQueries.js +1 -1
  357. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
  358. package/lib/module/ui/hooks/queries/usePaymentQueries.js +1 -1
  359. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  360. package/lib/module/ui/hooks/queries/usePersonalPlans.js +1 -1
  361. package/lib/module/ui/hooks/queries/usePersonalPlans.js.map +1 -1
  362. package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
  363. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  364. package/lib/module/ui/hooks/queries/useServicesQueries.js +1 -1
  365. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  366. package/lib/module/ui/hooks/queries/useSupervision.js +1 -1
  367. package/lib/module/ui/hooks/queries/useSupervision.js.map +1 -1
  368. package/lib/module/ui/hooks/useAuth.js +1 -1
  369. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  370. package/lib/module/ui/hooks/useDeviceSwitcher.js +1 -1
  371. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
  372. package/lib/module/ui/hooks/useDisplayCurrency.js +1 -1
  373. package/lib/module/ui/hooks/useDisplayCurrency.js.map +1 -1
  374. package/lib/module/ui/hooks/useFollow.js +1 -1
  375. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  376. package/lib/module/ui/hooks/useFollowTarget.js +1 -1
  377. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  378. package/lib/module/ui/hooks/useI18n.js +1 -1
  379. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  380. package/lib/module/ui/hooks/useLanguageManagement.js +34 -19
  381. package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -1
  382. package/lib/module/ui/hooks/useOxyEvent.js +1 -1
  383. package/lib/module/ui/hooks/useOxyEvent.js.map +1 -1
  384. package/lib/module/ui/hooks/useSurfaceHeader.js +41 -3
  385. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -1
  386. package/lib/module/ui/hooks/useUsernameAvailability.js +56 -0
  387. package/lib/module/ui/hooks/useUsernameAvailability.js.map +1 -0
  388. package/lib/module/ui/icons/subsetGlyphMaps.js +4 -4
  389. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  390. package/lib/module/ui/index.js +4 -0
  391. package/lib/module/ui/index.js.map +1 -1
  392. package/lib/module/ui/navigation/accountDialogManager.js +2 -0
  393. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  394. package/lib/module/ui/navigation/bottomSheetManager.js +3 -3
  395. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  396. package/lib/module/ui/navigation/routes.js +24 -102
  397. package/lib/module/ui/navigation/routes.js.map +1 -1
  398. package/lib/module/ui/navigation/screenComponents.js +96 -0
  399. package/lib/module/ui/navigation/screenComponents.js.map +1 -0
  400. package/lib/module/ui/navigation/surfaceBackBridge.js +1 -1
  401. package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -1
  402. package/lib/module/ui/navigation/surfaceNavStack.js +25 -6
  403. package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
  404. package/lib/module/ui/navigation/surfaceRegistry.js +4 -0
  405. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  406. package/lib/module/ui/navigation/surfaces.js +19 -7
  407. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  408. package/lib/module/ui/one-video.js +45 -0
  409. package/lib/module/ui/one-video.js.map +1 -0
  410. package/lib/module/ui/runtime/createOxyRuntime.js +7 -1
  411. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
  412. package/lib/module/ui/screens/AccountMembersScreen.js +7 -6
  413. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  414. package/lib/module/ui/screens/AccountSettingsScreen.js +10 -10
  415. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  416. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  417. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  418. package/lib/module/ui/screens/AppInfoScreen.js +36 -35
  419. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  420. package/lib/module/ui/screens/AvatarCropScreen.js +35 -64
  421. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  422. package/lib/module/ui/screens/ChangeAvatarScreen.js +7 -7
  423. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -1
  424. package/lib/module/ui/screens/ConnectedAppsScreen.js +13 -14
  425. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  426. package/lib/module/ui/screens/CreateAccountScreen.js +9 -9
  427. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  428. package/lib/module/ui/screens/DomainsScreen.js +6 -13
  429. package/lib/module/ui/screens/DomainsScreen.js.map +1 -1
  430. package/lib/module/ui/screens/EditProfileFieldScreen.js +138 -287
  431. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  432. package/lib/module/ui/screens/EditProfileScreen.js +18 -15
  433. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  434. package/lib/module/ui/screens/FileManagementScreen.js +38 -189
  435. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  436. package/lib/module/ui/screens/FileTrashScreen.js +1 -1
  437. package/lib/module/ui/screens/FileTrashScreen.js.map +1 -1
  438. package/lib/module/ui/screens/HelpSupportScreen.js +76 -64
  439. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  440. package/lib/module/ui/screens/HistoryViewScreen.js +8 -13
  441. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  442. package/lib/module/ui/screens/LanguageSelectorScreen.js +34 -35
  443. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  444. package/lib/module/ui/screens/LegalDocumentsScreen.js +9 -17
  445. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  446. package/lib/module/ui/screens/ManageAccountScreen.js +319 -328
  447. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  448. package/lib/module/ui/screens/NotificationsScreen.js +9 -9
  449. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  450. package/lib/module/ui/screens/OxyOneScreen.js +208 -0
  451. package/lib/module/ui/screens/OxyOneScreen.js.map +1 -0
  452. package/lib/module/ui/screens/PreferencesScreen.js +11 -11
  453. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  454. package/lib/module/ui/screens/PrivacySettingsScreen.js +64 -87
  455. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  456. package/lib/module/ui/screens/ProfileScreen.js +310 -235
  457. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  458. package/lib/module/ui/screens/ReportBugScreen.js +68 -0
  459. package/lib/module/ui/screens/ReportBugScreen.js.map +1 -0
  460. package/lib/module/ui/screens/SearchSettingsScreen.js +33 -62
  461. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  462. package/lib/module/ui/screens/SupervisionScreen.js +1 -1
  463. package/lib/module/ui/screens/SupervisionScreen.js.map +1 -1
  464. package/lib/module/ui/screens/UserListScreen.js +67 -59
  465. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  466. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  467. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  468. package/lib/module/ui/screens/fileManagement/FileListSection.js +7 -6
  469. package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
  470. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +19 -84
  471. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  472. package/lib/module/ui/screens/fileManagement/UploadBar.js +3 -1
  473. package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
  474. package/lib/module/ui/screens/index.js +1 -0
  475. package/lib/module/ui/screens/index.js.map +1 -1
  476. package/lib/module/ui/screens/trust/TrustCenterScreen.js +11 -21
  477. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  478. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +37 -67
  479. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  480. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +20 -8
  481. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  482. package/lib/module/ui/screens/trust/TrustRulesScreen.js +5 -9
  483. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  484. package/lib/typescript/assets/one/floral.jpg.d.ts +2 -0
  485. package/lib/typescript/assets/one/floral.mp4.d.ts +2 -0
  486. package/lib/typescript/commonjs/index.d.ts +1 -1
  487. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  488. package/lib/typescript/commonjs/ui/client.d.ts +1 -2
  489. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  490. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  491. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  492. package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts.map +1 -1
  493. package/lib/typescript/commonjs/ui/components/OxyOAuthCallback.d.ts.map +1 -1
  494. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  495. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +3 -1
  496. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  497. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts +4 -13
  498. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  499. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -1
  500. package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts +0 -4
  501. package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts.map +1 -1
  502. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +1 -1
  503. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +8 -1
  505. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +2 -29
  507. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  508. package/lib/typescript/commonjs/ui/components/authChooser/storageUsage.d.ts +11 -0
  509. package/lib/typescript/commonjs/ui/components/authChooser/storageUsage.d.ts.map +1 -0
  510. package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts +24 -73
  511. package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -1
  512. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +6 -6
  513. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  514. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  517. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  518. package/lib/typescript/commonjs/ui/components/payment/paymentStyles.d.ts +22 -22
  519. package/lib/typescript/commonjs/ui/components/payment/paymentStyles.d.ts.map +1 -1
  520. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +2 -28
  523. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  524. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +1 -0
  525. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  526. package/lib/typescript/commonjs/ui/context/oxyRuntimeContext.d.ts +31 -0
  527. package/lib/typescript/commonjs/ui/context/oxyRuntimeContext.d.ts.map +1 -0
  528. package/lib/typescript/commonjs/ui/context/oxySupportContext.d.ts +9 -0
  529. package/lib/typescript/commonjs/ui/context/oxySupportContext.d.ts.map +1 -0
  530. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  532. package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
  533. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +1 -1
  534. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/hooks/useLanguageManagement.d.ts +4 -2
  536. package/lib/typescript/commonjs/ui/hooks/useLanguageManagement.d.ts.map +1 -1
  537. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +1 -1
  538. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
  539. package/lib/typescript/commonjs/ui/hooks/useUsernameAvailability.d.ts +9 -0
  540. package/lib/typescript/commonjs/ui/hooks/useUsernameAvailability.d.ts.map +1 -0
  541. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  542. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  543. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  544. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  545. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +4 -4
  546. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  547. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +15 -1
  548. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  549. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +10 -18
  550. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  551. package/lib/typescript/commonjs/ui/navigation/screenComponents.d.ts +4 -0
  552. package/lib/typescript/commonjs/ui/navigation/screenComponents.d.ts.map +1 -0
  553. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +3 -1
  554. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  555. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +6 -1
  556. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  557. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +1 -1
  558. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  559. package/lib/typescript/commonjs/ui/one-video.d.ts +3 -0
  560. package/lib/typescript/commonjs/ui/one-video.d.ts.map +1 -0
  561. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  562. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  563. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  564. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  565. package/lib/typescript/commonjs/ui/screens/DomainsScreen.d.ts.map +1 -1
  566. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  567. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  568. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  569. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  570. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  571. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  572. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  573. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +4 -1
  574. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  575. package/lib/typescript/commonjs/ui/screens/OxyOneScreen.d.ts +4 -0
  576. package/lib/typescript/commonjs/ui/screens/OxyOneScreen.d.ts.map +1 -0
  577. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  578. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  579. package/lib/typescript/commonjs/ui/screens/ReportBugScreen.d.ts +2 -0
  580. package/lib/typescript/commonjs/ui/screens/ReportBugScreen.d.ts.map +1 -0
  581. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  582. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts +1 -5
  583. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  584. package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts +1 -1
  585. package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
  586. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +1 -1
  587. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  588. package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
  589. package/lib/typescript/commonjs/ui/screens/index.d.ts +1 -0
  590. package/lib/typescript/commonjs/ui/screens/index.d.ts.map +1 -1
  591. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  592. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  593. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  594. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  595. package/lib/typescript/commonjs/ui/types/navigation.d.ts +12 -0
  596. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  597. package/lib/typescript/module/index.d.ts +1 -1
  598. package/lib/typescript/module/index.d.ts.map +1 -1
  599. package/lib/typescript/module/ui/client.d.ts +1 -2
  600. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  601. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  602. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  603. package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/components/OxyOAuthCallback.d.ts.map +1 -1
  605. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  606. package/lib/typescript/module/ui/components/ProfileButton.d.ts +3 -1
  607. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts +4 -13
  609. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  610. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -1
  611. package/lib/typescript/module/ui/components/SettingsIcon.d.ts +0 -4
  612. package/lib/typescript/module/ui/components/SettingsIcon.d.ts.map +1 -1
  613. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +1 -1
  614. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
  615. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +8 -1
  616. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +2 -29
  618. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  619. package/lib/typescript/module/ui/components/authChooser/storageUsage.d.ts +11 -0
  620. package/lib/typescript/module/ui/components/authChooser/storageUsage.d.ts.map +1 -0
  621. package/lib/typescript/module/ui/components/authChooser/styles.d.ts +24 -73
  622. package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -1
  623. package/lib/typescript/module/ui/components/authChooser/types.d.ts +6 -6
  624. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  625. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  626. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  627. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  628. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  629. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts +22 -22
  630. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts.map +1 -1
  631. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
  633. package/lib/typescript/module/ui/context/OxyContext.d.ts +2 -28
  634. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  635. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +1 -0
  636. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  637. package/lib/typescript/module/ui/context/oxyRuntimeContext.d.ts +31 -0
  638. package/lib/typescript/module/ui/context/oxyRuntimeContext.d.ts.map +1 -0
  639. package/lib/typescript/module/ui/context/oxySupportContext.d.ts +9 -0
  640. package/lib/typescript/module/ui/context/oxySupportContext.d.ts.map +1 -0
  641. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  643. package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
  644. package/lib/typescript/module/ui/hooks/useAuth.d.ts +1 -1
  645. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  646. package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts +4 -2
  647. package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts.map +1 -1
  648. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +1 -1
  649. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/hooks/useUsernameAvailability.d.ts +9 -0
  651. package/lib/typescript/module/ui/hooks/useUsernameAvailability.d.ts.map +1 -0
  652. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  653. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  654. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  655. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +4 -4
  657. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  658. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +15 -1
  659. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  660. package/lib/typescript/module/ui/navigation/routes.d.ts +10 -18
  661. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/navigation/screenComponents.d.ts +4 -0
  663. package/lib/typescript/module/ui/navigation/screenComponents.d.ts.map +1 -0
  664. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +3 -1
  665. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  666. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +6 -1
  667. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  668. package/lib/typescript/module/ui/navigation/surfaces.d.ts +1 -1
  669. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  670. package/lib/typescript/module/ui/one-video.d.ts +3 -0
  671. package/lib/typescript/module/ui/one-video.d.ts.map +1 -0
  672. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  673. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  674. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  676. package/lib/typescript/module/ui/screens/DomainsScreen.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  678. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  679. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  680. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  681. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  682. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  684. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +4 -1
  685. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  686. package/lib/typescript/module/ui/screens/OxyOneScreen.d.ts +4 -0
  687. package/lib/typescript/module/ui/screens/OxyOneScreen.d.ts.map +1 -0
  688. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  689. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  690. package/lib/typescript/module/ui/screens/ReportBugScreen.d.ts +2 -0
  691. package/lib/typescript/module/ui/screens/ReportBugScreen.d.ts.map +1 -0
  692. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  693. package/lib/typescript/module/ui/screens/UserListScreen.d.ts +1 -5
  694. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  695. package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts +1 -1
  696. package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
  697. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +1 -1
  698. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  699. package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
  700. package/lib/typescript/module/ui/screens/index.d.ts +1 -0
  701. package/lib/typescript/module/ui/screens/index.d.ts.map +1 -1
  702. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  703. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  704. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  705. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  706. package/lib/typescript/module/ui/types/navigation.d.ts +12 -0
  707. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  708. package/lib/typescript/types/assets.d.ts +10 -0
  709. package/package.json +64 -48
  710. package/plugins/withOxySharedPermissions.js +2 -1
  711. package/plugins/withSharedDeviceSessionProvider.js +2 -1
  712. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  713. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  714. package/src/assets/fonts/icons/manifest.json +9 -9
  715. package/src/assets/one/README.md +8 -0
  716. package/src/assets/one/floral.jpg +0 -0
  717. package/src/assets/one/floral.jpg.d.ts +2 -0
  718. package/src/assets/one/floral.mp4 +0 -0
  719. package/src/assets/one/floral.mp4.d.ts +2 -0
  720. package/src/index.ts +9 -1
  721. package/src/types/assets.d.ts +10 -0
  722. package/src/ui/client.ts +2 -3
  723. package/src/ui/components/AccountInvitationAcceptance.tsx +1 -1
  724. package/src/ui/components/BloomLocaleBridge.tsx +1 -1
  725. package/src/ui/components/FollowButton.tsx +1 -1
  726. package/src/ui/components/LanguageBridge.tsx +1 -1
  727. package/src/ui/components/OxyAccountDialogScreen.tsx +3 -14
  728. package/src/ui/components/OxyAuthChooser.tsx +28 -24
  729. package/src/ui/components/OxyConsentScreen.tsx +8 -25
  730. package/src/ui/components/OxyOAuthCallback.tsx +3 -2
  731. package/src/ui/components/OxyProvider.tsx +34 -8
  732. package/src/ui/components/OxySignInButton.tsx +1 -1
  733. package/src/ui/components/ProfileButton.tsx +17 -4
  734. package/src/ui/components/ProfileSummaryCard.tsx +27 -68
  735. package/src/ui/components/RequireOxyAuth.tsx +16 -38
  736. package/src/ui/components/SettingsIcon.tsx +8 -33
  737. package/src/ui/components/SurfaceHeaderAction.tsx +1 -1
  738. package/src/ui/components/SurfaceScreen.tsx +56 -49
  739. package/src/ui/components/__tests__/AccountInvitationAcceptance.test.tsx +1 -1
  740. package/src/ui/components/__tests__/BloomLocaleBridge.test.tsx +1 -1
  741. package/src/ui/components/__tests__/LanguageBridge.test.tsx +1 -1
  742. package/src/ui/components/__tests__/followButtonAccessibility.test.tsx +1 -1
  743. package/src/ui/components/authChooser/AccountsMenuView.tsx +271 -521
  744. package/src/ui/components/authChooser/storageUsage.ts +75 -0
  745. package/src/ui/components/authChooser/styles.ts +14 -76
  746. package/src/ui/components/authChooser/types.ts +6 -6
  747. package/src/ui/components/fileManagement/FileViewer.tsx +7 -6
  748. package/src/ui/components/modals/DeleteAccountModal.tsx +25 -24
  749. package/src/ui/components/organizations/OrganizationClaimReview.tsx +1 -1
  750. package/src/ui/components/organizations/OrganizationClaims.tsx +1 -1
  751. package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +1 -1
  752. package/src/ui/components/organizations/OrganizationSettings.tsx +1 -1
  753. package/src/ui/components/payment/PaymentDetailsStep.tsx +13 -51
  754. package/src/ui/components/payment/PaymentMethodStep.tsx +4 -4
  755. package/src/ui/components/payment/PaymentReviewStep.tsx +12 -17
  756. package/src/ui/components/payment/PaymentSummaryStep.tsx +4 -4
  757. package/src/ui/components/signIn/InlineCommonsQr.tsx +9 -4
  758. package/src/ui/components/signIn/OxyAccountPicker.tsx +42 -93
  759. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +1 -1
  760. package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +1 -1
  761. package/src/ui/components/signIn/OxyEmailAccountChoice.tsx +1 -1
  762. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +1 -1
  763. package/src/ui/components/signIn/OxyPasswordPanel.tsx +1 -1
  764. package/src/ui/components/signIn/OxySignInPanel.tsx +1 -1
  765. package/src/ui/components/signIn/OxySignUpPanel.tsx +1 -1
  766. package/src/ui/components/signIn/ReauthStep.tsx +26 -16
  767. package/src/ui/components/signIn/accountFlowParts.tsx +1 -1
  768. package/src/ui/components/supervision/PersonPicker.tsx +1 -1
  769. package/src/ui/context/OxyContext.tsx +15 -79
  770. package/src/ui/context/oxyContextTypes.ts +1 -0
  771. package/src/ui/context/oxyRuntimeContext.ts +69 -0
  772. package/src/ui/context/oxySupportContext.ts +9 -0
  773. package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
  774. package/src/ui/hooks/mutations/useServicesMutations.ts +1 -1
  775. package/src/ui/hooks/queries/useAccountQueries.ts +4 -2
  776. package/src/ui/hooks/queries/useAuthMethods.ts +1 -1
  777. package/src/ui/hooks/queries/useFileQueries.ts +1 -1
  778. package/src/ui/hooks/queries/usePaymentQueries.ts +1 -1
  779. package/src/ui/hooks/queries/usePersonalPlans.ts +1 -1
  780. package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
  781. package/src/ui/hooks/queries/useServicesQueries.ts +1 -1
  782. package/src/ui/hooks/queries/useSupervision.ts +1 -1
  783. package/src/ui/hooks/useAuth.ts +1 -1
  784. package/src/ui/hooks/useDeviceSwitcher.ts +1 -1
  785. package/src/ui/hooks/useDisplayCurrency.ts +1 -1
  786. package/src/ui/hooks/useFollow.ts +1 -1
  787. package/src/ui/hooks/useFollowTarget.ts +1 -1
  788. package/src/ui/hooks/useI18n.ts +1 -1
  789. package/src/ui/hooks/useLanguageManagement.ts +48 -23
  790. package/src/ui/hooks/useOxyEvent.ts +1 -1
  791. package/src/ui/hooks/useSurfaceHeader.ts +50 -2
  792. package/src/ui/hooks/useUsernameAvailability.ts +57 -0
  793. package/src/ui/icons/subsetGlyphMaps.ts +4 -4
  794. package/src/ui/index.ts +5 -0
  795. package/src/ui/navigation/__tests__/bottomSheetManager.test.ts +37 -0
  796. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +27 -0
  797. package/src/ui/navigation/accountDialogManager.ts +16 -1
  798. package/src/ui/navigation/bottomSheetManager.ts +3 -3
  799. package/src/ui/navigation/routes.ts +75 -103
  800. package/src/ui/navigation/screenComponents.ts +96 -0
  801. package/src/ui/navigation/surfaceBackBridge.ts +1 -1
  802. package/src/ui/navigation/surfaceNavStack.ts +33 -6
  803. package/src/ui/navigation/surfaceRegistry.ts +7 -1
  804. package/src/ui/navigation/surfaces.ts +30 -15
  805. package/src/ui/one-video.tsx +44 -0
  806. package/src/ui/runtime/createOxyRuntime.ts +7 -1
  807. package/src/ui/screens/AccountMembersScreen.tsx +6 -6
  808. package/src/ui/screens/AccountSettingsScreen.tsx +14 -14
  809. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  810. package/src/ui/screens/AppInfoScreen.tsx +41 -42
  811. package/src/ui/screens/AvatarCropScreen.tsx +33 -57
  812. package/src/ui/screens/ChangeAvatarScreen.tsx +8 -8
  813. package/src/ui/screens/ConnectedAppsScreen.tsx +14 -16
  814. package/src/ui/screens/CreateAccountScreen.tsx +13 -13
  815. package/src/ui/screens/DomainsScreen.tsx +9 -14
  816. package/src/ui/screens/EditProfileFieldScreen.tsx +189 -282
  817. package/src/ui/screens/EditProfileScreen.tsx +21 -18
  818. package/src/ui/screens/FileManagementScreen.tsx +52 -209
  819. package/src/ui/screens/FileTrashScreen.tsx +3 -3
  820. package/src/ui/screens/HelpSupportScreen.tsx +59 -53
  821. package/src/ui/screens/HistoryViewScreen.tsx +10 -17
  822. package/src/ui/screens/LanguageSelectorScreen.tsx +37 -35
  823. package/src/ui/screens/LegalDocumentsScreen.tsx +10 -20
  824. package/src/ui/screens/ManageAccountScreen.tsx +367 -340
  825. package/src/ui/screens/NotificationsScreen.tsx +12 -12
  826. package/src/ui/screens/OxyOneScreen.tsx +223 -0
  827. package/src/ui/screens/PreferencesScreen.tsx +15 -15
  828. package/src/ui/screens/PrivacySettingsScreen.tsx +65 -89
  829. package/src/ui/screens/ProfileScreen.tsx +242 -268
  830. package/src/ui/screens/ReportBugScreen.tsx +68 -0
  831. package/src/ui/screens/SearchSettingsScreen.tsx +30 -65
  832. package/src/ui/screens/SupervisionScreen.tsx +1 -1
  833. package/src/ui/screens/UserListScreen.tsx +85 -62
  834. package/src/ui/screens/WelcomeNewUserScreen.tsx +1 -1
  835. package/src/ui/screens/fileManagement/FileListSection.tsx +8 -7
  836. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +16 -79
  837. package/src/ui/screens/fileManagement/UploadBar.tsx +4 -1
  838. package/src/ui/screens/index.ts +1 -0
  839. package/src/ui/screens/trust/TrustCenterScreen.tsx +13 -22
  840. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +32 -62
  841. package/src/ui/screens/trust/TrustRewardsScreen.tsx +10 -5
  842. package/src/ui/screens/trust/TrustRulesScreen.tsx +6 -9
  843. package/src/ui/types/navigation.ts +12 -0
  844. package/lib/commonjs/ui/screens/UserLinksScreen.js +0 -61
  845. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +0 -1
  846. package/lib/module/ui/screens/UserLinksScreen.js +0 -57
  847. package/lib/module/ui/screens/UserLinksScreen.js.map +0 -1
  848. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts +0 -15
  849. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +0 -1
  850. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts +0 -15
  851. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +0 -1
  852. package/lib/typescript/types/expo-document-picker.d.ts +0 -35
  853. package/lib/typescript/types/expo-image-picker.d.ts +0 -35
  854. package/src/types/expo-document-picker.d.ts +0 -35
  855. package/src/types/expo-image-picker.d.ts +0 -35
  856. package/src/ui/screens/UserLinksScreen.tsx +0 -68
@@ -1,48 +1,20 @@
1
- /**
2
- * The signed-in Oxy account MENU (`accounts` view) — a Google-account-menu-style
3
- * full menu built entirely with NativeWind `className` (the dynamic per-account
4
- * accent hex is the one inline style NativeWind cannot express). Structure:
5
- *
6
- * - HERO on its own chrome-free block: the current account's large pressable
7
- * avatar (with a camera badge to change the photo), the greeting, the account
8
- * address, and a "Manage your Oxy account" pill.
9
- * - SWITCH ACCOUNT: a disclosure row whose corner animates from pill to card as
10
- * the device's people + "Add another account" + "Manage accounts on this
11
- * device" reveal beneath it. The list is grouped BY PERSON (ADR 0002): an
12
- * account sits under the human who can operate it, and the same organization
13
- * reachable through two people is two rows under two names — the thing a list
14
- * keyed by account id structurally cannot say.
15
- * - OXY STORAGE: cloud + used/total + a composition meter + Upgrade / Manage chips.
16
- * - MENU rows: Your data in Oxy · Oxy settings · Help & feedback · Sign out —
17
- * Bloom's grouped section, the same component every other SDK settings surface
18
- * uses, not a local row copy.
19
- * - FOOTER: Privacy Policy · Terms of Service.
20
- *
21
- * All three blocks share ONE rhythm taken from that grouped section: a 12px
22
- * content inset, a 12px gap after the leading element, 16px between blocks, and
23
- * a 16px trailing chevron column.
24
- *
25
- * Collapse state is a plain `useState` toggled in the row's press handler — no
26
- * effect hook, no derived-from-props sync.
27
- */
28
-
1
+ import { SpinnerIcon } from '@oxy.so/bloom/loading';
29
2
  import type React from 'react';
30
- import { Fragment, useCallback, useState } from 'react';
31
- import { Pressable, View } from 'react-native-css/components';
32
- import Animated, {
33
- Extrapolation,
34
- interpolate,
35
- useAnimatedStyle,
36
- useSharedValue,
37
- withTiming,
38
- } from 'react-native-reanimated';
3
+ import { useCallback, useState } from 'react';
4
+ import { View } from 'react-native-css/components';
5
+ import Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
39
6
  import MaterialCommunityIcons from '../../icons/MaterialCommunityIcons';
40
7
  import { Avatar } from '@oxy.so/bloom/avatar';
41
- import { AvatarGroup, type AvatarGroupItem } from '@oxy.so/bloom/avatar-group';
42
- import { Button } from '@oxy.so/bloom/button';
8
+ import { Button, LinkButton } from '@oxy.so/bloom/button';
9
+ import { RiSparklingFill } from '@oxy.so/bloom/icons/RiSparklingFill';
43
10
  import { PressableScale } from '@oxy.so/bloom/pressable-scale';
44
- import { CompositionBar, type CompositionCategory } from '@oxy.so/bloom/composition-bar';
45
- import { SettingsListGroup, SettingsListItem } from '@oxy.so/bloom/settings-list';
11
+ import { UsageCard } from '@oxy.so/bloom/usage-card';
12
+ import {
13
+ GroupedSection,
14
+ GroupedSectionItem,
15
+ GroupedSectionCollapse,
16
+ GroupedSectionIcon,
17
+ } from '@oxy.so/bloom/grouped-section';
46
18
  import { Text } from '@oxy.so/bloom/typography';
47
19
  import {
48
20
  showsPrincipalHeaders,
@@ -51,7 +23,9 @@ import {
51
23
  type SwitcherPrincipalRow,
52
24
  } from '@oxy.so/core/session';
53
25
  import AvatarCameraBadge from '../AvatarCameraBadge';
26
+ import LogoIcon from '../logo/LogoIcon';
54
27
  import { authChooserStyles as styles } from './styles';
28
+ import { accountStorageUsage, formatStorageSize, shouldShowStorageActions } from './storageUsage';
55
29
  import {
56
30
  resolveAccentHex,
57
31
  type AccountHeroModel,
@@ -62,60 +36,7 @@ import {
62
36
  type Translate,
63
37
  } from './types';
64
38
 
65
- type HoverPressableProps = Omit<React.ComponentProps<typeof Pressable>, 'className'> & {
66
- baseClassName: string;
67
- hoverClassName: string;
68
- };
69
-
70
- /**
71
- * A `Pressable` that appends a hover-tint NativeWind token while pointer-hovered.
72
- * The Metro web pipeline here does NOT emit NativeWind `hover:` variants, so hover
73
- * is driven by RN's cross-platform `onHoverIn`/`onHoverOut` (they fire only on web
74
- * via react-native-web; a no-op on native) toggling a plain background token —
75
- * the tint stays a NativeWind class, only the trigger is JS.
76
- */
77
- const HoverPressable: React.FC<HoverPressableProps> = ({
78
- baseClassName,
79
- hoverClassName,
80
- ...rest
81
- }) => {
82
- const [hovered, setHovered] = useState(false);
83
- return (
84
- <Pressable
85
- {...rest}
86
- className={hovered ? `${baseClassName} ${hoverClassName}` : baseClassName}
87
- onHoverIn={() => setHovered(true)}
88
- onHoverOut={() => setHovered(false)}
89
- />
90
- );
91
- };
92
-
93
- /**
94
- * Leading glyph for the rows that live in a Bloom grouped section (the MENU
95
- * block) and for the storage card's cloud, which lines its title up with them.
96
- * It is Bloom's OWN icon-slot size: `SettingsListItem` reserves a fixed 20px
97
- * leading column and Bloom is consumed exactly as it ships, so a menu glyph
98
- * larger than this would overhang into the row's title.
99
- */
100
- const ROW_ICON_SIZE = 20;
101
- /**
102
- * The switch card's two corner states. Collapsed it is one row and reads as a
103
- * PILL; opened it is a card holding rows, on the same 16px corner the Bloom
104
- * grouped section below it uses. Interpolated across the reveal, never snapped.
105
- */
106
- const SWITCH_CARD_PILL_RADIUS = 999;
107
- const SWITCH_CARD_RADIUS = 16;
108
- /**
109
- * The fraction of the reveal over which the corner resolves. The corner is a
110
- * FASTER gesture than the reveal — it has to be finished before the rows read as
111
- * rows, or the card still looks like a pill while a list falls out of it — so it
112
- * is clamped to the reveal's opening fraction instead of tracking it end to end.
113
- * Measured in a browser against the 240ms reveal: the corner reaches its card
114
- * value ~120ms in, with the list only ~20% revealed, and (mirrored) the pill is
115
- * back ~250ms into the close, with the list already down to ~0.
116
- */
117
- const SWITCH_CARD_RADIUS_SETTLE = 0.2;
118
- /** Duration of the switch-list reveal. */
39
+ /** Duration of the disclosure chevron rotation. */
119
40
  const SWITCH_REVEAL_MS = 240;
120
41
  /** Diameter of an account row's avatar in the switch list (own markup). */
121
42
  const SWITCH_AVATAR_SIZE = 36;
@@ -124,36 +45,16 @@ const SWITCH_AVATAR_SIZE = 36;
124
45
  * rows beneath it: the header labels the group, the rows are the targets.
125
46
  */
126
47
  const PRINCIPAL_AVATAR_SIZE = 24;
127
- /** Glyph inside a bordered affordance badge, sized to the avatar it stands in for. */
128
- const BADGE_GLYPH_SIZE = 19;
129
- /** The hero block's large current-account avatar. */
130
- const HERO_AVATAR_SIZE = 72;
131
- /** Avatars shown in the switch row's facepile before it collapses into `+N`. */
132
- const FACEPILE_MAX = 2;
133
- /** Facepile avatar diameter — one clear step down from a switch-list avatar. */
134
- const FACEPILE_AVATAR_SIZE = 32;
135
- /**
136
- * Facepile overlap. Well under Bloom's `size / 3` default: the stack draws the
137
- * FIRST item on top, so a deep overlap would bury the trailing `+N` chip's own
138
- * label under the avatar before it.
139
- */
140
- const FACEPILE_OVERLAP = 4;
141
-
142
- /**
143
- * `bytes` → `"11.6 GB"`. Whole plan sizes read as whole numbers (`"17 GB"`, not
144
- * `"17.0 GB"`), and anything ≥ 100 GB drops the decimal entirely.
145
- */
146
- function formatStorageGb(bytes: number): string {
147
- const gb = bytes / 1024 ** 3;
148
- if (gb >= 100 || Number.isInteger(gb)) return `${Math.round(gb)} GB`;
149
- return `${gb.toFixed(1)} GB`;
150
- }
151
-
48
+ /** Current-account avatar in the summary row. */
49
+ const HERO_AVATAR_SIZE = 56;
152
50
  interface AccountsMenuViewProps {
153
- snapshot: AccountDialogSnapshot;
51
+ snapshot: Pick<
52
+ AccountDialogSnapshot,
53
+ 'loading' | 'activatingContextId' | 'removingContextId' | 'removingPrincipalId'
54
+ >;
154
55
  /** The device's people, each with the accounts they may act as. */
155
56
  principals: SwitcherPrincipalRow[];
156
- /** The current account, rendered large. `null` before the session resolves. */
57
+ /** The current account in the summary row. `null` before the session resolves. */
157
58
  hero: AccountHeroModel | null;
158
59
  theme: Theme;
159
60
  t: Translate;
@@ -173,64 +74,19 @@ const AccountsMenuView: React.FC<AccountsMenuViewProps> = ({
173
74
  menu,
174
75
  }) => {
175
76
  const [expanded, setExpanded] = useState(false);
176
- // Measured natural height of the switch list, so the reveal animates to an
177
- // exact height (and the content below reflows down smoothly) instead of a
178
- // guessed max. The measuring wrapper is style-based, NOT className'd — on
179
- // RN-Web `onLayout` never fires for className'd Views (see AGENTS.md).
180
- const [listContentHeight, setListContentHeight] = useState(0);
181
- // 0 = collapsed, 1 = expanded. Set imperatively in the toggle handler (no
182
- // effect hook). On RN-Web there is no worklets plugin, so every shared value a
183
- // mapper reads MUST be in its deps array or it freezes on the first frame
184
- // (AGENTS.md "Reanimated (web)").
77
+ const [summaryHovered, setSummaryHovered] = useState(false);
78
+ // Bloom owns the grouped surface; the dialog owns measured size transitions.
185
79
  const listProgress = useSharedValue(0);
186
- const listStyle = useAnimatedStyle(
187
- () => ({ height: listProgress.value * listContentHeight, opacity: listProgress.value }),
188
- [listProgress, listContentHeight],
189
- );
190
80
  const chevronStyle = useAnimatedStyle(
191
81
  () => ({ transform: [{ rotate: `${listProgress.value * 180}deg` }] }),
192
82
  [listProgress],
193
83
  );
194
- // Collapsed, the switch card is a single row and reads as a PILL; opened, it
195
- // becomes a card holding rows and takes the grouped-section corner. The corner
196
- // is driven off the SAME `listProgress` as the reveal — but clamped to its
197
- // opening fraction, so it resolves early instead of trailing the rows.
198
- const switchCardStyle = useAnimatedStyle(
199
- () => ({
200
- borderRadius: interpolate(
201
- listProgress.value,
202
- [0, SWITCH_CARD_RADIUS_SETTLE],
203
- [SWITCH_CARD_PILL_RADIUS, SWITCH_CARD_RADIUS],
204
- Extrapolation.CLAMP,
205
- ),
206
- }),
207
- [listProgress],
208
- );
209
- // `CompositionBar` ships as an interactive breakdown: a selected segment
210
- // replaces its hint line with that segment's readout. Tapping the selected one
211
- // again clears it.
212
- const [storageSegment, setStorageSegment] = useState<string | null>(null);
213
- const toggleStorageSegment = useCallback(
214
- (key: string) => setStorageSegment((previous) => (previous === key ? null : key)),
215
- [],
216
- );
217
84
  const toggleExpanded = useCallback(() => {
218
85
  const next = !expanded;
219
86
  setExpanded(next);
220
87
  listProgress.value = withTiming(next ? 1 : 0, { duration: SWITCH_REVEAL_MS });
221
88
  }, [expanded, listProgress]);
222
89
 
223
- if (snapshot.loading && principals.length === 0) {
224
- return (
225
- <View className="items-center justify-center gap-space-12 py-space-24">
226
- <MaterialCommunityIcons name="loading" size={24} color={theme.colors.textSecondary} />
227
- <Text className="text-body text-text-secondary text-center">
228
- {t('accountSwitcher.loading')}
229
- </Text>
230
- </View>
231
- );
232
- }
233
-
234
90
  // Activation and the two removals all mutate the same device, so any one of
235
91
  // them in flight disables every row: a second press would race the first for
236
92
  // which context the server ends up electing as active.
@@ -238,310 +94,246 @@ const AccountsMenuView: React.FC<AccountsMenuViewProps> = ({
238
94
  snapshot.activatingContextId !== null ||
239
95
  snapshot.removingContextId !== null ||
240
96
  snapshot.removingPrincipalId !== null;
241
- const currentAccent = hero?.accentHex ?? theme.colors.primary;
242
97
  // Naming the person above each block earns its place only when the grouping
243
98
  // carries information — a second person, or somebody with more than one
244
99
  // account. On a one-person, one-account device it would just repeat the hero.
245
100
  const showPrincipalHeaders = showsPrincipalHeaders(principals);
246
- const contextRows = principals.flatMap((principal) => principal.contexts);
247
- // Remounts the measured wrapper when the rows change, so the collapse animates
248
- // to the new natural height instead of the previous one.
249
- const switchListKey = contextRows.map((context) => context.contextId).join(':');
250
- const facepile: AvatarGroupItem[] = contextRows.map((context) => ({
251
- id: context.contextId,
252
- uri: context.avatarUrl ?? undefined,
253
- displayName: context.displayName,
254
- }));
255
-
256
- // Used vs free is a two-part COMPOSITION (the parts always fill the bar), not
257
- // a progress value — exactly what Bloom's `CompositionBar` models. Both colors
258
- // are theme tokens, so the bar is correct in light and dark.
259
- const storageCategories: CompositionCategory[] = storage
260
- ? [
261
- {
262
- key: 'used',
263
- name: t('accountMenu.storage.used'),
264
- amount: storage.usedBytes,
265
- color: theme.colors.primary,
266
- },
267
- {
268
- key: 'free',
269
- name: t('accountMenu.storage.free'),
270
- amount: Math.max(0, storage.limitBytes - storage.usedBytes),
271
- color: theme.colors.contrast50,
272
- },
273
- ]
274
- : [];
275
- const usageLabel = storage
276
- ? t('accountMenu.storage.usage', {
277
- used: formatStorageGb(storage.usedBytes),
278
- total: formatStorageGb(storage.limitBytes),
279
- })
280
- : t('accountMenu.storage.unavailable');
281
101
 
282
- // The switch list body, revealed under the "Switch account" row. Own markup,
283
- // not a Bloom grouped section: this is not a list of settings rows and the
284
- // component is not a card container. It mirrors the section's rhythm by hand —
285
- // 12px content inset, 12px after the avatar, a hairline between rows — and
286
- // draws those hairlines INSIDE the animated clip, so a collapsed list never
287
- // strands one against the header row.
288
- const listItems = (
289
- <>
290
- {principals.map((principal, principalIndex) => (
291
- <Fragment key={principal.principalId}>
292
- {principalIndex > 0 ? <View className="h-px bg-border opacity-30" /> : null}
293
- {showPrincipalHeaders ? (
294
- <PrincipalHeaderRow
295
- principal={principal}
296
- removing={snapshot.removingPrincipalId === principal.principalId}
297
- disabled={busy}
298
- onSignOut={() => handlers.onRemovePrincipal(principal.principalId)}
299
- theme={theme}
300
- t={t}
301
- />
302
- ) : null}
303
- {principal.contexts.map((context, contextIndex) => (
304
- <Fragment key={context.contextId}>
305
- {contextIndex > 0 || showPrincipalHeaders ? (
306
- <View className="h-px bg-border opacity-30 ml-space-12" />
307
- ) : null}
308
- <ContextRow
309
- context={context}
310
- principalName={principal.displayName}
311
- accent={resolveAccentHex(context.color, theme.colors.primary)}
312
- activating={snapshot.activatingContextId === context.contextId}
313
- removing={snapshot.removingContextId === context.contextId}
314
- disabled={busy}
315
- onActivate={() => handlers.onActivate(context.contextId)}
316
- onRemove={() => handlers.onRemoveContext(context.contextId)}
317
- theme={theme}
318
- t={t}
319
- />
320
- </Fragment>
321
- ))}
322
- </Fragment>
323
- ))}
324
-
325
- <View className="h-px bg-border opacity-30 ml-space-12" />
326
- <AccountAffordanceRow
327
- icon="plus"
328
- label={t('accountMenu.addAnother')}
329
- onPress={handlers.onAdd}
330
- disabled={busy}
331
- theme={theme}
332
- />
333
- <View className="h-px bg-border opacity-30 ml-space-12" />
334
- <AccountAffordanceRow
335
- icon="account-multiple-outline"
336
- label={t('accountSwitcher.manageOnDevice')}
337
- onPress={handlers.onManage}
338
- disabled={busy}
339
- theme={theme}
340
- />
341
- </>
342
- );
102
+ // Direct children share Bloom's grouped shape and spacing. Keep the
103
+ // principal/context pair as the action identity, even for shared accounts.
104
+ const listItems = principals.flatMap((principal) => [
105
+ ...(showPrincipalHeaders
106
+ ? [
107
+ <PrincipalHeaderRow
108
+ key={`principal:${principal.principalId}`}
109
+ principal={principal}
110
+ removing={snapshot.removingPrincipalId === principal.principalId}
111
+ disabled={busy}
112
+ onSignOut={() => handlers.onRemovePrincipal(principal.principalId)}
113
+ theme={theme}
114
+ t={t}
115
+ />,
116
+ ]
117
+ : []),
118
+ ...principal.contexts
119
+ .filter((context) => !context.isActive)
120
+ .map((context) => (
121
+ <ContextRow
122
+ key={context.contextId}
123
+ context={context}
124
+ principalName={principal.displayName}
125
+ accent={resolveAccentHex(context.color, theme.colors.primary)}
126
+ activating={snapshot.activatingContextId === context.contextId}
127
+ removing={snapshot.removingContextId === context.contextId}
128
+ disabled={busy}
129
+ onActivate={() => handlers.onActivate(context.contextId)}
130
+ onRemove={() => handlers.onRemoveContext(context.contextId)}
131
+ theme={theme}
132
+ t={t}
133
+ />
134
+ )),
135
+ ]);
343
136
 
344
137
  const manageLabel = t('accountMenu.manage');
345
138
  const switchLabel = t('accountMenu.switchAccount');
346
139
 
347
140
  return (
348
141
  <View>
349
- {/* HERO — chrome-free and centred, in the reference's reading order:
350
- NOTHING above the avatar (the nav bar's Oxy wordmark stands alone), the
351
- large pressable avatar (with a camera badge to change the photo), then
352
- the greeting, then the account address under it, then the manage action. */}
353
- <View style={styles.hero}>
354
- {hero ? (
355
- <>
142
+ {/* The active account is also the switcher disclosure. Avatar editing is
143
+ a sibling button, so it never toggles the list or nests a button. */}
144
+ <GroupedSection style={styles.menuGroup}>
145
+ <View
146
+ testID="account-summary"
147
+ onPointerEnter={() => setSummaryHovered(true)}
148
+ onPointerLeave={() => setSummaryHovered(false)}
149
+ style={[
150
+ styles.accountSummary,
151
+ summaryHovered && !busy && { backgroundColor: theme.colors.contrast50 },
152
+ ]}
153
+ >
154
+ {hero ? (
356
155
  <PressableScale
357
156
  onPress={handlers.onEditAvatar}
358
157
  accessibilityRole="button"
359
158
  accessibilityLabel={t('editProfile.changeAvatar')}
360
- style={styles.heroAvatarPressable}
159
+ style={styles.accountAvatar}
361
160
  >
362
161
  <Avatar
363
162
  source={hero.avatarUrl ?? undefined}
364
163
  name={hero.displayName}
365
164
  size={HERO_AVATAR_SIZE}
366
165
  />
367
- <View
368
- style={[styles.heroAvatarRing, { borderColor: currentAccent }]}
369
- pointerEvents="none"
370
- />
371
166
  <AvatarCameraBadge />
372
167
  </PressableScale>
373
- <View style={styles.heroNameBlock}>
374
- <Text style={[styles.heroGreeting, { color: theme.colors.text }]} numberOfLines={2}>
375
- {t('accountMenu.greeting', { name: hero.displayName })}
168
+ ) : null}
169
+ <PressableScale
170
+ className={`flex-1 min-w-0 flex-row items-center gap-space-12 py-space-12${busy ? ' opacity-60' : ''}`}
171
+ onPress={toggleExpanded}
172
+ disabled={busy}
173
+ accessibilityRole="button"
174
+ aria-expanded={expanded}
175
+ accessibilityLabel={switchLabel}
176
+ >
177
+ <View style={styles.accountIdentity}>
178
+ <Text style={[styles.accountName, { color: theme.colors.text }]} numberOfLines={1}>
179
+ {hero?.displayName}
376
180
  </Text>
377
- {hero.addressLine ? (
181
+ {hero?.addressLine ? (
378
182
  <Text
379
- style={[styles.heroAddress, { color: theme.colors.textSecondary }]}
183
+ style={[styles.accountAddress, { color: theme.colors.textSecondary }]}
380
184
  numberOfLines={1}
381
185
  >
382
186
  {hero.addressLine}
383
187
  </Text>
384
188
  ) : null}
385
189
  </View>
386
- </>
387
- ) : null}
388
- {/* Bloom's own compact outlined pill — `secondary` is the outlined
389
- variant, `small` the compact height; it hugs its label instead of
390
- spanning the surface. */}
391
- <Button
392
- appearance="subtle"
393
- tone="neutral"
394
- size="sm"
395
- onPress={handlers.onManage}
396
- accessibilityLabel={manageLabel}
397
- >
398
- {manageLabel}
399
- </Button>
400
- </View>
190
+ <View style={[styles.chevronCircle, { backgroundColor: theme.colors.contrast50 }]}>
191
+ <Animated.View style={chevronStyle}>
192
+ <MaterialCommunityIcons name="chevron-down" size={20} color={theme.colors.text} />
193
+ </Animated.View>
194
+ </View>
195
+ </PressableScale>
196
+ </View>
401
197
 
402
- {/* SWITCH ACCOUNT — own NativeWind card, NOT a Bloom grouped section: it
403
- is a disclosure header over an animated list, not a list of settings
404
- rows, and the grouped section is not a bare card container. */}
405
- <View className="mb-space-16">
406
- <Animated.View style={[{ overflow: 'hidden' }, switchCardStyle]}>
407
- <View className="bg-fill">
408
- <HoverPressable
409
- baseClassName={`flex-row items-center gap-space-12 px-space-12 py-[10px] min-h-[44px]${
410
- busy ? ' opacity-60' : ''
411
- }`}
412
- hoverClassName="bg-fill-secondary"
413
- onPress={toggleExpanded}
414
- disabled={busy}
415
- accessibilityRole="button"
416
- // The ARIA prop, not `accessibilityState`: react-native-web 0.21
417
- // forwards only this one, and RN maps it to
418
- // `accessibilityState.expanded` natively — so the disclosure state
419
- // reaches assistive tech on BOTH platforms.
420
- aria-expanded={expanded}
421
- accessibilityLabel={switchLabel}
422
- >
423
- <Text className="flex-1 text-body text-text" numberOfLines={1}>
424
- {switchLabel}
425
- </Text>
426
- {/* The facepile previews who you can switch to; once the list is open
427
- it would just restate the rows below it. */}
428
- {expanded ? null : (
429
- <AvatarGroup
430
- items={facepile}
431
- layout="stack"
432
- size={FACEPILE_AVATAR_SIZE}
433
- max={FACEPILE_MAX}
434
- overlap={FACEPILE_OVERLAP}
435
- variant="thumb"
436
- showInitials
437
- ringColor={theme.colors.card}
438
- />
439
- )}
440
- <View style={[styles.chevronCircle, { backgroundColor: theme.colors.contrast50 }]}>
441
- <Animated.View style={chevronStyle}>
442
- <MaterialCommunityIcons name="chevron-down" size={20} color={theme.colors.text} />
443
- </Animated.View>
444
- </View>
445
- </HoverPressable>
198
+ <GroupedSectionCollapse open={expanded} testID="account-switcher-content">
199
+ {listItems}
446
200
 
447
- {/* Animated reveal: an overflow-clipped container whose height + opacity
448
- are driven by `listProgress`; the inner style-based wrapper measures
449
- the natural content height via `onLayout`. */}
450
- <Animated.View
451
- style={[styles.collapse, listStyle]}
452
- pointerEvents={expanded ? 'auto' : 'none'}
453
- >
454
- <View
455
- key={switchListKey}
456
- style={styles.collapseMeasure}
457
- onLayout={(event) => setListContentHeight(event.nativeEvent.layout.height)}
458
- >
459
- <View>{listItems}</View>
460
- </View>
461
- </Animated.View>
462
- </View>
463
- </Animated.View>
464
- </View>
201
+ <AccountAffordanceRow
202
+ icon="plus"
203
+ label={t('accountMenu.addAnother')}
204
+ onPress={handlers.onAdd}
205
+ disabled={busy}
206
+ theme={theme}
207
+ />
465
208
 
466
- {/* OXY STORAGE — own NativeWind card for the same reason: a title, a meter
467
- and two chips are not settings rows. Its cloud sits in the same 20px
468
- column Bloom's own rows use, so the title below lines up with the menu
469
- titles. */}
470
- <View className="bg-fill rounded-[16px] overflow-hidden mb-space-16 px-space-12 py-[10px] gap-space-12">
471
- <View className="flex-row items-center gap-space-12 min-h-[24px]">
472
- <View className="w-[20px] items-center">
473
- <MaterialCommunityIcons
474
- name="cloud-outline"
475
- size={ROW_ICON_SIZE}
476
- color={theme.colors.textSecondary}
477
- />
478
- </View>
479
- <Text className="flex-1 text-body font-semibold text-text" numberOfLines={1}>
480
- {t('accountMenu.storage.title')}
209
+ <AccountAffordanceRow
210
+ icon="logout"
211
+ label={t('accountMenu.signOut')}
212
+ onPress={menu.onSignOut}
213
+ disabled={busy}
214
+ theme={theme}
215
+ />
216
+ </GroupedSectionCollapse>
217
+ <GroupedSectionItem
218
+ icon={<LogoIcon height={22} />}
219
+ title={manageLabel}
220
+ onPress={handlers.onManage}
221
+ showChevron={false}
222
+ />
223
+ </GroupedSection>
224
+
225
+ {/* Bloom owns the usage readout, meter and expandable breakdown. */}
226
+ <UsageCard
227
+ title={t('accountMenu.storage.title')}
228
+ style={styles.menuGroup}
229
+ usage={accountStorageUsage(storage, theme.colors, t)}
230
+ formatValue={formatStorageSize}
231
+ labels={{ freeSpace: t('accountMenu.storage.free') }}
232
+ fallback={
233
+ <Text className="text-bodySmall text-text-secondary">
234
+ {t('accountMenu.storage.unavailable')}
481
235
  </Text>
482
- </View>
483
- <CompositionBar
484
- categories={storageCategories}
485
- selectedKey={storageSegment}
486
- onSelect={toggleStorageSegment}
487
- hintLabel={usageLabel}
488
- formatReadout={(bytes, percent) => `${formatStorageGb(bytes)} · ${percent}%`}
236
+ }
237
+ footer={
238
+ shouldShowStorageActions(storage) ? (
239
+ <View className="flex-row justify-end gap-space-8">
240
+ <StorageChip
241
+ label={t('accountMenu.storage.getStorage')}
242
+ onPress={menu.onUpgradeStorage}
243
+ />
244
+ <StorageChip
245
+ label={t('accountMenu.storage.cleanUp')}
246
+ onPress={menu.onManageStorage}
247
+ />
248
+ </View>
249
+ ) : undefined
250
+ }
251
+ />
252
+
253
+ <GroupedSection style={styles.menuGroup}>
254
+ <GroupedSectionItem
255
+ icon={
256
+ <GroupedSectionIcon>
257
+ {({ color, size }) => <RiSparklingFill fill={color} width={size} height={size} />}
258
+ </GroupedSectionIcon>
259
+ }
260
+ title={
261
+ storage?.plan === 'pro' || storage?.plan === 'business'
262
+ ? t('accountMenu.plan.current', { plan: storage.plan === 'pro' ? 'Pro' : 'Business' })
263
+ : t(storage?.plan === 'basic' ? 'accountMenu.plan.get' : 'accountMenu.plan.explore')
264
+ }
265
+ description={
266
+ storage?.plan === 'pro' || storage?.plan === 'business'
267
+ ? t('accountMenu.plan.manage')
268
+ : undefined
269
+ }
270
+ onPress={menu.onOpenPlan}
271
+ showChevron={false}
489
272
  />
490
- <View className="flex-row gap-space-8">
491
- <StorageChip label={t('accountMenu.storage.upgrade')} onPress={menu.onUpgradeStorage} />
492
- <StorageChip label={t('accountMenu.storage.manage')} onPress={menu.onManageStorage} />
493
- </View>
494
- </View>
273
+ </GroupedSection>
274
+
275
+ {menu.sections.map((section) => (
276
+ <GroupedSection key={section.key} title={section.title} style={styles.menuGroup}>
277
+ {section.items.map((item) => (
278
+ <GroupedSectionItem
279
+ key={item.key}
280
+ icon={
281
+ typeof item.icon === 'string' || !item.icon ? (
282
+ <MenuIcon
283
+ name={
284
+ (item.icon ??
285
+ 'dots-horizontal') as keyof typeof MaterialCommunityIcons.glyphMap
286
+ }
287
+ />
288
+ ) : (
289
+ item.icon
290
+ )
291
+ }
292
+ title={item.label}
293
+ description={item.description}
294
+ value={item.badge}
295
+ disabled={item.disabled}
296
+ onPress={item.onPress}
297
+ showChevron={false}
298
+ />
299
+ ))}
300
+ </GroupedSection>
301
+ ))}
495
302
 
496
303
  {/* MENU — the same stock grouped section. */}
497
- <SettingsListGroup>
498
- <SettingsListItem
499
- icon={<MenuIcon name="tray-arrow-down" theme={theme} />}
304
+ <GroupedSection style={styles.menuGroup}>
305
+ <GroupedSectionItem
306
+ icon={<MenuIcon name="tray-arrow-down" />}
500
307
  title={t('accountMenu.data')}
308
+ description={t('accountMenu.dataDescription')}
501
309
  onPress={menu.onOpenData}
310
+ showChevron={false}
502
311
  />
503
- <SettingsListItem
504
- icon={<MenuIcon name="cog-outline" theme={theme} />}
312
+ <GroupedSectionItem
313
+ icon={<MenuIcon name="cog-outline" tone="info" />}
505
314
  title={t('accountMenu.settings')}
315
+ description={t('accountMenu.settingsDescription')}
506
316
  onPress={menu.onOpenSettings}
317
+ showChevron={false}
507
318
  />
508
- <SettingsListItem
509
- icon={<MenuIcon name="help-circle-outline" theme={theme} />}
319
+ <GroupedSectionItem
320
+ icon={<MenuIcon name="help-circle-outline" />}
510
321
  title={t('accountMenu.help')}
322
+ description={t('accountOverview.items.help.subtitle')}
511
323
  onPress={menu.onHelp}
512
- />
513
- {menu.customItems.map((item) => (
514
- <SettingsListItem
515
- key={item.key}
516
- icon={
517
- <MenuIcon
518
- name={
519
- (item.icon ?? 'dots-horizontal') as keyof typeof MaterialCommunityIcons.glyphMap
520
- }
521
- theme={theme}
522
- />
523
- }
524
- title={item.label}
525
- onPress={item.onPress}
526
- />
527
- ))}
528
- <SettingsListItem
529
- icon={<MenuIcon name="logout" theme={theme} />}
530
- title={t('accountMenu.signOut')}
531
- onPress={menu.onSignOut}
532
324
  showChevron={false}
533
325
  />
534
- </SettingsListGroup>
326
+ </GroupedSection>
535
327
 
536
328
  {/* FOOTER. */}
537
- <View className="flex-row items-center justify-center gap-space-12 px-space-12 pb-space-8">
538
- <Pressable onPress={menu.onPrivacy} accessibilityRole="link">
539
- <Text className="text-bodySmall text-text-secondary">{t('accountMenu.privacy')}</Text>
540
- </Pressable>
329
+ <View className="flex-row items-center justify-center gap-space-12 px-space-12 pt-space-12 pb-space-8">
330
+ <LinkButton size="sm" linkTone="secondary" onPress={menu.onPrivacy}>
331
+ {t('accountMenu.privacy')}
332
+ </LinkButton>
541
333
  <Text className="text-bodySmall text-text-tertiary">·</Text>
542
- <Pressable onPress={menu.onTerms} accessibilityRole="link">
543
- <Text className="text-bodySmall text-text-secondary">{t('accountMenu.terms')}</Text>
544
- </Pressable>
334
+ <LinkButton size="sm" linkTone="secondary" onPress={menu.onTerms}>
335
+ {t('accountMenu.terms')}
336
+ </LinkButton>
545
337
  </View>
546
338
  </View>
547
339
  );
@@ -583,20 +375,17 @@ const PrincipalHeaderRow: React.FC<{
583
375
  </Text>
584
376
  ) : null}
585
377
  </View>
586
- <HoverPressable
587
- baseClassName={`rounded-radius-max px-space-8 py-[4px]${disabled ? ' opacity-60' : ''}`}
588
- hoverClassName="bg-fill-secondary"
378
+ <Button
379
+ appearance="plain"
380
+ tone="neutral"
381
+ size="sm"
589
382
  onPress={onSignOut}
590
383
  disabled={disabled}
591
- accessibilityRole="button"
384
+ loading={removing}
592
385
  accessibilityLabel={signOutLabel}
593
386
  >
594
- {removing ? (
595
- <MaterialCommunityIcons name="loading" size={16} color={theme.colors.textSecondary} />
596
- ) : (
597
- <Text className="text-caption text-text-secondary">{t('accountMenu.signOut')}</Text>
598
- )}
599
- </HoverPressable>
387
+ {t('accountMenu.signOut')}
388
+ </Button>
600
389
  </View>
601
390
  );
602
391
  };
@@ -647,70 +436,53 @@ const ContextRow: React.FC<{
647
436
  });
648
437
  return (
649
438
  <View className="flex-row items-center">
650
- <HoverPressable
651
- baseClassName={`flex-1 min-w-0 flex-row items-center gap-space-12 pl-space-12 py-[10px]${
652
- rowDisabled ? ' opacity-60' : ''
653
- }`}
654
- hoverClassName="bg-fill-secondary"
655
- onPress={onActivate}
656
- disabled={rowDisabled}
657
- accessibilityRole="button"
658
- accessibilityState={{ selected: context.isActive, disabled: rowDisabled }}
659
- accessibilityLabel={context.displayName}
660
- >
661
- <View>
662
- <Avatar
663
- source={context.avatarUrl ?? undefined}
664
- variant="thumb"
665
- name={context.displayName}
666
- size={SWITCH_AVATAR_SIZE}
667
- />
668
- {/* The accent ring is an OVERLAY: it costs the row no width, so every
669
- avatar in the list starts on the same content line. */}
670
- {context.isActive ? (
671
- <View
672
- style={[styles.currentAvatarRing, { borderColor: accent }]}
673
- pointerEvents="none"
674
- />
675
- ) : null}
676
- </View>
677
- <View className="flex-1 min-w-0">
678
- <Text className="text-body font-semibold text-text" numberOfLines={1}>
679
- {context.displayName}
680
- </Text>
681
- <Text className="text-caption text-text-secondary" numberOfLines={1}>
682
- {unavailable
439
+ <View className="flex-1 min-w-0">
440
+ <GroupedSectionItem
441
+ title={context.displayName}
442
+ description={
443
+ unavailable
683
444
  ? t('accountSwitcher.context.unavailable')
684
445
  : context.handle
685
446
  ? `@${context.handle}`
686
- : ''}
687
- </Text>
688
- </View>
689
- {activating ? <MaterialCommunityIcons name="loading" size={20} color={accent} /> : null}
690
- </HoverPressable>
691
- <HoverPressable
692
- baseClassName={`px-space-12 py-[10px]${disabled ? ' opacity-60' : ''}`}
693
- hoverClassName="bg-fill-secondary"
447
+ : undefined
448
+ }
449
+ icon={
450
+ <Avatar
451
+ source={context.avatarUrl ?? undefined}
452
+ variant="thumb"
453
+ name={context.displayName}
454
+ size={SWITCH_AVATAR_SIZE}
455
+ />
456
+ }
457
+ onPress={onActivate}
458
+ disabled={rowDisabled}
459
+ accessibilityState={{
460
+ selected: context.isActive,
461
+ disabled: rowDisabled,
462
+ busy: activating,
463
+ }}
464
+ accessibilityLabel={context.displayName}
465
+ showChevron={false}
466
+ rightElement={activating ? <SpinnerIcon size={20} color={accent} /> : undefined}
467
+ />
468
+ </View>
469
+ <Button
470
+ appearance="plain"
471
+ tone="neutral"
472
+ size="sm"
473
+ iconOnly
694
474
  onPress={onRemove}
695
475
  disabled={disabled}
696
- accessibilityRole="button"
476
+ loading={removing}
697
477
  accessibilityLabel={removeLabel}
698
- >
699
- <MaterialCommunityIcons
700
- name={removing ? 'loading' : 'close'}
701
- size={18}
702
- color={theme.colors.textTertiary}
703
- />
704
- </HoverPressable>
478
+ icon={<MaterialCommunityIcons name="close" size={18} />}
479
+ />
705
480
  </View>
706
481
  );
707
482
  };
708
483
 
709
484
  /**
710
- * An account-list AFFORDANCE row ("Add another account", "Manage accounts on
711
- * this device") — a bordered circle sized to the avatar it stands in for, so its
712
- * label lands on the same line as every account name above it. Own markup, like
713
- * the account rows it closes: this list is not a Bloom grouped section.
485
+ * Account actions align with the avatars above them inside the same Bloom group.
714
486
  */
715
487
  const AccountAffordanceRow: React.FC<{
716
488
  icon: keyof typeof MaterialCommunityIcons.glyphMap;
@@ -719,51 +491,29 @@ const AccountAffordanceRow: React.FC<{
719
491
  disabled?: boolean;
720
492
  theme: Theme;
721
493
  }> = ({ icon, label, onPress, disabled, theme }) => (
722
- <HoverPressable
723
- baseClassName={`flex-row items-center gap-space-12 px-space-12 py-[10px]${
724
- disabled ? ' opacity-60' : ''
725
- }`}
726
- hoverClassName="bg-fill-secondary"
494
+ <GroupedSectionItem
495
+ title={label}
727
496
  onPress={onPress}
728
497
  disabled={disabled}
729
- accessibilityRole="button"
730
- accessibilityLabel={label}
731
- >
732
- <View className="w-[36px] h-[36px] items-center justify-center rounded-radius-max border border-border">
733
- <MaterialCommunityIcons
734
- name={icon}
735
- size={BADGE_GLYPH_SIZE}
736
- color={theme.colors.textSecondary}
737
- />
738
- </View>
739
- <Text className="flex-1 text-body font-semibold text-text" numberOfLines={1}>
740
- {label}
741
- </Text>
742
- </HoverPressable>
498
+ showChevron={false}
499
+ icon={<MenuIcon name={icon} />}
500
+ />
743
501
  );
744
502
 
745
- /**
746
- * The leading glyph for a grouped-section menu row, sized to Bloom's 20px icon
747
- * column so the icons, the storage block's cloud and every row title align.
748
- */
503
+ /** Bloom owns the icon surface, sizing and contrast. */
749
504
  const MenuIcon: React.FC<{
750
505
  name: keyof typeof MaterialCommunityIcons.glyphMap;
751
- theme: Theme;
752
- }> = ({ name, theme }) => (
753
- <MaterialCommunityIcons name={name} size={ROW_ICON_SIZE} color={theme.colors.textSecondary} />
506
+ tone?: React.ComponentProps<typeof GroupedSectionIcon>['tone'];
507
+ }> = ({ name, tone }) => (
508
+ <GroupedSectionIcon tone={tone}>
509
+ {({ color, size }) => <MaterialCommunityIcons name={name} size={size} color={color} />}
510
+ </GroupedSectionIcon>
754
511
  );
755
512
 
756
- /** A storage action chip — a bordered pill on the sheet background. */
757
513
  const StorageChip: React.FC<{ label: string; onPress: () => void }> = ({ label, onPress }) => (
758
- <HoverPressable
759
- baseClassName="rounded-radius-max border border-border bg-bg py-[9px] px-[14px]"
760
- hoverClassName="bg-fill-secondary"
761
- onPress={onPress}
762
- accessibilityRole="button"
763
- accessibilityLabel={label}
764
- >
765
- <Text className="text-bodySmall font-semibold text-text">{label}</Text>
766
- </HoverPressable>
514
+ <Button appearance="plain" size="sm" onPress={onPress} accessibilityLabel={label}>
515
+ {label}
516
+ </Button>
767
517
  );
768
518
 
769
519
  export default AccountsMenuView;