@oxy.so/services 6.2.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 (909) 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 +15 -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/authChooser/AccountsMenuView.js +2 -2
  22. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +6 -17
  24. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +1 -1
  26. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
  28. package/lib/commonjs/ui/components/authChooser/types.js +0 -8
  29. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  30. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +1 -1
  31. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +2 -2
  32. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  33. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +325 -0
  34. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  35. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +52 -56
  36. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  37. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  38. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  39. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +141 -0
  40. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  41. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +496 -201
  42. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  43. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +211 -42
  44. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  45. package/lib/commonjs/ui/components/signIn/ReauthStep.js +186 -0
  46. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -0
  47. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +103 -26
  48. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  49. package/lib/commonjs/ui/components/signIn/signInFlowStore.js +50 -0
  50. package/lib/commonjs/ui/components/signIn/signInFlowStore.js.map +1 -0
  51. package/lib/commonjs/ui/components/signIn/signInMethods.js +11 -25
  52. package/lib/commonjs/ui/components/signIn/signInMethods.js.map +1 -1
  53. package/lib/commonjs/ui/context/OxyContext.js +125 -119
  54. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  55. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +11 -10
  56. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  57. package/lib/commonjs/ui/context/useOxyAccountGraph.js +4 -4
  58. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  59. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +1 -1
  60. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +19 -9
  61. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  62. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +4 -4
  63. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  64. package/lib/commonjs/ui/hooks/queries/queryKeys.js +23 -3
  65. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  66. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +8 -8
  67. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  68. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +27 -15
  69. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -1
  70. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +5 -2
  71. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
  72. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +8 -8
  73. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  74. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +4 -3
  75. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  76. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +6 -6
  77. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  78. package/lib/commonjs/ui/hooks/useAssets.js +36 -20
  79. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
  80. package/lib/commonjs/ui/hooks/useAvatarPicker.js +6 -4
  81. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  82. package/lib/commonjs/ui/hooks/useDeviceManagement.js +5 -5
  83. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -1
  84. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +2 -2
  85. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
  86. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +1 -4
  87. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -1
  88. package/lib/commonjs/ui/hooks/useFollow.js +2 -2
  89. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  90. package/lib/commonjs/ui/hooks/useFollowTarget.js +5 -5
  91. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  92. package/lib/commonjs/ui/hooks/useI18n.js +4 -1
  93. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  94. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js +2 -2
  95. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js.map +1 -1
  96. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  97. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  98. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -15
  99. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  100. package/lib/commonjs/ui/navigation/routes.js +6 -4
  101. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  102. package/lib/commonjs/ui/navigation/surfaceRegistry.js +1 -1
  103. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  104. package/lib/commonjs/ui/oauth/browserBridge.js +247 -0
  105. package/lib/commonjs/ui/oauth/browserBridge.js.map +1 -0
  106. package/lib/commonjs/ui/oauth/completeOAuthCode.js +1 -1
  107. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
  108. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js +1 -1
  109. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js.map +1 -1
  110. package/lib/commonjs/ui/runtime/createOxyRuntime.js +9 -8
  111. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
  112. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -1
  113. package/lib/commonjs/ui/screens/AccountMembersScreen.js +7 -7
  114. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  115. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js +35 -0
  116. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  117. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  118. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  119. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  120. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  121. package/lib/commonjs/ui/screens/AppInfoScreen.js +5 -5
  122. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  123. package/lib/commonjs/ui/screens/AvatarCropScreen.js +3 -3
  124. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  125. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +1 -1
  126. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/CreateAccountScreen.js +1 -1
  128. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/DeleteAccountScreen.js +19 -0
  130. package/lib/commonjs/ui/screens/DeleteAccountScreen.js.map +1 -0
  131. package/lib/commonjs/ui/screens/DomainsScreen.js +217 -0
  132. package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -0
  133. package/lib/commonjs/ui/screens/EditProfileScreen.js +1 -1
  134. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  135. package/lib/commonjs/ui/screens/FileManagementScreen.js +25 -11
  136. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  137. package/lib/commonjs/ui/screens/HelpSupportScreen.js +1 -17
  138. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  139. package/lib/commonjs/ui/screens/LinkCommonsScreen.js +14 -0
  140. package/lib/commonjs/ui/screens/LinkCommonsScreen.js.map +1 -0
  141. package/lib/commonjs/ui/screens/ManageAccountScreen.js +57 -61
  142. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +52 -62
  144. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/ProfileScreen.js +5 -13
  146. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  147. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +15 -24
  148. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js +14 -0
  150. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  151. package/lib/commonjs/ui/screens/SignInPasswordScreen.js +20 -0
  152. package/lib/commonjs/ui/screens/SignInPasswordScreen.js.map +1 -0
  153. package/lib/commonjs/ui/screens/UserListScreen.js +3 -3
  154. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  155. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +1 -1
  156. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  157. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +25 -17
  158. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  159. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  160. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  161. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +8 -14
  162. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  163. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +11 -9
  164. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  165. package/lib/commonjs/ui/session/authStore.js +4 -4
  166. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  167. package/lib/commonjs/ui/session/backgroundSession.js +5 -40
  168. package/lib/commonjs/ui/session/backgroundSession.js.map +1 -1
  169. package/lib/commonjs/ui/session/createSessionClient.js +3 -3
  170. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  171. package/lib/commonjs/ui/session/deviceCredentialTracker.js +42 -0
  172. package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -0
  173. package/lib/commonjs/ui/session/identityBinding.js +3 -3
  174. package/lib/commonjs/ui/session/identityBinding.js.map +1 -1
  175. package/lib/commonjs/ui/session/index.js +6 -6
  176. package/lib/commonjs/ui/session/index.js.map +1 -1
  177. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +2 -2
  178. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  179. package/lib/commonjs/ui/session/tokenTransport.js +3 -3
  180. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
  181. package/lib/commonjs/ui/stores/assetStore.js +12 -0
  182. package/lib/commonjs/ui/stores/assetStore.js.map +1 -1
  183. package/lib/commonjs/ui/stores/followStore.js +6 -6
  184. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  185. package/lib/commonjs/ui/utils/accountDeletionHandoff.js +1 -4
  186. package/lib/commonjs/ui/utils/accountDeletionHandoff.js.map +1 -1
  187. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  188. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  189. package/lib/commonjs/ui/utils/deviceCredential.js +11 -4
  190. package/lib/commonjs/ui/utils/deviceCredential.js.map +1 -1
  191. package/lib/commonjs/ui/utils/fileManagement.js +0 -10
  192. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  193. package/lib/commonjs/ui/utils/sessionHelpers.js +2 -2
  194. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  195. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  196. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  197. package/lib/module/assets/assets/fonts/icons/manifest.json +5 -20
  198. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  199. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  200. package/lib/module/assets/fonts/icons/manifest.json +5 -20
  201. package/lib/module/index.js +6 -6
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/ui/boot/runProviderColdBoot.js +2 -1
  204. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  205. package/lib/module/ui/components/OxyAccountDialogScreen.js +2 -3
  206. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  207. package/lib/module/ui/components/OxyAuthChooser.js +15 -32
  208. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  209. package/lib/module/ui/components/OxySignInButton.js +1 -1
  210. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  211. package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
  212. package/lib/module/ui/components/ProfileButton.js +1 -1
  213. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  214. package/lib/module/ui/components/authChooser/AccountsMenuView.js +1 -1
  215. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  216. package/lib/module/ui/components/authChooser/SignInRequestView.js +6 -17
  217. package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -1
  218. package/lib/module/ui/components/authChooser/TroubleDisclosure.js +1 -1
  219. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  220. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
  221. package/lib/module/ui/components/authChooser/types.js +0 -8
  222. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  223. package/lib/module/ui/components/signIn/InlineCommonsQr.js +1 -1
  224. package/lib/module/ui/components/signIn/OxyAccountPicker.js +1 -1
  225. package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  226. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +321 -0
  227. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  228. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +54 -58
  229. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  230. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  231. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  232. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +136 -0
  233. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  234. package/lib/module/ui/components/signIn/OxySignInPanel.js +496 -201
  235. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  236. package/lib/module/ui/components/signIn/OxySignUpPanel.js +212 -43
  237. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  238. package/lib/module/ui/components/signIn/ReauthStep.js +181 -0
  239. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -0
  240. package/lib/module/ui/components/signIn/accountFlowParts.js +97 -26
  241. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  242. package/lib/module/ui/components/signIn/signInFlowStore.js +44 -0
  243. package/lib/module/ui/components/signIn/signInFlowStore.js.map +1 -0
  244. package/lib/module/ui/components/signIn/signInMethods.js +11 -25
  245. package/lib/module/ui/components/signIn/signInMethods.js.map +1 -1
  246. package/lib/module/ui/context/OxyContext.js +121 -115
  247. package/lib/module/ui/context/OxyContext.js.map +1 -1
  248. package/lib/module/ui/context/hooks/useAuthOperations.js +7 -7
  249. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  250. package/lib/module/ui/context/useOxyAccountGraph.js +4 -4
  251. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  252. package/lib/module/ui/hooks/mutations/mutationFactory.js +1 -1
  253. package/lib/module/ui/hooks/mutations/useAccountMutations.js +19 -9
  254. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  255. package/lib/module/ui/hooks/mutations/useServicesMutations.js +4 -4
  256. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  257. package/lib/module/ui/hooks/queries/queryKeys.js +23 -3
  258. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  259. package/lib/module/ui/hooks/queries/useAccountQueries.js +8 -8
  260. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  261. package/lib/module/ui/hooks/queries/useAuthMethods.js +25 -14
  262. package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -1
  263. package/lib/module/ui/hooks/queries/useFileQueries.js +5 -2
  264. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
  265. package/lib/module/ui/hooks/queries/usePaymentQueries.js +8 -8
  266. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/useSecurityQueries.js +4 -3
  268. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useServicesQueries.js +6 -6
  270. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/useAssets.js +36 -20
  272. package/lib/module/ui/hooks/useAssets.js.map +1 -1
  273. package/lib/module/ui/hooks/useAvatarPicker.js +6 -4
  274. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  275. package/lib/module/ui/hooks/useDeviceManagement.js +4 -4
  276. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -1
  277. package/lib/module/ui/hooks/useDeviceSwitcher.js +2 -2
  278. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
  279. package/lib/module/ui/hooks/useFileDownloadUrl.js +1 -4
  280. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -1
  281. package/lib/module/ui/hooks/useFollow.js +2 -2
  282. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  283. package/lib/module/ui/hooks/useFollowTarget.js +5 -5
  284. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  285. package/lib/module/ui/hooks/useI18n.js +6 -3
  286. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  287. package/lib/module/ui/hooks/useResolvedFileUrls.js +2 -2
  288. package/lib/module/ui/hooks/useResolvedFileUrls.js.map +1 -1
  289. package/lib/module/ui/hooks/useSessionManagement.js +3 -3
  290. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  291. package/lib/module/ui/icons/subsetGlyphMaps.js +0 -15
  292. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  293. package/lib/module/ui/navigation/routes.js +6 -4
  294. package/lib/module/ui/navigation/routes.js.map +1 -1
  295. package/lib/module/ui/navigation/surfaceRegistry.js +1 -1
  296. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  297. package/lib/module/ui/oauth/browserBridge.js +239 -0
  298. package/lib/module/ui/oauth/browserBridge.js.map +1 -0
  299. package/lib/module/ui/oauth/completeOAuthCode.js +1 -1
  300. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
  301. package/lib/module/ui/oauth/explicitOAuthConsent.js +1 -1
  302. package/lib/module/ui/oauth/explicitOAuthConsent.js.map +1 -1
  303. package/lib/module/ui/runtime/createOxyRuntime.js +4 -3
  304. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
  305. package/lib/module/ui/runtime/runtimeContext.js.map +1 -1
  306. package/lib/module/ui/screens/AccountMembersScreen.js +7 -7
  307. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  308. package/lib/module/ui/screens/AccountSecurityPanelScreen.js +32 -0
  309. package/lib/module/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  310. package/lib/module/ui/screens/AccountSettingsScreen.js +3 -3
  311. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  312. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  313. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  314. package/lib/module/ui/screens/AppInfoScreen.js +5 -5
  315. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  316. package/lib/module/ui/screens/AvatarCropScreen.js +3 -3
  317. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  318. package/lib/module/ui/screens/ChangeAvatarScreen.js +1 -1
  319. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -1
  320. package/lib/module/ui/screens/CreateAccountScreen.js +1 -1
  321. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  322. package/lib/module/ui/screens/DeleteAccountScreen.js +17 -0
  323. package/lib/module/ui/screens/DeleteAccountScreen.js.map +1 -0
  324. package/lib/module/ui/screens/DomainsScreen.js +212 -0
  325. package/lib/module/ui/screens/DomainsScreen.js.map +1 -0
  326. package/lib/module/ui/screens/EditProfileScreen.js +1 -1
  327. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  328. package/lib/module/ui/screens/FileManagementScreen.js +25 -11
  329. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  330. package/lib/module/ui/screens/HelpSupportScreen.js +1 -17
  331. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  332. package/lib/module/ui/screens/LinkCommonsScreen.js +12 -0
  333. package/lib/module/ui/screens/LinkCommonsScreen.js.map +1 -0
  334. package/lib/module/ui/screens/ManageAccountScreen.js +58 -62
  335. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  336. package/lib/module/ui/screens/PrivacySettingsScreen.js +53 -63
  337. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  338. package/lib/module/ui/screens/ProfileScreen.js +5 -13
  339. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  340. package/lib/module/ui/screens/SearchSettingsScreen.js +16 -25
  341. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  342. package/lib/module/ui/screens/SignInAuthenticatorScreen.js +12 -0
  343. package/lib/module/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  344. package/lib/module/ui/screens/SignInPasswordScreen.js +18 -0
  345. package/lib/module/ui/screens/SignInPasswordScreen.js.map +1 -0
  346. package/lib/module/ui/screens/UserListScreen.js +3 -3
  347. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  348. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  349. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  350. package/lib/module/ui/screens/trust/TrustCenterScreen.js +26 -18
  351. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  352. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  353. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  354. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +9 -15
  355. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  356. package/lib/module/ui/screens/trust/TrustRulesScreen.js +12 -10
  357. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  358. package/lib/module/ui/session/authStore.js +1 -1
  359. package/lib/module/ui/session/authStore.js.map +1 -1
  360. package/lib/module/ui/session/backgroundSession.js +5 -40
  361. package/lib/module/ui/session/backgroundSession.js.map +1 -1
  362. package/lib/module/ui/session/createSessionClient.js +1 -1
  363. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  364. package/lib/module/ui/session/deviceCredentialTracker.js +38 -0
  365. package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -0
  366. package/lib/module/ui/session/identityBinding.js +1 -1
  367. package/lib/module/ui/session/identityBinding.js.map +1 -1
  368. package/lib/module/ui/session/index.js +1 -1
  369. package/lib/module/ui/session/index.js.map +1 -1
  370. package/lib/module/ui/session/sharedDeviceCredentialStore.js +1 -1
  371. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  372. package/lib/module/ui/session/tokenTransport.js +3 -3
  373. package/lib/module/ui/session/tokenTransport.js.map +1 -1
  374. package/lib/module/ui/stores/assetStore.js +12 -0
  375. package/lib/module/ui/stores/assetStore.js.map +1 -1
  376. package/lib/module/ui/stores/followStore.js +6 -6
  377. package/lib/module/ui/stores/followStore.js.map +1 -1
  378. package/lib/module/ui/utils/accountDeletionHandoff.js +2 -5
  379. package/lib/module/ui/utils/accountDeletionHandoff.js.map +1 -1
  380. package/lib/module/ui/utils/avatarUtils.js +1 -1
  381. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  382. package/lib/module/ui/utils/deviceCredential.js +10 -3
  383. package/lib/module/ui/utils/deviceCredential.js.map +1 -1
  384. package/lib/module/ui/utils/fileManagement.js +0 -9
  385. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  386. package/lib/module/ui/utils/sessionHelpers.js +2 -2
  387. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  388. package/lib/typescript/commonjs/index.d.ts +5 -5
  389. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  390. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +3 -2
  391. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  392. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  393. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  394. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +7 -7
  395. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  396. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts +2 -1
  397. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  398. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  399. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  400. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  401. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  403. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +1 -1
  404. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  406. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  407. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  408. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts +2 -1
  410. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +1 -12
  412. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  413. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  414. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  416. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  418. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  419. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  420. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  421. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  422. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  423. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  424. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  425. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  426. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  427. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  428. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  429. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +34 -0
  430. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  431. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +38 -12
  432. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  433. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts +20 -0
  434. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  435. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts +8 -21
  436. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts.map +1 -1
  437. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +2 -1
  439. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  440. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +4 -39
  441. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
  443. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  445. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  446. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  447. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  448. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  449. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  450. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  451. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +19 -1
  452. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  454. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +1 -1
  456. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  458. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  460. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  461. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +5 -5
  462. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts.map +1 -1
  463. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +1 -1
  464. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  465. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  466. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  467. package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts +1 -1
  468. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  469. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  470. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  472. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  474. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  475. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +0 -15
  476. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  477. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +1 -1
  478. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  479. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  480. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +7 -5
  482. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  483. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts +97 -0
  484. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts.map +1 -0
  485. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +6 -2
  486. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  487. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +2 -1
  488. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -1
  489. package/lib/typescript/commonjs/ui/runtime/types.d.ts +2 -1
  490. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -1
  491. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  492. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  493. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts +6 -0
  494. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  495. package/lib/typescript/commonjs/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  496. package/lib/typescript/commonjs/ui/screens/DomainsScreen.d.ts.map +1 -0
  497. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  499. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts +6 -0
  500. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  501. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  502. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  503. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  505. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  506. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  507. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts +6 -0
  508. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  509. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  510. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  511. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  512. package/lib/typescript/commonjs/ui/session/authStore.d.ts +1 -1
  513. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  514. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts +3 -4
  515. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +2 -1
  517. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  518. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts +23 -0
  519. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  520. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts +1 -1
  521. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/session/index.d.ts +1 -1
  523. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
  524. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts +1 -1
  525. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts.map +1 -1
  526. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  527. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  528. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +3 -2
  529. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
  530. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts +7 -0
  531. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts.map +1 -1
  532. package/lib/typescript/commonjs/ui/types/navigation.d.ts +1 -1
  533. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  534. package/lib/typescript/commonjs/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts +10 -3
  536. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts.map +1 -1
  537. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +1 -5
  538. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  539. package/lib/typescript/module/index.d.ts +5 -5
  540. package/lib/typescript/module/index.d.ts.map +1 -1
  541. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +3 -2
  542. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  543. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  544. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  545. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +7 -7
  546. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  547. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts +2 -1
  548. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  549. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  550. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  551. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  552. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  553. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  554. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +1 -1
  555. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  556. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  557. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  558. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  559. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  560. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts +2 -1
  561. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  562. package/lib/typescript/module/ui/components/authChooser/types.d.ts +1 -12
  563. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  564. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  565. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  566. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  567. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  568. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  569. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  570. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  571. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  572. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  573. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  574. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  575. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  576. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  577. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  578. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  579. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  580. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +34 -0
  581. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  582. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +38 -12
  583. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  584. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts +20 -0
  585. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  586. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts +8 -21
  587. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts.map +1 -1
  588. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  589. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +2 -1
  590. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  591. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +4 -39
  592. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  593. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
  594. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  595. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  596. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  597. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  598. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  599. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  600. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  601. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  602. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +19 -1
  603. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  605. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  606. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +1 -1
  607. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  609. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  610. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  611. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  612. package/lib/typescript/module/ui/hooks/useAssets.d.ts +5 -5
  613. package/lib/typescript/module/ui/hooks/useAssets.d.ts.map +1 -1
  614. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +1 -1
  615. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  616. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  618. package/lib/typescript/module/ui/hooks/useFollow.d.ts +1 -1
  619. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  620. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  621. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  622. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  623. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  624. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  625. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  626. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +0 -15
  627. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  628. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +1 -1
  629. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  630. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  631. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +7 -5
  633. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  634. package/lib/typescript/module/ui/oauth/browserBridge.d.ts +97 -0
  635. package/lib/typescript/module/ui/oauth/browserBridge.d.ts.map +1 -0
  636. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +6 -2
  637. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  638. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +2 -1
  639. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -1
  640. package/lib/typescript/module/ui/runtime/types.d.ts +2 -1
  641. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  643. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  644. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts +6 -0
  645. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  646. package/lib/typescript/module/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  647. package/lib/typescript/module/ui/screens/DomainsScreen.d.ts.map +1 -0
  648. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  649. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts +6 -0
  651. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  652. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  653. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  654. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  655. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  657. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  658. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts +6 -0
  659. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  660. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  661. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  663. package/lib/typescript/module/ui/session/authStore.d.ts +1 -1
  664. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  665. package/lib/typescript/module/ui/session/backgroundSession.d.ts +3 -4
  666. package/lib/typescript/module/ui/session/backgroundSession.d.ts.map +1 -1
  667. package/lib/typescript/module/ui/session/createSessionClient.d.ts +2 -1
  668. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  669. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts +23 -0
  670. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  671. package/lib/typescript/module/ui/session/identityBinding.d.ts +1 -1
  672. package/lib/typescript/module/ui/session/identityBinding.d.ts.map +1 -1
  673. package/lib/typescript/module/ui/session/index.d.ts +1 -1
  674. package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts +1 -1
  676. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  678. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  679. package/lib/typescript/module/ui/session/tokenTransport.d.ts +3 -2
  680. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
  681. package/lib/typescript/module/ui/stores/assetStore.d.ts +7 -0
  682. package/lib/typescript/module/ui/stores/assetStore.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
  684. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  685. package/lib/typescript/module/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  686. package/lib/typescript/module/ui/utils/deviceCredential.d.ts +10 -3
  687. package/lib/typescript/module/ui/utils/deviceCredential.d.ts.map +1 -1
  688. package/lib/typescript/module/ui/utils/fileManagement.d.ts +1 -5
  689. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  690. package/package.json +4 -5
  691. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  692. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  693. package/src/assets/fonts/icons/manifest.json +5 -20
  694. package/src/index.ts +8 -8
  695. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +4 -4
  696. package/src/ui/boot/runProviderColdBoot.ts +3 -9
  697. package/src/ui/components/OxyAccountDialogScreen.tsx +2 -3
  698. package/src/ui/components/OxyAuthChooser.tsx +13 -36
  699. package/src/ui/components/OxySignInButton.tsx +1 -1
  700. package/src/ui/components/OxySignInRequestSurface.tsx +2 -1
  701. package/src/ui/components/ProfileButton.tsx +1 -1
  702. package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -6
  703. package/src/ui/components/authChooser/SignInRequestView.tsx +5 -23
  704. package/src/ui/components/authChooser/TroubleDisclosure.tsx +1 -1
  705. package/src/ui/components/authChooser/primitives.tsx +1 -1
  706. package/src/ui/components/authChooser/requestSurfaces.tsx +2 -1
  707. package/src/ui/components/authChooser/signInFailureMessage.ts +1 -1
  708. package/src/ui/components/authChooser/signInProgress.ts +2 -1
  709. package/src/ui/components/authChooser/types.ts +1 -13
  710. package/src/ui/components/signIn/InlineCommonsQr.tsx +2 -2
  711. package/src/ui/components/signIn/OxyAccountPicker.tsx +1 -1
  712. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +294 -0
  713. package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +48 -61
  714. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +43 -35
  715. package/src/ui/components/signIn/OxyPasswordPanel.tsx +117 -0
  716. package/src/ui/components/signIn/OxySignInPanel.tsx +534 -214
  717. package/src/ui/components/signIn/OxySignUpPanel.tsx +186 -56
  718. package/src/ui/components/signIn/ReauthStep.tsx +201 -0
  719. package/src/ui/components/signIn/accountFlowParts.tsx +139 -33
  720. package/src/ui/components/signIn/signInFlowStore.ts +41 -0
  721. package/src/ui/components/signIn/signInMethods.ts +10 -29
  722. package/src/ui/context/OxyContext.tsx +124 -145
  723. package/src/ui/context/hooks/useAuthOperations.ts +9 -8
  724. package/src/ui/context/oxyContextTypes.ts +4 -41
  725. package/src/ui/context/useOxyAccountGraph.ts +6 -5
  726. package/src/ui/hooks/accountDialogSnapshot.ts +1 -1
  727. package/src/ui/hooks/mutations/mutationFactory.ts +1 -1
  728. package/src/ui/hooks/mutations/useAccountMutations.ts +11 -10
  729. package/src/ui/hooks/mutations/useServicesMutations.ts +4 -4
  730. package/src/ui/hooks/queries/queryKeys.ts +26 -2
  731. package/src/ui/hooks/queries/useAccountQueries.ts +8 -8
  732. package/src/ui/hooks/queries/useAuthMethods.ts +22 -19
  733. package/src/ui/hooks/queries/useFileQueries.ts +2 -2
  734. package/src/ui/hooks/queries/usePaymentQueries.ts +8 -8
  735. package/src/ui/hooks/queries/useSecurityQueries.ts +4 -3
  736. package/src/ui/hooks/queries/useServicesQueries.ts +6 -6
  737. package/src/ui/hooks/useAssets.ts +26 -31
  738. package/src/ui/hooks/useAvatarPicker.ts +4 -4
  739. package/src/ui/hooks/useDeviceManagement.ts +4 -4
  740. package/src/ui/hooks/useDeviceSwitcher.ts +2 -7
  741. package/src/ui/hooks/useFileDownloadUrl.ts +1 -5
  742. package/src/ui/hooks/useFollow.ts +2 -2
  743. package/src/ui/hooks/useFollowTarget.ts +5 -5
  744. package/src/ui/hooks/useI18n.ts +6 -3
  745. package/src/ui/hooks/useResolvedFileUrls.ts +8 -6
  746. package/src/ui/hooks/useSessionManagement.ts +3 -3
  747. package/src/ui/icons/subsetGlyphMaps.ts +0 -15
  748. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +1 -1
  749. package/src/ui/navigation/accountDialogManager.ts +1 -1
  750. package/src/ui/navigation/routes.ts +11 -8
  751. package/src/ui/navigation/surfaceRegistry.ts +8 -6
  752. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +8 -8
  753. package/src/ui/oauth/__tests__/browserBridge.test.ts +198 -0
  754. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
  755. package/src/ui/oauth/__tests__/explicitOAuthConsent.test.ts +11 -11
  756. package/src/ui/oauth/__tests__/sharedCompletionPath.test.ts +7 -7
  757. package/src/ui/oauth/browserBridge.ts +234 -0
  758. package/src/ui/oauth/completeOAuthCode.ts +1 -1
  759. package/src/ui/oauth/explicitOAuthConsent.ts +1 -1
  760. package/src/ui/runtime/createOxyRuntime.ts +8 -16
  761. package/src/ui/runtime/runtimeContext.tsx +2 -1
  762. package/src/ui/runtime/types.ts +2 -1
  763. package/src/ui/screens/AccountMembersScreen.tsx +7 -7
  764. package/src/ui/screens/AccountSecurityPanelScreen.tsx +26 -0
  765. package/src/ui/screens/AccountSettingsScreen.tsx +3 -3
  766. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  767. package/src/ui/screens/AppInfoScreen.tsx +5 -5
  768. package/src/ui/screens/AvatarCropScreen.tsx +3 -3
  769. package/src/ui/screens/ChangeAvatarScreen.tsx +1 -1
  770. package/src/ui/screens/CreateAccountScreen.tsx +1 -1
  771. package/src/ui/screens/DeleteAccountScreen.tsx +13 -0
  772. package/src/ui/screens/DomainsScreen.tsx +187 -0
  773. package/src/ui/screens/EditProfileScreen.tsx +1 -1
  774. package/src/ui/screens/FileManagementScreen.tsx +15 -21
  775. package/src/ui/screens/HelpSupportScreen.tsx +0 -15
  776. package/src/ui/screens/LinkCommonsScreen.tsx +13 -0
  777. package/src/ui/screens/ManageAccountScreen.tsx +47 -82
  778. package/src/ui/screens/PrivacySettingsScreen.tsx +48 -67
  779. package/src/ui/screens/ProfileScreen.tsx +5 -10
  780. package/src/ui/screens/SearchSettingsScreen.tsx +15 -27
  781. package/src/ui/screens/SignInAuthenticatorScreen.tsx +13 -0
  782. package/src/ui/screens/SignInPasswordScreen.tsx +13 -0
  783. package/src/ui/screens/UserListScreen.tsx +3 -3
  784. package/src/ui/screens/WelcomeNewUserScreen.tsx +1 -1
  785. package/src/ui/screens/trust/TrustCenterScreen.tsx +25 -29
  786. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +2 -2
  787. package/src/ui/screens/trust/TrustRewardsScreen.tsx +9 -19
  788. package/src/ui/screens/trust/TrustRulesScreen.tsx +14 -14
  789. package/src/ui/session/__tests__/authStore.test.ts +1 -1
  790. package/src/ui/session/__tests__/backgroundSession.test.ts +2 -61
  791. package/src/ui/session/__tests__/createSessionClient.test.ts +7 -9
  792. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +1 -1
  793. package/src/ui/session/__tests__/tokenTransport.test.ts +9 -7
  794. package/src/ui/session/authStore.ts +1 -7
  795. package/src/ui/session/backgroundSession.ts +5 -41
  796. package/src/ui/session/createSessionClient.ts +2 -6
  797. package/src/ui/session/deviceCredentialTracker.ts +49 -0
  798. package/src/ui/session/identityBinding.ts +1 -6
  799. package/src/ui/session/index.ts +1 -1
  800. package/src/ui/session/nativeSecureStorage.ts +1 -1
  801. package/src/ui/session/sharedDeviceCredentialStore.ts +1 -6
  802. package/src/ui/session/tokenTransport.ts +5 -4
  803. package/src/ui/stores/__tests__/followStore.test.ts +13 -15
  804. package/src/ui/stores/assetStore.ts +15 -0
  805. package/src/ui/stores/followStore.ts +7 -7
  806. package/src/ui/types/navigation.ts +2 -1
  807. package/src/ui/utils/accountDeletionHandoff.ts +2 -4
  808. package/src/ui/utils/avatarUtils.ts +1 -1
  809. package/src/ui/utils/deviceCredential.ts +11 -4
  810. package/src/ui/utils/fileManagement.ts +0 -12
  811. package/src/ui/utils/sessionHelpers.ts +2 -2
  812. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js +0 -236
  813. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  814. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js +0 -170
  815. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  816. package/lib/commonjs/ui/components/signIn/passkeyError.js +0 -46
  817. package/lib/commonjs/ui/components/signIn/passkeyError.js.map +0 -1
  818. package/lib/commonjs/ui/context/passkeyFlow.js +0 -114
  819. package/lib/commonjs/ui/context/passkeyFlow.js.map +0 -1
  820. package/lib/commonjs/ui/screens/FAQScreen.js +0 -162
  821. package/lib/commonjs/ui/screens/FAQScreen.js.map +0 -1
  822. package/lib/commonjs/ui/screens/FeedbackScreen.js +0 -601
  823. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +0 -1
  824. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +0 -968
  825. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  826. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +0 -132
  827. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +0 -1
  828. package/lib/commonjs/webauthn/passkeyClient.js +0 -39
  829. package/lib/commonjs/webauthn/passkeyClient.js.map +0 -1
  830. package/lib/commonjs/webauthn/passkeyClient.native.js +0 -34
  831. package/lib/commonjs/webauthn/passkeyClient.native.js.map +0 -1
  832. package/lib/commonjs/webauthn/passkeyClient.web.js +0 -57
  833. package/lib/commonjs/webauthn/passkeyClient.web.js.map +0 -1
  834. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js +0 -231
  835. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  836. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js +0 -165
  837. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  838. package/lib/module/ui/components/signIn/passkeyError.js +0 -40
  839. package/lib/module/ui/components/signIn/passkeyError.js.map +0 -1
  840. package/lib/module/ui/context/passkeyFlow.js +0 -107
  841. package/lib/module/ui/context/passkeyFlow.js.map +0 -1
  842. package/lib/module/ui/screens/FAQScreen.js +0 -157
  843. package/lib/module/ui/screens/FAQScreen.js.map +0 -1
  844. package/lib/module/ui/screens/FeedbackScreen.js +0 -599
  845. package/lib/module/ui/screens/FeedbackScreen.js.map +0 -1
  846. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +0 -963
  847. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  848. package/lib/module/ui/screens/SavesCollectionsScreen.js +0 -127
  849. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +0 -1
  850. package/lib/module/webauthn/passkeyClient.js +0 -33
  851. package/lib/module/webauthn/passkeyClient.js.map +0 -1
  852. package/lib/module/webauthn/passkeyClient.native.js +0 -28
  853. package/lib/module/webauthn/passkeyClient.native.js.map +0 -1
  854. package/lib/module/webauthn/passkeyClient.web.js +0 -52
  855. package/lib/module/webauthn/passkeyClient.web.js.map +0 -1
  856. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  857. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  858. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  859. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  860. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts +0 -16
  861. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts.map +0 -1
  862. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts +0 -92
  863. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts.map +0 -1
  864. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts +0 -5
  865. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +0 -1
  866. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts +0 -5
  867. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +0 -1
  868. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  869. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  870. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  871. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts +0 -20
  872. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts.map +0 -1
  873. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts +0 -15
  874. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts.map +0 -1
  875. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts +0 -36
  876. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts.map +0 -1
  877. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  878. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  879. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  880. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  881. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts +0 -16
  882. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts.map +0 -1
  883. package/lib/typescript/module/ui/context/passkeyFlow.d.ts +0 -92
  884. package/lib/typescript/module/ui/context/passkeyFlow.d.ts.map +0 -1
  885. package/lib/typescript/module/ui/screens/FAQScreen.d.ts +0 -5
  886. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +0 -1
  887. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts +0 -5
  888. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +0 -1
  889. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  890. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  891. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  892. package/lib/typescript/module/webauthn/passkeyClient.d.ts +0 -20
  893. package/lib/typescript/module/webauthn/passkeyClient.d.ts.map +0 -1
  894. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts +0 -15
  895. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts.map +0 -1
  896. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts +0 -36
  897. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts.map +0 -1
  898. package/src/ui/components/signIn/OxyCreateAccountPanel.tsx +0 -207
  899. package/src/ui/components/signIn/OxyRecoverAccountPanel.tsx +0 -154
  900. package/src/ui/components/signIn/passkeyError.ts +0 -44
  901. package/src/ui/context/__tests__/passkeyFlow.test.ts +0 -239
  902. package/src/ui/context/passkeyFlow.ts +0 -145
  903. package/src/ui/screens/FAQScreen.tsx +0 -200
  904. package/src/ui/screens/FeedbackScreen.tsx +0 -766
  905. package/src/ui/screens/PremiumSubscriptionScreen.tsx +0 -1103
  906. package/src/ui/screens/SavesCollectionsScreen.tsx +0 -167
  907. package/src/webauthn/passkeyClient.native.ts +0 -26
  908. package/src/webauthn/passkeyClient.ts +0 -31
  909. package/src/webauthn/passkeyClient.web.ts +0 -56
