@oxyhq/services 22.12.4 → 22.13.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 (446) hide show
  1. package/README.md +16 -46
  2. package/lib/commonjs/index.js +18 -12
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/ui/boot/runProviderColdBoot.js +51 -9
  5. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  6. package/lib/commonjs/ui/client.js +0 -13
  7. package/lib/commonjs/ui/client.js.map +1 -1
  8. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +27 -4
  9. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  10. package/lib/commonjs/ui/components/OxyAuthChooser.js +72 -1123
  11. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyConsentScreen.js +50 -12
  13. package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyProvider.js +4 -4
  15. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxySignInButton.js +74 -40
  17. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  18. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +527 -0
  19. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -0
  20. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +90 -0
  21. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -0
  22. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +144 -0
  23. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -0
  24. package/lib/commonjs/ui/components/authChooser/SignUpView.js +188 -0
  25. package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +1 -0
  26. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +63 -0
  27. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js.map +1 -0
  28. package/lib/commonjs/ui/components/authChooser/primitives.js +169 -0
  29. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -0
  30. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +149 -0
  31. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -0
  32. package/lib/commonjs/ui/components/authChooser/signInProgress.js +54 -0
  33. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -0
  34. package/lib/commonjs/ui/components/{oxyAuthChooserStyles.js → authChooser/styles.js} +19 -1
  35. package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -0
  36. package/lib/commonjs/ui/components/authChooser/types.js +59 -0
  37. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -0
  38. package/lib/commonjs/ui/components/authChooser/useUsernameAvailability.js +50 -0
  39. package/lib/commonjs/ui/components/authChooser/useUsernameAvailability.js.map +1 -0
  40. package/lib/commonjs/ui/context/OxyContext.js +205 -30
  41. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  42. package/lib/commonjs/ui/context/commitSessionFlow.js +46 -0
  43. package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
  44. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +15 -2
  45. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  46. package/lib/commonjs/ui/context/useOxyAccountGraph.js +13 -5
  47. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  48. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +6 -1
  49. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -1
  50. package/lib/commonjs/ui/index.js +0 -13
  51. package/lib/commonjs/ui/index.js.map +1 -1
  52. package/lib/commonjs/ui/oauth/browserAuthTransport.js +170 -0
  53. package/lib/commonjs/ui/oauth/browserAuthTransport.js.map +1 -0
  54. package/lib/commonjs/ui/oauth/completeOAuthCode.js +78 -0
  55. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -0
  56. package/lib/commonjs/ui/oauth/legacyRedirectLanes.js +48 -0
  57. package/lib/commonjs/ui/oauth/legacyRedirectLanes.js.map +1 -0
  58. package/lib/commonjs/ui/oauth/oauthHandshake.js +53 -0
  59. package/lib/commonjs/ui/oauth/oauthHandshake.js.map +1 -0
  60. package/lib/commonjs/ui/oauth/oauthPopup.js +276 -0
  61. package/lib/commonjs/ui/oauth/oauthPopup.js.map +1 -0
  62. package/lib/commonjs/ui/oauth/oauthPopupMessages.js +141 -0
  63. package/lib/commonjs/ui/oauth/oauthPopupMessages.js.map +1 -0
  64. package/lib/commonjs/ui/oauth/types.js +2 -0
  65. package/lib/commonjs/ui/oauth/types.js.map +1 -0
  66. package/lib/commonjs/ui/server.js +2 -5
  67. package/lib/commonjs/ui/server.js.map +1 -1
  68. package/lib/commonjs/ui/session/authStore.js +6 -75
  69. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  70. package/lib/commonjs/ui/session/createSessionClient.js +11 -3
  71. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  72. package/lib/commonjs/ui/session/identityBinding.js +95 -0
  73. package/lib/commonjs/ui/session/identityBinding.js.map +1 -0
  74. package/lib/commonjs/ui/session/index.js +13 -0
  75. package/lib/commonjs/ui/session/index.js.map +1 -1
  76. package/lib/commonjs/ui/session/nativeSecureStorage.js +90 -0
  77. package/lib/commonjs/ui/session/nativeSecureStorage.js.map +1 -0
  78. package/lib/commonjs/ui/session/tokenTransport.js +11 -1
  79. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
  80. package/lib/commonjs/ui/utils/crossOriginRestore.js +5 -4
  81. package/lib/commonjs/ui/utils/crossOriginRestore.js.map +1 -1
  82. package/lib/commonjs/ui/utils/deliveryPlatform.js +58 -0
  83. package/lib/commonjs/ui/utils/deliveryPlatform.js.map +1 -0
  84. package/lib/commonjs/ui/utils/oauthReturn.js +72 -46
  85. package/lib/commonjs/ui/utils/oauthReturn.js.map +1 -1
  86. package/lib/module/index.js +9 -4
  87. package/lib/module/index.js.map +1 -1
  88. package/lib/module/ui/boot/runProviderColdBoot.js +51 -9
  89. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  90. package/lib/module/ui/client.js +0 -1
  91. package/lib/module/ui/client.js.map +1 -1
  92. package/lib/module/ui/components/OxyAccountDialogScreen.js +27 -4
  93. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  94. package/lib/module/ui/components/OxyAuthChooser.js +76 -1128
  95. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  96. package/lib/module/ui/components/OxyConsentScreen.js +50 -12
  97. package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
  98. package/lib/module/ui/components/OxyProvider.js +4 -4
  99. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  100. package/lib/module/ui/components/OxySignInButton.js +76 -42
  101. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  102. package/lib/module/ui/components/authChooser/AccountsMenuView.js +523 -0
  103. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -0
  104. package/lib/module/ui/components/authChooser/SignInEntryView.js +85 -0
  105. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -0
  106. package/lib/module/ui/components/authChooser/SignInRequestView.js +139 -0
  107. package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -0
  108. package/lib/module/ui/components/authChooser/SignUpView.js +184 -0
  109. package/lib/module/ui/components/authChooser/SignUpView.js.map +1 -0
  110. package/lib/module/ui/components/authChooser/TroubleDisclosure.js +59 -0
  111. package/lib/module/ui/components/authChooser/TroubleDisclosure.js.map +1 -0
  112. package/lib/module/ui/components/authChooser/primitives.js +163 -0
  113. package/lib/module/ui/components/authChooser/primitives.js.map +1 -0
  114. package/lib/module/ui/components/authChooser/requestSurfaces.js +139 -0
  115. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -0
  116. package/lib/module/ui/components/authChooser/signInProgress.js +50 -0
  117. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -0
  118. package/lib/module/ui/components/{oxyAuthChooserStyles.js → authChooser/styles.js} +19 -1
  119. package/lib/module/ui/components/authChooser/styles.js.map +1 -0
  120. package/lib/module/ui/components/authChooser/types.js +55 -0
  121. package/lib/module/ui/components/authChooser/types.js.map +1 -0
  122. package/lib/module/ui/components/authChooser/useUsernameAvailability.js +46 -0
  123. package/lib/module/ui/components/authChooser/useUsernameAvailability.js.map +1 -0
  124. package/lib/module/ui/context/OxyContext.js +208 -33
  125. package/lib/module/ui/context/OxyContext.js.map +1 -1
  126. package/lib/module/ui/context/commitSessionFlow.js +45 -0
  127. package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
  128. package/lib/module/ui/context/hooks/useAuthOperations.js +15 -2
  129. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  130. package/lib/module/ui/context/useOxyAccountGraph.js +13 -5
  131. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  132. package/lib/module/ui/hooks/useSwitchableAccounts.js +6 -1
  133. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -1
  134. package/lib/module/ui/index.js +0 -1
  135. package/lib/module/ui/index.js.map +1 -1
  136. package/lib/module/ui/oauth/browserAuthTransport.js +167 -0
  137. package/lib/module/ui/oauth/browserAuthTransport.js.map +1 -0
  138. package/lib/module/ui/oauth/completeOAuthCode.js +75 -0
  139. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -0
  140. package/lib/module/ui/oauth/legacyRedirectLanes.js +44 -0
  141. package/lib/module/ui/oauth/legacyRedirectLanes.js.map +1 -0
  142. package/lib/module/ui/oauth/oauthHandshake.js +50 -0
  143. package/lib/module/ui/oauth/oauthHandshake.js.map +1 -0
  144. package/lib/module/ui/oauth/oauthPopup.js +268 -0
  145. package/lib/module/ui/oauth/oauthPopup.js.map +1 -0
  146. package/lib/module/ui/oauth/oauthPopupMessages.js +135 -0
  147. package/lib/module/ui/oauth/oauthPopupMessages.js.map +1 -0
  148. package/lib/module/ui/oauth/types.js +2 -0
  149. package/lib/module/ui/oauth/types.js.map +1 -0
  150. package/lib/module/ui/server.js +0 -2
  151. package/lib/module/ui/server.js.map +1 -1
  152. package/lib/module/ui/session/authStore.js +5 -75
  153. package/lib/module/ui/session/authStore.js.map +1 -1
  154. package/lib/module/ui/session/createSessionClient.js +11 -3
  155. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  156. package/lib/module/ui/session/identityBinding.js +89 -0
  157. package/lib/module/ui/session/identityBinding.js.map +1 -0
  158. package/lib/module/ui/session/index.js +5 -2
  159. package/lib/module/ui/session/index.js.map +1 -1
  160. package/lib/module/ui/session/nativeSecureStorage.js +88 -0
  161. package/lib/module/ui/session/nativeSecureStorage.js.map +1 -0
  162. package/lib/module/ui/session/tokenTransport.js +11 -1
  163. package/lib/module/ui/session/tokenTransport.js.map +1 -1
  164. package/lib/module/ui/utils/crossOriginRestore.js +6 -5
  165. package/lib/module/ui/utils/crossOriginRestore.js.map +1 -1
  166. package/lib/module/ui/utils/deliveryPlatform.js +55 -0
  167. package/lib/module/ui/utils/deliveryPlatform.js.map +1 -0
  168. package/lib/module/ui/utils/oauthReturn.js +73 -47
  169. package/lib/module/ui/utils/oauthReturn.js.map +1 -1
  170. package/lib/typescript/commonjs/index.d.ts +4 -1
  171. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +34 -2
  173. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/ui/client.d.ts +0 -1
  175. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  176. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +21 -29
  178. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +17 -12
  182. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +38 -0
  184. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +32 -0
  186. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts +34 -0
  188. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts +34 -0
  190. package/lib/typescript/commonjs/ui/components/authChooser/SignUpView.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts +43 -0
  192. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +55 -0
  194. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +54 -0
  196. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts +26 -0
  198. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -0
  199. package/lib/typescript/{module/ui/components/oxyAuthChooserStyles.d.ts → commonjs/ui/components/authChooser/styles.d.ts} +19 -1
  200. package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +85 -0
  202. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/ui/components/authChooser/useUsernameAvailability.d.ts +16 -0
  204. package/lib/typescript/commonjs/ui/components/authChooser/useUsernameAvailability.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +40 -0
  207. package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +11 -2
  209. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  210. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +44 -1
  211. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +7 -1
  213. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/ui/index.d.ts +0 -1
  216. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts +56 -0
  218. package/lib/typescript/commonjs/ui/oauth/browserAuthTransport.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts +49 -0
  220. package/lib/typescript/commonjs/ui/oauth/completeOAuthCode.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts +40 -0
  222. package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts +50 -0
  224. package/lib/typescript/commonjs/ui/oauth/oauthHandshake.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts +83 -0
  226. package/lib/typescript/commonjs/ui/oauth/oauthPopup.d.ts.map +1 -0
  227. package/lib/typescript/commonjs/ui/oauth/oauthPopupMessages.d.ts +67 -0
  228. package/lib/typescript/commonjs/ui/oauth/oauthPopupMessages.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/ui/oauth/types.d.ts +176 -0
  230. package/lib/typescript/commonjs/ui/oauth/types.d.ts.map +1 -0
  231. package/lib/typescript/commonjs/ui/server.d.ts +0 -2
  232. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/ui/session/authStore.d.ts +3 -7
  234. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +8 -1
  236. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts +66 -0
  238. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts.map +1 -0
  239. package/lib/typescript/commonjs/ui/session/index.d.ts +6 -2
  240. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts +25 -0
  242. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +8 -1
  244. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/ui/types/navigation.d.ts +44 -0
  246. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/utils/deliveryPlatform.d.ts +33 -0
  249. package/lib/typescript/commonjs/ui/utils/deliveryPlatform.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts +30 -16
  251. package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts.map +1 -1
  252. package/lib/typescript/module/index.d.ts +4 -1
  253. package/lib/typescript/module/index.d.ts.map +1 -1
  254. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +34 -2
  255. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  256. package/lib/typescript/module/ui/client.d.ts +0 -1
  257. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  258. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  259. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +21 -29
  260. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  261. package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts.map +1 -1
  262. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  263. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +17 -12
  264. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  265. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +38 -0
  266. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -0
  267. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +32 -0
  268. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -0
  269. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts +34 -0
  270. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -0
  271. package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts +34 -0
  272. package/lib/typescript/module/ui/components/authChooser/SignUpView.d.ts.map +1 -0
  273. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts +43 -0
  274. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts.map +1 -0
  275. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +55 -0
  276. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -0
  277. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +54 -0
  278. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -0
  279. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts +26 -0
  280. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -0
  281. package/lib/typescript/{commonjs/ui/components/oxyAuthChooserStyles.d.ts → module/ui/components/authChooser/styles.d.ts} +19 -1
  282. package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -0
  283. package/lib/typescript/module/ui/components/authChooser/types.d.ts +85 -0
  284. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -0
  285. package/lib/typescript/module/ui/components/authChooser/useUsernameAvailability.d.ts +16 -0
  286. package/lib/typescript/module/ui/components/authChooser/useUsernameAvailability.d.ts.map +1 -0
  287. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  288. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +40 -0
  289. package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
  290. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +11 -2
  291. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  292. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +44 -1
  293. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  294. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +7 -1
  295. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  296. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
  297. package/lib/typescript/module/ui/index.d.ts +0 -1
  298. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  299. package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts +56 -0
  300. package/lib/typescript/module/ui/oauth/browserAuthTransport.d.ts.map +1 -0
  301. package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts +49 -0
  302. package/lib/typescript/module/ui/oauth/completeOAuthCode.d.ts.map +1 -0
  303. package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts +40 -0
  304. package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts.map +1 -0
  305. package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts +50 -0
  306. package/lib/typescript/module/ui/oauth/oauthHandshake.d.ts.map +1 -0
  307. package/lib/typescript/module/ui/oauth/oauthPopup.d.ts +83 -0
  308. package/lib/typescript/module/ui/oauth/oauthPopup.d.ts.map +1 -0
  309. package/lib/typescript/module/ui/oauth/oauthPopupMessages.d.ts +67 -0
  310. package/lib/typescript/module/ui/oauth/oauthPopupMessages.d.ts.map +1 -0
  311. package/lib/typescript/module/ui/oauth/types.d.ts +176 -0
  312. package/lib/typescript/module/ui/oauth/types.d.ts.map +1 -0
  313. package/lib/typescript/module/ui/server.d.ts +0 -2
  314. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  315. package/lib/typescript/module/ui/session/authStore.d.ts +3 -7
  316. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  317. package/lib/typescript/module/ui/session/createSessionClient.d.ts +8 -1
  318. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  319. package/lib/typescript/module/ui/session/identityBinding.d.ts +66 -0
  320. package/lib/typescript/module/ui/session/identityBinding.d.ts.map +1 -0
  321. package/lib/typescript/module/ui/session/index.d.ts +6 -2
  322. package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts +25 -0
  324. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts.map +1 -0
  325. package/lib/typescript/module/ui/session/tokenTransport.d.ts +8 -1
  326. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/types/navigation.d.ts +44 -0
  328. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts.map +1 -1
  330. package/lib/typescript/module/ui/utils/deliveryPlatform.d.ts +33 -0
  331. package/lib/typescript/module/ui/utils/deliveryPlatform.d.ts.map +1 -0
  332. package/lib/typescript/module/ui/utils/oauthReturn.d.ts +30 -16
  333. package/lib/typescript/module/ui/utils/oauthReturn.d.ts.map +1 -1
  334. package/package.json +6 -8
  335. package/src/index.ts +19 -5
  336. package/src/ui/boot/__tests__/coldBootWebAuthMode.test.ts +281 -0
  337. package/src/ui/boot/runProviderColdBoot.ts +83 -13
  338. package/src/ui/client.ts +0 -1
  339. package/src/ui/components/OxyAccountDialogScreen.tsx +33 -4
  340. package/src/ui/components/OxyAuthChooser.tsx +100 -1230
  341. package/src/ui/components/OxyConsentScreen.tsx +56 -13
  342. package/src/ui/components/OxyProvider.tsx +4 -4
  343. package/src/ui/components/OxySignInButton.tsx +119 -78
  344. package/src/ui/components/__tests__/OxyConsentScreen.test.tsx +27 -0
  345. package/src/ui/components/authChooser/AccountsMenuView.tsx +569 -0
  346. package/src/ui/components/authChooser/SignInEntryView.tsx +115 -0
  347. package/src/ui/components/authChooser/SignInRequestView.tsx +163 -0
  348. package/src/ui/components/authChooser/SignUpView.tsx +174 -0
  349. package/src/ui/components/authChooser/TroubleDisclosure.tsx +81 -0
  350. package/src/ui/components/authChooser/primitives.tsx +144 -0
  351. package/src/ui/components/authChooser/requestSurfaces.tsx +116 -0
  352. package/src/ui/components/authChooser/signInProgress.ts +54 -0
  353. package/src/ui/components/{oxyAuthChooserStyles.ts → authChooser/styles.ts} +18 -0
  354. package/src/ui/components/authChooser/types.ts +101 -0
  355. package/src/ui/components/authChooser/useUsernameAvailability.ts +60 -0
  356. package/src/ui/context/OxyContext.tsx +226 -24
  357. package/src/ui/context/__tests__/commitSessionFlow.test.ts +102 -0
  358. package/src/ui/context/commitSessionFlow.ts +64 -0
  359. package/src/ui/context/hooks/useAuthOperations.ts +26 -1
  360. package/src/ui/context/oxyContextTypes.ts +45 -1
  361. package/src/ui/context/useOxyAccountGraph.ts +19 -5
  362. package/src/ui/hooks/useSwitchableAccounts.ts +12 -1
  363. package/src/ui/index.ts +0 -1
  364. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +335 -0
  365. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +142 -0
  366. package/src/ui/oauth/__tests__/oauthPopup.test.ts +352 -0
  367. package/src/ui/oauth/__tests__/oauthPopupMessages.test.ts +189 -0
  368. package/src/ui/oauth/__tests__/sharedCompletionPath.test.ts +174 -0
  369. package/src/ui/oauth/browserAuthTransport.ts +193 -0
  370. package/src/ui/oauth/completeOAuthCode.ts +93 -0
  371. package/src/ui/oauth/legacyRedirectLanes.ts +43 -0
  372. package/src/ui/oauth/oauthHandshake.ts +74 -0
  373. package/src/ui/oauth/oauthPopup.ts +277 -0
  374. package/src/ui/oauth/oauthPopupMessages.ts +136 -0
  375. package/src/ui/oauth/types.ts +150 -0
  376. package/src/ui/server.ts +0 -2
  377. package/src/ui/session/__tests__/createSessionClient.test.ts +26 -0
  378. package/src/ui/session/__tests__/tokenTransport.test.ts +34 -0
  379. package/src/ui/session/authStore.ts +5 -89
  380. package/src/ui/session/createSessionClient.ts +15 -2
  381. package/src/ui/session/identityBinding.ts +116 -0
  382. package/src/ui/session/index.ts +6 -2
  383. package/src/ui/session/nativeSecureStorage.ts +98 -0
  384. package/src/ui/session/tokenTransport.ts +14 -1
  385. package/src/ui/types/navigation.ts +44 -1
  386. package/src/ui/utils/__tests__/crossOriginRestore.test.ts +17 -0
  387. package/src/ui/utils/crossOriginRestore.ts +9 -13
  388. package/src/ui/utils/deliveryPlatform.ts +65 -0
  389. package/src/ui/utils/oauthReturn.ts +79 -65
  390. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  391. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  392. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  393. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  394. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  395. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  396. package/lib/commonjs/assets/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  397. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  398. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  399. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  400. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  401. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  402. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  403. package/lib/commonjs/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  404. package/lib/commonjs/ui/components/FontLoader.js +0 -35
  405. package/lib/commonjs/ui/components/FontLoader.js.map +0 -1
  406. package/lib/commonjs/ui/components/FontLoader.native.js +0 -88
  407. package/lib/commonjs/ui/components/FontLoader.native.js.map +0 -1
  408. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +0 -1
  409. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  410. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  411. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  412. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  413. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  414. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  415. package/lib/module/assets/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  416. package/lib/module/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  417. package/lib/module/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  418. package/lib/module/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  419. package/lib/module/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  420. package/lib/module/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  421. package/lib/module/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  422. package/lib/module/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  423. package/lib/module/ui/components/FontLoader.js +0 -29
  424. package/lib/module/ui/components/FontLoader.js.map +0 -1
  425. package/lib/module/ui/components/FontLoader.native.js +0 -83
  426. package/lib/module/ui/components/FontLoader.native.js.map +0 -1
  427. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +0 -1
  428. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts +0 -24
  429. package/lib/typescript/commonjs/ui/components/FontLoader.d.ts.map +0 -1
  430. package/lib/typescript/commonjs/ui/components/FontLoader.native.d.ts +0 -13
  431. package/lib/typescript/commonjs/ui/components/FontLoader.native.d.ts.map +0 -1
  432. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +0 -1
  433. package/lib/typescript/module/ui/components/FontLoader.d.ts +0 -24
  434. package/lib/typescript/module/ui/components/FontLoader.d.ts.map +0 -1
  435. package/lib/typescript/module/ui/components/FontLoader.native.d.ts +0 -13
  436. package/lib/typescript/module/ui/components/FontLoader.native.d.ts.map +0 -1
  437. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +0 -1
  438. package/src/assets/fonts/Inter/Inter_18pt-Black.ttf +0 -0
  439. package/src/assets/fonts/Inter/Inter_18pt-Bold.ttf +0 -0
  440. package/src/assets/fonts/Inter/Inter_18pt-ExtraBold.ttf +0 -0
  441. package/src/assets/fonts/Inter/Inter_18pt-Light.ttf +0 -0
  442. package/src/assets/fonts/Inter/Inter_18pt-Medium.ttf +0 -0
  443. package/src/assets/fonts/Inter/Inter_18pt-Regular.ttf +0 -0
  444. package/src/assets/fonts/Inter/Inter_18pt-SemiBold.ttf +0 -0
  445. package/src/ui/components/FontLoader.native.tsx +0 -88
  446. package/src/ui/components/FontLoader.tsx +0 -27
