@oxy.so/services 6.1.0 → 8.0.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 (934) hide show
  1. package/README.md +80 -136
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  4. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +5 -20
  5. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  7. package/lib/commonjs/assets/fonts/icons/manifest.json +5 -20
  8. package/lib/commonjs/index.js +21 -15
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ui/boot/runProviderColdBoot.js +2 -1
  11. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +2 -3
  13. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyAuthChooser.js +16 -32
  15. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
  17. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
  19. package/lib/commonjs/ui/components/ProfileButton.js +1 -1
  20. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  21. package/lib/commonjs/ui/components/SurfaceScreen.js +21 -12
  22. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +2 -2
  24. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +6 -17
  26. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +1 -1
  28. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  29. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
  30. package/lib/commonjs/ui/components/authChooser/types.js +0 -8
  31. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  32. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +1 -1
  33. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +2 -2
  34. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  35. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +11 -5
  36. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  37. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +325 -0
  38. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  39. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +52 -56
  40. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  41. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  42. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  43. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +141 -0
  44. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  45. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +502 -194
  46. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  47. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +211 -42
  48. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  49. package/lib/commonjs/ui/components/signIn/ReauthStep.js +186 -0
  50. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -0
  51. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +103 -26
  52. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  53. package/lib/commonjs/ui/components/signIn/signInFlowStore.js +50 -0
  54. package/lib/commonjs/ui/components/signIn/signInFlowStore.js.map +1 -0
  55. package/lib/commonjs/ui/components/signIn/signInMethods.js +12 -25
  56. package/lib/commonjs/ui/components/signIn/signInMethods.js.map +1 -1
  57. package/lib/commonjs/ui/context/OxyContext.js +125 -119
  58. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  59. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +11 -10
  60. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  61. package/lib/commonjs/ui/context/useOxyAccountGraph.js +4 -4
  62. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  63. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +1 -1
  64. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +19 -9
  65. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  66. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +4 -4
  67. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  68. package/lib/commonjs/ui/hooks/queries/queryKeys.js +23 -3
  69. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  70. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +8 -8
  71. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  72. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +27 -15
  73. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -1
  74. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +5 -2
  75. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
  76. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +8 -8
  77. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  78. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +4 -3
  79. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  80. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +6 -6
  81. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  82. package/lib/commonjs/ui/hooks/useAssets.js +36 -20
  83. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
  84. package/lib/commonjs/ui/hooks/useAvatarPicker.js +6 -4
  85. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  86. package/lib/commonjs/ui/hooks/useDeviceManagement.js +5 -5
  87. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -1
  88. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +2 -2
  89. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
  90. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +1 -4
  91. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -1
  92. package/lib/commonjs/ui/hooks/useFollow.js +2 -2
  93. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  94. package/lib/commonjs/ui/hooks/useFollowTarget.js +5 -5
  95. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  96. package/lib/commonjs/ui/hooks/useI18n.js +4 -1
  97. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  98. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js +2 -2
  99. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js.map +1 -1
  100. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  101. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  102. package/lib/commonjs/ui/hooks/useSurfaceFrameWidth.js +28 -0
  103. package/lib/commonjs/ui/hooks/useSurfaceFrameWidth.js.map +1 -0
  104. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -15
  105. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  106. package/lib/commonjs/ui/navigation/routes.js +6 -4
  107. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  108. package/lib/commonjs/ui/navigation/surfaceRegistry.js +1 -1
  109. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  110. package/lib/commonjs/ui/oauth/browserBridge.js +247 -0
  111. package/lib/commonjs/ui/oauth/browserBridge.js.map +1 -0
  112. package/lib/commonjs/ui/oauth/completeOAuthCode.js +1 -1
  113. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
  114. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js +1 -1
  115. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js.map +1 -1
  116. package/lib/commonjs/ui/runtime/createOxyRuntime.js +9 -8
  117. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
  118. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -1
  119. package/lib/commonjs/ui/screens/AccountMembersScreen.js +7 -7
  120. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  121. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js +35 -0
  122. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  123. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  124. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  126. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AppInfoScreen.js +5 -5
  128. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AvatarCropScreen.js +3 -3
  130. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +1 -1
  132. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/CreateAccountScreen.js +1 -1
  134. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  135. package/lib/commonjs/ui/screens/DeleteAccountScreen.js +19 -0
  136. package/lib/commonjs/ui/screens/DeleteAccountScreen.js.map +1 -0
  137. package/lib/commonjs/ui/screens/DomainsScreen.js +217 -0
  138. package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -0
  139. package/lib/commonjs/ui/screens/EditProfileScreen.js +1 -1
  140. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/FileManagementScreen.js +25 -11
  142. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/HelpSupportScreen.js +1 -17
  144. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/LinkCommonsScreen.js +14 -0
  146. package/lib/commonjs/ui/screens/LinkCommonsScreen.js.map +1 -0
  147. package/lib/commonjs/ui/screens/ManageAccountScreen.js +57 -61
  148. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +52 -62
  150. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  151. package/lib/commonjs/ui/screens/ProfileScreen.js +5 -13
  152. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  153. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +15 -24
  154. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  155. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js +14 -0
  156. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  157. package/lib/commonjs/ui/screens/SignInPasswordScreen.js +20 -0
  158. package/lib/commonjs/ui/screens/SignInPasswordScreen.js.map +1 -0
  159. package/lib/commonjs/ui/screens/UserListScreen.js +3 -3
  160. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  161. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +1 -1
  162. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  163. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +25 -17
  164. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  165. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  166. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  167. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +8 -14
  168. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  169. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +11 -9
  170. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  171. package/lib/commonjs/ui/session/authStore.js +4 -4
  172. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  173. package/lib/commonjs/ui/session/backgroundSession.js +5 -40
  174. package/lib/commonjs/ui/session/backgroundSession.js.map +1 -1
  175. package/lib/commonjs/ui/session/createSessionClient.js +3 -3
  176. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  177. package/lib/commonjs/ui/session/deviceCredentialTracker.js +42 -0
  178. package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -0
  179. package/lib/commonjs/ui/session/identityBinding.js +3 -3
  180. package/lib/commonjs/ui/session/identityBinding.js.map +1 -1
  181. package/lib/commonjs/ui/session/index.js +6 -6
  182. package/lib/commonjs/ui/session/index.js.map +1 -1
  183. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +2 -2
  184. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  185. package/lib/commonjs/ui/session/tokenTransport.js +3 -3
  186. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
  187. package/lib/commonjs/ui/stores/assetStore.js +12 -0
  188. package/lib/commonjs/ui/stores/assetStore.js.map +1 -1
  189. package/lib/commonjs/ui/stores/followStore.js +6 -6
  190. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  191. package/lib/commonjs/ui/utils/accountDeletionHandoff.js +1 -4
  192. package/lib/commonjs/ui/utils/accountDeletionHandoff.js.map +1 -1
  193. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  194. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  195. package/lib/commonjs/ui/utils/deviceCredential.js +11 -4
  196. package/lib/commonjs/ui/utils/deviceCredential.js.map +1 -1
  197. package/lib/commonjs/ui/utils/fileManagement.js +0 -10
  198. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  199. package/lib/commonjs/ui/utils/sessionHelpers.js +2 -2
  200. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  201. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  202. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  203. package/lib/module/assets/assets/fonts/icons/manifest.json +5 -20
  204. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  205. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  206. package/lib/module/assets/fonts/icons/manifest.json +5 -20
  207. package/lib/module/index.js +6 -6
  208. package/lib/module/index.js.map +1 -1
  209. package/lib/module/ui/boot/runProviderColdBoot.js +2 -1
  210. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  211. package/lib/module/ui/components/OxyAccountDialogScreen.js +2 -3
  212. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  213. package/lib/module/ui/components/OxyAuthChooser.js +16 -32
  214. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  215. package/lib/module/ui/components/OxySignInButton.js +1 -1
  216. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  217. package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
  218. package/lib/module/ui/components/ProfileButton.js +1 -1
  219. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  220. package/lib/module/ui/components/SurfaceScreen.js +21 -12
  221. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  222. package/lib/module/ui/components/authChooser/AccountsMenuView.js +1 -1
  223. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  224. package/lib/module/ui/components/authChooser/SignInRequestView.js +6 -17
  225. package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -1
  226. package/lib/module/ui/components/authChooser/TroubleDisclosure.js +1 -1
  227. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  228. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
  229. package/lib/module/ui/components/authChooser/types.js +0 -8
  230. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  231. package/lib/module/ui/components/signIn/InlineCommonsQr.js +1 -1
  232. package/lib/module/ui/components/signIn/OxyAccountPicker.js +1 -1
  233. package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  234. package/lib/module/ui/components/signIn/OxyAuthScreen.js +11 -5
  235. package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  236. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +321 -0
  237. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  238. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +54 -58
  239. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  240. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  241. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  242. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +136 -0
  243. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  244. package/lib/module/ui/components/signIn/OxySignInPanel.js +504 -194
  245. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  246. package/lib/module/ui/components/signIn/OxySignUpPanel.js +212 -43
  247. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  248. package/lib/module/ui/components/signIn/ReauthStep.js +181 -0
  249. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -0
  250. package/lib/module/ui/components/signIn/accountFlowParts.js +97 -26
  251. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  252. package/lib/module/ui/components/signIn/signInFlowStore.js +44 -0
  253. package/lib/module/ui/components/signIn/signInFlowStore.js.map +1 -0
  254. package/lib/module/ui/components/signIn/signInMethods.js +12 -25
  255. package/lib/module/ui/components/signIn/signInMethods.js.map +1 -1
  256. package/lib/module/ui/context/OxyContext.js +121 -115
  257. package/lib/module/ui/context/OxyContext.js.map +1 -1
  258. package/lib/module/ui/context/hooks/useAuthOperations.js +7 -7
  259. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  260. package/lib/module/ui/context/useOxyAccountGraph.js +4 -4
  261. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  262. package/lib/module/ui/hooks/mutations/mutationFactory.js +1 -1
  263. package/lib/module/ui/hooks/mutations/useAccountMutations.js +19 -9
  264. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  265. package/lib/module/ui/hooks/mutations/useServicesMutations.js +4 -4
  266. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/queryKeys.js +23 -3
  268. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useAccountQueries.js +8 -8
  270. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/queries/useAuthMethods.js +25 -14
  272. package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -1
  273. package/lib/module/ui/hooks/queries/useFileQueries.js +5 -2
  274. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
  275. package/lib/module/ui/hooks/queries/usePaymentQueries.js +8 -8
  276. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  277. package/lib/module/ui/hooks/queries/useSecurityQueries.js +4 -3
  278. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  279. package/lib/module/ui/hooks/queries/useServicesQueries.js +6 -6
  280. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  281. package/lib/module/ui/hooks/useAssets.js +36 -20
  282. package/lib/module/ui/hooks/useAssets.js.map +1 -1
  283. package/lib/module/ui/hooks/useAvatarPicker.js +6 -4
  284. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  285. package/lib/module/ui/hooks/useDeviceManagement.js +4 -4
  286. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -1
  287. package/lib/module/ui/hooks/useDeviceSwitcher.js +2 -2
  288. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
  289. package/lib/module/ui/hooks/useFileDownloadUrl.js +1 -4
  290. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -1
  291. package/lib/module/ui/hooks/useFollow.js +2 -2
  292. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  293. package/lib/module/ui/hooks/useFollowTarget.js +5 -5
  294. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  295. package/lib/module/ui/hooks/useI18n.js +6 -3
  296. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  297. package/lib/module/ui/hooks/useResolvedFileUrls.js +2 -2
  298. package/lib/module/ui/hooks/useResolvedFileUrls.js.map +1 -1
  299. package/lib/module/ui/hooks/useSessionManagement.js +3 -3
  300. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  301. package/lib/module/ui/hooks/useSurfaceFrameWidth.js +24 -0
  302. package/lib/module/ui/hooks/useSurfaceFrameWidth.js.map +1 -0
  303. package/lib/module/ui/icons/subsetGlyphMaps.js +0 -15
  304. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  305. package/lib/module/ui/navigation/routes.js +6 -4
  306. package/lib/module/ui/navigation/routes.js.map +1 -1
  307. package/lib/module/ui/navigation/surfaceRegistry.js +1 -1
  308. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  309. package/lib/module/ui/oauth/browserBridge.js +239 -0
  310. package/lib/module/ui/oauth/browserBridge.js.map +1 -0
  311. package/lib/module/ui/oauth/completeOAuthCode.js +1 -1
  312. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
  313. package/lib/module/ui/oauth/explicitOAuthConsent.js +1 -1
  314. package/lib/module/ui/oauth/explicitOAuthConsent.js.map +1 -1
  315. package/lib/module/ui/runtime/createOxyRuntime.js +4 -3
  316. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
  317. package/lib/module/ui/runtime/runtimeContext.js.map +1 -1
  318. package/lib/module/ui/screens/AccountMembersScreen.js +7 -7
  319. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  320. package/lib/module/ui/screens/AccountSecurityPanelScreen.js +32 -0
  321. package/lib/module/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  322. package/lib/module/ui/screens/AccountSettingsScreen.js +3 -3
  323. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  324. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  325. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  326. package/lib/module/ui/screens/AppInfoScreen.js +5 -5
  327. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  328. package/lib/module/ui/screens/AvatarCropScreen.js +3 -3
  329. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  330. package/lib/module/ui/screens/ChangeAvatarScreen.js +1 -1
  331. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -1
  332. package/lib/module/ui/screens/CreateAccountScreen.js +1 -1
  333. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  334. package/lib/module/ui/screens/DeleteAccountScreen.js +17 -0
  335. package/lib/module/ui/screens/DeleteAccountScreen.js.map +1 -0
  336. package/lib/module/ui/screens/DomainsScreen.js +212 -0
  337. package/lib/module/ui/screens/DomainsScreen.js.map +1 -0
  338. package/lib/module/ui/screens/EditProfileScreen.js +1 -1
  339. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  340. package/lib/module/ui/screens/FileManagementScreen.js +25 -11
  341. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  342. package/lib/module/ui/screens/HelpSupportScreen.js +1 -17
  343. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  344. package/lib/module/ui/screens/LinkCommonsScreen.js +12 -0
  345. package/lib/module/ui/screens/LinkCommonsScreen.js.map +1 -0
  346. package/lib/module/ui/screens/ManageAccountScreen.js +58 -62
  347. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  348. package/lib/module/ui/screens/PrivacySettingsScreen.js +53 -63
  349. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  350. package/lib/module/ui/screens/ProfileScreen.js +5 -13
  351. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  352. package/lib/module/ui/screens/SearchSettingsScreen.js +16 -25
  353. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  354. package/lib/module/ui/screens/SignInAuthenticatorScreen.js +12 -0
  355. package/lib/module/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  356. package/lib/module/ui/screens/SignInPasswordScreen.js +18 -0
  357. package/lib/module/ui/screens/SignInPasswordScreen.js.map +1 -0
  358. package/lib/module/ui/screens/UserListScreen.js +3 -3
  359. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  360. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  361. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  362. package/lib/module/ui/screens/trust/TrustCenterScreen.js +26 -18
  363. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  364. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  365. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  366. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +9 -15
  367. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  368. package/lib/module/ui/screens/trust/TrustRulesScreen.js +12 -10
  369. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  370. package/lib/module/ui/session/authStore.js +1 -1
  371. package/lib/module/ui/session/authStore.js.map +1 -1
  372. package/lib/module/ui/session/backgroundSession.js +5 -40
  373. package/lib/module/ui/session/backgroundSession.js.map +1 -1
  374. package/lib/module/ui/session/createSessionClient.js +1 -1
  375. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  376. package/lib/module/ui/session/deviceCredentialTracker.js +38 -0
  377. package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -0
  378. package/lib/module/ui/session/identityBinding.js +1 -1
  379. package/lib/module/ui/session/identityBinding.js.map +1 -1
  380. package/lib/module/ui/session/index.js +1 -1
  381. package/lib/module/ui/session/index.js.map +1 -1
  382. package/lib/module/ui/session/sharedDeviceCredentialStore.js +1 -1
  383. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  384. package/lib/module/ui/session/tokenTransport.js +3 -3
  385. package/lib/module/ui/session/tokenTransport.js.map +1 -1
  386. package/lib/module/ui/stores/assetStore.js +12 -0
  387. package/lib/module/ui/stores/assetStore.js.map +1 -1
  388. package/lib/module/ui/stores/followStore.js +6 -6
  389. package/lib/module/ui/stores/followStore.js.map +1 -1
  390. package/lib/module/ui/utils/accountDeletionHandoff.js +2 -5
  391. package/lib/module/ui/utils/accountDeletionHandoff.js.map +1 -1
  392. package/lib/module/ui/utils/avatarUtils.js +1 -1
  393. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  394. package/lib/module/ui/utils/deviceCredential.js +10 -3
  395. package/lib/module/ui/utils/deviceCredential.js.map +1 -1
  396. package/lib/module/ui/utils/fileManagement.js +0 -9
  397. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  398. package/lib/module/ui/utils/sessionHelpers.js +2 -2
  399. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  400. package/lib/typescript/commonjs/index.d.ts +5 -5
  401. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +3 -2
  403. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  404. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  405. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +8 -7
  407. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  408. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts +2 -1
  409. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  412. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  413. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  414. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  416. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +1 -1
  417. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  418. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  419. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  421. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts +2 -1
  423. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  424. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +1 -12
  425. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  427. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  429. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  430. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts +7 -1
  431. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
  432. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  433. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  435. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  436. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  437. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  439. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  440. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  441. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  443. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +34 -0
  445. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  446. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +38 -12
  447. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts +20 -0
  449. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  450. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts +10 -20
  451. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +2 -1
  454. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +4 -39
  456. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
  458. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  460. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  461. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  462. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  463. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  465. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  466. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +19 -1
  467. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  469. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  470. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +1 -1
  471. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  472. package/lib/typescript/commonjs/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  473. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  474. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  475. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  476. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +5 -5
  477. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts.map +1 -1
  478. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +1 -1
  479. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  480. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  482. package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts +1 -1
  483. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  484. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  485. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  486. package/lib/typescript/commonjs/ui/hooks/useSurfaceFrameWidth.d.ts +12 -0
  487. package/lib/typescript/commonjs/ui/hooks/useSurfaceFrameWidth.d.ts.map +1 -0
  488. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  489. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  490. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  491. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  492. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +0 -15
  493. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  494. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +1 -1
  495. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  496. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  497. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +7 -5
  499. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  500. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts +97 -0
  501. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts.map +1 -0
  502. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +6 -2
  503. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +2 -1
  505. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/ui/runtime/types.d.ts +2 -1
  507. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -1
  508. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  509. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  510. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts +6 -0
  511. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  512. package/lib/typescript/commonjs/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  513. package/lib/typescript/commonjs/ui/screens/DomainsScreen.d.ts.map +1 -0
  514. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts +6 -0
  517. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  518. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  520. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  523. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  524. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts +6 -0
  525. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  526. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  527. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  528. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/ui/session/authStore.d.ts +1 -1
  530. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts +3 -4
  532. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts.map +1 -1
  533. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +2 -1
  534. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts +23 -0
  536. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  537. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts +1 -1
  538. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts.map +1 -1
  539. package/lib/typescript/commonjs/ui/session/index.d.ts +1 -1
  540. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
  541. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts +1 -1
  542. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts.map +1 -1
  543. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  544. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  545. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +3 -2
  546. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
  547. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts +7 -0
  548. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts.map +1 -1
  549. package/lib/typescript/commonjs/ui/types/navigation.d.ts +1 -1
  550. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  551. package/lib/typescript/commonjs/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  552. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts +10 -3
  553. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts.map +1 -1
  554. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +1 -5
  555. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  556. package/lib/typescript/module/index.d.ts +5 -5
  557. package/lib/typescript/module/index.d.ts.map +1 -1
  558. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +3 -2
  559. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  560. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  561. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  562. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +8 -7
  563. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  564. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts +2 -1
  565. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  566. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  567. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  568. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  569. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  570. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  571. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  572. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +1 -1
  573. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  574. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  575. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  576. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  577. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  578. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts +2 -1
  579. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  580. package/lib/typescript/module/ui/components/authChooser/types.d.ts +1 -12
  581. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  582. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  583. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  584. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  585. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  586. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts +7 -1
  587. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
  588. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  589. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  590. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  591. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  592. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  593. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  594. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  595. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  596. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  597. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  598. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  599. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  600. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +34 -0
  601. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  602. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +38 -12
  603. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts +20 -0
  605. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  606. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts +10 -20
  607. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  609. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +2 -1
  610. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  611. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +4 -39
  612. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  613. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
  614. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  615. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  616. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  618. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  619. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  620. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  621. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  622. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +19 -1
  623. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  624. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  625. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  626. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +1 -1
  627. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  628. package/lib/typescript/module/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  629. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  630. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  631. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/hooks/useAssets.d.ts +5 -5
  633. package/lib/typescript/module/ui/hooks/useAssets.d.ts.map +1 -1
  634. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +1 -1
  635. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  636. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  637. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  638. package/lib/typescript/module/ui/hooks/useFollow.d.ts +1 -1
  639. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  640. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  641. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/hooks/useSurfaceFrameWidth.d.ts +12 -0
  643. package/lib/typescript/module/ui/hooks/useSurfaceFrameWidth.d.ts.map +1 -0
  644. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  645. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  646. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  647. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  648. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +0 -15
  649. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +1 -1
  651. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  652. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  653. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  654. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +7 -5
  655. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/oauth/browserBridge.d.ts +97 -0
  657. package/lib/typescript/module/ui/oauth/browserBridge.d.ts.map +1 -0
  658. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +6 -2
  659. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  660. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +2 -1
  661. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/runtime/types.d.ts +2 -1
  663. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -1
  664. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  665. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  666. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts +6 -0
  667. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  668. package/lib/typescript/module/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  669. package/lib/typescript/module/ui/screens/DomainsScreen.d.ts.map +1 -0
  670. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  671. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  672. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts +6 -0
  673. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  674. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  676. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  678. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  679. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  680. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts +6 -0
  681. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  682. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  684. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  685. package/lib/typescript/module/ui/session/authStore.d.ts +1 -1
  686. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  687. package/lib/typescript/module/ui/session/backgroundSession.d.ts +3 -4
  688. package/lib/typescript/module/ui/session/backgroundSession.d.ts.map +1 -1
  689. package/lib/typescript/module/ui/session/createSessionClient.d.ts +2 -1
  690. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  691. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts +23 -0
  692. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  693. package/lib/typescript/module/ui/session/identityBinding.d.ts +1 -1
  694. package/lib/typescript/module/ui/session/identityBinding.d.ts.map +1 -1
  695. package/lib/typescript/module/ui/session/index.d.ts +1 -1
  696. package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
  697. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts +1 -1
  698. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts.map +1 -1
  699. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  700. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  701. package/lib/typescript/module/ui/session/tokenTransport.d.ts +3 -2
  702. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
  703. package/lib/typescript/module/ui/stores/assetStore.d.ts +7 -0
  704. package/lib/typescript/module/ui/stores/assetStore.d.ts.map +1 -1
  705. package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
  706. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  707. package/lib/typescript/module/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  708. package/lib/typescript/module/ui/utils/deviceCredential.d.ts +10 -3
  709. package/lib/typescript/module/ui/utils/deviceCredential.d.ts.map +1 -1
  710. package/lib/typescript/module/ui/utils/fileManagement.d.ts +1 -5
  711. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  712. package/package.json +4 -5
  713. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  714. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  715. package/src/assets/fonts/icons/manifest.json +5 -20
  716. package/src/index.ts +8 -8
  717. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +4 -4
  718. package/src/ui/boot/runProviderColdBoot.ts +3 -9
  719. package/src/ui/components/OxyAccountDialogScreen.tsx +2 -3
  720. package/src/ui/components/OxyAuthChooser.tsx +14 -36
  721. package/src/ui/components/OxySignInButton.tsx +1 -1
  722. package/src/ui/components/OxySignInRequestSurface.tsx +2 -1
  723. package/src/ui/components/ProfileButton.tsx +1 -1
  724. package/src/ui/components/SurfaceScreen.tsx +19 -11
  725. package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -6
  726. package/src/ui/components/authChooser/SignInRequestView.tsx +5 -23
  727. package/src/ui/components/authChooser/TroubleDisclosure.tsx +1 -1
  728. package/src/ui/components/authChooser/primitives.tsx +1 -1
  729. package/src/ui/components/authChooser/requestSurfaces.tsx +2 -1
  730. package/src/ui/components/authChooser/signInFailureMessage.ts +1 -1
  731. package/src/ui/components/authChooser/signInProgress.ts +2 -1
  732. package/src/ui/components/authChooser/types.ts +1 -13
  733. package/src/ui/components/signIn/InlineCommonsQr.tsx +2 -2
  734. package/src/ui/components/signIn/OxyAccountPicker.tsx +1 -1
  735. package/src/ui/components/signIn/OxyAuthScreen.tsx +14 -5
  736. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +294 -0
  737. package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +48 -61
  738. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +43 -35
  739. package/src/ui/components/signIn/OxyPasswordPanel.tsx +117 -0
  740. package/src/ui/components/signIn/OxySignInPanel.tsx +542 -203
  741. package/src/ui/components/signIn/OxySignUpPanel.tsx +186 -56
  742. package/src/ui/components/signIn/ReauthStep.tsx +201 -0
  743. package/src/ui/components/signIn/accountFlowParts.tsx +139 -33
  744. package/src/ui/components/signIn/signInFlowStore.ts +41 -0
  745. package/src/ui/components/signIn/signInMethods.ts +12 -27
  746. package/src/ui/context/OxyContext.tsx +124 -145
  747. package/src/ui/context/hooks/useAuthOperations.ts +9 -8
  748. package/src/ui/context/oxyContextTypes.ts +4 -41
  749. package/src/ui/context/useOxyAccountGraph.ts +6 -5
  750. package/src/ui/hooks/accountDialogSnapshot.ts +1 -1
  751. package/src/ui/hooks/mutations/mutationFactory.ts +1 -1
  752. package/src/ui/hooks/mutations/useAccountMutations.ts +11 -10
  753. package/src/ui/hooks/mutations/useServicesMutations.ts +4 -4
  754. package/src/ui/hooks/queries/queryKeys.ts +26 -2
  755. package/src/ui/hooks/queries/useAccountQueries.ts +8 -8
  756. package/src/ui/hooks/queries/useAuthMethods.ts +22 -19
  757. package/src/ui/hooks/queries/useFileQueries.ts +2 -2
  758. package/src/ui/hooks/queries/usePaymentQueries.ts +8 -8
  759. package/src/ui/hooks/queries/useSecurityQueries.ts +4 -3
  760. package/src/ui/hooks/queries/useServicesQueries.ts +6 -6
  761. package/src/ui/hooks/useAssets.ts +26 -31
  762. package/src/ui/hooks/useAvatarPicker.ts +4 -4
  763. package/src/ui/hooks/useDeviceManagement.ts +4 -4
  764. package/src/ui/hooks/useDeviceSwitcher.ts +2 -7
  765. package/src/ui/hooks/useFileDownloadUrl.ts +1 -5
  766. package/src/ui/hooks/useFollow.ts +2 -2
  767. package/src/ui/hooks/useFollowTarget.ts +5 -5
  768. package/src/ui/hooks/useI18n.ts +6 -3
  769. package/src/ui/hooks/useResolvedFileUrls.ts +8 -6
  770. package/src/ui/hooks/useSessionManagement.ts +3 -3
  771. package/src/ui/hooks/useSurfaceFrameWidth.ts +21 -0
  772. package/src/ui/icons/subsetGlyphMaps.ts +0 -15
  773. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +1 -1
  774. package/src/ui/navigation/accountDialogManager.ts +1 -1
  775. package/src/ui/navigation/routes.ts +11 -8
  776. package/src/ui/navigation/surfaceRegistry.ts +8 -6
  777. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +8 -8
  778. package/src/ui/oauth/__tests__/browserBridge.test.ts +198 -0
  779. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
  780. package/src/ui/oauth/__tests__/explicitOAuthConsent.test.ts +11 -11
  781. package/src/ui/oauth/__tests__/sharedCompletionPath.test.ts +7 -7
  782. package/src/ui/oauth/browserBridge.ts +234 -0
  783. package/src/ui/oauth/completeOAuthCode.ts +1 -1
  784. package/src/ui/oauth/explicitOAuthConsent.ts +1 -1
  785. package/src/ui/runtime/createOxyRuntime.ts +8 -16
  786. package/src/ui/runtime/runtimeContext.tsx +2 -1
  787. package/src/ui/runtime/types.ts +2 -1
  788. package/src/ui/screens/AccountMembersScreen.tsx +7 -7
  789. package/src/ui/screens/AccountSecurityPanelScreen.tsx +26 -0
  790. package/src/ui/screens/AccountSettingsScreen.tsx +3 -3
  791. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  792. package/src/ui/screens/AppInfoScreen.tsx +5 -5
  793. package/src/ui/screens/AvatarCropScreen.tsx +3 -3
  794. package/src/ui/screens/ChangeAvatarScreen.tsx +1 -1
  795. package/src/ui/screens/CreateAccountScreen.tsx +1 -1
  796. package/src/ui/screens/DeleteAccountScreen.tsx +13 -0
  797. package/src/ui/screens/DomainsScreen.tsx +187 -0
  798. package/src/ui/screens/EditProfileScreen.tsx +1 -1
  799. package/src/ui/screens/FileManagementScreen.tsx +15 -21
  800. package/src/ui/screens/HelpSupportScreen.tsx +0 -15
  801. package/src/ui/screens/LinkCommonsScreen.tsx +13 -0
  802. package/src/ui/screens/ManageAccountScreen.tsx +47 -82
  803. package/src/ui/screens/PrivacySettingsScreen.tsx +48 -67
  804. package/src/ui/screens/ProfileScreen.tsx +5 -10
  805. package/src/ui/screens/SearchSettingsScreen.tsx +15 -27
  806. package/src/ui/screens/SignInAuthenticatorScreen.tsx +13 -0
  807. package/src/ui/screens/SignInPasswordScreen.tsx +13 -0
  808. package/src/ui/screens/UserListScreen.tsx +3 -3
  809. package/src/ui/screens/WelcomeNewUserScreen.tsx +1 -1
  810. package/src/ui/screens/trust/TrustCenterScreen.tsx +25 -29
  811. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +2 -2
  812. package/src/ui/screens/trust/TrustRewardsScreen.tsx +9 -19
  813. package/src/ui/screens/trust/TrustRulesScreen.tsx +14 -14
  814. package/src/ui/session/__tests__/authStore.test.ts +1 -1
  815. package/src/ui/session/__tests__/backgroundSession.test.ts +2 -61
  816. package/src/ui/session/__tests__/createSessionClient.test.ts +7 -9
  817. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +1 -1
  818. package/src/ui/session/__tests__/tokenTransport.test.ts +9 -7
  819. package/src/ui/session/authStore.ts +1 -7
  820. package/src/ui/session/backgroundSession.ts +5 -41
  821. package/src/ui/session/createSessionClient.ts +2 -6
  822. package/src/ui/session/deviceCredentialTracker.ts +49 -0
  823. package/src/ui/session/identityBinding.ts +1 -6
  824. package/src/ui/session/index.ts +1 -1
  825. package/src/ui/session/nativeSecureStorage.ts +1 -1
  826. package/src/ui/session/sharedDeviceCredentialStore.ts +1 -6
  827. package/src/ui/session/tokenTransport.ts +5 -4
  828. package/src/ui/stores/__tests__/followStore.test.ts +13 -15
  829. package/src/ui/stores/assetStore.ts +15 -0
  830. package/src/ui/stores/followStore.ts +7 -7
  831. package/src/ui/types/navigation.ts +2 -1
  832. package/src/ui/utils/accountDeletionHandoff.ts +2 -4
  833. package/src/ui/utils/avatarUtils.ts +1 -1
  834. package/src/ui/utils/deviceCredential.ts +11 -4
  835. package/src/ui/utils/fileManagement.ts +0 -12
  836. package/src/ui/utils/sessionHelpers.ts +2 -2
  837. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js +0 -236
  838. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  839. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js +0 -170
  840. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  841. package/lib/commonjs/ui/components/signIn/passkeyError.js +0 -46
  842. package/lib/commonjs/ui/components/signIn/passkeyError.js.map +0 -1
  843. package/lib/commonjs/ui/context/passkeyFlow.js +0 -114
  844. package/lib/commonjs/ui/context/passkeyFlow.js.map +0 -1
  845. package/lib/commonjs/ui/screens/FAQScreen.js +0 -162
  846. package/lib/commonjs/ui/screens/FAQScreen.js.map +0 -1
  847. package/lib/commonjs/ui/screens/FeedbackScreen.js +0 -601
  848. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +0 -1
  849. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +0 -968
  850. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  851. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +0 -132
  852. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +0 -1
  853. package/lib/commonjs/webauthn/passkeyClient.js +0 -39
  854. package/lib/commonjs/webauthn/passkeyClient.js.map +0 -1
  855. package/lib/commonjs/webauthn/passkeyClient.native.js +0 -34
  856. package/lib/commonjs/webauthn/passkeyClient.native.js.map +0 -1
  857. package/lib/commonjs/webauthn/passkeyClient.web.js +0 -57
  858. package/lib/commonjs/webauthn/passkeyClient.web.js.map +0 -1
  859. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js +0 -231
  860. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  861. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js +0 -165
  862. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  863. package/lib/module/ui/components/signIn/passkeyError.js +0 -40
  864. package/lib/module/ui/components/signIn/passkeyError.js.map +0 -1
  865. package/lib/module/ui/context/passkeyFlow.js +0 -107
  866. package/lib/module/ui/context/passkeyFlow.js.map +0 -1
  867. package/lib/module/ui/screens/FAQScreen.js +0 -157
  868. package/lib/module/ui/screens/FAQScreen.js.map +0 -1
  869. package/lib/module/ui/screens/FeedbackScreen.js +0 -599
  870. package/lib/module/ui/screens/FeedbackScreen.js.map +0 -1
  871. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +0 -963
  872. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  873. package/lib/module/ui/screens/SavesCollectionsScreen.js +0 -127
  874. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +0 -1
  875. package/lib/module/webauthn/passkeyClient.js +0 -33
  876. package/lib/module/webauthn/passkeyClient.js.map +0 -1
  877. package/lib/module/webauthn/passkeyClient.native.js +0 -28
  878. package/lib/module/webauthn/passkeyClient.native.js.map +0 -1
  879. package/lib/module/webauthn/passkeyClient.web.js +0 -52
  880. package/lib/module/webauthn/passkeyClient.web.js.map +0 -1
  881. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  882. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  883. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  884. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  885. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts +0 -16
  886. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts.map +0 -1
  887. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts +0 -92
  888. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts.map +0 -1
  889. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts +0 -5
  890. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +0 -1
  891. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts +0 -5
  892. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +0 -1
  893. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  894. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  895. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  896. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts +0 -20
  897. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts.map +0 -1
  898. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts +0 -15
  899. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts.map +0 -1
  900. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts +0 -36
  901. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts.map +0 -1
  902. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  903. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  904. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  905. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  906. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts +0 -16
  907. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts.map +0 -1
  908. package/lib/typescript/module/ui/context/passkeyFlow.d.ts +0 -92
  909. package/lib/typescript/module/ui/context/passkeyFlow.d.ts.map +0 -1
  910. package/lib/typescript/module/ui/screens/FAQScreen.d.ts +0 -5
  911. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +0 -1
  912. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts +0 -5
  913. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +0 -1
  914. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  915. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  916. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  917. package/lib/typescript/module/webauthn/passkeyClient.d.ts +0 -20
  918. package/lib/typescript/module/webauthn/passkeyClient.d.ts.map +0 -1
  919. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts +0 -15
  920. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts.map +0 -1
  921. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts +0 -36
  922. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts.map +0 -1
  923. package/src/ui/components/signIn/OxyCreateAccountPanel.tsx +0 -207
  924. package/src/ui/components/signIn/OxyRecoverAccountPanel.tsx +0 -154
  925. package/src/ui/components/signIn/passkeyError.ts +0 -44
  926. package/src/ui/context/__tests__/passkeyFlow.test.ts +0 -239
  927. package/src/ui/context/passkeyFlow.ts +0 -145
  928. package/src/ui/screens/FAQScreen.tsx +0 -200
  929. package/src/ui/screens/FeedbackScreen.tsx +0 -766
  930. package/src/ui/screens/PremiumSubscriptionScreen.tsx +0 -1103
  931. package/src/ui/screens/SavesCollectionsScreen.tsx +0 -167
  932. package/src/webauthn/passkeyClient.native.ts +0 -26
  933. package/src/webauthn/passkeyClient.ts +0 -31
  934. package/src/webauthn/passkeyClient.web.ts +0 -56