@@ -3,37 +3,35 @@
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, the passkey, and the way in for
10
- * someone with no account. On the web, from `md`, the screen is
11
- * Bloom `AuthCard`'s split card and the Commons way in is the
12
- * embedded QR over its photo carousel, in the right column (the
13
- * account dialog grows to that card); below `md` it is "Continue
14
- * with Oxy" at the top. The passkey belongs to `oxy.so`: on
15
- * auth.oxy.so (`page`) it runs here — the username with its Continue,
16
- * a username-first ceremony that takes a hardware security key with
17
- * no resident credential too, and the discoverable passkey — and in
18
- * an app's dialog it opens auth.oxy.so's window for that one step, as
19
- * does "Create account". On native it is "Continue with Oxy" ("Get
20
- * 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";
@@ -47,16 +45,24 @@ import { SIGN_IN_SLIDES } from "./artwork.js";
47
45
  import { InlineCommonsQr } from "./InlineCommonsQr.js";
48
46
  import { OxyAccountPicker } from "./OxyAccountPicker.js";
49
47
  import { OxyAuthScreen, OxyAuthScreenHeader, OxyAuthSplit, OxyAuthTerms } from "./OxyAuthScreen.js";
50
- 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";
51
50
  import { resolveSignInMethods } from "./signInMethods.js";
52
51
 
53
52
  /** Bloom `AuthCard`'s split card width, which the account dialog grows to for it. */
54
53
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
55
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';
56
63
  export const OxySignInPanel = ({
57
64
  onSignedIn,
58
65
  onCreateAccount,
59
- onRecover,
60
66
  loginHint,
61
67
  appName = null,
62
68
  host = 'page'
@@ -69,8 +75,8 @@ export const OxySignInPanel = ({
69
75
  const {
70
76
  accountDialogController: controller,
71
77
  openAccountDialog,
72
- signInWithPasskey,
73
- continueOnAuth
78
+ oxyServices,
79
+ handleWebSession
74
80
  } = useOxy();
75
81
  const snapshot = useAccountDialogSnapshot(controller);
76
82
  const {
@@ -79,14 +85,37 @@ export const OxySignInPanel = ({
79
85
  } = useDeviceSwitcher();
80
86
  const methods = resolveSignInMethods({
81
87
  web: isWebBrowser(),
82
- host,
83
88
  commonsAvailability: snapshot.commonsAvailability
84
89
  });
85
- const [showForm, setShowForm] = useState(Boolean(loginHint));
86
- 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);
87
105
  const [pending, setPending] = useState(false);
88
106
  const [error, setError] = useState(null);
107
+ const [notice, setNotice] = useState(null);
89
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]);
90
119
  const blocked = pending || rateLimitSeconds > 0;
91
120
 
92
121
  // The countdown after a 429: one tick a second until the person may retry.
@@ -96,6 +125,13 @@ export const OxySignInPanel = ({
96
125
  return () => clearTimeout(timer);
97
126
  }, [rateLimitSeconds]);
98
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
+
99
135
  // On a page, a request the controller runs (the embedded QR, or one shown in
100
136
  // the dialog opened over it) finishes the page's sign-in too. Only one that
101
137
  // STARTED here: a completion already on the controller is somebody else's.
@@ -109,61 +145,191 @@ export const OxySignInPanel = ({
109
145
  const showRequest = useCallback(() => {
110
146
  if (host === 'page') openAccountDialog('qr');
111
147
  }, [host, openAccountDialog]);
112
-
113
- // These open a window or leave the page, so they run straight from the
114
- // press, before any await.
115
148
  const continueWithOxy = () => {
116
149
  void controller?.signInWithOxy();
117
150
  showRequest();
118
151
  };
119
- // The passkey is `oxy.so`'s: in an app it runs in auth.oxy.so's window.
120
- const passkeyOnOxy = () => {
121
- void continueOnAuth('signin').then(result => {
122
- if (result.status === 'signed-in') onSignedIn();else if (result.status === 'failed') toast.error(t('signin.errors.failed'));
123
- });
124
- };
125
- const useAnotherDevice = () => {
126
- void controller?.showQr();
127
- showRequest();
128
- };
129
152
  const getCommons = () => {
130
153
  Promise.resolve().then(() => Linking.openURL(getCommonsAcquisitionUrl(Platform.OS))).catch(() => toast.error(t('accountSwitcher.linkOpenFailed')));
131
154
  };
132
- 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 => {
133
187
  if (blocked) return;
134
188
  setError(null);
189
+ setNotice(null);
135
190
  setPending(true);
136
- try {
137
- await signInWithPasskey({
138
- 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
139
204
  });
140
- onSignedIn();
141
- } catch (err) {
142
- if (isRateLimited(err)) {
143
- setRateLimitSeconds(RATE_LIMIT_SECONDS);
144
- } else {
145
- const message = describePasskeyError(err, t);
146
- setError(message);
147
- toast.error(failToast, {
148
- 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
149
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;
150
302
  }
151
- } finally {
152
- setPending(false);
153
- }
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
+ });
154
319
  };
155
- const submitUsername = () => {
156
- const username = identifier.trim();
157
- 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
+ });
158
328
  };
159
329
 
160
330
  // A returning device starts at WHO. Not while adding an account from inside
161
331
  // a signed-in app: the rows are the accounts it would add.
162
332
  const pickerAllowed = host === 'dialog' ? !snapshot.hasSession : activeContext !== null;
163
- const reauthenticate = context => {
164
- setIdentifier(context.handle ?? '');
165
- setShowForm(true);
166
- };
167
333
  const selectContext = async context => {
168
334
  const outcome = await controller?.chooseContext(context.contextId).catch(() => 'failed');
169
335
  switch (outcome) {
@@ -181,14 +347,19 @@ export const OxySignInPanel = ({
181
347
  return;
182
348
  case 'failed':
183
349
  // The pair could not be activated as it stands: sign in as it explicitly.
184
- if (methods.passkey === 'here' && 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
+ }
185
356
  return;
186
357
  default:
187
358
  return;
188
359
  }
189
360
  };
190
361
  const showsPicker = pickerAllowed && !showForm && principals.length > 0;
191
- // The web entry is the split card from `md`. In the account dialog it grows
362
+ // The web screen is the split card from `md`. In the account dialog it grows
192
363
  // the dialog to that card; below `md` the dialog is a bottom sheet, which a
193
364
  // width does not touch.
194
365
  const splits = methods.commons === 'qr';
@@ -210,148 +381,275 @@ export const OxySignInPanel = ({
210
381
  const shownError = rateLimitSeconds > 0 ? t('signin.errors.rateLimited', {
211
382
  seconds: rateLimitSeconds
212
383
  }) : error;
213
- const adding = host === 'dialog' && snapshot.hasSession;
214
- const title = adding ? t('signin.addAccountTitle') : t('signin.title');
215
- const description = adding ? t('signin.addAccountSubtitle') : appName ? t('signin.subtitleToApp', {
216
- app: appName
217
- }) : t('signin.subtitle');
218
- const noAccount = /*#__PURE__*/_jsxs(Text, {
219
- style: [styles.note, styles.noAccount, {
220
- color: theme.colors.textSecondary
221
- }],
222
- children: [t('signin.noAccount'), ' ', /*#__PURE__*/_jsx(RNText, {
223
- accessibilityRole: "link",
224
- onPress: onCreateAccount,
225
- style: [styles.noAccountLink, {
226
- color: theme.colors.text
227
- }],
228
- testID: "create-account-link",
229
- children: t('signin.createAccount')
230
- })]
231
- });
232
- // One solid action per screen: the username's Continue when there is one.
233
- const commonsAppearance = methods.passkey === 'here' ? 'outline' : 'solid';
234
- const continueWithOxyButton = /*#__PURE__*/_jsx(Button, {
235
- appearance: commonsAppearance,
236
- tone: commonsAppearance === 'solid' ? 'action' : 'neutral',
237
- size: "lg",
238
- fullWidth: true,
239
- onPress: continueWithOxy,
240
- testID: "continue-with-oxy",
241
- children: t('accountSwitcher.continueWithOxy')
242
- });
243
- const passkeyButton = /*#__PURE__*/_jsx(Button, {
244
- appearance: "outline",
245
- tone: "neutral",
246
- size: "lg",
247
- fullWidth: true,
248
- leadingIcon: RiKey2Line,
249
- disabled: methods.passkey === 'here' && blocked,
250
- onPress: methods.passkey === 'here' ? () => void runPasskey(undefined, t('signin.errors.failed')) : passkeyOnOxy,
251
- testID: "passkey-sign-in",
252
- children: t('signin.methods.passkey')
253
- });
254
- const form = /*#__PURE__*/_jsxs(OxyAuthScreen, {
255
- className: splits ? 'md:max-w-none' : undefined,
256
- children: [/*#__PURE__*/_jsx(OxyAuthScreenHeader, {
257
- title: title,
258
- description: description
259
- }), splits ? /*#__PURE__*/_jsx(CssView, {
260
- className: "md:hidden",
261
- children: continueWithOxyButton
262
- }) : null, methods.commons === 'continue' ? continueWithOxyButton : null, methods.commons === 'get-commons' ? /*#__PURE__*/_jsxs(View, {
263
- style: styles.stack,
264
- children: [/*#__PURE__*/_jsx(Text, {
265
- style: [styles.note, {
266
- color: theme.colors.textSecondary
267
- }],
268
- children: t('accountSwitcher.commonsNotInstalled')
269
- }), /*#__PURE__*/_jsx(Button, {
270
- appearance: "solid",
271
- tone: "action",
272
- size: "lg",
273
- fullWidth: true,
274
- onPress: getCommons,
275
- testID: "get-commons-button",
276
- children: t('accountSwitcher.getCommons')
277
- })]
278
- }) : null, methods.passkey === 'here' ? /*#__PURE__*/_jsxs(View, {
279
- style: styles.stack,
280
- children: [/*#__PURE__*/_jsxs(View, {
281
- style: styles.field,
282
- children: [/*#__PURE__*/_jsx(TextFieldLabel, {
283
- nativeID: "username-label",
284
- children: t('signin.username.label')
285
- }), /*#__PURE__*/_jsx(TextField, {
286
- 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,
287
520
  disabled: blocked,
288
- radius: 999,
289
- style: styles.input,
290
- children: /*#__PURE__*/_jsx(TextFieldInput, {
291
- testID: "username",
292
- label: t('signin.username.label'),
293
- value: identifier,
294
- onValueChange: value => {
295
- setIdentifier(value);
296
- 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);
297
541
  },
298
- placeholder: t('signin.username.placeholder'),
299
- autoComplete: "username",
300
- autoCapitalize: "none",
301
- autoCorrect: false,
302
- autoFocus: Platform.OS === 'web',
303
- returnKeyType: "go",
304
- onSubmitEditing: submitUsername,
305
- "aria-required": true
306
- })
307
- }), shownError ? /*#__PURE__*/_jsx(TextFieldHint, {
308
- invalid: true,
309
- children: shownError
310
- }) : null]
311
- }), noAccount, /*#__PURE__*/_jsx(Button, {
312
- appearance: "solid",
313
- tone: "action",
314
- size: "lg",
315
- fullWidth: true,
316
- loading: pending,
317
- disabled: blocked,
318
- onPress: submitUsername,
319
- testID: "username-continue",
320
- children: t('signin.actions.continue')
321
- })]
322
- }) : null, methods.passkey === 'window' ? /*#__PURE__*/_jsx(CssView, {
323
- className: "md:hidden",
324
- children: /*#__PURE__*/_jsx(Divider, {
325
- children: t('signin.orContinueWith')
326
- })
327
- }) : /*#__PURE__*/_jsx(Divider, {
328
- children: t('signin.orContinueWith')
329
- }), methods.passkey === 'none' ? /*#__PURE__*/_jsx(Button, {
330
- appearance: "outline",
331
- tone: "neutral",
332
- size: "lg",
333
- fullWidth: true,
334
- leadingIcon: RiQrCodeLine,
335
- onPress: useAnotherDevice,
336
- testID: "scan-qr",
337
- children: t('accountSwitcher.scanQr')
338
- }) : passkeyButton, methods.passkey === 'here' ? null : noAccount, onRecover ? /*#__PURE__*/_jsx(SubtleLink, {
339
- label: t('signin.recoverLink'),
340
- theme: theme,
341
- onPress: onRecover,
342
- testID: "recover-link"
343
- }) : 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
344
643
  });
345
- if (!splits) return form;
346
644
  return /*#__PURE__*/_jsx(OxyAuthSplit, {
347
645
  bare: host === 'dialog',
348
646
  aside: /*#__PURE__*/_jsxs(_Fragment, {
349
647
  children: [/*#__PURE__*/_jsx(AuthMediaCarousel, {
350
648
  slides: SIGN_IN_SLIDES,
351
649
  style: StyleSheet.absoluteFill
352
- }), /*#__PURE__*/_jsx(InlineCommonsQr, {
650
+ }), step.name === 'start' ? /*#__PURE__*/_jsx(InlineCommonsQr, {
353
651
  controller: controller
354
- })]
652
+ }) : null]
355
653
  }),
356
654
  children: form
357
655
  });
@@ -360,8 +658,8 @@ const styles = StyleSheet.create({
360
658
  stack: {
361
659
  gap: 12
362
660
  },
363
- field: {
364
- gap: 6
661
+ links: {
662
+ gap: 4
365
663
  },
366
664
  note: {
367
665
  fontSize: 14,
@@ -373,9 +671,6 @@ const styles = StyleSheet.create({
373
671
  },
374
672
  noAccountLink: {
375
673
  textDecorationLine: 'underline'
376
- },
377
- input: {
378
- height: 40
379
674
  }
380
675
  });
381
676
  //# sourceMappingURL=OxySignInPanel.js.map