@oxy.so/services 6.1.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (934) hide show
  1. package/README.md +80 -136
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  4. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +5 -20
  5. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  7. package/lib/commonjs/assets/fonts/icons/manifest.json +5 -20
  8. package/lib/commonjs/index.js +21 -15
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ui/boot/runProviderColdBoot.js +2 -1
  11. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +2 -3
  13. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyAuthChooser.js +16 -32
  15. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
  17. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
  19. package/lib/commonjs/ui/components/ProfileButton.js +1 -1
  20. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  21. package/lib/commonjs/ui/components/SurfaceScreen.js +21 -12
  22. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +2 -2
  24. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +6 -17
  26. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +1 -1
  28. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  29. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
  30. package/lib/commonjs/ui/components/authChooser/types.js +0 -8
  31. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  32. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +1 -1
  33. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +2 -2
  34. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  35. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +11 -5
  36. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  37. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +325 -0
  38. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  39. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +52 -56
  40. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  41. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  42. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  43. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +141 -0
  44. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  45. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +502 -194
  46. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  47. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +211 -42
  48. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  49. package/lib/commonjs/ui/components/signIn/ReauthStep.js +186 -0
  50. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -0
  51. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +103 -26
  52. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  53. package/lib/commonjs/ui/components/signIn/signInFlowStore.js +50 -0
  54. package/lib/commonjs/ui/components/signIn/signInFlowStore.js.map +1 -0
  55. package/lib/commonjs/ui/components/signIn/signInMethods.js +12 -25
  56. package/lib/commonjs/ui/components/signIn/signInMethods.js.map +1 -1
  57. package/lib/commonjs/ui/context/OxyContext.js +125 -119
  58. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  59. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +11 -10
  60. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  61. package/lib/commonjs/ui/context/useOxyAccountGraph.js +4 -4
  62. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  63. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +1 -1
  64. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +19 -9
  65. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  66. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +4 -4
  67. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  68. package/lib/commonjs/ui/hooks/queries/queryKeys.js +23 -3
  69. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  70. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +8 -8
  71. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  72. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +27 -15
  73. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -1
  74. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +5 -2
  75. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
  76. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +8 -8
  77. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  78. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +4 -3
  79. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  80. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +6 -6
  81. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  82. package/lib/commonjs/ui/hooks/useAssets.js +36 -20
  83. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
  84. package/lib/commonjs/ui/hooks/useAvatarPicker.js +6 -4
  85. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  86. package/lib/commonjs/ui/hooks/useDeviceManagement.js +5 -5
  87. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -1
  88. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +2 -2
  89. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
  90. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +1 -4
  91. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -1
  92. package/lib/commonjs/ui/hooks/useFollow.js +2 -2
  93. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  94. package/lib/commonjs/ui/hooks/useFollowTarget.js +5 -5
  95. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  96. package/lib/commonjs/ui/hooks/useI18n.js +4 -1
  97. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  98. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js +2 -2
  99. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js.map +1 -1
  100. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  101. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  102. package/lib/commonjs/ui/hooks/useSurfaceFrameWidth.js +28 -0
  103. package/lib/commonjs/ui/hooks/useSurfaceFrameWidth.js.map +1 -0
  104. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -15
  105. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  106. package/lib/commonjs/ui/navigation/routes.js +6 -4
  107. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  108. package/lib/commonjs/ui/navigation/surfaceRegistry.js +1 -1
  109. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  110. package/lib/commonjs/ui/oauth/browserBridge.js +247 -0
  111. package/lib/commonjs/ui/oauth/browserBridge.js.map +1 -0
  112. package/lib/commonjs/ui/oauth/completeOAuthCode.js +1 -1
  113. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
  114. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js +1 -1
  115. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js.map +1 -1
  116. package/lib/commonjs/ui/runtime/createOxyRuntime.js +9 -8
  117. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
  118. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -1
  119. package/lib/commonjs/ui/screens/AccountMembersScreen.js +7 -7
  120. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  121. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js +35 -0
  122. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  123. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  124. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  126. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AppInfoScreen.js +5 -5
  128. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AvatarCropScreen.js +3 -3
  130. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +1 -1
  132. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/CreateAccountScreen.js +1 -1
  134. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  135. package/lib/commonjs/ui/screens/DeleteAccountScreen.js +19 -0
  136. package/lib/commonjs/ui/screens/DeleteAccountScreen.js.map +1 -0
  137. package/lib/commonjs/ui/screens/DomainsScreen.js +217 -0
  138. package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -0
  139. package/lib/commonjs/ui/screens/EditProfileScreen.js +1 -1
  140. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/FileManagementScreen.js +25 -11
  142. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/HelpSupportScreen.js +1 -17
  144. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/LinkCommonsScreen.js +14 -0
  146. package/lib/commonjs/ui/screens/LinkCommonsScreen.js.map +1 -0
  147. package/lib/commonjs/ui/screens/ManageAccountScreen.js +57 -61
  148. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +52 -62
  150. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  151. package/lib/commonjs/ui/screens/ProfileScreen.js +5 -13
  152. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  153. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +15 -24
  154. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  155. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js +14 -0
  156. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  157. package/lib/commonjs/ui/screens/SignInPasswordScreen.js +20 -0
  158. package/lib/commonjs/ui/screens/SignInPasswordScreen.js.map +1 -0
  159. package/lib/commonjs/ui/screens/UserListScreen.js +3 -3
  160. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  161. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +1 -1
  162. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  163. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +25 -17
  164. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  165. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  166. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  167. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +8 -14
  168. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  169. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +11 -9
  170. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  171. package/lib/commonjs/ui/session/authStore.js +4 -4
  172. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  173. package/lib/commonjs/ui/session/backgroundSession.js +5 -40
  174. package/lib/commonjs/ui/session/backgroundSession.js.map +1 -1
  175. package/lib/commonjs/ui/session/createSessionClient.js +3 -3
  176. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  177. package/lib/commonjs/ui/session/deviceCredentialTracker.js +42 -0
  178. package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -0
  179. package/lib/commonjs/ui/session/identityBinding.js +3 -3
  180. package/lib/commonjs/ui/session/identityBinding.js.map +1 -1
  181. package/lib/commonjs/ui/session/index.js +6 -6
  182. package/lib/commonjs/ui/session/index.js.map +1 -1
  183. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +2 -2
  184. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  185. package/lib/commonjs/ui/session/tokenTransport.js +3 -3
  186. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
  187. package/lib/commonjs/ui/stores/assetStore.js +12 -0
  188. package/lib/commonjs/ui/stores/assetStore.js.map +1 -1
  189. package/lib/commonjs/ui/stores/followStore.js +6 -6
  190. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  191. package/lib/commonjs/ui/utils/accountDeletionHandoff.js +1 -4
  192. package/lib/commonjs/ui/utils/accountDeletionHandoff.js.map +1 -1
  193. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  194. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  195. package/lib/commonjs/ui/utils/deviceCredential.js +11 -4
  196. package/lib/commonjs/ui/utils/deviceCredential.js.map +1 -1
  197. package/lib/commonjs/ui/utils/fileManagement.js +0 -10
  198. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  199. package/lib/commonjs/ui/utils/sessionHelpers.js +2 -2
  200. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  201. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  202. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  203. package/lib/module/assets/assets/fonts/icons/manifest.json +5 -20
  204. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  205. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  206. package/lib/module/assets/fonts/icons/manifest.json +5 -20
  207. package/lib/module/index.js +6 -6
  208. package/lib/module/index.js.map +1 -1
  209. package/lib/module/ui/boot/runProviderColdBoot.js +2 -1
  210. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  211. package/lib/module/ui/components/OxyAccountDialogScreen.js +2 -3
  212. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  213. package/lib/module/ui/components/OxyAuthChooser.js +16 -32
  214. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  215. package/lib/module/ui/components/OxySignInButton.js +1 -1
  216. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  217. package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
  218. package/lib/module/ui/components/ProfileButton.js +1 -1
  219. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  220. package/lib/module/ui/components/SurfaceScreen.js +21 -12
  221. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  222. package/lib/module/ui/components/authChooser/AccountsMenuView.js +1 -1
  223. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  224. package/lib/module/ui/components/authChooser/SignInRequestView.js +6 -17
  225. package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -1
  226. package/lib/module/ui/components/authChooser/TroubleDisclosure.js +1 -1
  227. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  228. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
  229. package/lib/module/ui/components/authChooser/types.js +0 -8
  230. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  231. package/lib/module/ui/components/signIn/InlineCommonsQr.js +1 -1
  232. package/lib/module/ui/components/signIn/OxyAccountPicker.js +1 -1
  233. package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  234. package/lib/module/ui/components/signIn/OxyAuthScreen.js +11 -5
  235. package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  236. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +321 -0
  237. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  238. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +54 -58
  239. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  240. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  241. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  242. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +136 -0
  243. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  244. package/lib/module/ui/components/signIn/OxySignInPanel.js +504 -194
  245. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  246. package/lib/module/ui/components/signIn/OxySignUpPanel.js +212 -43
  247. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  248. package/lib/module/ui/components/signIn/ReauthStep.js +181 -0
  249. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -0
  250. package/lib/module/ui/components/signIn/accountFlowParts.js +97 -26
  251. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  252. package/lib/module/ui/components/signIn/signInFlowStore.js +44 -0
  253. package/lib/module/ui/components/signIn/signInFlowStore.js.map +1 -0
  254. package/lib/module/ui/components/signIn/signInMethods.js +12 -25
  255. package/lib/module/ui/components/signIn/signInMethods.js.map +1 -1
  256. package/lib/module/ui/context/OxyContext.js +121 -115
  257. package/lib/module/ui/context/OxyContext.js.map +1 -1
  258. package/lib/module/ui/context/hooks/useAuthOperations.js +7 -7
  259. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  260. package/lib/module/ui/context/useOxyAccountGraph.js +4 -4
  261. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  262. package/lib/module/ui/hooks/mutations/mutationFactory.js +1 -1
  263. package/lib/module/ui/hooks/mutations/useAccountMutations.js +19 -9
  264. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  265. package/lib/module/ui/hooks/mutations/useServicesMutations.js +4 -4
  266. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/queryKeys.js +23 -3
  268. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useAccountQueries.js +8 -8
  270. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/queries/useAuthMethods.js +25 -14
  272. package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -1
  273. package/lib/module/ui/hooks/queries/useFileQueries.js +5 -2
  274. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
  275. package/lib/module/ui/hooks/queries/usePaymentQueries.js +8 -8
  276. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  277. package/lib/module/ui/hooks/queries/useSecurityQueries.js +4 -3
  278. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  279. package/lib/module/ui/hooks/queries/useServicesQueries.js +6 -6
  280. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  281. package/lib/module/ui/hooks/useAssets.js +36 -20
  282. package/lib/module/ui/hooks/useAssets.js.map +1 -1
  283. package/lib/module/ui/hooks/useAvatarPicker.js +6 -4
  284. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  285. package/lib/module/ui/hooks/useDeviceManagement.js +4 -4
  286. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -1
  287. package/lib/module/ui/hooks/useDeviceSwitcher.js +2 -2
  288. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
  289. package/lib/module/ui/hooks/useFileDownloadUrl.js +1 -4
  290. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -1
  291. package/lib/module/ui/hooks/useFollow.js +2 -2
  292. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  293. package/lib/module/ui/hooks/useFollowTarget.js +5 -5
  294. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  295. package/lib/module/ui/hooks/useI18n.js +6 -3
  296. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  297. package/lib/module/ui/hooks/useResolvedFileUrls.js +2 -2
  298. package/lib/module/ui/hooks/useResolvedFileUrls.js.map +1 -1
  299. package/lib/module/ui/hooks/useSessionManagement.js +3 -3
  300. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  301. package/lib/module/ui/hooks/useSurfaceFrameWidth.js +24 -0
  302. package/lib/module/ui/hooks/useSurfaceFrameWidth.js.map +1 -0
  303. package/lib/module/ui/icons/subsetGlyphMaps.js +0 -15
  304. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  305. package/lib/module/ui/navigation/routes.js +6 -4
  306. package/lib/module/ui/navigation/routes.js.map +1 -1
  307. package/lib/module/ui/navigation/surfaceRegistry.js +1 -1
  308. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  309. package/lib/module/ui/oauth/browserBridge.js +239 -0
  310. package/lib/module/ui/oauth/browserBridge.js.map +1 -0
  311. package/lib/module/ui/oauth/completeOAuthCode.js +1 -1
  312. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
  313. package/lib/module/ui/oauth/explicitOAuthConsent.js +1 -1
  314. package/lib/module/ui/oauth/explicitOAuthConsent.js.map +1 -1
  315. package/lib/module/ui/runtime/createOxyRuntime.js +4 -3
  316. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
  317. package/lib/module/ui/runtime/runtimeContext.js.map +1 -1
  318. package/lib/module/ui/screens/AccountMembersScreen.js +7 -7
  319. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  320. package/lib/module/ui/screens/AccountSecurityPanelScreen.js +32 -0
  321. package/lib/module/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  322. package/lib/module/ui/screens/AccountSettingsScreen.js +3 -3
  323. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  324. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  325. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  326. package/lib/module/ui/screens/AppInfoScreen.js +5 -5
  327. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  328. package/lib/module/ui/screens/AvatarCropScreen.js +3 -3
  329. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  330. package/lib/module/ui/screens/ChangeAvatarScreen.js +1 -1
  331. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -1
  332. package/lib/module/ui/screens/CreateAccountScreen.js +1 -1
  333. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  334. package/lib/module/ui/screens/DeleteAccountScreen.js +17 -0
  335. package/lib/module/ui/screens/DeleteAccountScreen.js.map +1 -0
  336. package/lib/module/ui/screens/DomainsScreen.js +212 -0
  337. package/lib/module/ui/screens/DomainsScreen.js.map +1 -0
  338. package/lib/module/ui/screens/EditProfileScreen.js +1 -1
  339. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  340. package/lib/module/ui/screens/FileManagementScreen.js +25 -11
  341. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  342. package/lib/module/ui/screens/HelpSupportScreen.js +1 -17
  343. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  344. package/lib/module/ui/screens/LinkCommonsScreen.js +12 -0
  345. package/lib/module/ui/screens/LinkCommonsScreen.js.map +1 -0
  346. package/lib/module/ui/screens/ManageAccountScreen.js +58 -62
  347. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  348. package/lib/module/ui/screens/PrivacySettingsScreen.js +53 -63
  349. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  350. package/lib/module/ui/screens/ProfileScreen.js +5 -13
  351. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  352. package/lib/module/ui/screens/SearchSettingsScreen.js +16 -25
  353. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  354. package/lib/module/ui/screens/SignInAuthenticatorScreen.js +12 -0
  355. package/lib/module/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  356. package/lib/module/ui/screens/SignInPasswordScreen.js +18 -0
  357. package/lib/module/ui/screens/SignInPasswordScreen.js.map +1 -0
  358. package/lib/module/ui/screens/UserListScreen.js +3 -3
  359. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  360. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  361. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  362. package/lib/module/ui/screens/trust/TrustCenterScreen.js +26 -18
  363. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  364. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  365. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  366. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +9 -15
  367. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  368. package/lib/module/ui/screens/trust/TrustRulesScreen.js +12 -10
  369. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  370. package/lib/module/ui/session/authStore.js +1 -1
  371. package/lib/module/ui/session/authStore.js.map +1 -1
  372. package/lib/module/ui/session/backgroundSession.js +5 -40
  373. package/lib/module/ui/session/backgroundSession.js.map +1 -1
  374. package/lib/module/ui/session/createSessionClient.js +1 -1
  375. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  376. package/lib/module/ui/session/deviceCredentialTracker.js +38 -0
  377. package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -0
  378. package/lib/module/ui/session/identityBinding.js +1 -1
  379. package/lib/module/ui/session/identityBinding.js.map +1 -1
  380. package/lib/module/ui/session/index.js +1 -1
  381. package/lib/module/ui/session/index.js.map +1 -1
  382. package/lib/module/ui/session/sharedDeviceCredentialStore.js +1 -1
  383. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  384. package/lib/module/ui/session/tokenTransport.js +3 -3
  385. package/lib/module/ui/session/tokenTransport.js.map +1 -1
  386. package/lib/module/ui/stores/assetStore.js +12 -0
  387. package/lib/module/ui/stores/assetStore.js.map +1 -1
  388. package/lib/module/ui/stores/followStore.js +6 -6
  389. package/lib/module/ui/stores/followStore.js.map +1 -1
  390. package/lib/module/ui/utils/accountDeletionHandoff.js +2 -5
  391. package/lib/module/ui/utils/accountDeletionHandoff.js.map +1 -1
  392. package/lib/module/ui/utils/avatarUtils.js +1 -1
  393. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  394. package/lib/module/ui/utils/deviceCredential.js +10 -3
  395. package/lib/module/ui/utils/deviceCredential.js.map +1 -1
  396. package/lib/module/ui/utils/fileManagement.js +0 -9
  397. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  398. package/lib/module/ui/utils/sessionHelpers.js +2 -2
  399. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  400. package/lib/typescript/commonjs/index.d.ts +5 -5
  401. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +3 -2
  403. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  404. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  405. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +8 -7
  407. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  408. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts +2 -1
  409. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  412. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  413. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  414. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  416. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +1 -1
  417. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  418. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  419. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  421. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts +2 -1
  423. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  424. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +1 -12
  425. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  427. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  429. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  430. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts +7 -1
  431. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
  432. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  433. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  435. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  436. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  437. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  439. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  440. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  441. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  443. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +34 -0
  445. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  446. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +38 -12
  447. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts +20 -0
  449. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  450. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts +10 -20
  451. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +2 -1
  454. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +4 -39
  456. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
  458. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  460. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  461. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  462. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  463. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  465. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  466. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +19 -1
  467. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  469. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  470. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +1 -1
  471. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  472. package/lib/typescript/commonjs/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  473. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  474. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  475. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  476. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +5 -5
  477. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts.map +1 -1
  478. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +1 -1
  479. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  480. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  482. package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts +1 -1
  483. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  484. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  485. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  486. package/lib/typescript/commonjs/ui/hooks/useSurfaceFrameWidth.d.ts +12 -0
  487. package/lib/typescript/commonjs/ui/hooks/useSurfaceFrameWidth.d.ts.map +1 -0
  488. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  489. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  490. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  491. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  492. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +0 -15
  493. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  494. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +1 -1
  495. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  496. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  497. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +7 -5
  499. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  500. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts +97 -0
  501. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts.map +1 -0
  502. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +6 -2
  503. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +2 -1
  505. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/ui/runtime/types.d.ts +2 -1
  507. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -1
  508. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  509. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  510. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts +6 -0
  511. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  512. package/lib/typescript/commonjs/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  513. package/lib/typescript/commonjs/ui/screens/DomainsScreen.d.ts.map +1 -0
  514. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts +6 -0
  517. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  518. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  520. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  523. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  524. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts +6 -0
  525. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  526. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  527. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  528. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/ui/session/authStore.d.ts +1 -1
  530. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts +3 -4
  532. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts.map +1 -1
  533. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +2 -1
  534. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts +23 -0
  536. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  537. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts +1 -1
  538. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts.map +1 -1
  539. package/lib/typescript/commonjs/ui/session/index.d.ts +1 -1
  540. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
  541. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts +1 -1
  542. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts.map +1 -1
  543. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  544. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  545. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +3 -2
  546. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
  547. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts +7 -0
  548. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts.map +1 -1
  549. package/lib/typescript/commonjs/ui/types/navigation.d.ts +1 -1
  550. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  551. package/lib/typescript/commonjs/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  552. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts +10 -3
  553. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts.map +1 -1
  554. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +1 -5
  555. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  556. package/lib/typescript/module/index.d.ts +5 -5
  557. package/lib/typescript/module/index.d.ts.map +1 -1
  558. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +3 -2
  559. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  560. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  561. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  562. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +8 -7
  563. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  564. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts +2 -1
  565. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  566. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  567. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  568. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  569. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  570. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  571. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  572. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +1 -1
  573. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  574. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  575. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  576. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  577. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  578. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts +2 -1
  579. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  580. package/lib/typescript/module/ui/components/authChooser/types.d.ts +1 -12
  581. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  582. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  583. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  584. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  585. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  586. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts +7 -1
  587. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
  588. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  589. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  590. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  591. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  592. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  593. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  594. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  595. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  596. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  597. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  598. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  599. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  600. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +34 -0
  601. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  602. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +38 -12
  603. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts +20 -0
  605. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  606. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts +10 -20
  607. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  609. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +2 -1
  610. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  611. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +4 -39
  612. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  613. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
  614. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  615. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  616. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  618. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  619. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  620. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  621. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  622. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +19 -1
  623. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  624. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  625. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  626. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +1 -1
  627. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  628. package/lib/typescript/module/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  629. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  630. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  631. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/hooks/useAssets.d.ts +5 -5
  633. package/lib/typescript/module/ui/hooks/useAssets.d.ts.map +1 -1
  634. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +1 -1
  635. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  636. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  637. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  638. package/lib/typescript/module/ui/hooks/useFollow.d.ts +1 -1
  639. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  640. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  641. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/hooks/useSurfaceFrameWidth.d.ts +12 -0
  643. package/lib/typescript/module/ui/hooks/useSurfaceFrameWidth.d.ts.map +1 -0
  644. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  645. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  646. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  647. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  648. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +0 -15
  649. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +1 -1
  651. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  652. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  653. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  654. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +7 -5
  655. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/oauth/browserBridge.d.ts +97 -0
  657. package/lib/typescript/module/ui/oauth/browserBridge.d.ts.map +1 -0
  658. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +6 -2
  659. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  660. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +2 -1
  661. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/runtime/types.d.ts +2 -1
  663. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -1
  664. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  665. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  666. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts +6 -0
  667. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  668. package/lib/typescript/module/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  669. package/lib/typescript/module/ui/screens/DomainsScreen.d.ts.map +1 -0
  670. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  671. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  672. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts +6 -0
  673. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  674. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  676. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  678. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  679. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  680. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts +6 -0
  681. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  682. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  684. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  685. package/lib/typescript/module/ui/session/authStore.d.ts +1 -1
  686. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  687. package/lib/typescript/module/ui/session/backgroundSession.d.ts +3 -4
  688. package/lib/typescript/module/ui/session/backgroundSession.d.ts.map +1 -1
  689. package/lib/typescript/module/ui/session/createSessionClient.d.ts +2 -1
  690. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  691. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts +23 -0
  692. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  693. package/lib/typescript/module/ui/session/identityBinding.d.ts +1 -1
  694. package/lib/typescript/module/ui/session/identityBinding.d.ts.map +1 -1
  695. package/lib/typescript/module/ui/session/index.d.ts +1 -1
  696. package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
  697. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts +1 -1
  698. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts.map +1 -1
  699. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  700. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  701. package/lib/typescript/module/ui/session/tokenTransport.d.ts +3 -2
  702. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
  703. package/lib/typescript/module/ui/stores/assetStore.d.ts +7 -0
  704. package/lib/typescript/module/ui/stores/assetStore.d.ts.map +1 -1
  705. package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
  706. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  707. package/lib/typescript/module/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  708. package/lib/typescript/module/ui/utils/deviceCredential.d.ts +10 -3
  709. package/lib/typescript/module/ui/utils/deviceCredential.d.ts.map +1 -1
  710. package/lib/typescript/module/ui/utils/fileManagement.d.ts +1 -5
  711. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  712. package/package.json +4 -5
  713. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  714. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  715. package/src/assets/fonts/icons/manifest.json +5 -20
  716. package/src/index.ts +8 -8
  717. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +4 -4
  718. package/src/ui/boot/runProviderColdBoot.ts +3 -9
  719. package/src/ui/components/OxyAccountDialogScreen.tsx +2 -3
  720. package/src/ui/components/OxyAuthChooser.tsx +14 -36
  721. package/src/ui/components/OxySignInButton.tsx +1 -1
  722. package/src/ui/components/OxySignInRequestSurface.tsx +2 -1
  723. package/src/ui/components/ProfileButton.tsx +1 -1
  724. package/src/ui/components/SurfaceScreen.tsx +19 -11
  725. package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -6
  726. package/src/ui/components/authChooser/SignInRequestView.tsx +5 -23
  727. package/src/ui/components/authChooser/TroubleDisclosure.tsx +1 -1
  728. package/src/ui/components/authChooser/primitives.tsx +1 -1
  729. package/src/ui/components/authChooser/requestSurfaces.tsx +2 -1
  730. package/src/ui/components/authChooser/signInFailureMessage.ts +1 -1
  731. package/src/ui/components/authChooser/signInProgress.ts +2 -1
  732. package/src/ui/components/authChooser/types.ts +1 -13
  733. package/src/ui/components/signIn/InlineCommonsQr.tsx +2 -2
  734. package/src/ui/components/signIn/OxyAccountPicker.tsx +1 -1
  735. package/src/ui/components/signIn/OxyAuthScreen.tsx +14 -5
  736. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +294 -0
  737. package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +48 -61
  738. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +43 -35
  739. package/src/ui/components/signIn/OxyPasswordPanel.tsx +117 -0
  740. package/src/ui/components/signIn/OxySignInPanel.tsx +542 -203
  741. package/src/ui/components/signIn/OxySignUpPanel.tsx +186 -56
  742. package/src/ui/components/signIn/ReauthStep.tsx +201 -0
  743. package/src/ui/components/signIn/accountFlowParts.tsx +139 -33
  744. package/src/ui/components/signIn/signInFlowStore.ts +41 -0
  745. package/src/ui/components/signIn/signInMethods.ts +12 -27
  746. package/src/ui/context/OxyContext.tsx +124 -145
  747. package/src/ui/context/hooks/useAuthOperations.ts +9 -8
  748. package/src/ui/context/oxyContextTypes.ts +4 -41
  749. package/src/ui/context/useOxyAccountGraph.ts +6 -5
  750. package/src/ui/hooks/accountDialogSnapshot.ts +1 -1
  751. package/src/ui/hooks/mutations/mutationFactory.ts +1 -1
  752. package/src/ui/hooks/mutations/useAccountMutations.ts +11 -10
  753. package/src/ui/hooks/mutations/useServicesMutations.ts +4 -4
  754. package/src/ui/hooks/queries/queryKeys.ts +26 -2
  755. package/src/ui/hooks/queries/useAccountQueries.ts +8 -8
  756. package/src/ui/hooks/queries/useAuthMethods.ts +22 -19
  757. package/src/ui/hooks/queries/useFileQueries.ts +2 -2
  758. package/src/ui/hooks/queries/usePaymentQueries.ts +8 -8
  759. package/src/ui/hooks/queries/useSecurityQueries.ts +4 -3
  760. package/src/ui/hooks/queries/useServicesQueries.ts +6 -6
  761. package/src/ui/hooks/useAssets.ts +26 -31
  762. package/src/ui/hooks/useAvatarPicker.ts +4 -4
  763. package/src/ui/hooks/useDeviceManagement.ts +4 -4
  764. package/src/ui/hooks/useDeviceSwitcher.ts +2 -7
  765. package/src/ui/hooks/useFileDownloadUrl.ts +1 -5
  766. package/src/ui/hooks/useFollow.ts +2 -2
  767. package/src/ui/hooks/useFollowTarget.ts +5 -5
  768. package/src/ui/hooks/useI18n.ts +6 -3
  769. package/src/ui/hooks/useResolvedFileUrls.ts +8 -6
  770. package/src/ui/hooks/useSessionManagement.ts +3 -3
  771. package/src/ui/hooks/useSurfaceFrameWidth.ts +21 -0
  772. package/src/ui/icons/subsetGlyphMaps.ts +0 -15
  773. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +1 -1
  774. package/src/ui/navigation/accountDialogManager.ts +1 -1
  775. package/src/ui/navigation/routes.ts +11 -8
  776. package/src/ui/navigation/surfaceRegistry.ts +8 -6
  777. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +8 -8
  778. package/src/ui/oauth/__tests__/browserBridge.test.ts +198 -0
  779. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
  780. package/src/ui/oauth/__tests__/explicitOAuthConsent.test.ts +11 -11
  781. package/src/ui/oauth/__tests__/sharedCompletionPath.test.ts +7 -7
  782. package/src/ui/oauth/browserBridge.ts +234 -0
  783. package/src/ui/oauth/completeOAuthCode.ts +1 -1
  784. package/src/ui/oauth/explicitOAuthConsent.ts +1 -1
  785. package/src/ui/runtime/createOxyRuntime.ts +8 -16
  786. package/src/ui/runtime/runtimeContext.tsx +2 -1
  787. package/src/ui/runtime/types.ts +2 -1
  788. package/src/ui/screens/AccountMembersScreen.tsx +7 -7
  789. package/src/ui/screens/AccountSecurityPanelScreen.tsx +26 -0
  790. package/src/ui/screens/AccountSettingsScreen.tsx +3 -3
  791. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  792. package/src/ui/screens/AppInfoScreen.tsx +5 -5
  793. package/src/ui/screens/AvatarCropScreen.tsx +3 -3
  794. package/src/ui/screens/ChangeAvatarScreen.tsx +1 -1
  795. package/src/ui/screens/CreateAccountScreen.tsx +1 -1
  796. package/src/ui/screens/DeleteAccountScreen.tsx +13 -0
  797. package/src/ui/screens/DomainsScreen.tsx +187 -0
  798. package/src/ui/screens/EditProfileScreen.tsx +1 -1
  799. package/src/ui/screens/FileManagementScreen.tsx +15 -21
  800. package/src/ui/screens/HelpSupportScreen.tsx +0 -15
  801. package/src/ui/screens/LinkCommonsScreen.tsx +13 -0
  802. package/src/ui/screens/ManageAccountScreen.tsx +47 -82
  803. package/src/ui/screens/PrivacySettingsScreen.tsx +48 -67
  804. package/src/ui/screens/ProfileScreen.tsx +5 -10
  805. package/src/ui/screens/SearchSettingsScreen.tsx +15 -27
  806. package/src/ui/screens/SignInAuthenticatorScreen.tsx +13 -0
  807. package/src/ui/screens/SignInPasswordScreen.tsx +13 -0
  808. package/src/ui/screens/UserListScreen.tsx +3 -3
  809. package/src/ui/screens/WelcomeNewUserScreen.tsx +1 -1
  810. package/src/ui/screens/trust/TrustCenterScreen.tsx +25 -29
  811. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +2 -2
  812. package/src/ui/screens/trust/TrustRewardsScreen.tsx +9 -19
  813. package/src/ui/screens/trust/TrustRulesScreen.tsx +14 -14
  814. package/src/ui/session/__tests__/authStore.test.ts +1 -1
  815. package/src/ui/session/__tests__/backgroundSession.test.ts +2 -61
  816. package/src/ui/session/__tests__/createSessionClient.test.ts +7 -9
  817. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +1 -1
  818. package/src/ui/session/__tests__/tokenTransport.test.ts +9 -7
  819. package/src/ui/session/authStore.ts +1 -7
  820. package/src/ui/session/backgroundSession.ts +5 -41
  821. package/src/ui/session/createSessionClient.ts +2 -6
  822. package/src/ui/session/deviceCredentialTracker.ts +49 -0
  823. package/src/ui/session/identityBinding.ts +1 -6
  824. package/src/ui/session/index.ts +1 -1
  825. package/src/ui/session/nativeSecureStorage.ts +1 -1
  826. package/src/ui/session/sharedDeviceCredentialStore.ts +1 -6
  827. package/src/ui/session/tokenTransport.ts +5 -4
  828. package/src/ui/stores/__tests__/followStore.test.ts +13 -15
  829. package/src/ui/stores/assetStore.ts +15 -0
  830. package/src/ui/stores/followStore.ts +7 -7
  831. package/src/ui/types/navigation.ts +2 -1
  832. package/src/ui/utils/accountDeletionHandoff.ts +2 -4
  833. package/src/ui/utils/avatarUtils.ts +1 -1
  834. package/src/ui/utils/deviceCredential.ts +11 -4
  835. package/src/ui/utils/fileManagement.ts +0 -12
  836. package/src/ui/utils/sessionHelpers.ts +2 -2
  837. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js +0 -236
  838. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  839. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js +0 -170
  840. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  841. package/lib/commonjs/ui/components/signIn/passkeyError.js +0 -46
  842. package/lib/commonjs/ui/components/signIn/passkeyError.js.map +0 -1
  843. package/lib/commonjs/ui/context/passkeyFlow.js +0 -114
  844. package/lib/commonjs/ui/context/passkeyFlow.js.map +0 -1
  845. package/lib/commonjs/ui/screens/FAQScreen.js +0 -162
  846. package/lib/commonjs/ui/screens/FAQScreen.js.map +0 -1
  847. package/lib/commonjs/ui/screens/FeedbackScreen.js +0 -601
  848. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +0 -1
  849. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +0 -968
  850. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  851. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +0 -132
  852. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +0 -1
  853. package/lib/commonjs/webauthn/passkeyClient.js +0 -39
  854. package/lib/commonjs/webauthn/passkeyClient.js.map +0 -1
  855. package/lib/commonjs/webauthn/passkeyClient.native.js +0 -34
  856. package/lib/commonjs/webauthn/passkeyClient.native.js.map +0 -1
  857. package/lib/commonjs/webauthn/passkeyClient.web.js +0 -57
  858. package/lib/commonjs/webauthn/passkeyClient.web.js.map +0 -1
  859. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js +0 -231
  860. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  861. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js +0 -165
  862. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  863. package/lib/module/ui/components/signIn/passkeyError.js +0 -40
  864. package/lib/module/ui/components/signIn/passkeyError.js.map +0 -1
  865. package/lib/module/ui/context/passkeyFlow.js +0 -107
  866. package/lib/module/ui/context/passkeyFlow.js.map +0 -1
  867. package/lib/module/ui/screens/FAQScreen.js +0 -157
  868. package/lib/module/ui/screens/FAQScreen.js.map +0 -1
  869. package/lib/module/ui/screens/FeedbackScreen.js +0 -599
  870. package/lib/module/ui/screens/FeedbackScreen.js.map +0 -1
  871. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +0 -963
  872. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  873. package/lib/module/ui/screens/SavesCollectionsScreen.js +0 -127
  874. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +0 -1
  875. package/lib/module/webauthn/passkeyClient.js +0 -33
  876. package/lib/module/webauthn/passkeyClient.js.map +0 -1
  877. package/lib/module/webauthn/passkeyClient.native.js +0 -28
  878. package/lib/module/webauthn/passkeyClient.native.js.map +0 -1
  879. package/lib/module/webauthn/passkeyClient.web.js +0 -52
  880. package/lib/module/webauthn/passkeyClient.web.js.map +0 -1
  881. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  882. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  883. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  884. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  885. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts +0 -16
  886. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts.map +0 -1
  887. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts +0 -92
  888. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts.map +0 -1
  889. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts +0 -5
  890. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +0 -1
  891. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts +0 -5
  892. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +0 -1
  893. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  894. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  895. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  896. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts +0 -20
  897. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts.map +0 -1
  898. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts +0 -15
  899. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts.map +0 -1
  900. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts +0 -36
  901. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts.map +0 -1
  902. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  903. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  904. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  905. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  906. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts +0 -16
  907. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts.map +0 -1
  908. package/lib/typescript/module/ui/context/passkeyFlow.d.ts +0 -92
  909. package/lib/typescript/module/ui/context/passkeyFlow.d.ts.map +0 -1
  910. package/lib/typescript/module/ui/screens/FAQScreen.d.ts +0 -5
  911. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +0 -1
  912. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts +0 -5
  913. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +0 -1
  914. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  915. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  916. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  917. package/lib/typescript/module/webauthn/passkeyClient.d.ts +0 -20
  918. package/lib/typescript/module/webauthn/passkeyClient.d.ts.map +0 -1
  919. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts +0 -15
  920. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts.map +0 -1
  921. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts +0 -36
  922. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts.map +0 -1
  923. package/src/ui/components/signIn/OxyCreateAccountPanel.tsx +0 -207
  924. package/src/ui/components/signIn/OxyRecoverAccountPanel.tsx +0 -154
  925. package/src/ui/components/signIn/passkeyError.ts +0 -44
  926. package/src/ui/context/__tests__/passkeyFlow.test.ts +0 -239
  927. package/src/ui/context/passkeyFlow.ts +0 -145
  928. package/src/ui/screens/FAQScreen.tsx +0 -200
  929. package/src/ui/screens/FeedbackScreen.tsx +0 -766
  930. package/src/ui/screens/PremiumSubscriptionScreen.tsx +0 -1103
  931. package/src/ui/screens/SavesCollectionsScreen.tsx +0 -167
  932. package/src/webauthn/passkeyClient.native.ts +0 -26
  933. package/src/webauthn/passkeyClient.ts +0 -31
  934. package/src/webauthn/passkeyClient.web.ts +0 -56
