@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
@@ -3,42 +3,41 @@
3
3
  /**
4
4
  * THE Oxy sign-in screen. The account dialog every Oxy app opens and the
5
5
  * auth.oxy.so page render this one component; only where it is mounted
6
- * differs (`host`).
6
+ * differs (`host`). Sign-in happens IN it, on every origin: no window opens.
7
7
  *
8
- * picker a returning device: "Choose an account", then "Use another account"
9
- * entry the header, the Commons way in, and the way in for someone with no
10
- * account. On auth.oxy.so (`page`) also the username with its
11
- * Continue — a username-first passkey sign-in, which takes a
12
- * platform passkey AND a hardware security key with no resident
13
- * credential (a U2F key such as a Titan) — and "or continue with" the
14
- * discoverable passkey. From `md` that page is Bloom `AuthCard`'s
15
- * split card, with the embedded QR over its photo carousel in the
16
- * right column; below `md` it is "Continue with Oxy" at the top.
17
- * In an app's dialog on the web, "Continue with Oxy" opens that page
18
- * in a window over the app, like "Sign in with Google": the browser's
19
- * session lives on auth.oxy.so, so every Oxy app shares it. On
20
- * native it is "Continue with Oxy" ("Get Commons" without Commons).
8
+ * picker a returning device: "Choose an account", then "Use another account"
9
+ * identifier the header, the Commons way in, and "Email or username" with its
10
+ * Continue. On the web, from `md`, the screen is Bloom `AuthCard`'s
11
+ * split card and the Commons way in is the embedded QR over its
12
+ * photo carousel, in the right column (the account dialog grows to
13
+ * that card); below `md` it is "Continue with Oxy" at the top. On
14
+ * native it is "Continue with Oxy" ("Get Commons" without Commons).
15
+ * check-email one email carries a code and a link. The code is typed here (6
16
+ * digits, or the 10-character long code); meanwhile the screen asks
17
+ * whether the link was opened in this browser, and signs in when it was.
18
+ * password the alternative for an account that has one.
19
+ * second-factor the authenticator's code, or a backup code, when the account has one.
21
20
  *
22
- * `signInMethods.ts` owns which blocks a platform gets.
21
+ * Every answer is the same whether or not the account exists: the email step
22
+ * says "if an account matches".
23
23
  */
24
24
 
25
- import { useCallback, useEffect, useState } from 'react';
25
+ import { useCallback, useEffect, useRef, useState } from 'react';
26
26
  import { Linking, Platform, Text as RNText, StyleSheet, View } from 'react-native';
27
27
  import { View as CssView } from 'react-native-css/components';
28
28
  import { AuthMediaCarousel } from '@oxy.so/bloom/auth-card';
29
29
  import { Button } from '@oxy.so/bloom/button';
30
30
  import { Divider } from '@oxy.so/bloom/divider';
31
- import { RiKey2Line } from '@oxy.so/bloom/icons/RiKey2Line';
32
- import { RiQrCodeLine } from '@oxy.so/bloom/icons/RiQrCodeLine';
33
31
  import { useTheme } from '@oxy.so/bloom/theme';
34
- import { TextField, TextFieldHint, TextFieldInput, TextFieldLabel } from '@oxy.so/bloom/text-field';
35
32
  import { toast } from '@oxy.so/bloom/toast';
36
33
  import { Text } from '@oxy.so/bloom/typography';
34
+ import { EMAIL_SIGNIN_LONG_CODE_LENGTH, SIGN_IN_ERROR_CODES, TOTP_DIGITS, isSecondFactorRequired } from '@oxy.so/contracts';
37
35
  import { useQueryClient } from '@tanstack/react-query';
38
36
  import { useOxy } from "../../context/OxyContext.js";
39
37
  import { useAccountDialogSnapshot } from "../../hooks/accountDialogSnapshot.js";
40
38
  import { useDeviceSwitcher } from "../../hooks/useDeviceSwitcher.js";
41
39
  import { useI18n } from "../../hooks/useI18n.js";
40
+ import { useSurfaceFrameWidth } from "../../hooks/useSurfaceFrameWidth.js";
42
41
  import { getCommonsAcquisitionUrl } from "../../utils/commonsStoreLinks.js";
43
42
  import { isWebBrowser } from "../../utils/isWebBrowser.js";
44
43
  import { SubtleLink } from "../authChooser/primitives.js";
@@ -46,13 +45,24 @@ import { SIGN_IN_SLIDES } from "./artwork.js";
46
45
  import { InlineCommonsQr } from "./InlineCommonsQr.js";
47
46
  import { OxyAccountPicker } from "./OxyAccountPicker.js";
48
47
  import { OxyAuthScreen, OxyAuthScreenHeader, OxyAuthSplit, OxyAuthTerms } from "./OxyAuthScreen.js";