@@ -1,19 +1,22 @@
1
1
  /**
2
- * Account creation in the account dialog.
2
+ * Creating an Oxy account, in the account dialog of every app (web and native)
3
+ * and on auth.oxy.so's `/login`:
3
4
  *
4
- * On the web the account is made on auth.oxy.so, in its window over the app
5
- * (`onCreateOnWeb`), and this app is signed in as it. On native, Commons
6
- * creates the identity: straight in when it is installed, "Get Commons"
7
- * otherwise.
5
+ * username → email → the code sent to it → signed in
6
+ *
7
+ * The email is confirmed before the account exists, and it is how the account
8
+ * signs in (a code or a link each time). A password and an authenticator app
9
+ * are added later, in the account's security settings. Commons stays the way to
10
+ * hold your own key: "Create it in Commons instead" — and linking Commons later
11
+ * makes the account self-custodied and deletes the email.
8
12
  */
9
13
 
10
14
  import type React from 'react';
11
- import { useCallback } from 'react';
15
+ import { useEffect, useState } from 'react';
12
16
  import { Linking, Platform } from 'react-native';
13
- import { Button } from '@oxy.so/bloom/button';
14
- import { RiKey2Line } from '@oxy.so/bloom/icons/RiKey2Line';
15
17
  import { useTheme } from '@oxy.so/bloom/theme';