@@ -0,0 +1,527 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
+ var _vectorIcons = require("@expo/vector-icons");
11
+ var _avatar = require("@oxyhq/bloom/avatar");
12
+ var _avatarGroup = require("@oxyhq/bloom/avatar-group");
13
+ var _button = require("@oxyhq/bloom/button");
14
+ var _pressableScale = require("@oxyhq/bloom/pressable-scale");
15
+ var _compositionBar = require("@oxyhq/bloom/composition-bar");
16
+ var _settingsList = require("@oxyhq/bloom/settings-list");
17
+ var _typography = require("@oxyhq/bloom/typography");
18
+ var _core = require("@oxyhq/core");
19
+ var _AvatarCameraBadge = _interopRequireDefault(require("../AvatarCameraBadge.js"));
20
+ var _primitives = require("./primitives.js");
21
+ var _styles = require("./styles.js");
22
+ var _types = require("./types.js");
23
+ var _jsxRuntime = require("react/jsx-runtime");
24
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
26
+ /**
27
+ * The signed-in Oxy account MENU (`accounts` view) — a Google-account-menu-style
28
+ * full menu built entirely with NativeWind `className` (the dynamic per-account
29
+ * accent hex is the one inline style NativeWind cannot express). Structure:
30
+ *
31
+ * - HERO on its own chrome-free block: the current account's large pressable
32
+ * avatar (with a camera badge to change the photo), the greeting, the account
33
+ * address, and a "Manage your Oxy account" pill.
34
+ * - SWITCH ACCOUNT: a disclosure row whose corner animates from pill to card as
35
+ * the other switchable accounts + "Add another account" + "Manage accounts on
36
+ * this device" reveal beneath it.
37
+ * - OXY STORAGE: cloud + used/total + a composition meter + Upgrade / Manage chips.
38
+ * - MENU rows: Your data in Oxy · Oxy settings · Help & feedback · Sign out —
39
+ * Bloom's grouped section, the same component every other SDK settings surface
40
+ * uses, not a local row copy.
41
+ * - FOOTER: Privacy Policy · Terms of Service.
42
+ *
43
+ * All three blocks share ONE rhythm taken from that grouped section: a 12px
44
+ * content inset, a 12px gap after the leading element, 16px between blocks, and
45
+ * a 16px trailing chevron column.
46
+ *
47
+ * Collapse state is a plain `useState` toggled in the row's press handler — no
48
+ * effect hook, no derived-from-props sync.
49
+ */
50
+
51
+ /**
52
+ * Leading glyph for the rows that live in a Bloom grouped section (the MENU
53
+ * block) and for the storage card's cloud, which lines its title up with them.
54
+ * It is Bloom's OWN icon-slot size: `SettingsListItem` reserves a fixed 20px
55
+ * leading column and Bloom is consumed exactly as it ships, so a menu glyph
56
+ * larger than this would overhang into the row's title.
57
+ */const ROW_ICON_SIZE = 20;
58
+ /**
59
+ * The switch card's two corner states. Collapsed it is one row and reads as a
60
+ * PILL; opened it is a card holding rows, on the same 16px corner the Bloom
61
+ * grouped section below it uses. Interpolated across the reveal, never snapped.
62
+ */
63
+ const SWITCH_CARD_PILL_RADIUS = 999;
64
+ const SWITCH_CARD_RADIUS = 16;
65
+ /**
66
+ * The fraction of the reveal over which the corner resolves. The corner is a
67
+ * FASTER gesture than the reveal — it has to be finished before the rows read as
68
+ * rows, or the card still looks like a pill while a list falls out of it — so it
69
+ * is clamped to the reveal's opening fraction instead of tracking it end to end.
70
+ * Measured in a browser against the 240ms reveal: the corner reaches its card
71
+ * value ~120ms in, with the list only ~20% revealed, and (mirrored) the pill is
72
+ * back ~250ms into the close, with the list already down to ~0.
73
+ */
74
+ const SWITCH_CARD_RADIUS_SETTLE = 0.2;
75
+ /** Duration of the switch-list reveal. */
76
+ const SWITCH_REVEAL_MS = 240;
77
+ /** Diameter of an account row's avatar in the switch list (own markup). */
78
+ const SWITCH_AVATAR_SIZE = 36;
79
+ /** Glyph inside a bordered affordance badge, sized to the avatar it stands in for. */
80
+ const BADGE_GLYPH_SIZE = 19;
81
+ /** The hero block's large current-account avatar. */
82
+ const HERO_AVATAR_SIZE = 72;
83
+ /** Avatars shown in the switch row's facepile before it collapses into `+N`. */
84
+ const FACEPILE_MAX = 2;
85
+ /** Facepile avatar diameter — one clear step down from a switch-list avatar. */
86
+ const FACEPILE_AVATAR_SIZE = 32;
87
+ /**
88
+ * Facepile overlap. Well under Bloom's `size / 3` default: the stack draws the
89
+ * FIRST item on top, so a deep overlap would bury the trailing `+N` chip's own
90
+ * label under the avatar before it.
91
+ */
92
+ const FACEPILE_OVERLAP = 4;
93
+
94
+ /**
95
+ * The hero's address line, shown under the "Hi, <name>!" greeting: the account's
96
+ * canonical `@oxy.so` email when it has one, else its normalized `@handle`. Never
97
+ * synthesizes a `username@oxy.so` address (the identity contract forbids it) — a
98
+ * non-Oxy or missing email falls back to `getNormalizedUserHandle`.
99
+ */
100
+ function heroAddressLine(account) {
101
+ if (account.email?.toLowerCase().endsWith('@oxy.so')) {
102
+ return account.email;
103
+ }
104
+ const handle = (0, _core.getNormalizedUserHandle)(account.user);
105
+ return handle ? `@${handle}` : null;
106
+ }
107
+
108
+ /**
109
+ * `bytes` → `"11.6 GB"`. Whole plan sizes read as whole numbers (`"17 GB"`, not
110
+ * `"17.0 GB"`), and anything ≥ 100 GB drops the decimal entirely.
111
+ */
112
+ function formatStorageGb(bytes) {
113
+ const gb = bytes / 1024 ** 3;
114
+ if (gb >= 100 || Number.isInteger(gb)) return `${Math.round(gb)} GB`;
115
+ return `${gb.toFixed(1)} GB`;
116
+ }
117
+ const AccountsMenuView = ({
118
+ snapshot,
119
+ theme,
120
+ t,
121
+ handlers,
122
+ storage,
123
+ menu
124
+ }) => {
125
+ const [expanded, setExpanded] = (0, _react.useState)(false);
126
+ // Measured natural height of the switch list, so the reveal animates to an
127
+ // exact height (and the content below reflows down smoothly) instead of a
128
+ // guessed max. The measuring wrapper is style-based, NOT className'd — on
129
+ // RN-Web `onLayout` never fires for className'd Views (see AGENTS.md).
130
+ const [listContentHeight, setListContentHeight] = (0, _react.useState)(0);
131
+ // 0 = collapsed, 1 = expanded. Set imperatively in the toggle handler (no
132
+ // effect hook). On RN-Web there is no worklets plugin, so every shared value a
133
+ // mapper reads MUST be in its deps array or it freezes on the first frame
134
+ // (AGENTS.md "Reanimated (web)").
135
+ const listProgress = (0, _reactNativeReanimated.useSharedValue)(0);
136
+ const listStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
137
+ height: listProgress.value * listContentHeight,
138
+ opacity: listProgress.value
139
+ }), [listProgress, listContentHeight]);
140
+ const chevronStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
141
+ transform: [{
142
+ rotate: `${listProgress.value * 180}deg`
143
+ }]
144
+ }), [listProgress]);
145
+ // Collapsed, the switch card is a single row and reads as a PILL; opened, it
146
+ // becomes a card holding rows and takes the grouped-section corner. The corner
147
+ // is driven off the SAME `listProgress` as the reveal — but clamped to its
148
+ // opening fraction, so it resolves early instead of trailing the rows.
149
+ const switchCardStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
150
+ borderRadius: (0, _reactNativeReanimated.interpolate)(listProgress.value, [0, SWITCH_CARD_RADIUS_SETTLE], [SWITCH_CARD_PILL_RADIUS, SWITCH_CARD_RADIUS], _reactNativeReanimated.Extrapolation.CLAMP)
151
+ }), [listProgress]);
152
+ // `CompositionBar` ships as an interactive breakdown: a selected segment
153
+ // replaces its hint line with that segment's readout. Tapping the selected one
154
+ // again clears it.
155
+ const [storageSegment, setStorageSegment] = (0, _react.useState)(null);
156
+ const toggleStorageSegment = (0, _react.useCallback)(key => setStorageSegment(previous => previous === key ? null : key), []);
157
+ const toggleExpanded = (0, _react.useCallback)(() => {
158
+ const next = !expanded;
159
+ setExpanded(next);
160
+ listProgress.value = (0, _reactNativeReanimated.withTiming)(next ? 1 : 0, {
161
+ duration: SWITCH_REVEAL_MS
162
+ });
163
+ }, [expanded, listProgress]);
164
+ if (snapshot.loading && snapshot.accounts.length === 0) {
165
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
166
+ className: "items-center justify-center gap-space-12 py-space-24",
167
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
168
+ name: "loading",
169
+ size: 24,
170
+ color: theme.colors.textSecondary
171
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
172
+ className: "text-body text-text-secondary text-center",
173
+ children: t('accountSwitcher.loading')
174
+ })]
175
+ });
176
+ }
177
+ const switchingDisabled = snapshot.switchingAccountId !== null;
178
+ const current = snapshot.accounts.find(account => account.isCurrent) ?? snapshot.accounts[0];
179
+ const others = current ? snapshot.accounts.filter(account => account.accountId !== current.accountId) : snapshot.accounts;
180
+ const currentAccent = current ? (0, _types.resolveAccentHex)(current.color, theme.colors.primary) : theme.colors.primary;
181
+ const currentAddress = current ? heroAddressLine(current) : null;
182
+ // The switch list repeats the CURRENT account (first, ringed) — unlike the old
183
+ // compact header it is not represented anywhere else once the hero moved out
184
+ // of the card, and the list is where you switch back to it.
185
+ const switchableAccounts = current ? [current, ...others] : others;
186
+ const facepile = switchableAccounts.map(account => ({
187
+ id: account.accountId,
188
+ uri: account.avatarUrl ?? undefined,
189
+ displayName: account.displayName
190
+ }));
191
+
192
+ // Used vs free is a two-part COMPOSITION (the parts always fill the bar), not
193
+ // a progress value — exactly what Bloom's `CompositionBar` models. Both colors
194
+ // are theme tokens, so the bar is correct in light and dark.
195
+ const storageCategories = storage ? [{
196
+ key: 'used',
197
+ name: t('accountMenu.storage.used'),
198
+ amount: storage.usedBytes,
199
+ color: theme.colors.primary
200
+ }, {
201
+ key: 'free',
202
+ name: t('accountMenu.storage.free'),
203
+ amount: Math.max(0, storage.limitBytes - storage.usedBytes),
204
+ color: theme.colors.contrast50
205
+ }] : [];
206
+ const usageLabel = storage ? t('accountMenu.storage.usage', {
207
+ used: formatStorageGb(storage.usedBytes),
208
+ total: formatStorageGb(storage.limitBytes)
209
+ }) : t('accountMenu.storage.unavailable');
210
+
211
+ // The switch list body, revealed under the "Switch account" row. Own markup,
212
+ // not a Bloom grouped section: this is not a list of settings rows and the
213
+ // component is not a card container. It mirrors the section's rhythm by hand —
214
+ // 12px content inset, 12px after the avatar, a hairline between rows — and
215
+ // draws those hairlines INSIDE the animated clip, so a collapsed list never
216
+ // strands one against the header row.
217
+ const listItems = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
218
+ children: [switchableAccounts.map((account, index) => {
219
+ const accent = (0, _types.resolveAccentHex)(account.color, theme.colors.primary);
220
+ const isSwitching = snapshot.switchingAccountId === account.accountId;
221
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
222
+ children: [index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
223
+ className: "h-px bg-border opacity-30 ml-space-12"
224
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.HoverPressable, {
225
+ baseClassName: `flex-row items-center gap-space-12 px-space-12 py-[10px]${switchingDisabled ? ' opacity-60' : ''}`,
226
+ hoverClassName: "bg-fill-secondary",
227
+ onPress: () => handlers.onSwitch(account.accountId),
228
+ disabled: switchingDisabled,
229
+ accessibilityRole: "button",
230
+ accessibilityLabel: account.displayName,
231
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
232
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
233
+ source: account.avatarUrl ?? undefined,
234
+ variant: "thumb",
235
+ name: account.displayName,
236
+ size: SWITCH_AVATAR_SIZE
237
+ }), account.isCurrent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
238
+ style: [_styles.authChooserStyles.currentAvatarRing, {
239
+ borderColor: accent
240
+ }],
241
+ pointerEvents: "none"
242
+ }) : null]
243
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
244
+ className: "flex-1 min-w-0",
245
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
246
+ className: "text-body font-semibold text-text",
247
+ numberOfLines: 1,
248
+ children: account.displayName
249
+ }), account.email ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
250
+ className: "text-caption text-text-secondary",
251
+ numberOfLines: 1,
252
+ children: account.email
253
+ }) : null]
254
+ }), isSwitching ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
255
+ name: "loading",
256
+ size: 20,
257
+ color: accent
258
+ }) : null]
259
+ })]
260
+ }, account.accountId);
261
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
262
+ className: "h-px bg-border opacity-30 ml-space-12"
263
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(AccountAffordanceRow, {
264
+ icon: "plus",
265
+ label: t('accountMenu.addAnother'),
266
+ onPress: handlers.onAdd,
267
+ disabled: switchingDisabled,
268
+ theme: theme
269
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
270
+ className: "h-px bg-border opacity-30 ml-space-12"
271
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(AccountAffordanceRow, {
272
+ icon: "account-multiple-outline",
273
+ label: t('accountSwitcher.manageOnDevice'),
274
+ onPress: handlers.onManage,
275
+ disabled: switchingDisabled,
276
+ theme: theme
277
+ })]
278
+ });
279
+ const manageLabel = t('accountMenu.manage');
280
+ const switchLabel = t('accountMenu.switchAccount');
281
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
282
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
283
+ style: _styles.authChooserStyles.hero,
284
+ children: [current ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
285
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_pressableScale.PressableScale, {
286
+ onPress: handlers.onEditAvatar,
287
+ accessibilityRole: "button",
288
+ accessibilityLabel: t('editProfile.changeAvatar'),
289
+ style: _styles.authChooserStyles.heroAvatarPressable,
290
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
291
+ source: current.avatarUrl ?? undefined,
292
+ name: current.displayName,
293
+ size: HERO_AVATAR_SIZE
294
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
295
+ style: [_styles.authChooserStyles.heroAvatarRing, {
296
+ borderColor: currentAccent
297
+ }],
298
+ pointerEvents: "none"
299
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_AvatarCameraBadge.default, {})]
300
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
301
+ style: _styles.authChooserStyles.heroNameBlock,
302
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
303
+ style: [_styles.authChooserStyles.heroGreeting, {
304
+ color: theme.colors.text
305
+ }],
306
+ numberOfLines: 2,
307
+ children: t('accountMenu.greeting', {
308
+ name: current.displayName
309
+ })
310
+ }), currentAddress ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
311
+ style: [_styles.authChooserStyles.heroAddress, {
312
+ color: theme.colors.textSecondary
313
+ }],
314
+ numberOfLines: 1,
315
+ children: currentAddress
316
+ }) : null]
317
+ })]
318
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
319
+ variant: "secondary",
320
+ size: "small",
321
+ onPress: handlers.onManage,
322
+ accessibilityLabel: manageLabel,
323
+ children: manageLabel
324
+ })]
325
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
326
+ className: "bg-fill overflow-hidden mb-space-16",
327
+ style: switchCardStyle,
328
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.HoverPressable, {
329
+ baseClassName: `flex-row items-center gap-space-12 px-space-12 py-[10px] min-h-[44px]${switchingDisabled ? ' opacity-60' : ''}`,
330
+ hoverClassName: "bg-fill-secondary",
331
+ onPress: toggleExpanded,
332
+ disabled: switchingDisabled,
333
+ accessibilityRole: "button"
334
+ // The ARIA prop, not `accessibilityState`: react-native-web 0.21
335
+ // forwards only this one, and RN maps it to
336
+ // `accessibilityState.expanded` natively — so the disclosure state
337
+ // reaches assistive tech on BOTH platforms.
338
+ ,
339
+ "aria-expanded": expanded,
340
+ accessibilityLabel: switchLabel,
341
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
342
+ className: "flex-1 text-body text-text",
343
+ numberOfLines: 1,
344
+ children: switchLabel
345
+ }), expanded ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_avatarGroup.AvatarGroup, {
346
+ items: facepile,
347
+ layout: "stack",
348
+ size: FACEPILE_AVATAR_SIZE,
349
+ max: FACEPILE_MAX,
350
+ overlap: FACEPILE_OVERLAP,
351
+ variant: "thumb",
352
+ showInitials: true,
353
+ ringColor: theme.colors.card
354
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
355
+ style: [_styles.authChooserStyles.chevronCircle, {
356
+ backgroundColor: theme.colors.contrast50
357
+ }],
358
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
359
+ style: chevronStyle,
360
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
361
+ name: "chevron-down",
362
+ size: 20,
363
+ color: theme.colors.text
364
+ })
365
+ })
366
+ })]
367
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
368
+ style: [_styles.authChooserStyles.collapse, listStyle],
369
+ pointerEvents: expanded ? 'auto' : 'none',
370
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
371
+ style: _styles.authChooserStyles.collapseMeasure,
372
+ onLayout: event => setListContentHeight(event.nativeEvent.layout.height),
373
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
374
+ children: listItems
375
+ })
376
+ })
377
+ })]
378
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
379
+ className: "bg-fill rounded-[16px] overflow-hidden mb-space-16 px-space-12 py-[10px] gap-space-12",
380
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
381
+ className: "flex-row items-center gap-space-12 min-h-[24px]",
382
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
383
+ className: "w-[20px] items-center",
384
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
385
+ name: "cloud-outline",
386
+ size: ROW_ICON_SIZE,
387
+ color: theme.colors.textSecondary
388
+ })
389
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
390
+ className: "flex-1 text-body font-semibold text-text",
391
+ numberOfLines: 1,
392
+ children: t('accountMenu.storage.title')
393
+ })]
394
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_compositionBar.CompositionBar, {
395
+ categories: storageCategories,
396
+ selectedKey: storageSegment,
397
+ onSelect: toggleStorageSegment,
398
+ hintLabel: usageLabel,
399
+ formatReadout: (bytes, percent) => `${formatStorageGb(bytes)} · ${percent}%`
400
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
401
+ className: "flex-row gap-space-8",
402
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StorageChip, {
403
+ label: t('accountMenu.storage.upgrade'),
404
+ onPress: menu.onUpgradeStorage
405
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StorageChip, {
406
+ label: t('accountMenu.storage.manage'),
407
+ onPress: menu.onManageStorage
408
+ })]
409
+ })]
410
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_settingsList.SettingsListGroup, {
411
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
412
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuIcon, {
413
+ name: "tray-arrow-down",
414
+ theme: theme
415
+ }),
416
+ title: t('accountMenu.data'),
417
+ onPress: menu.onOpenData
418
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
419
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuIcon, {
420
+ name: "cog-outline",
421
+ theme: theme
422
+ }),
423
+ title: t('accountMenu.settings'),
424
+ onPress: menu.onOpenSettings
425
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
426
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuIcon, {
427
+ name: "help-circle-outline",
428
+ theme: theme
429
+ }),
430
+ title: t('accountMenu.help'),
431
+ onPress: menu.onHelp
432
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
433
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuIcon, {
434
+ name: "logout",
435
+ theme: theme
436
+ }),
437
+ title: t('accountMenu.signOut'),
438
+ onPress: menu.onSignOut,
439
+ showChevron: false
440
+ })]
441
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
442
+ className: "flex-row items-center justify-center gap-space-12 px-space-12 pb-space-8",
443
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
444
+ onPress: menu.onPrivacy,
445
+ accessibilityRole: "link",
446
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
447
+ className: "text-bodySmall text-text-secondary",
448
+ children: t('accountMenu.privacy')
449
+ })
450
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
451
+ className: "text-bodySmall text-text-tertiary",
452
+ children: "\xB7"
453
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
454
+ onPress: menu.onTerms,
455
+ accessibilityRole: "link",
456
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
457
+ className: "text-bodySmall text-text-secondary",
458
+ children: t('accountMenu.terms')
459
+ })
460
+ })]
461
+ })]
462
+ });
463
+ };
464
+
465
+ /**
466
+ * An account-list AFFORDANCE row ("Add another account", "Manage accounts on
467
+ * this device") — a bordered circle sized to the avatar it stands in for, so its
468
+ * label lands on the same line as every account name above it. Own markup, like
469
+ * the account rows it closes: this list is not a Bloom grouped section.
470
+ */
471
+ const AccountAffordanceRow = ({
472
+ icon,
473
+ label,
474
+ onPress,
475
+ disabled,
476
+ theme
477
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.HoverPressable, {
478
+ baseClassName: `flex-row items-center gap-space-12 px-space-12 py-[10px]${disabled ? ' opacity-60' : ''}`,
479
+ hoverClassName: "bg-fill-secondary",
480
+ onPress: onPress,
481
+ disabled: disabled,
482
+ accessibilityRole: "button",
483
+ accessibilityLabel: label,
484
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
485
+ className: "w-[36px] h-[36px] items-center justify-center rounded-radius-max border border-border",
486
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
487
+ name: icon,
488
+ size: BADGE_GLYPH_SIZE,
489
+ color: theme.colors.textSecondary
490
+ })
491
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
492
+ className: "flex-1 text-body font-semibold text-text",
493
+ numberOfLines: 1,
494
+ children: label
495
+ })]
496
+ });
497
+
498
+ /**
499
+ * The leading glyph for a grouped-section menu row, sized to Bloom's 20px icon
500
+ * column so the icons, the storage block's cloud and every row title align.
501
+ */
502
+ const MenuIcon = ({
503
+ name,
504
+ theme
505
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
506
+ name: name,
507
+ size: ROW_ICON_SIZE,
508
+ color: theme.colors.textSecondary
509
+ });
510
+
511
+ /** A storage action chip — a bordered pill on the sheet background. */
512
+ const StorageChip = ({
513
+ label,
514
+ onPress
515
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.HoverPressable, {
516
+ baseClassName: "rounded-radius-max border border-border bg-bg py-[9px] px-[14px]",
517
+ hoverClassName: "bg-fill-secondary",
518
+ onPress: onPress,
519
+ accessibilityRole: "button",
520
+ accessibilityLabel: label,
521
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
522
+ className: "text-bodySmall font-semibold text-text",
523
+ children: label
524
+ })
525
+ });
526
+ var _default = exports.default = AccountsMenuView;
527
+ //# sourceMappingURL=AccountsMenuView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_vectorIcons","_avatar","_avatarGroup","_button","_pressableScale","_compositionBar","_settingsList","_typography","_core","_AvatarCameraBadge","_interopRequireDefault","_primitives","_styles","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ROW_ICON_SIZE","SWITCH_CARD_PILL_RADIUS","SWITCH_CARD_RADIUS","SWITCH_CARD_RADIUS_SETTLE","SWITCH_REVEAL_MS","SWITCH_AVATAR_SIZE","BADGE_GLYPH_SIZE","HERO_AVATAR_SIZE","FACEPILE_MAX","FACEPILE_AVATAR_SIZE","FACEPILE_OVERLAP","heroAddressLine","account","email","toLowerCase","endsWith","handle","getNormalizedUserHandle","user","formatStorageGb","bytes","gb","Number","isInteger","Math","round","toFixed","AccountsMenuView","snapshot","theme","handlers","storage","menu","expanded","setExpanded","useState","listContentHeight","setListContentHeight","listProgress","useSharedValue","listStyle","useAnimatedStyle","height","value","opacity","chevronStyle","transform","rotate","switchCardStyle","borderRadius","interpolate","Extrapolation","CLAMP","storageSegment","setStorageSegment","toggleStorageSegment","useCallback","key","previous","toggleExpanded","next","withTiming","duration","loading","accounts","length","jsxs","View","className","children","jsx","MaterialCommunityIcons","name","size","color","colors","textSecondary","Text","switchingDisabled","switchingAccountId","current","find","isCurrent","others","filter","accountId","currentAccent","resolveAccentHex","primary","currentAddress","switchableAccounts","facepile","map","id","uri","avatarUrl","undefined","displayName","storageCategories","amount","usedBytes","max","limitBytes","contrast50","usageLabel","used","total","listItems","Fragment","index","accent","isSwitching","HoverPressable","baseClassName","hoverClassName","onPress","onSwitch","disabled","accessibilityRole","accessibilityLabel","Avatar","source","variant","style","styles","currentAvatarRing","borderColor","pointerEvents","numberOfLines","AccountAffordanceRow","icon","label","onAdd","onManage","manageLabel","switchLabel","hero","PressableScale","onEditAvatar","heroAvatarPressable","heroAvatarRing","heroNameBlock","heroGreeting","text","heroAddress","Button","AvatarGroup","items","layout","overlap","showInitials","ringColor","card","chevronCircle","backgroundColor","collapse","collapseMeasure","onLayout","event","nativeEvent","CompositionBar","categories","selectedKey","onSelect","hintLabel","formatReadout","percent","StorageChip","onUpgradeStorage","onManageStorage","SettingsListGroup","SettingsListItem","MenuIcon","title","onOpenData","onOpenSettings","onHelp","onSignOut","showChevron","Pressable","onPrivacy","onTerms","_default","exports"],"sourceRoot":"../../../../../src","sources":["ui/components/authChooser/AccountsMenuView.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _button = require("@oxyhq/bloom/button");
9
+ var _TroubleDisclosure = _interopRequireDefault(require("./TroubleDisclosure.js"));
10
+ var _primitives = require("./primitives.js");
11
+ var _styles = require("./styles.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ /**
15
+ * The sign-in ENTRY (`signin` / `add` views) — ONE primary action.
16
+ *
17
+ * Issue #691, Phase 5: the normal experience presents no menu of authentication
18
+ * methods. The user sees "Continue with Oxy"; Oxy — not the user — then picks
19
+ * how the request reaches their Commons identity, and the request surface shows
20
+ * honest progress. Everything else (a QR from another device, a passkey on this
21
+ * device, getting Commons, creating an account) lives behind "Having trouble?".
22
+ *
23
+ * Existing accounts still render ABOVE the CTA: "continue as one of these" is a
24
+ * choice of WHO, not of HOW, so it is not one of the competing method buttons
25
+ * the issue removes.
26
+ *
27
+ * On web this view is transient — the container auto-starts the flow the instant
28
+ * the view is reached, because the request surface (QR, or "Check Commons on
29
+ * your phone") IS the primary route there, never something behind a tap.
30
+ */
31
+
32
+ const SignInEntryView = ({
33
+ snapshot,
34
+ theme,
35
+ t,
36
+ handlers,
37
+ onContinueWithOxy,
38
+ alternatives
39
+ }) => {
40
+ // The entry has no chosen route yet, so nothing here can have failed: the
41
+ // alternatives stay behind the disclosure unconditionally.
42
+ const troubleActions = [{
43
+ key: 'scan-qr-link',
44
+ label: t('accountSwitcher.scanQr'),
45
+ onPress: alternatives.onShowQr
46
+ }, ...(alternatives.passkeyAvailable ? [{
47
+ key: 'passkey-signin-link',
48
+ label: alternatives.passkeyPending ? t('accountSwitcher.passkeySigningIn') : t('accountSwitcher.useIdentityOnDevice'),
49
+ onPress: alternatives.onSignInWithPasskey,
50
+ disabled: alternatives.passkeyPending
51
+ }] : []), {
52
+ key: 'get-commons-link',
53
+ label: t('accountSwitcher.getCommons'),
54
+ onPress: alternatives.onGetCommons
55
+ }];
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
57
+ style: _styles.authChooserStyles.signInBlock,
58
+ children: [snapshot.accounts.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
59
+ style: _styles.authChooserStyles.rows,
60
+ children: [snapshot.accounts.map(account => /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.AccountRow, {
61
+ account: account,
62
+ theme: theme,
63
+ switching: snapshot.switchingAccountId === account.accountId,
64
+ disabled: snapshot.switchingAccountId !== null,
65
+ onPress: () => handlers.onSwitch(account.accountId)
66
+ }, account.accountId)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.Dividerish, {
67
+ theme: theme,
68
+ label: t('signin.or')
69
+ })]
70
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
71
+ variant: "primary",
72
+ onPress: onContinueWithOxy,
73
+ style: _styles.authChooserStyles.primaryButton,
74
+ testID: "continue-with-oxy",
75
+ children: t('accountSwitcher.continueWithOxy')
76
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SubtleLink, {
77
+ label: t('signin.createAccountLink'),
78
+ theme: theme,
79
+ onPress: alternatives.onCreateAccount,
80
+ testID: "create-account-link"
81
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TroubleDisclosure.default, {
82
+ actions: troubleActions,
83
+ revealed: false,
84
+ theme: theme,
85
+ t: t
86
+ })]
87
+ });
88
+ };
89
+ var _default = exports.default = SignInEntryView;
90
+ //# sourceMappingURL=SignInEntryView.js.map