49
- import { RATE_LIMIT_SECONDS, describePasskeyError, isRateLimited } from "./passkeyError.js";
48
+ import { AccountFlowAction, AccountFlowField, AccountFlowNote, describeSignInError, errorCode, formatSignInCodeInput, isCompleteSignInCode, isRateLimited, retryAfterSeconds } from "./accountFlowParts.js";
49
+ import { readSignInFlow, writeSignInFlow } from "./signInFlowStore.js";
50
50
  import { resolveSignInMethods } from "./signInMethods.js";
51
+
52
+ /** Bloom `AuthCard`'s split card width, which the account dialog grows to for it. */
51
53
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
54
+ const SPLIT_WIDTH = 880;
55
+ /** How often the check-email step asks whether the link was opened in this browser. */
56
+ export const EMAIL_SIGNIN_POLL_MS = 2000;
57
+ /** How long after an email "Send a new email" waits. */
58
+ export const EMAIL_RESEND_COOLDOWN_SECONDS = 30;
59
+
60
+ /** What the dialog keeps of this screen across a remount (`signInFlowStore`). */
61
+
62
+ const SIGN_IN_FLOW_KEY = 'signin';
52
63
  export const OxySignInPanel = ({
53
64
  onSignedIn,
54
65
  onCreateAccount,
55
- onRecover,
56
66
  loginHint,
57
67
  appName = null,
58
68
  host = 'page'
@@ -65,8 +75,8 @@ export const OxySignInPanel = ({
65
75
  const {
66
76
  accountDialogController: controller,
67
77
  openAccountDialog,
68
- signInWithPasskey,
69
- continueOnAuth
78
+ oxyServices,
79
+ handleWebSession
70
80
  } = useOxy();
71
81
  const snapshot = useAccountDialogSnapshot(controller);
72
82
  const {
@@ -75,14 +85,37 @@ export const OxySignInPanel = ({
75
85
  } = useDeviceSwitcher();
76
86
  const methods = resolveSignInMethods({
77
87
  web: isWebBrowser(),
78
- host,
79
88
  commonsAvailability: snapshot.commonsAvailability
80
89
  });
81
- const [showForm, setShowForm] = useState(Boolean(loginHint));
82
- const [identifier, setIdentifier] = useState(loginHint ?? '');
90
+
91
+ // In the dialog the step outlives a remount of this screen (the responsive
92
+ // surface swaps its tree at `md`): it is restored from, and saved to, the
93
+ // flow store the dialog's controller owns.
94
+ const flowOwner = host === 'dialog' ? controller : null;
95
+ const [saved] = useState(() => readSignInFlow(flowOwner, SIGN_IN_FLOW_KEY));
96
+ const [showForm, setShowForm] = useState(saved?.showForm ?? Boolean(loginHint));
97
+ const [step, setStep] = useState(saved?.step ?? {
98
+ name: 'start'
99
+ });
100
+ const [identifier, setIdentifier] = useState(saved?.identifier ?? loginHint ?? '');
101
+ const [code, setCode] = useState('');
102
+ const [password, setPassword] = useState('');
103
+ const [secondFactorCode, setSecondFactorCode] = useState('');
104
+ const [useBackupCode, setUseBackupCode] = useState(saved?.useBackupCode ?? false);
83
105
  const [pending, setPending] = useState(false);
84
106
  const [error, setError] = useState(null);
107
+ const [notice, setNotice] = useState(null);
85
108
  const [rateLimitSeconds, setRateLimitSeconds] = useState(0);
109
+ const [resendSeconds, setResendSeconds] = useState(() => saved ? Math.max(0, Math.ceil((saved.resendUntil - Date.now()) / 1000)) : 0);
110
+ useEffect(() => {
111
+ writeSignInFlow(flowOwner, SIGN_IN_FLOW_KEY, {
112
+ step,
113
+ identifier,
114
+ showForm,
115
+ useBackupCode,
116
+ resendUntil: Date.now() + resendSeconds * 1000
117
+ });
118
+ }, [flowOwner, step, identifier, showForm, useBackupCode, resendSeconds]);
86
119
  const blocked = pending || rateLimitSeconds > 0;
87
120
 
88
121
  // The countdown after a 429: one tick a second until the person may retry.
@@ -92,6 +125,13 @@ export const OxySignInPanel = ({
92
125
  return () => clearTimeout(timer);
93
126
  }, [rateLimitSeconds]);
94
127
 
128
+ // The wait before another email may be asked for.
129
+ useEffect(() => {
130
+ if (resendSeconds <= 0) return;
131
+ const timer = setTimeout(() => setResendSeconds(seconds => Math.max(0, seconds - 1)), 1000);
132
+ return () => clearTimeout(timer);
133
+ }, [resendSeconds]);
134
+
95
135
  // On a page, a request the controller runs (the embedded QR, or one shown in
96
136
  // the dialog opened over it) finishes the page's sign-in too. Only one that
97
137
  // STARTED here: a completion already on the controller is somebody else's.
@@ -105,60 +145,191 @@ export const OxySignInPanel = ({
105
145
  const showRequest = useCallback(() => {
106
146
  if (host === 'page') openAccountDialog('qr');
107
147
  }, [host, openAccountDialog]);
108
-
109
- // These open a window or leave the page, so they run straight from the
110
- // press, before any await.
111
148
  const continueWithOxy = () => {
112
149
  void controller?.signInWithOxy();
113
150
  showRequest();
114
151
  };
115
- const signInOnOxy = () => {
116
- void continueOnAuth('signin').then(result => {
117
- if (result.status === 'signed-in') onSignedIn();else if (result.status === 'failed') toast.error(t('signin.errors.failed'));
118
- });
119
- };
120
- const useAnotherDevice = () => {
121
- void controller?.showQr();
122
- showRequest();
123
- };
124
152
  const getCommons = () => {
125
153
  Promise.resolve().then(() => Linking.openURL(getCommonsAcquisitionUrl(Platform.OS))).catch(() => toast.error(t('accountSwitcher.linkOpenFailed')));
126
154
  };
127
- const runPasskey = async (username, failToast) => {
155
+ const fail = useCallback(reason => {
156
+ if (isRateLimited(reason)) setRateLimitSeconds(retryAfterSeconds(reason));else setError(describeSignInError(reason, t));
157
+ }, [t]);
158
+
159
+ // One sign-in ends once: the typed code and the opened link can race.
160
+ const finishingRef = useRef(false);
161
+ const finish = useCallback(async (result, from) => {
162
+ if (finishingRef.current) return;
163
+ if (isSecondFactorRequired(result)) {
164
+ setError(null);
165
+ setSecondFactorCode('');
166
+ setUseBackupCode(false);
167
+ setStep({
168
+ name: 'second-factor',
169
+ challengeId: result.challengeId,
170
+ identifier: from
171
+ });
172
+ return;
173
+ }
174
+ finishingRef.current = true;
175
+ writeSignInFlow(flowOwner, SIGN_IN_FLOW_KEY, undefined);
176
+ try {
177
+ await handleWebSession(result);
178
+ } catch (reason) {
179
+ finishingRef.current = false;
180
+ throw reason;
181
+ }
182
+ onSignedIn();
183
+ }, [handleWebSession, onSignedIn, flowOwner]);
184
+
185
+ /** Send the sign-in email and show "Check your email". */
186
+ const startEmail = name => {
128
187
  if (blocked) return;
129
188
  setError(null);
189
+ setNotice(null);
130
190
  setPending(true);
131
- try {
132
- await signInWithPasskey({
133
- username
191
+ oxyServices.auth.email.start(name).then(started => {
192
+ if (started.retryLater) {
193
+ setError(t('signin.checkEmail.retryLater'));
194
+ return;
195
+ }
196
+ setCode('');
197
+ setResendSeconds(EMAIL_RESEND_COOLDOWN_SECONDS);
198
+ if (step.name === 'check-email') setNotice(t('signin.checkEmail.resent'));
199
+ setStep({
200
+ name: 'check-email',
201
+ identifier: name,
202
+ requestId: started.requestId,
203
+ requestSecret: started.requestSecret
134
204
  });
135
- onSignedIn();
136
- } catch (err) {
137
- if (isRateLimited(err)) {
138
- setRateLimitSeconds(RATE_LIMIT_SECONDS);
139
- } else {
140
- const message = describePasskeyError(err, t);
141
- setError(message);
142
- toast.error(failToast, {
143
- description: message
205
+ }).catch(fail).finally(() => setPending(false));
206
+ };
207
+ const submitIdentifier = () => {
208
+ const name = identifier.trim();
209
+ if (!name) {
210
+ setError(t('signin.identifier.required'));
211
+ return;
212
+ }
213
+ startEmail(name);
214
+ };
215
+ const submitCode = typed => {
216
+ if (step.name !== 'check-email' || blocked) return;
217
+ if (!isCompleteSignInCode(typed)) {
218
+ setError(t('signin.errors.codeInvalid'));
219
+ return;
220
+ }
221
+ const request = step;
222
+ setError(null);
223
+ setNotice(null);
224
+ setPending(true);
225
+ oxyServices.auth.email.confirm({
226
+ requestId: request.requestId,
227
+ requestSecret: request.requestSecret,
228
+ code: typed.trim()
229
+ }).then(result => finish(result, request.identifier)).catch(reason => {
230
+ setCode('');
231
+ fail(reason);
232
+ }).finally(() => setPending(false));
233
+ };
234
+ const submitPassword = () => {
235
+ if (step.name !== 'password' || blocked) return;
236
+ if (!password) {
237
+ setError(t('signin.password.required'));
238
+ return;
239
+ }
240
+ const name = step.identifier;
241
+ setError(null);
242
+ setPending(true);
243
+ oxyServices.auth.password.signIn({
244
+ identifier: name,
245
+ password
246
+ }).then(result => finish(result, name)).catch(fail).finally(() => setPending(false));
247
+ };
248
+ const submitSecondFactor = typed => {
249
+ if (step.name !== 'second-factor' || blocked) return;
250
+ const value = typed.trim();
251
+ if (!value) {
252
+ setError(t('signin.errors.secondFactorInvalid'));
253
+ return;
254
+ }
255
+ const challenge = step;
256
+ setError(null);
257
+ setPending(true);
258
+ oxyServices.auth.completeSecondFactor({
259
+ challengeId: challenge.challengeId,
260
+ code: value
261
+ }).then(session => finish(session, challenge.identifier)).catch(reason => {
262
+ setSecondFactorCode('');
263
+ fail(reason);
264
+ }).finally(() => setPending(false));
265
+ };
266
+
267
+ // The poll below finishes through the latest `finish` without restarting
268
+ // when a parent re-renders with a new `onSignedIn`.
269
+ const finishRef = useRef(finish);
270
+ useEffect(() => {
271
+ finishRef.current = finish;
272
+ }, [finish]);
273
+
274
+ // While "Check your email" shows, ask whether the link was opened in this
275
+ // browser; stop when the step goes, and on a request that is gone. A session
276
+ // the server handed over is always committed, even if the step went away
277
+ // meanwhile: the request is spent, so it would otherwise be lost.
278
+ const emailRequest = step.name === 'check-email' ? step : null;
279
+ const requestId = emailRequest?.requestId ?? null;
280
+ const requestSecret = emailRequest?.requestSecret ?? null;
281
+ const requestIdentifier = emailRequest?.identifier ?? '';
282
+ useEffect(() => {
283
+ if (!requestId || !requestSecret) return;
284
+ let stopped = false;
285
+ let timer;
286
+ const poll = async () => {
287
+ if (stopped) return;
288
+ try {
289
+ const result = await oxyServices.auth.email.collect({
290
+ requestId,
291
+ requestSecret
144
292
  });
293
+ if (!('status' in result)) {
294
+ await finishRef.current(result, requestIdentifier);
295
+ return;
296
+ }
297
+ if (stopped) return;
298
+ } catch (reason) {
299
+ if (stopped) return;
300
+ // A spent, expired or unknown request never approves: stop asking.
301
+ if (errorCode(reason) === SIGN_IN_ERROR_CODES.requestInvalid) return;
145
302
  }
146
- } finally {
147
- setPending(false);
148
- }
303
+ if (!stopped) timer = setTimeout(() => void poll(), EMAIL_SIGNIN_POLL_MS);
304
+ };
305
+ timer = setTimeout(() => void poll(), EMAIL_SIGNIN_POLL_MS);
306
+ return () => {
307
+ stopped = true;
308
+ if (timer) clearTimeout(timer);
309
+ };
310
+ }, [requestId, requestSecret, requestIdentifier, oxyServices]);
311
+ const backToIdentifier = () => {
312
+ setError(null);
313
+ setNotice(null);
314
+ setCode('');
315
+ setPassword('');
316
+ setStep({
317
+ name: 'start'
318
+ });
149
319
  };
150
- const submitUsername = () => {
151
- const username = identifier.trim();
152
- if (username) void runPasskey(username, t('signin.errors.failed'));else setError(t('signin.username.required'));
320
+ const toPassword = name => {
321
+ setError(null);
322
+ setNotice(null);
323
+ setPassword('');
324
+ setStep({
325
+ name: 'password',
326
+ identifier: name
327
+ });
153
328
  };
154
329
 
155
330
  // A returning device starts at WHO. Not while adding an account from inside
156
331
  // a signed-in app: the rows are the accounts it would add.
157
332
  const pickerAllowed = host === 'dialog' ? !snapshot.hasSession : activeContext !== null;
158
- const reauthenticate = context => {
159
- setIdentifier(context.handle ?? '');
160
- setShowForm(true);
161
- };
162
333
  const selectContext = async context => {
163
334
  const outcome = await controller?.chooseContext(context.contextId).catch(() => 'failed');
164
335
  switch (outcome) {
@@ -176,15 +347,23 @@ export const OxySignInPanel = ({
176
347
  return;
177
348
  case 'failed':
178
349
  // The pair could not be activated as it stands: sign in as it explicitly.
179
- if (methods.passkey && context.handle) reauthenticate(context);else toast.error(t('accountSwitcher.toasts.activateFailed'));
350
+ if (context.handle) {
351
+ setIdentifier(context.handle);
352
+ setShowForm(true);
353
+ } else {
354
+ toast.error(t('accountSwitcher.toasts.activateFailed'));
355
+ }
180
356
  return;
181
357
  default:
182
358
  return;
183
359
  }
184
360
  };
185
361
  const showsPicker = pickerAllowed && !showForm && principals.length > 0;
186
- // auth.oxy.so's page is the split card from `md`.
362
+ // The web screen is the split card from `md`. In the account dialog it grows
363
+ // the dialog to that card; below `md` the dialog is a bottom sheet, which a
364
+ // width does not touch.
187
365
  const splits = methods.commons === 'qr';
366
+ useSurfaceFrameWidth(host === 'dialog' && !showsPicker && splits ? SPLIT_WIDTH : null);
188
367
  if (showsPicker) {
189
368
  return /*#__PURE__*/_jsx(OxyAccountPicker, {
190
369
  principals: principals,
@@ -202,141 +381,275 @@ export const OxySignInPanel = ({
202
381
  const shownError = rateLimitSeconds > 0 ? t('signin.errors.rateLimited', {
203
382
  seconds: rateLimitSeconds
204
383
  }) : error;
205
- const adding = host === 'dialog' && snapshot.hasSession;
206
- const title = adding ? t('signin.addAccountTitle') : t('signin.title');
207
- const description = adding ? t('signin.addAccountSubtitle') : appName ? t('signin.subtitleToApp', {
208
- app: appName
209
- }) : t('signin.subtitle');
210
- const noAccount = /*#__PURE__*/_jsxs(Text, {
211
- style: [styles.note, styles.noAccount, {
212
- color: theme.colors.textSecondary
213
- }],
214
- children: [t('signin.noAccount'), ' ', /*#__PURE__*/_jsx(RNText, {
215
- accessibilityRole: "link",
216
- onPress: onCreateAccount,
217
- style: [styles.noAccountLink, {
218
- color: theme.colors.text
219
- }],
220
- testID: "create-account-link",
221
- children: t('signin.createAccount')
222
- })]
223
- });
224
- // One solid action per screen: the username's Continue when there is one.
225
- const commonsAppearance = methods.passkey ? 'outline' : 'solid';
226
- const continueWithOxyButton = /*#__PURE__*/_jsx(Button, {
227
- appearance: commonsAppearance,
228
- tone: commonsAppearance === 'solid' ? 'action' : 'neutral',
229
- size: "lg",
230
- fullWidth: true,
231
- onPress: methods.commons === 'window' ? signInOnOxy : continueWithOxy,
232
- testID: "continue-with-oxy",
233
- children: t('accountSwitcher.continueWithOxy')
234
- });
235
- const form = /*#__PURE__*/_jsxs(OxyAuthScreen, {
236
- className: splits ? 'md:max-w-none' : undefined,
237
- children: [/*#__PURE__*/_jsx(OxyAuthScreenHeader, {
238
- title: title,
239
- description: description
240
- }), splits ? /*#__PURE__*/_jsx(CssView, {
241
- className: "md:hidden",
242
- children: continueWithOxyButton
243
- }) : null, methods.commons === 'continue' || methods.commons === 'window' ? continueWithOxyButton : null, methods.commons === 'get-commons' ? /*#__PURE__*/_jsxs(View, {
244
- style: styles.stack,
245
- children: [/*#__PURE__*/_jsx(Text, {
246
- style: [styles.note, {
247
- color: theme.colors.textSecondary
248
- }],
249
- children: t('accountSwitcher.commonsNotInstalled')
250
- }), /*#__PURE__*/_jsx(Button, {
251
- appearance: "solid",
252
- tone: "action",
253
- size: "lg",
254
- fullWidth: true,
255
- onPress: getCommons,
256
- testID: "get-commons-button",
257
- children: t('accountSwitcher.getCommons')
258
- })]
259
- }) : null, methods.passkey ? /*#__PURE__*/_jsxs(View, {
260
- style: styles.stack,
261
- children: [/*#__PURE__*/_jsxs(View, {
262
- style: styles.field,
263
- children: [/*#__PURE__*/_jsx(TextFieldLabel, {
264
- nativeID: "username-label",
265
- children: t('signin.username.label')
266
- }), /*#__PURE__*/_jsx(TextField, {
267
- invalid: shownError !== null,
384
+ const clearError = () => {
385
+ if (error) setError(null);
386
+ };
387
+ let form;
388
+ switch (step.name) {
389
+ case 'check-email':
390
+ {
391
+ const request = step;
392
+ form = /*#__PURE__*/_jsxs(OxyAuthScreen, {
393
+ className: splits ? 'md:max-w-none' : undefined,
394
+ children: [/*#__PURE__*/_jsx(OxyAuthScreenHeader, {
395
+ title: t('signin.checkEmail.title'),
396
+ description: t('signin.checkEmail.description', {
397
+ identifier: request.identifier
398
+ })
399
+ }), /*#__PURE__*/_jsx(AccountFlowField, {
400
+ label: t('signin.checkEmail.codeLabel'),
401
+ value: code,
402
+ onChange: value => {
403
+ const typed = formatSignInCodeInput(value);
404
+ setCode(typed);
405
+ clearError();
406
+ if (isCompleteSignInCode(typed)) submitCode(typed);
407
+ },
408
+ onSubmit: () => submitCode(code),
409
+ error: shownError,
410
+ disabled: blocked,
411
+ placeholder: "000000",
412
+ autoComplete: "one-time-code",
413
+ maxLength: EMAIL_SIGNIN_LONG_CODE_LENGTH + 1,
414
+ hint: t('signin.checkEmail.codeHint'),
415
+ testID: "signin-code"
416
+ }), notice ? /*#__PURE__*/_jsx(AccountFlowNote, {
417
+ testID: "signin-notice",
418
+ children: notice
419
+ }) : null, /*#__PURE__*/_jsx(AccountFlowAction, {
420
+ label: t('signin.actions.continue'),
421
+ onPress: () => submitCode(code),
422
+ pending: pending,
423
+ disabled: rateLimitSeconds > 0,
424
+ testID: "signin-code-continue"
425
+ }), /*#__PURE__*/_jsxs(View, {
426
+ style: styles.links,
427
+ children: [/*#__PURE__*/_jsx(SubtleLink, {
428
+ label: resendSeconds > 0 ? t('signin.checkEmail.resendIn', {
429
+ seconds: resendSeconds
430
+ }) : t('signin.checkEmail.resend'),
431
+ theme: theme,
432
+ onPress: () => startEmail(request.identifier),
433
+ disabled: blocked || resendSeconds > 0,
434
+ testID: "signin-resend"
435
+ }), /*#__PURE__*/_jsx(SubtleLink, {
436
+ label: t('signin.checkEmail.usePassword'),
437
+ theme: theme,
438
+ onPress: () => toPassword(request.identifier),
439
+ disabled: pending,
440
+ testID: "signin-use-password"
441
+ }), /*#__PURE__*/_jsx(SubtleLink, {
442
+ label: t('signin.checkEmail.differentAccount'),
443
+ theme: theme,
444
+ onPress: backToIdentifier,
445
+ disabled: pending,
446
+ testID: "signin-different-account"
447
+ })]
448
+ })]
449
+ });
450
+ break;
451
+ }
452
+ case 'password':
453
+ {
454
+ const request = step;
455
+ form = /*#__PURE__*/_jsxs(OxyAuthScreen, {
456
+ className: splits ? 'md:max-w-none' : undefined,
457
+ children: [/*#__PURE__*/_jsx(OxyAuthScreenHeader, {
458
+ title: t('signin.password.title'),
459
+ description: request.identifier
460
+ }), /*#__PURE__*/_jsx(AccountFlowField, {
461
+ label: t('signin.password.label'),
462
+ value: password,
463
+ onChange: value => {
464
+ setPassword(value);
465
+ clearError();
466
+ },
467
+ onSubmit: submitPassword,
468
+ error: shownError,
469
+ disabled: blocked,
470
+ autoComplete: "current-password",
471
+ secureTextEntry: true,
472
+ testID: "signin-password"
473
+ }), /*#__PURE__*/_jsx(AccountFlowAction, {
474
+ label: t('signin.actions.continue'),
475
+ onPress: submitPassword,
476
+ pending: pending,
477
+ disabled: rateLimitSeconds > 0,
478
+ testID: "signin-password-continue"
479
+ }), /*#__PURE__*/_jsxs(View, {
480
+ style: styles.links,
481
+ children: [/*#__PURE__*/_jsx(SubtleLink, {
482
+ label: t('signin.password.forgot'),
483
+ theme: theme,
484
+ onPress: () => startEmail(request.identifier),
485
+ disabled: blocked,
486
+ testID: "signin-password-forgot"
487
+ }), /*#__PURE__*/_jsx(SubtleLink, {
488
+ label: t('signin.checkEmail.differentAccount'),
489
+ theme: theme,
490
+ onPress: backToIdentifier,
491
+ disabled: pending,
492
+ testID: "signin-different-account"
493
+ })]
494
+ })]
495
+ });
496
+ break;
497
+ }
498
+ case 'second-factor':
499
+ form = /*#__PURE__*/_jsxs(OxyAuthScreen, {
500
+ className: splits ? 'md:max-w-none' : undefined,
501
+ children: [/*#__PURE__*/_jsx(OxyAuthScreenHeader, {
502
+ title: t('signin.secondFactor.title'),
503
+ description: useBackupCode ? t('signin.secondFactor.backupDescription') : t('signin.secondFactor.description')
504
+ }), /*#__PURE__*/_jsx(AccountFlowField, {
505
+ label: useBackupCode ? t('signin.secondFactor.backupLabel') : t('signin.secondFactor.label'),
506
+ value: secondFactorCode,
507
+ onChange: value => {
508
+ if (useBackupCode) {
509
+ setSecondFactorCode(value);
510
+ clearError();
511
+ return;
512
+ }
513
+ const digits = value.replace(/\D/g, '').slice(0, TOTP_DIGITS);
514
+ setSecondFactorCode(digits);
515
+ clearError();
516
+ if (digits.length === TOTP_DIGITS) submitSecondFactor(digits);
517
+ },
518
+ onSubmit: () => submitSecondFactor(secondFactorCode),
519
+ error: shownError,
268
520
  disabled: blocked,
269
- radius: 999,
270
- style: styles.input,
271
- children: /*#__PURE__*/_jsx(TextFieldInput, {
272
- testID: "username",
273
- label: t('signin.username.label'),
274
- value: identifier,
275
- onValueChange: value => {
276
- setIdentifier(value);
277
- if (error) setError(null);
521
+ placeholder: useBackupCode ? 'xxxxx-xxxxx' : '000000',
522
+ autoComplete: "one-time-code",
523
+ keyboardType: useBackupCode ? 'default' : 'number-pad',
524
+ maxLength: useBackupCode ? 11 : TOTP_DIGITS,
525
+ testID: "signin-second-factor"
526
+ }, useBackupCode ? 'backup' : 'totp'), /*#__PURE__*/_jsx(AccountFlowAction, {
527
+ label: t('signin.actions.continue'),
528
+ onPress: () => submitSecondFactor(secondFactorCode),
529
+ pending: pending,
530
+ disabled: rateLimitSeconds > 0,
531
+ testID: "signin-second-factor-continue"
532
+ }), /*#__PURE__*/_jsxs(View, {
533
+ style: styles.links,
534
+ children: [/*#__PURE__*/_jsx(SubtleLink, {
535
+ label: useBackupCode ? t('signin.secondFactor.useAuthenticator') : t('signin.secondFactor.useBackup'),
536
+ theme: theme,
537
+ onPress: () => {
538
+ setUseBackupCode(!useBackupCode);
539
+ setSecondFactorCode('');
540
+ setError(null);
278
541
  },
279
- placeholder: t('signin.username.placeholder'),
280
- autoComplete: "username",
281
- autoCapitalize: "none",
282
- autoCorrect: false,
283
- autoFocus: Platform.OS === 'web',
284
- returnKeyType: "go",
285
- onSubmitEditing: submitUsername,
286
- "aria-required": true
287
- })
288
- }), shownError ? /*#__PURE__*/_jsx(TextFieldHint, {
289
- invalid: true,
290
- children: shownError
291
- }) : null]
292
- }), noAccount, /*#__PURE__*/_jsx(Button, {
293
- appearance: "solid",
294
- tone: "action",
295
- size: "lg",
296
- fullWidth: true,
297
- loading: pending,
298
- disabled: blocked,
299
- onPress: submitUsername,
300
- testID: "username-continue",
301
- children: t('signin.actions.continue')
302
- })]
303
- }) : null, methods.commons === 'window' ? null : /*#__PURE__*/_jsx(Divider, {
304
- children: t('signin.orContinueWith')
305
- }), methods.passkey ? /*#__PURE__*/_jsx(Button, {
306
- appearance: "outline",
307
- tone: "neutral",
308
- size: "lg",
309
- fullWidth: true,
310
- leadingIcon: RiKey2Line,
311
- disabled: blocked,
312
- onPress: () => void runPasskey(undefined, t('signin.errors.failed')),
313
- testID: "passkey-sign-in",
314
- children: t('signin.methods.passkey')
315
- }) : methods.commons === 'window' ? null : /*#__PURE__*/_jsx(Button, {
316
- appearance: "outline",
317
- tone: "neutral",
318
- size: "lg",
319
- fullWidth: true,
320
- leadingIcon: RiQrCodeLine,
321
- onPress: useAnotherDevice,
322
- testID: "scan-qr",
323
- children: t('accountSwitcher.scanQr')
324
- }), methods.passkey ? null : noAccount, onRecover ? /*#__PURE__*/_jsx(SubtleLink, {
325
- label: t('signin.recoverLink'),
326
- theme: theme,
327
- onPress: onRecover,
328
- testID: "recover-link"
329
- }) : null, /*#__PURE__*/_jsx(OxyAuthTerms, {})]
542
+ disabled: pending,
543
+ testID: "signin-toggle-backup"
544
+ }), /*#__PURE__*/_jsx(SubtleLink, {
545
+ label: t('signin.checkEmail.differentAccount'),
546
+ theme: theme,
547
+ onPress: backToIdentifier,
548
+ disabled: pending,
549
+ testID: "signin-different-account"
550
+ })]
551
+ })]
552
+ });
553
+ break;
554
+ default:
555
+ {
556
+ const adding = host === 'dialog' && snapshot.hasSession;
557
+ const title = adding ? t('signin.addAccountTitle') : t('signin.title');
558
+ const description = adding ? t('signin.addAccountSubtitle') : appName ? t('signin.subtitleToApp', {
559
+ app: appName
560
+ }) : t('signin.subtitle');
561
+ const continueWithOxyButton = /*#__PURE__*/_jsx(Button, {
562
+ appearance: "outline",
563
+ tone: "neutral",
564
+ size: "lg",
565
+ fullWidth: true,
566
+ onPress: continueWithOxy,
567
+ testID: "continue-with-oxy",
568
+ children: t('accountSwitcher.continueWithOxy')
569
+ });
570
+ const divider = /*#__PURE__*/_jsx(Divider, {
571
+ children: t('signin.orContinueWith')
572
+ });
573
+ form = /*#__PURE__*/_jsxs(OxyAuthScreen, {
574
+ className: splits ? 'md:max-w-none' : undefined,
575
+ children: [/*#__PURE__*/_jsx(OxyAuthScreenHeader, {
576
+ title: title,
577
+ description: description
578
+ }), splits ? /*#__PURE__*/_jsxs(CssView, {
579
+ className: "gap-6 md:hidden",
580
+ children: [continueWithOxyButton, divider]
581
+ }) : null, methods.commons === 'continue' ? /*#__PURE__*/_jsxs(View, {
582
+ style: styles.stack,
583
+ children: [continueWithOxyButton, divider]
584
+ }) : null, methods.commons === 'get-commons' ? /*#__PURE__*/_jsxs(View, {
585
+ style: styles.stack,
586
+ children: [/*#__PURE__*/_jsx(Text, {
587
+ style: [styles.note, {
588
+ color: theme.colors.textSecondary
589
+ }],
590
+ children: t('accountSwitcher.commonsNotInstalled')
591
+ }), /*#__PURE__*/_jsx(Button, {
592
+ appearance: "outline",
593
+ tone: "neutral",
594
+ size: "lg",
595
+ fullWidth: true,
596
+ onPress: getCommons,
597
+ testID: "get-commons-button",
598
+ children: t('accountSwitcher.getCommons')
599
+ }), divider]
600
+ }) : null, /*#__PURE__*/_jsxs(View, {
601
+ style: styles.stack,
602
+ children: [/*#__PURE__*/_jsx(AccountFlowField, {
603
+ label: t('signin.identifier.label'),
604
+ value: identifier,
605
+ onChange: value => {
606
+ setIdentifier(value);
607
+ clearError();
608
+ },
609
+ onSubmit: submitIdentifier,
610
+ error: shownError,
611
+ disabled: blocked,
612
+ placeholder: t('signin.identifier.placeholder'),
613
+ autoComplete: "username",
614
+ keyboardType: "email-address",
615
+ autoFocus: Platform.OS === 'web',
616
+ testID: "signin-identifier"
617
+ }), /*#__PURE__*/_jsxs(Text, {
618
+ style: [styles.note, styles.noAccount, {
619
+ color: theme.colors.textSecondary
620
+ }],
621
+ children: [t('signin.noAccount'), ' ', /*#__PURE__*/_jsx(RNText, {
622
+ accessibilityRole: "link",
623
+ onPress: onCreateAccount,
624
+ style: [styles.noAccountLink, {
625
+ color: theme.colors.text
626
+ }],
627
+ testID: "create-account-link",
628
+ children: t('signin.createAccount')
629
+ })]
630
+ }), /*#__PURE__*/_jsx(AccountFlowAction, {
631
+ label: t('signin.actions.continue'),
632
+ onPress: submitIdentifier,
633
+ pending: pending,
634
+ disabled: rateLimitSeconds > 0,
635
+ testID: "signin-identifier-continue"
636
+ })]
637
+ }), /*#__PURE__*/_jsx(OxyAuthTerms, {})]
638
+ });
639
+ }
640
+ }
641
+ if (!splits) return /*#__PURE__*/_jsx(_Fragment, {
642
+ children: form
330
643
  });
331
- if (!splits) return form;
332
644
  return /*#__PURE__*/_jsx(OxyAuthSplit, {
645
+ bare: host === 'dialog',
333
646
  aside: /*#__PURE__*/_jsxs(_Fragment, {
334
647
  children: [/*#__PURE__*/_jsx(AuthMediaCarousel, {
335
648
  slides: SIGN_IN_SLIDES,
336
649
  style: StyleSheet.absoluteFill
337
- }), /*#__PURE__*/_jsx(InlineCommonsQr, {
650
+ }), step.name === 'start' ? /*#__PURE__*/_jsx(InlineCommonsQr, {
338
651
  controller: controller
339
- })]
652
+ }) : null]
340
653
  }),
341
654
  children: form
342
655
  });
@@ -345,8 +658,8 @@ const styles = StyleSheet.create({
345
658
  stack: {
346
659
  gap: 12
347
660
  },
348
- field: {
349
- gap: 6
661
+ links: {
662
+ gap: 4
350
663
  },
351
664
  note: {
352
665
  fontSize: 14,
@@ -358,9 +671,6 @@ const styles = StyleSheet.create({
358
671
  },
359
672
  noAccountLink: {
360
673
  textDecorationLine: 'underline'
361
- },
362
- input: {
363
- height: 40
364
674
  }
365
675
  });
366
676
  //# sourceMappingURL=OxySignInPanel.js.map