16
18
  import { toast } from '@oxy.so/bloom/toast';
19
+ import { SIGN_IN_ERROR_CODES, emailAddressSchema, type EmailVerificationConfirmResponse } from '@oxy.so/contracts';
17
20
  import { useOxy } from '../../context/OxyContext';
18
21
  import { useAccountDialogSnapshot } from '../../hooks/accountDialogSnapshot';
19
22
  import { useI18n } from '../../hooks/useI18n';
@@ -21,66 +24,193 @@ import { getCommonsAcquisitionUrl } from '../../utils/commonsStoreLinks';
21
24
  import { isWebBrowser } from '../../utils/isWebBrowser';
22
25
  import { SubtleLink } from '../authChooser/primitives';
23
26
  import { OxyAuthScreen, OxyAuthScreenHeader, OxyAuthTerms } from './OxyAuthScreen';
27
+ import { readSignInFlow, writeSignInFlow } from './signInFlowStore';
28
+ import {
29
+ AccountFlowAction,
30
+ AccountFlowField,
31
+ AccountFlowNote,
32
+ EmailCodeStep,
33
+ describeSignInError,
34
+ errorCode,
35
+ isTicketExpired,
36
+ } from './accountFlowParts';
24
37
 
25
38
  /** Commons' own identity-creation deep link. */