@@ -16,7 +16,7 @@ import { RiArrowRightSLine } from '@oxy.so/bloom/icons/RiArrowRightSLine';
16
16
  import { RiUserAddLine } from '@oxy.so/bloom/icons/RiUserAddLine';
17
17
  import { useTheme } from '@oxy.so/bloom/theme';
18
18
  import { Text } from '@oxy.so/bloom/typography';
19
- import { showsPrincipalHeaders, type SwitcherContextRow, type SwitcherPrincipalRow } from '@oxy.so/core';
19
+ import { showsPrincipalHeaders, type SwitcherContextRow, type SwitcherPrincipalRow } from '@oxy.so/core/session';
20
20
  import { useI18n } from '../../hooks/useI18n';
21
21
  import { AccountRow } from '../authChooser/primitives';
22
22
  import { authChooserStyles } from '../authChooser/styles';
@@ -66,20 +66,29 @@ export const OxyAuthScreen: React.FC<{ children: React.ReactNode; className?: st
66
66
  <View className={`w-full max-w-[448px] self-center gap-6 ${className ?? ''}`}>{children}</View>
67
67
  );
68
68
 
69
- /** The split card: `children` on the left and, from `md`, `aside` on the right. */
70
- export const OxyAuthSplit: React.FC<{ children: React.ReactNode; aside: React.ReactNode }> = ({ children, aside }) => {
69
+ /**
70
+ * The split card: `children` on the left and, from `md`, `aside` on the right.
71
+ * `bare` inside a surface that already is the card (the account dialog): no
72
+ * border of its own, and the right column is a rounded tile within the
73
+ * dialog's margins.
74
+ */
75
+ export const OxyAuthSplit: React.FC<{ children: React.ReactNode; aside: React.ReactNode; bare?: boolean }> = ({
76
+ children,
77
+ aside,
78
+ bare = false,
79
+ }) => {
71
80
  const theme = useTheme();
72
81
  return (
73
82
  <View
74
- className="w-full self-center md:max-w-[880px] md:flex-row md:rounded-3xl md:border md:border-border md:bg-card md:overflow-hidden"
83
+ className={`w-full self-center md:max-w-[880px] md:flex-row ${bare ? 'md:gap-8' : 'md:rounded-3xl md:border md:border-border md:bg-card md:overflow-hidden'}`}
75
84
  >
76
85
  {/* Padding on an inner box: a padded flex item cannot shrink its base
77
86
  size below its padding, which breaks the two equal tracks. */}
78
87
  <View className="md:flex-1 md:basis-0 md:min-w-0">
79
- <View className="md:p-8">{children}</View>
88
+ <View className={bare ? '' : 'md:p-8'}>{children}</View>
80
89
  </View>
81
90
  <View
82
- className="hidden md:flex md:flex-1 md:basis-0 md:min-w-0 items-center justify-center overflow-hidden p-8"
91
+ className={`hidden md:flex md:flex-1 md:basis-0 md:min-w-0 items-center justify-center overflow-hidden p-8 ${bare ? 'rounded-[20px]' : ''}`}
83
92
  style={{ backgroundColor: theme.colors.backgroundSecondary }}
84
93
  >
85
94
  {aside}
@@ -0,0 +1,294 @@
1
+ /**
2
+ * The account's authenticator app (TOTP), from its settings:
3
+ *
4
+ * off → "Set up" → the QR (`otpauth://`) and its setup key → the app's
5
+ * first code, confirmed like any sensitive change → the backup codes,
6
+ * shown once
7
+ * on → new backup codes, or turn it off — each confirmed like any
8
+ * sensitive change (with the authenticator's code too)
9
+ *
10
+ * Once on, every sign-in (email code, link or password) asks for the app's code
11
+ * as a second step, or a backup code.
12
+ */
13
+
14
+ import type React from 'react';
15
+ import { useState } from 'react';
16
+ import { Clipboard, StyleSheet, View } from 'react-native';
17
+ import QRCode from 'react-native-qrcode-svg';
18
+ import { Button } from '@oxy.so/bloom/button';
19
+ import { useTheme } from '@oxy.so/bloom/theme';
20
+ import { toast } from '@oxy.so/bloom/toast';
21
+ import { Text } from '@oxy.so/bloom/typography';
22
+ import { TOTP_DIGITS, type TotpEnrollResponse } from '@oxy.so/contracts';
23
+ import { useQueryClient } from '@tanstack/react-query';
24
+ import { useOxy } from '../../context/OxyContext';
25
+ import { useSignInMethods } from '../../hooks/queries/useAuthMethods';
26
+ import { queryKeys } from '../../hooks/queries/queryKeys';
27
+ import { useI18n } from '../../hooks/useI18n';
28
+ import { SubtleLink } from '../authChooser/primitives';
29
+ import { OxyAuthLoading, OxyAuthScreen, OxyAuthScreenHeader } from './OxyAuthScreen';
30
+ import { ReauthStep } from './ReauthStep';
31
+ import {
32
+ AccountFlowAction,
33
+ AccountFlowErrorLine,
34
+ AccountFlowField,
35
+ AccountFlowNote,
36
+ describeSignInError,
37
+ } from './accountFlowParts';
38
+
39
+ /** High-contrast, un-themed on purpose: scan reliability. */
40
+ const QR_PLATE_BG = '#FFFFFF';
41
+ const QR_FOREGROUND = '#000000';
42
+ const QR_SIZE = 184;
43
+
44
+ type Step =
45
+ | { name: 'status' }
46
+ | { name: 'enroll'; enrollment: TotpEnrollResponse }
47
+ | { name: 'regenerate' }
48
+ | { name: 'disable' }
49
+ | { name: 'codes'; codes: string[] };
50
+
51
+ export interface OxyAuthenticatorPanelProps {
52
+ /** The person is done here (after saving backup codes, or turning it off). */
53
+ onDone?: () => void;
54
+ }
55
+
56
+ export const OxyAuthenticatorPanel: React.FC<OxyAuthenticatorPanelProps> = ({ onDone }) => {
57
+ const theme = useTheme();
58
+ const { t } = useI18n();
59
+ const { oxyServices, user } = useOxy();
60
+ const queryClient = useQueryClient();
61
+ const keyed = Boolean(user?.publicKey);
62
+ const methods = useSignInMethods({ enabled: !keyed });
63
+ const [step, setStep] = useState<Step>({ name: 'status' });
64
+ const [code, setCode] = useState('');
65
+ const [pending, setPending] = useState(false);
66
+ const [error, setError] = useState<string | null>(null);
67
+
68
+ const refresh = () => void queryClient.invalidateQueries({ queryKey: queryKeys.signInMethods.all });
69
+
70
+ if (keyed) {
71
+ return (
72
+ <OxyAuthScreen>
73
+ <OxyAuthScreenHeader title={t('signInSecurity.totp.title')} description={t('linkCommons.already')} />
74
+ </OxyAuthScreen>
75
+ );
76
+ }
77
+ if (!methods.data) return <OxyAuthLoading />;
78
+ const { hasPassword, totpEnabled, backupCodesRemaining } = methods.data;
79
+
80
+ const setUp = () => {
81
+ if (pending) return;
82
+ setError(null);
83
+ setPending(true);
84
+ oxyServices
85
+ .auth.totp.enroll()
86
+ .then((enrollment) => {
87
+ setCode('');
88
+ setStep({ name: 'enroll', enrollment });
89
+ })
90
+ .catch((reason: unknown) => setError(describeSignInError(reason, t)))
91
+ .finally(() => setPending(false));
92
+ };
93
+
94
+ const back = { label: t('common.cancel'), onPress: () => setStep({ name: 'status' }) };
95
+
96
+ switch (step.name) {
97
+ case 'codes':
98
+ return (
99
+ <OxyAuthScreen>
100
+ <OxyAuthScreenHeader title={t('signInSecurity.totp.backupTitle')} description={t('signInSecurity.totp.backupDescription')} />
101
+ <View style={[styles.codes, { borderColor: theme.colors.border }]} testID="totp-backup-codes">
102
+ {step.codes.map((backupCode) => (
103
+ <Text key={backupCode} style={[styles.code, { color: theme.colors.text }]}>
104
+ {backupCode}
105
+ </Text>
106
+ ))}
107
+ </View>
108
+ <Button
109
+ appearance="outline"
110
+ tone="neutral"
111
+ size="lg"
112
+ fullWidth
113
+ onPress={() => {
114
+ Promise.resolve()
115
+ .then(() => Clipboard.setString(step.codes.join('\n')))
116
+ .then(() => toast.success(t('signInSecurity.totp.copied')))
117
+ .catch(() => undefined);
118
+ }}
119
+ testID="totp-copy-codes"
120
+ >
121
+ {t('signInSecurity.totp.copy')}
122
+ </Button>
123
+ <AccountFlowAction
124
+ label={t('signInSecurity.totp.savedThem')}
125
+ onPress={() => {
126
+ setStep({ name: 'status' });
127
+ onDone?.();
128
+ }}
129
+ pending={false}
130
+ testID="totp-codes-done"
131
+ />
132
+ </OxyAuthScreen>
133
+ );
134
+ case 'enroll': {
135
+ const { enrollment } = step;
136
+ return (
137
+ <ReauthStep
138
+ title={t('signInSecurity.totp.title')}
139
+ description={t('signInSecurity.totp.scan')}
140
+ action="totp"
141
+ allowPassword={hasPassword}
142
+ totpEnabled={false}
143
+ submitLabel={t('signInSecurity.totp.enable')}
144
+ validate={() => (new RegExp(`^\\d{${TOTP_DIGITS}}$`).test(code.trim()) ? null : t('signin.errors.secondFactorInvalid'))}
145
+ onSubmit={async (reauth) => {
146
+ const codes = await oxyServices.auth.totp.confirm(code.trim(), reauth);
147
+ refresh();
148
+ toast.success(t('signInSecurity.totp.enabled'));
149
+ setStep({ name: 'codes', codes });
150
+ }}
151
+ secondary={back}
152
+ >
153
+ <View style={styles.plateRow}>
154
+ <View style={[styles.plate, { borderColor: theme.colors.border }]} testID="totp-qr">
155
+ <QRCode value={enrollment.otpauthUri} size={QR_SIZE} backgroundColor={QR_PLATE_BG} color={QR_FOREGROUND} />
156
+ </View>
157
+ </View>
158
+ <View style={styles.secret}>
159
+ <Text style={[styles.secretLabel, { color: theme.colors.textSecondary }]}>{t('signInSecurity.totp.secretLabel')}</Text>
160
+ <Text selectable style={[styles.secretValue, { color: theme.colors.text }]} testID="totp-secret">
161
+ {enrollment.secret.replace(/(.{4})/g, '$1 ').trim()}
162
+ </Text>
163
+ </View>
164
+ <AccountFlowField
165
+ label={t('signInSecurity.totp.codeLabel')}
166
+ value={code}
167
+ onChange={(value) => setCode(value.replace(/\D/g, '').slice(0, TOTP_DIGITS))}
168
+ onSubmit={() => undefined}
169
+ error={null}
170
+ placeholder="000000"
171
+ autoComplete="one-time-code"
172
+ keyboardType="number-pad"
173
+ maxLength={TOTP_DIGITS}
174
+ testID="totp-enroll-code"
175
+ />
176
+ </ReauthStep>
177
+ );
178
+ }
179
+ case 'regenerate':
180
+ return (
181
+ <ReauthStep
182
+ title={t('signInSecurity.totp.regenerate')}
183
+ description={t('signInSecurity.totp.regenerateDescription')}
184
+ action="totp"
185
+ allowPassword={hasPassword}
186
+ totpEnabled
187
+ submitLabel={t('signInSecurity.totp.regenerate')}
188
+ onSubmit={async (reauth) => {
189
+ const codes = await oxyServices.auth.totp.regenerateBackupCodes(reauth);
190
+ refresh();
191
+ setStep({ name: 'codes', codes });
192
+ }}
193
+ secondary={back}
194
+ />
195
+ );
196
+ case 'disable':
197
+ return (
198
+ <ReauthStep
199
+ title={t('signInSecurity.totp.disable')}
200
+ description={t('signInSecurity.totp.description')}
201
+ action="totp"
202
+ allowPassword={hasPassword}
203
+ totpEnabled
204
+ submitLabel={t('signInSecurity.totp.disable')}
205
+ destructive
206
+ onSubmit={async (reauth) => {
207
+ await oxyServices.auth.totp.disable(reauth);
208
+ refresh();
209
+ toast.success(t('signInSecurity.totp.disabled'));
210
+ setStep({ name: 'status' });
211
+ onDone?.();
212
+ }}
213
+ secondary={back}
214
+ />
215
+ );
216
+ default:
217
+ return (
218
+ <OxyAuthScreen>
219
+ <OxyAuthScreenHeader
220
+ title={t('signInSecurity.totp.title')}
221
+ description={totpEnabled ? t('signInSecurity.totp.enabled') : t('signInSecurity.totp.description')}
222
+ />
223
+ {totpEnabled ? (
224
+ <>
225
+ <AccountFlowNote testID="totp-remaining">
226
+ {t('signInSecurity.totp.remaining', { count: backupCodesRemaining })}
227
+ </AccountFlowNote>
228
+ <AccountFlowAction
229
+ label={t('signInSecurity.totp.regenerate')}
230
+ onPress={() => setStep({ name: 'regenerate' })}
231
+ pending={false}
232
+ testID="totp-regenerate"
233
+ />
234
+ <SubtleLink
235
+ label={t('signInSecurity.totp.disable')}
236
+ theme={theme}
237
+ onPress={() => setStep({ name: 'disable' })}
238
+ testID="totp-disable"
239
+ />
240
+ </>
241
+ ) : (
242
+ <>
243
+ {error ? <AccountFlowErrorLine message={error} /> : null}
244
+ <AccountFlowAction label={t('signInSecurity.totp.setUp')} onPress={setUp} pending={pending} testID="totp-set-up" />
245
+ </>
246
+ )}
247
+ </OxyAuthScreen>
248
+ );
249
+ }
250
+ };
251
+
252
+ const styles = StyleSheet.create({
253
+ plateRow: {
254
+ alignItems: 'center',
255
+ },
256
+ plate: {
257
+ padding: 12,
258
+ borderRadius: 16,
259
+ borderWidth: StyleSheet.hairlineWidth,
260
+ backgroundColor: QR_PLATE_BG,
261
+ },
262
+ secret: {
263
+ gap: 4,
264
+ alignItems: 'center',
265
+ },
266
+ secretLabel: {
267
+ fontSize: 14,
268
+ lineHeight: 20,
269
+ },
270
+ secretValue: {
271
+ fontSize: 16,
272
+ lineHeight: 24,
273
+ fontWeight: '600',
274
+ letterSpacing: 1,
275
+ textAlign: 'center',
276
+ },
277
+ codes: {
278
+ flexDirection: 'row',
279
+ flexWrap: 'wrap',
280
+ gap: 8,
281
+ padding: 16,
282
+ borderRadius: 16,
283
+ borderWidth: StyleSheet.hairlineWidth,
284
+ justifyContent: 'center',
285
+ },
286
+ code: {
287
+ width: '45%',
288
+ fontSize: 16,
289
+ lineHeight: 24,
290
+ fontWeight: '600',
291
+ letterSpacing: 1,
292
+ textAlign: 'center',
293
+ },
294
+ });
@@ -1,106 +1,93 @@
1
1
  /**
2
- * Deleting a passkey account (ADR 0029 D3), auth.oxy.so's `/delete-account`.
2
+ * Deleting an account that has no key of its own, from the account's settings
3
+ * (the account dialog's "Manage your account", or the Accounts app):
3
4
  *
4
- * A passkey account has no key to sign its deletion with, so the person types
5
- * the username and asserts one of the account's passkeys — on auth.oxy.so, the
6
- * one origin that asserts them — over a challenge the API minted for the
7
- * account. An account with a Commons key is deleted in Commons, with its key.
8
- * The page must be signed in as the account; the host renders sign-in first.
5
+ * type the username → a code sent to the account's email (+ the
6
+ * authenticator's code when it has one) → deleted, and signed out
7
+ *
8
+ * An account with a Commons key is deleted with that key — in Commons, or in
9
+ * an app that holds it (`ManageAccountScreen`); this panel says so instead.
10
+ * It must be rendered signed in as the account.
9
11
  */
10
12
 
11
13
  import type React from 'react';
12
14
  import { useState } from 'react';
13
15
  import { useOxy } from '../../context/OxyContext';
16
+ import { useSignInMethods } from '../../hooks/queries/useAuthMethods';
14
17
  import { useI18n } from '../../hooks/useI18n';
15
- import { isPasskeySupported, runAuthenticationCeremony } from '../../../webauthn/passkeyClient';
16
- import { PASSKEY_UNSUPPORTED_MESSAGE } from '../../context/passkeyFlow';
17
- import { OxyAuthScreen, OxyAuthScreenHeader } from './OxyAuthScreen';
18
- import {
19
- AccountFlowAction,
20
- AccountFlowErrorLine,
21
- AccountFlowField,
22
- AccountFlowNote,
23
- describeAccountFlowError,
24
- } from './accountFlowParts';
18
+ import { OxyAuthLoading, OxyAuthScreen, OxyAuthScreenHeader } from './OxyAuthScreen';
19
+ import { ReauthStep } from './ReauthStep';
20
+ import { AccountFlowField, AccountFlowNote } from './accountFlowParts';
25
21
 
26
22
  export interface OxyDeleteAccountPanelProps {
27
23
  /** The account is gone and this origin signed out of it. */
28
24
  onDeleted?: () => void;
25
+ /** "Cancel". */
26
+ onCancel?: () => void;
29
27
  }
30
28
 
31
- export const OxyDeleteAccountPanel: React.FC<OxyDeleteAccountPanelProps> = ({ onDeleted }) => {
29
+ export const OxyDeleteAccountPanel: React.FC<OxyDeleteAccountPanelProps> = ({ onDeleted, onCancel }) => {
32
30
  const { t } = useI18n();
33
31
  const { user, oxyServices, logout } = useOxy();
32
+ const keyed = Boolean(user?.publicKey);
33
+ const methods = useSignInMethods({ enabled: !keyed });
34
34
  const [confirmText, setConfirmText] = useState('');
35
- const [pending, setPending] = useState(false);
36
- const [error, setError] = useState<string | null>(null);
37
35
  const [deleted, setDeleted] = useState(false);
38
36
 
39
37
  if (deleted) {
40
38
  return (
41
39
  <OxyAuthScreen>
42
- <OxyAuthScreenHeader title={t('deleteAccount.passkey.done')} description={t('deleteAccount.passkey.closeWindow')} />
40
+ <OxyAuthScreenHeader title={t('deleteAccount.keyless.done')} description={t('deleteAccount.keyless.doneDescription')} />
43
41
  </OxyAuthScreen>
44
42
  );
45
43
  }
46
44
 
47
- const username = user?.username ?? '';
48
- if (user?.publicKey) {
45
+ if (keyed) {
49
46
  return (
50
47
  <OxyAuthScreen>
51
- <OxyAuthScreenHeader title={t('deleteAccount.handoff.commonsTitle')} description={t('deleteAccount.passkey.commons')} />
48
+ <OxyAuthScreenHeader title={t('deleteAccount.handoff.commonsTitle')} description={t('deleteAccount.keyless.keyed')} />
52
49
  </OxyAuthScreen>
53
50
  );
54
51
  }
55
52
 
56
- // The ceremony opens the browser's passkey prompt, so it starts from the press.
57
- const remove = () => {
58
- if (pending) return;
59
- if (confirmText.trim() !== username) {
60
- setError(t('deleteAccount.confirmLabel', { username }));
61
- return;
62
- }
63
- setError(null);
64
- setPending(true);
65
- (async () => {
66
- if (!isPasskeySupported()) throw new Error(PASSKEY_UNSUPPORTED_MESSAGE);
67
- const options = await oxyServices.getAccountDeletionOptions();
68
- const assertion = await runAuthenticationCeremony(options);
69
- await oxyServices.deleteAccountWithPasskey(confirmText.trim(), assertion);
70
- await logout().catch(() => undefined);
71
- setDeleted(true);
72
- onDeleted?.();
73
- })()
74
- .catch((reason: unknown) => setError(describeAccountFlowError(reason, t)))
75
- .finally(() => setPending(false));
76
- };
53
+ if (!methods.data) return <OxyAuthLoading />;
54
+
55
+ const username = user?.username ?? '';
77
56
 
78
57
  return (
79
- <OxyAuthScreen>
80
- <OxyAuthScreenHeader title={t('deleteAccount.title')} description={t('deleteAccount.passkey.subtitle', { username })} />
58
+ <ReauthStep
59
+ title={t('deleteAccount.title')}
60
+ description={t('deleteAccount.keyless.subtitle', { username })}
61
+ action="delete_account"
62
+ totpEnabled={methods.data.totpEnabled}
63
+ submitLabel={t('deleteAccount.keyless.action')}
64
+ destructive
65
+ validate={() => (confirmText.trim() === username ? null : t('deleteAccount.confirmLabel', { username }))}
66
+ onSubmit={async (proof) => {
67
+ if (!proof.emailCode) throw new Error(t('reauth.errors.invalid'));
68
+ await oxyServices.users.deleteMe(confirmText.trim(), {
69
+ reauth: {
70
+ emailCode: proof.emailCode,
71
+ ...(proof.totpCode ? { totpCode: proof.totpCode } : {}),
72
+ },
73
+ });
74
+ await logout().catch(() => undefined);
75
+ setDeleted(true);
76
+ onDeleted?.();
77
+ }}
78
+ secondary={onCancel ? { label: t('common.cancel'), onPress: onCancel } : undefined}
79
+ >
81
80
  <AccountFlowNote>{t('deleteAccount.warning')}</AccountFlowNote>
82
81
  <AccountFlowField
83
82
  label={t('deleteAccount.confirmLabel', { username })}
84
83
  value={confirmText}
85
- onChange={(value) => {
86
- setConfirmText(value);
87
- if (error) setError(null);
88
- }}
89
- onSubmit={remove}
84
+ onChange={setConfirmText}
85
+ onSubmit={() => undefined}
90
86
  error={null}
91
- disabled={pending}
92
87
  placeholder={username}
93
88
  autoComplete="off"
94
89
  testID="delete-account-confirm"
95
90
  />
96
- {error ? <AccountFlowErrorLine message={error} /> : null}
97
- <AccountFlowAction
98
- label={t('deleteAccount.passkey.action')}
99
- onPress={remove}
100
- pending={pending}
101
- disabled={confirmText.trim() !== username}
102
- testID="delete-account-passkey"
103
- />
104
- </OxyAuthScreen>
91
+ </ReauthStep>
105
92
  );
106
93
  };
@@ -1,14 +1,14 @@
1
1
  /**
2
- * Linking Commons to a passkey account (ADR 0029 D3), auth.oxy.so's
3
- * `/link-commons`:
2
+ * Linking Commons to an account that has no key of its own, from the account's
3
+ * settings (the account dialog's "Manage your account", or the Accounts app):
4
4
  *
5
5
  * QR → Commons scans and signs with its key → both screens show the same
6
- * code → the person confirms here with the passkey → linked
6
+ * code → the person confirms it's them with a code sent to the account's
7
+ * email (+ the authenticator's code) → linked
7
8
  *
8
9
  * Afterwards the account is self-custodied: its root is the key Commons holds,
9
- * its recovery email is deleted, and its phrase in Commons is how it gets back
10
- * in. The passkey keeps signing in on the web. The page must be signed in as
11
- * the account; the host renders sign-in first.
10
+ * its email, password and authenticator are deleted, and its phrase in Commons
11
+ * is how it gets back in. It must be rendered signed in as the account.
12
12
  */
13
13
 
14
14
  import type React from 'react';
@@ -18,14 +18,14 @@ import QRCode from 'react-native-qrcode-svg';
18
18
  import { Button } from '@oxy.so/bloom/button';
19
19
  import { useTheme } from '@oxy.so/bloom/theme';
20
20
  import { Text } from '@oxy.so/bloom/typography';
21
- import { deriveIdentityLinkCode } from '@oxy.so/core';
21
+ import { deriveIdentityLinkCode } from '@oxy.so/core/crypto';
22
22
  import type { IdentityLinkCreateResponse } from '@oxy.so/contracts';
23
23
  import { useOxy } from '../../context/OxyContext';
24
- import { PASSKEY_UNSUPPORTED_MESSAGE } from '../../context/passkeyFlow';
24
+ import { useSignInMethods } from '../../hooks/queries/useAuthMethods';
25
25
  import { useI18n } from '../../hooks/useI18n';
26
- import { isPasskeySupported, runAuthenticationCeremony } from '../../../webauthn/passkeyClient';
27
26
  import { OxyAuthScreen, OxyAuthScreenHeader } from './OxyAuthScreen';
28
- import { AccountFlowAction, AccountFlowErrorLine, AccountFlowNote, describeAccountFlowError } from './accountFlowParts';
27
+ import { ReauthStep } from './ReauthStep';
28
+ import { AccountFlowAction, AccountFlowErrorLine, AccountFlowNote, describeSignInError } from './accountFlowParts';
29
29
 
30
30
  /** How often the page asks whether Commons has signed. */
31
31
  export const IDENTITY_LINK_POLL_MS = 2000;
@@ -39,6 +39,7 @@ type Step =
39
39
  | { name: 'opening' }
40
40
  | { name: 'qr'; link: IdentityLinkCreateResponse }
41
41
  | { name: 'matching'; link: IdentityLinkCreateResponse; code: string }
42
+ | { name: 'confirm'; link: IdentityLinkCreateResponse }
42
43
  | { name: 'expired' }
43
44
  | { name: 'done' };
44
45
 
@@ -52,18 +53,18 @@ export const OxyLinkCommonsPanel: React.FC<OxyLinkCommonsPanelProps> = ({ onLink
52
53
  const { t } = useI18n();
53
54
  const { user, oxyServices } = useOxy();
54
55
  const [step, setStep] = useState<Step>({ name: 'opening' });
55
- const [pending, setPending] = useState(false);
56
56
  const [error, setError] = useState<string | null>(null);
57
57
  const alreadyLinked = Boolean(user?.publicKey);
58
+ const methods = useSignInMethods({ enabled: !alreadyLinked });
58
59
 
59
60
  const open = useCallback(() => {
60
61
  setError(null);
61
62
  setStep({ name: 'opening' });
62
63
  oxyServices
63
- .createIdentityLink()
64
+ .identity.links.create()
64
65
  .then((link) => setStep({ name: 'qr', link }))
65
66
  .catch((reason: unknown) => {
66
- setError(describeAccountFlowError(reason, t));
67
+ setError(describeSignInError(reason, t));
67
68
  setStep({ name: 'expired' });
68
69
  });
69
70
  }, [oxyServices, t]);
@@ -89,7 +90,7 @@ export const OxyLinkCommonsPanel: React.FC<OxyLinkCommonsPanelProps> = ({ onLink
89
90
  return;
90
91
  }
91
92
  try {
92
- const state = await oxyServices.getIdentityLink(link.linkId);
93
+ const state = await oxyServices.identity.links.get(link.linkId);
93
94
  if (stopped) return;
94
95
  if (state.status === 'signed' && state.publicKey) {
95
96
  setStep({ name: 'matching', link, code: deriveIdentityLinkCode(link.linkId, state.publicKey) });
@@ -111,25 +112,8 @@ export const OxyLinkCommonsPanel: React.FC<OxyLinkCommonsPanelProps> = ({ onLink
111
112
  };
112
113
  }, [link, oxyServices]);
113
114
 
114
- // The ceremony opens the browser's passkey prompt, so it starts from the press.
115
- const confirm = (confirmed: IdentityLinkCreateResponse) => {
116
- if (pending) return;
117
- setError(null);
118
- setPending(true);
119
- (async () => {
120
- if (!isPasskeySupported()) throw new Error(PASSKEY_UNSUPPORTED_MESSAGE);
121
- const options = await oxyServices.getIdentityLinkAssertionOptions(confirmed.linkId, confirmed.challenge);
122
- const assertion = await runAuthenticationCeremony(options);
123
- await oxyServices.completeIdentityLink(confirmed.linkId, assertion);
124
- setStep({ name: 'done' });
125
- onLinked?.();
126
- })()
127
- .catch((reason: unknown) => setError(describeAccountFlowError(reason, t)))
128
- .finally(() => setPending(false));
129
- };
130
-
131
115
  const cancel = (cancelled: IdentityLinkCreateResponse) => {
132
- void oxyServices.cancelIdentityLink(cancelled.linkId).catch(() => undefined);
116
+ void oxyServices.identity.links.cancel(cancelled.linkId).catch(() => undefined);
133
117
  setStep({ name: 'expired' });
134
118
  };
135
119
 
@@ -142,6 +126,26 @@ export const OxyLinkCommonsPanel: React.FC<OxyLinkCommonsPanelProps> = ({ onLink
142
126
  }
143
127
 
144
128
  switch (step.name) {
129
+ case 'confirm':
130
+ return (
131
+ <ReauthStep
132
+ title={t('linkCommons.confirmTitle')}
133
+ description={t('linkCommons.confirmDescription')}
134
+ action="link_commons"
135
+ totpEnabled={methods.data?.totpEnabled ?? false}
136
+ submitLabel={t('linkCommons.confirm')}
137
+ onSubmit={async (proof) => {
138
+ if (!proof.emailCode) throw new Error(t('reauth.errors.invalid'));
139
+ await oxyServices.identity.links.complete(step.link.linkId, {
140
+ emailCode: proof.emailCode,
141
+ ...(proof.totpCode ? { totpCode: proof.totpCode } : {}),
142
+ });
143
+ setStep({ name: 'done' });
144
+ onLinked?.();
145
+ }}
146
+ secondary={{ label: t('linkCommons.cancel'), onPress: () => cancel(step.link) }}
147
+ />
148
+ );
145
149
  case 'done':
146
150
  return (
147
151
  <OxyAuthScreen>
@@ -167,9 +171,13 @@ export const OxyLinkCommonsPanel: React.FC<OxyLinkCommonsPanelProps> = ({ onLink
167
171
  >
168
172
  {`${step.code.slice(0, 3)} ${step.code.slice(3)}`}
169
173
  </Text>
170
- {error ? <AccountFlowErrorLine message={error} /> : null}
171
- <AccountFlowAction label={t('linkCommons.confirm')} onPress={() => confirm(step.link)} pending={pending} testID="link-commons-confirm" />
172
- <Button appearance="plain" tone="neutral" size="lg" fullWidth disabled={pending} onPress={() => cancel(step.link)} testID="link-commons-cancel">
174
+ <AccountFlowAction
175
+ label={t('linkCommons.confirm')}
176
+ onPress={() => setStep({ name: 'confirm', link: step.link })}
177
+ pending={false}
178
+ testID="link-commons-confirm"
179
+ />
180
+ <Button appearance="plain" tone="neutral" size="lg" fullWidth onPress={() => cancel(step.link)} testID="link-commons-cancel">
173
181
  {t('linkCommons.cancel')}
174
182
  </Button>
175
183
  </OxyAuthScreen>