26
39
  const COMMONS_CREATE_IDENTITY_URL = 'oxycommons://create-identity';
27
40
 
41
+ type Step = { name: 'username' } | { name: 'email' } | { name: 'code'; verificationId: string };
42
+
28
43
  export interface OxySignUpPanelProps {
44
+ /** The account exists and this origin is signed in as it. */
45
+ onSignedIn: () => void;
29
46
  /** "Already have an account? Sign in". */
30
47
  onSignIn: () => void;
31
- /** The web's one action: auth.oxy.so's sign-up, in its window. */
32
- onCreateOnWeb: () => void;
48
+ /**
49
+ * `dialog` — inside the account dialog, where the step outlives a remount of
50
+ * this screen (`signInFlowStore`). `page` — a page of its own.
51
+ */
52
+ host?: 'dialog' | 'page';
33
53
  }
34
54
 
35
- export const OxySignUpPanel: React.FC<OxySignUpPanelProps> = ({ onSignIn, onCreateOnWeb }) => {
55
+ /** What the dialog keeps of this screen across a remount. */
56
+ interface SavedSignUpFlow {
57
+ step: Step;
58
+ username: string;
59
+ email: string;
60
+ }
61
+ const SIGN_UP_FLOW_KEY = 'signup';
62
+
63
+ export const OxySignUpPanel: React.FC<OxySignUpPanelProps> = ({ onSignedIn, onSignIn, host = 'page' }) => {
36
64
  const theme = useTheme();
37
65
  const { t } = useI18n();
38
- const { accountDialogController: controller } = useOxy();
39
- const snapshot = useAccountDialogSnapshot(controller);
40
- const web = isWebBrowser();
66
+ const { oxyServices, handleWebSession, accountDialogController } = useOxy();
67
+ const snapshot = useAccountDialogSnapshot(accountDialogController);
68
+ const flowOwner = host === 'dialog' ? accountDialogController : null;
69
+ const [saved] = useState(() => readSignInFlow<SavedSignUpFlow>(flowOwner, SIGN_UP_FLOW_KEY));
70
+ const [step, setStep] = useState<Step>(saved?.step ?? { name: 'username' });
71
+ const [username, setUsername] = useState(saved?.username ?? '');
72
+ const [email, setEmail] = useState(saved?.email ?? '');
73
+ const [pending, setPending] = useState(false);
74
+ const [error, setError] = useState<string | null>(null);
75
+
76
+ useEffect(() => {
77
+ writeSignInFlow(flowOwner, SIGN_UP_FLOW_KEY, { step, username, email } satisfies SavedSignUpFlow);
78
+ }, [flowOwner, step, username, email]);
41
79
 
42
- const openExternal = useCallback(
43
- (url: string) => {
44
- Promise.resolve()
45
- .then(() => Linking.openURL(url))
46
- .catch(() => toast.error(t('accountSwitcher.linkOpenFailed')));
47
- },
48
- [t],
49
- );
80
+ const run = (work: () => Promise<void>) => {
81
+ if (pending) return;
82
+ setError(null);
83
+ setPending(true);
84
+ work()
85
+ .catch((reason: unknown) => {
86
+ if (isTicketExpired(reason)) setStep({ name: 'email' });
87
+ setError(reason instanceof UsernameTakenError ? t('signup.username.taken') : describeSignInError(reason, t));
88
+ })
89
+ .finally(() => setPending(false));
90
+ };
50
91
 
51
- const commonsInstalled = snapshot.commonsAvailability === 'available';
92
+ const submitUsername = () => {
93
+ const handle = username.trim();
94
+ if (!handle) {
95
+ setError(t('signup.username.required'));
96
+ return;
97
+ }
98
+ run(async () => {
99
+ const { available } = await oxyServices.auth.checkUsername(handle);
100
+ if (!available) throw new UsernameTakenError();
101
+ setStep({ name: 'email' });
102
+ });
103
+ };
52
104
 
53
- return (
54
- <OxyAuthScreen>
55
- <OxyAuthScreenHeader title={t('signup.title')} description={web ? t('signup.webSubtitle') : t('signup.subtitle')} />
56
- {web ? (
57
- <Button
58
- appearance="solid"
59
- tone="action"
60
- size="lg"
61
- fullWidth
62
- leadingIcon={RiKey2Line}
63
- onPress={onCreateOnWeb}
64
- testID="signup-open-identity"
65
- >
66
- {t('signup.createAccount')}
67
- </Button>
68
- ) : (
69
- <Button
70
- appearance="solid"
71
- tone="action"
72
- size="lg"
73
- fullWidth
74
- onPress={() =>
75
- openExternal(commonsInstalled ? COMMONS_CREATE_IDENTITY_URL : getCommonsAcquisitionUrl(Platform.OS))
76
- }
77
- testID="signup-commons"
78
- >
79
- {commonsInstalled ? t('signup.createInCommons') : t('accountSwitcher.getCommons')}
80
- </Button>
81
- )}
82
- <SubtleLink label={t('signup.backToSignInLink')} theme={theme} onPress={onSignIn} testID="back-to-sign-in" />
83
- <OxyAuthTerms />
84
- </OxyAuthScreen>
85
- );
105
+ const sendCode = async (address: string) => {
106
+ const { verificationId } = await oxyServices.auth.email.startVerification({ purpose: 'signup', email: address });
107
+ setStep({ name: 'code', verificationId });
108
+ };
109
+
110
+ const submitEmail = () => {
111
+ const parsed = emailAddressSchema.safeParse(email);
112
+ if (!parsed.success) {
113
+ setError(t('signup.email.invalid'));
114
+ return;
115
+ }
116
+ setEmail(parsed.data);
117
+ run(() => sendCode(parsed.data));
118
+ };
119
+
120
+ // The code step reports this promise's failure in place.
121
+ const createAccount = async ({ ticket }: EmailVerificationConfirmResponse): Promise<void> => {
122
+ try {
123
+ const session = await oxyServices.auth.signUp({ username: username.trim(), email, emailTicket: ticket });
124
+ await handleWebSession(session);
125
+ writeSignInFlow(flowOwner, SIGN_UP_FLOW_KEY, undefined);
126
+ } catch (reason) {
127
+ if (errorCode(reason) === SIGN_IN_ERROR_CODES.usernameTaken) {
128
+ setStep({ name: 'username' });
129
+ setError(t('signup.username.taken'));
130
+ return;
131
+ }
132
+ if (isTicketExpired(reason)) {
133
+ setStep({ name: 'email' });
134
+ setError(describeSignInError(reason, t));
135
+ return;
136
+ }
137
+ throw reason;
138
+ }
139
+ onSignedIn();
140
+ };
141
+
142
+ const createInCommons = () => {
143
+ const url =
144
+ !isWebBrowser() && snapshot.commonsAvailability === 'available'
145
+ ? COMMONS_CREATE_IDENTITY_URL
146
+ : getCommonsAcquisitionUrl(Platform.OS);
147
+ Promise.resolve()
148
+ .then(() => Linking.openURL(url))
149
+ .catch(() => toast.error(t('accountSwitcher.linkOpenFailed')));
150
+ };
151
+
152
+ switch (step.name) {
153
+ case 'code':
154
+ return (
155
+ <EmailCodeStep
156
+ description={t('emailCode.sentTo', { email })}
157
+ verificationId={step.verificationId}
158
+ onConfirmed={createAccount}
159
+ onResend={() => sendCode(email)}
160
+ back={{ label: t('emailCode.changeEmail'), onPress: () => setStep({ name: 'email' }) }}
161
+ />
162
+ );
163
+ case 'email':
164
+ return (
165
+ <OxyAuthScreen>
166
+ <OxyAuthScreenHeader title={t('signup.email.title')} description={t('signup.email.subtitle')} />
167
+ <AccountFlowField
168
+ label={t('signup.email.label')}
169
+ value={email}
170
+ onChange={(value) => {
171
+ setEmail(value);
172
+ if (error) setError(null);
173
+ }}
174
+ onSubmit={submitEmail}
175
+ error={error}
176
+ disabled={pending}
177
+ placeholder={t('signup.email.placeholder')}
178
+ autoComplete="email"
179
+ keyboardType="email-address"
180
+ testID="signup-email"
181
+ />
182
+ <AccountFlowNote>{t('signup.laterNote')}</AccountFlowNote>
183
+ <AccountFlowAction label={t('signin.actions.continue')} onPress={submitEmail} pending={pending} testID="signup-email-continue" />
184
+ <SubtleLink label={t('signin.actions.back')} theme={theme} onPress={() => setStep({ name: 'username' })} testID="signup-back" />
185
+ <OxyAuthTerms />
186
+ </OxyAuthScreen>
187
+ );
188
+ default:
189
+ return (
190
+ <OxyAuthScreen>
191
+ <OxyAuthScreenHeader title={t('signup.title')} description={t('signup.subtitle')} />
192
+ <AccountFlowField
193
+ label={t('signup.username.label')}
194
+ value={username}
195
+ onChange={(value) => {
196
+ setUsername(value);
197
+ if (error) setError(null);
198
+ }}
199
+ onSubmit={submitUsername}
200
+ error={error}
201
+ disabled={pending}
202
+ placeholder={t('signup.username.placeholder')}
203
+ autoComplete="username"
204
+ testID="signup-username"
205
+ />
206
+ <AccountFlowAction label={t('signin.actions.continue')} onPress={submitUsername} pending={pending} testID="signup-username-continue" />
207
+ <SubtleLink label={t('signup.createInCommons')} theme={theme} onPress={createInCommons} testID="signup-commons-instead" />
208
+ <SubtleLink label={t('signup.backToSignInLink')} theme={theme} onPress={onSignIn} testID="back-to-sign-in" />
209
+ <OxyAuthTerms />
210
+ </OxyAuthScreen>
211
+ );
212
+ }
86
213
  };
214
+
215
+ /** The username was taken between typing it and creating the account. */
216
+ class UsernameTakenError extends Error {}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * "Confirm it's you": the fresh proof a sensitive change carries (`reauth`) —
3
+ * a code sent to the account's email for THIS change, or the current password
4
+ * where the change accepts one — plus the authenticator's code (or a backup
5
+ * code) when the account has one. The screen that needs it puts its own fields
6
+ * above (`children`) and names its own action; this owns the proof.
7
+ */
8
+
9
+ import type React from 'react';
10
+ import { useState } from 'react';
11
+ import { useTheme } from '@oxy.so/bloom/theme';
12
+ import { EMAIL_CODE_LENGTH, type ReauthAction, type ReauthProof } from '@oxy.so/contracts';
13
+ import { useOxy } from '../../context/OxyContext';
14
+ import { useI18n } from '../../hooks/useI18n';
15
+ import { SubtleLink } from '../authChooser/primitives';
16
+ import { OxyAuthScreen, OxyAuthScreenHeader } from './OxyAuthScreen';
17
+ import {
18
+ AccountFlowAction,
19
+ AccountFlowErrorLine,
20
+ AccountFlowField,
21
+ AccountFlowNote,
22
+ describeSignInError,
23
+ } from './accountFlowParts';
24
+
25
+ export interface ReauthStepProps {
26
+ title: string;
27
+ description?: string;
28
+ /** The change the emailed code is for: it works for nothing else. */
29
+ action: ReauthAction;
30
+ /** The account has a password, and this change accepts it. */
31
+ allowPassword?: boolean;
32
+ /** The account has an authenticator: its code is required too. */
33
+ totpEnabled: boolean;
34
+ /** The screen's action, once the proof is ready. */
35
+ submitLabel: string;
36
+ destructive?: boolean;
37
+ /** The screen's own fields, checked before anything is sent. */
38
+ validate?: () => string | null;
39
+ /** Make the change with the proof. A rejection is reported in place. */
40
+ onSubmit: (proof: ReauthProof) => Promise<void>;
41
+ /** A way out (Cancel / Back). */
42
+ secondary?: { label: string; onPress: () => void };
43
+ children?: React.ReactNode;
44
+ }
45
+
46
+ export const ReauthStep: React.FC<ReauthStepProps> = ({
47
+ title,
48
+ description,
49
+ action,
50
+ allowPassword = false,
51
+ totpEnabled,
52
+ submitLabel,
53
+ destructive,
54
+ validate,
55
+ onSubmit,
56
+ secondary,
57
+ children,
58
+ }) => {
59
+ const theme = useTheme();
60
+ const { t } = useI18n();
61
+ const { oxyServices } = useOxy();
62
+ const [mode, setMode] = useState<'email' | 'password'>(allowPassword ? 'password' : 'email');
63
+ const [verificationId, setVerificationId] = useState<string | null>(null);
64
+ const [emailCode, setEmailCode] = useState('');
65
+ const [password, setPassword] = useState('');
66
+ const [totpCode, setTotpCode] = useState('');
67
+ const [pending, setPending] = useState(false);
68
+ const [error, setError] = useState<string | null>(null);
69
+
70
+ const run = (work: () => Promise<void>) => {
71
+ if (pending) return;
72
+ setError(null);
73
+ setPending(true);
74
+ work()
75
+ .catch((reason: unknown) => setError(describeSignInError(reason, t)))
76
+ .finally(() => setPending(false));
77
+ };
78
+
79
+ const sendCode = () =>
80
+ run(async () => {
81
+ const started = await oxyServices.auth.requestReauthCode(action);
82
+ setEmailCode('');
83
+ setVerificationId(started.verificationId);
84
+ });
85
+
86
+ const submit = () => {
87
+ const invalid = validate?.() ?? null;
88
+ if (invalid) {
89
+ setError(invalid);
90
+ return;
91
+ }
92
+ if (mode === 'email' && !verificationId) {
93
+ sendCode();
94
+ return;
95
+ }
96
+ const totp = totpCode.trim();
97
+ if (totpEnabled && !totp) {
98
+ setError(t('reauth.errors.totpRequired'));
99
+ return;
100
+ }
101
+ let proof: ReauthProof;
102
+ if (mode === 'password') {
103
+ if (!password) {
104
+ setError(t('signin.password.required'));
105
+ return;
106
+ }
107
+ proof = { password, ...(totp ? { totpCode: totp } : {}) };
108
+ } else {
109
+ const code = emailCode.replace(/\D/g, '');
110
+ if (code.length !== EMAIL_CODE_LENGTH || !verificationId) {
111
+ setError(t('emailCode.errors.codeInvalid'));
112
+ return;
113
+ }
114
+ proof = { emailCode: { verificationId, code }, ...(totp ? { totpCode: totp } : {}) };
115
+ }
116
+ run(() => onSubmit(proof));
117
+ };
118
+
119
+ const needsCode = mode === 'email' && !verificationId;
120
+
121
+ return (
122
+ <OxyAuthScreen>
123
+ <OxyAuthScreenHeader title={title} description={description} />
124
+ {children}
125
+ {mode === 'password' ? (
126
+ <AccountFlowField
127
+ label={t('reauth.passwordLabel')}
128
+ value={password}
129
+ onChange={setPassword}
130
+ onSubmit={submit}
131
+ error={null}
132
+ disabled={pending}
133
+ autoComplete="current-password"
134
+ secureTextEntry
135
+ autoFocus={false}
136
+ testID="reauth-password"
137
+ />
138
+ ) : verificationId ? (
139
+ <>
140
+ <AccountFlowNote>{t('reauth.codeSent')}</AccountFlowNote>
141
+ <AccountFlowField
142
+ label={t('reauth.codeLabel')}
143
+ value={emailCode}
144
+ onChange={(value) => setEmailCode(value.replace(/\D/g, '').slice(0, EMAIL_CODE_LENGTH))}
145
+ onSubmit={submit}
146
+ error={null}
147
+ disabled={pending}
148
+ placeholder="000000"
149
+ autoComplete="one-time-code"
150
+ keyboardType="number-pad"
151
+ maxLength={EMAIL_CODE_LENGTH}
152
+ testID="reauth-code"
153
+ />
154
+ </>
155
+ ) : (
156
+ <AccountFlowNote>{t('reauth.emailDescription')}</AccountFlowNote>
157
+ )}
158
+ {totpEnabled && !needsCode ? (
159
+ <AccountFlowField
160
+ label={t('reauth.totpLabel')}
161
+ value={totpCode}
162
+ onChange={setTotpCode}
163
+ onSubmit={submit}
164
+ error={null}
165
+ disabled={pending}
166
+ placeholder="000000"
167
+ autoComplete="one-time-code"
168
+ autoFocus={false}
169
+ maxLength={11}
170
+ testID="reauth-totp"
171
+ />
172
+ ) : null}
173
+ {error ? <AccountFlowErrorLine message={error} /> : null}
174
+ <AccountFlowAction
175
+ label={needsCode ? t('reauth.sendCode') : submitLabel}
176
+ onPress={submit}
177
+ pending={pending}
178
+ destructive={destructive && !needsCode}
179
+ testID={needsCode ? 'reauth-send-code' : 'reauth-submit'}
180
+ />
181
+ {mode === 'email' && verificationId ? (
182
+ <SubtleLink label={t('emailCode.resend')} theme={theme} onPress={sendCode} disabled={pending} testID="reauth-resend" />
183
+ ) : null}
184
+ {allowPassword ? (
185
+ <SubtleLink
186
+ label={mode === 'password' ? t('reauth.useEmail') : t('reauth.usePassword')}
187
+ theme={theme}
188
+ onPress={() => {
189
+ setError(null);
190
+ setMode(mode === 'password' ? 'email' : 'password');
191
+ }}
192
+ disabled={pending}
193
+ testID="reauth-switch-method"
194
+ />
195
+ ) : null}
196
+ {secondary ? (
197
+ <SubtleLink label={secondary.label} theme={theme} onPress={secondary.onPress} disabled={pending} testID="reauth-cancel" />
198
+ ) : null}
199
+ </OxyAuthScreen>
200
+ );
201
+ };