@oxyhq/services 13.3.0 → 14.0.1

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 (245) hide show
  1. package/lib/commonjs/index.js +11 -16
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AccountMenu.js +103 -65
  4. package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
  5. package/lib/commonjs/ui/components/AccountSwitcher.js +84 -126
  6. package/lib/commonjs/ui/components/AccountSwitcher.js.map +1 -1
  7. package/lib/commonjs/ui/components/ProfileMenu.js +140 -153
  8. package/lib/commonjs/ui/components/ProfileMenu.js.map +1 -1
  9. package/lib/commonjs/ui/components/SignInModal.js +4 -4
  10. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  11. package/lib/commonjs/ui/context/OxyContext.js +506 -466
  12. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  13. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +59 -57
  14. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  15. package/lib/commonjs/ui/context/inSessionTokenRefresh.js +23 -42
  16. package/lib/commonjs/ui/context/inSessionTokenRefresh.js.map +1 -1
  17. package/lib/commonjs/ui/context/silentSessionRestore.js +12 -21
  18. package/lib/commonjs/ui/context/silentSessionRestore.js.map +1 -1
  19. package/lib/commonjs/ui/hooks/useAuth.js +4 -3
  20. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  21. package/lib/commonjs/ui/hooks/useOxyAuthSession.js +12 -7
  22. package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -1
  23. package/lib/commonjs/ui/hooks/useSessionManagement.js +17 -65
  24. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +288 -0
  26. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -0
  27. package/lib/commonjs/ui/hooks/useWebSSO.js +12 -191
  28. package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -1
  29. package/lib/commonjs/ui/screens/OxyAuthScreen.js +2 -2
  30. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  31. package/lib/commonjs/ui/session/createSessionClient.js +28 -0
  32. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -0
  33. package/lib/commonjs/ui/session/index.js +52 -0
  34. package/lib/commonjs/ui/session/index.js.map +1 -0
  35. package/lib/commonjs/ui/session/projectSessionState.js +86 -0
  36. package/lib/commonjs/ui/session/projectSessionState.js.map +1 -0
  37. package/lib/commonjs/ui/session/sessionClientHost.js +30 -0
  38. package/lib/commonjs/ui/session/sessionClientHost.js.map +1 -0
  39. package/lib/commonjs/ui/session/tokenTransport.js +77 -0
  40. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -0
  41. package/lib/commonjs/ui/utils/activeAuthuser.js +35 -79
  42. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  43. package/lib/commonjs/ui/utils/sessionHelpers.js +1 -51
  44. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  45. package/lib/commonjs/utils/deviceFlowSignIn.js +70 -15
  46. package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -1
  47. package/lib/module/index.js +5 -4
  48. package/lib/module/index.js.map +1 -1
  49. package/lib/module/ui/components/AccountMenu.js +103 -65
  50. package/lib/module/ui/components/AccountMenu.js.map +1 -1
  51. package/lib/module/ui/components/AccountSwitcher.js +85 -127
  52. package/lib/module/ui/components/AccountSwitcher.js.map +1 -1
  53. package/lib/module/ui/components/ProfileMenu.js +143 -156
  54. package/lib/module/ui/components/ProfileMenu.js.map +1 -1
  55. package/lib/module/ui/components/SignInModal.js +4 -4
  56. package/lib/module/ui/components/SignInModal.js.map +1 -1
  57. package/lib/module/ui/context/OxyContext.js +510 -470
  58. package/lib/module/ui/context/OxyContext.js.map +1 -1
  59. package/lib/module/ui/context/hooks/useAuthOperations.js +61 -60
  60. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  61. package/lib/module/ui/context/inSessionTokenRefresh.js +24 -43
  62. package/lib/module/ui/context/inSessionTokenRefresh.js.map +1 -1
  63. package/lib/module/ui/context/silentSessionRestore.js +12 -20
  64. package/lib/module/ui/context/silentSessionRestore.js.map +1 -1
  65. package/lib/module/ui/hooks/useAuth.js +4 -3
  66. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  67. package/lib/module/ui/hooks/useOxyAuthSession.js +12 -7
  68. package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -1
  69. package/lib/module/ui/hooks/useSessionManagement.js +18 -66
  70. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  71. package/lib/module/ui/hooks/useSwitchableAccounts.js +283 -0
  72. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -0
  73. package/lib/module/ui/hooks/useWebSSO.js +13 -192
  74. package/lib/module/ui/hooks/useWebSSO.js.map +1 -1
  75. package/lib/module/ui/screens/OxyAuthScreen.js +2 -2
  76. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  77. package/lib/module/ui/session/createSessionClient.js +25 -0
  78. package/lib/module/ui/session/createSessionClient.js.map +1 -0
  79. package/lib/module/ui/session/index.js +17 -0
  80. package/lib/module/ui/session/index.js.map +1 -0
  81. package/lib/module/ui/session/projectSessionState.js +79 -0
  82. package/lib/module/ui/session/projectSessionState.js.map +1 -0
  83. package/lib/module/ui/session/sessionClientHost.js +26 -0
  84. package/lib/module/ui/session/sessionClientHost.js.map +1 -0
  85. package/lib/module/ui/session/tokenTransport.js +74 -0
  86. package/lib/module/ui/session/tokenTransport.js.map +1 -0
  87. package/lib/module/ui/utils/activeAuthuser.js +34 -76
  88. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  89. package/lib/module/ui/utils/sessionHelpers.js +0 -49
  90. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  91. package/lib/module/utils/deviceFlowSignIn.js +71 -16
  92. package/lib/module/utils/deviceFlowSignIn.js.map +1 -1
  93. package/lib/typescript/commonjs/index.d.ts +2 -3
  94. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +4 -2
  96. package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts +7 -8
  98. package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts +12 -9
  100. package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +16 -13
  102. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +27 -3
  104. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts +22 -17
  106. package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts +12 -18
  108. package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +1 -0
  110. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +1 -1
  112. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +2 -2
  114. package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +162 -0
  117. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +13 -52
  119. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +15 -0
  121. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/ui/session/index.d.ts +15 -0
  123. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/ui/session/projectSessionState.d.ts +45 -0
  125. package/lib/typescript/commonjs/ui/session/projectSessionState.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/ui/session/sessionClientHost.d.ts +14 -0
  127. package/lib/typescript/commonjs/ui/session/sessionClientHost.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +24 -0
  129. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts +21 -29
  131. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts +0 -19
  133. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +51 -19
  135. package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -1
  136. package/lib/typescript/module/index.d.ts +2 -3
  137. package/lib/typescript/module/index.d.ts.map +1 -1
  138. package/lib/typescript/module/ui/components/AccountMenu.d.ts +4 -2
  139. package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
  140. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts +7 -8
  141. package/lib/typescript/module/ui/components/AccountSwitcher.d.ts.map +1 -1
  142. package/lib/typescript/module/ui/components/ProfileMenu.d.ts +12 -9
  143. package/lib/typescript/module/ui/components/ProfileMenu.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/context/OxyContext.d.ts +16 -13
  145. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  146. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +27 -3
  147. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  148. package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts +22 -17
  149. package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts.map +1 -1
  150. package/lib/typescript/module/ui/context/silentSessionRestore.d.ts +12 -18
  151. package/lib/typescript/module/ui/context/silentSessionRestore.d.ts.map +1 -1
  152. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +1 -0
  153. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  154. package/lib/typescript/module/ui/hooks/useAuth.d.ts +1 -1
  155. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  156. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +2 -2
  157. package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
  158. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  159. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +162 -0
  160. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -0
  161. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +13 -52
  162. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -1
  163. package/lib/typescript/module/ui/session/createSessionClient.d.ts +15 -0
  164. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -0
  165. package/lib/typescript/module/ui/session/index.d.ts +15 -0
  166. package/lib/typescript/module/ui/session/index.d.ts.map +1 -0
  167. package/lib/typescript/module/ui/session/projectSessionState.d.ts +45 -0
  168. package/lib/typescript/module/ui/session/projectSessionState.d.ts.map +1 -0
  169. package/lib/typescript/module/ui/session/sessionClientHost.d.ts +14 -0
  170. package/lib/typescript/module/ui/session/sessionClientHost.d.ts.map +1 -0
  171. package/lib/typescript/module/ui/session/tokenTransport.d.ts +24 -0
  172. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -0
  173. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts +21 -29
  174. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  175. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts +0 -19
  176. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts.map +1 -1
  177. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +51 -19
  178. package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -1
  179. package/package.json +4 -4
  180. package/src/index.ts +9 -8
  181. package/src/ui/components/AccountMenu.tsx +117 -70
  182. package/src/ui/components/AccountSwitcher.tsx +88 -134
  183. package/src/ui/components/ProfileMenu.tsx +158 -162
  184. package/src/ui/components/SignInModal.tsx +5 -5
  185. package/src/ui/context/OxyContext.tsx +560 -475
  186. package/src/ui/context/hooks/useAuthOperations.ts +72 -63
  187. package/src/ui/context/inSessionTokenRefresh.ts +23 -42
  188. package/src/ui/context/silentSessionRestore.ts +12 -26
  189. package/src/ui/hooks/useAuth.ts +4 -3
  190. package/src/ui/hooks/useOxyAuthSession.ts +13 -8
  191. package/src/ui/hooks/useSessionManagement.ts +16 -87
  192. package/src/ui/hooks/useSwitchableAccounts.ts +397 -0
  193. package/src/ui/hooks/useWebSSO.ts +13 -227
  194. package/src/ui/screens/OxyAuthScreen.tsx +2 -2
  195. package/src/ui/session/__tests__/createSessionClient.test.ts +41 -0
  196. package/src/ui/session/__tests__/projectSessionState.test.ts +114 -0
  197. package/src/ui/session/__tests__/sessionClientHost.test.ts +43 -0
  198. package/src/ui/session/__tests__/tokenTransport.test.ts +142 -0
  199. package/src/ui/session/createSessionClient.ts +21 -0
  200. package/src/ui/session/index.ts +19 -0
  201. package/src/ui/session/projectSessionState.ts +85 -0
  202. package/src/ui/session/sessionClientHost.ts +27 -0
  203. package/src/ui/session/tokenTransport.ts +76 -0
  204. package/src/ui/utils/activeAuthuser.ts +34 -76
  205. package/src/ui/utils/sessionHelpers.ts +0 -66
  206. package/src/utils/__tests__/deviceFlowSignIn.test.ts +243 -34
  207. package/src/utils/deviceFlowSignIn.ts +98 -21
  208. package/lib/commonjs/ui/components/accountMenuRows.js +0 -33
  209. package/lib/commonjs/ui/components/accountMenuRows.js.map +0 -1
  210. package/lib/commonjs/ui/hooks/useDeviceAccounts.js +0 -280
  211. package/lib/commonjs/ui/hooks/useDeviceAccounts.js.map +0 -1
  212. package/lib/commonjs/ui/hooks/useSessionSocket.js +0 -203
  213. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +0 -1
  214. package/lib/commonjs/utils/silentGuardKey.js +0 -54
  215. package/lib/commonjs/utils/silentGuardKey.js.map +0 -1
  216. package/lib/module/ui/components/accountMenuRows.js +0 -29
  217. package/lib/module/ui/components/accountMenuRows.js.map +0 -1
  218. package/lib/module/ui/hooks/useDeviceAccounts.js +0 -276
  219. package/lib/module/ui/hooks/useDeviceAccounts.js.map +0 -1
  220. package/lib/module/ui/hooks/useSessionSocket.js +0 -199
  221. package/lib/module/ui/hooks/useSessionSocket.js.map +0 -1
  222. package/lib/module/utils/silentGuardKey.js +0 -49
  223. package/lib/module/utils/silentGuardKey.js.map +0 -1
  224. package/lib/typescript/commonjs/ui/components/accountMenuRows.d.ts +0 -34
  225. package/lib/typescript/commonjs/ui/components/accountMenuRows.d.ts.map +0 -1
  226. package/lib/typescript/commonjs/ui/hooks/useDeviceAccounts.d.ts +0 -133
  227. package/lib/typescript/commonjs/ui/hooks/useDeviceAccounts.d.ts.map +0 -1
  228. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts +0 -14
  229. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +0 -1
  230. package/lib/typescript/commonjs/utils/silentGuardKey.d.ts +0 -31
  231. package/lib/typescript/commonjs/utils/silentGuardKey.d.ts.map +0 -1
  232. package/lib/typescript/module/ui/components/accountMenuRows.d.ts +0 -34
  233. package/lib/typescript/module/ui/components/accountMenuRows.d.ts.map +0 -1
  234. package/lib/typescript/module/ui/hooks/useDeviceAccounts.d.ts +0 -133
  235. package/lib/typescript/module/ui/hooks/useDeviceAccounts.d.ts.map +0 -1
  236. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts +0 -14
  237. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +0 -1
  238. package/lib/typescript/module/utils/silentGuardKey.d.ts +0 -31
  239. package/lib/typescript/module/utils/silentGuardKey.d.ts.map +0 -1
  240. package/src/ui/components/accountMenuRows.ts +0 -48
  241. package/src/ui/hooks/useDeviceAccounts.ts +0 -344
  242. package/src/ui/hooks/useSessionSocket.ts +0 -233
  243. package/src/ui/utils/__tests__/activeAuthuser.test.ts +0 -75
  244. package/src/utils/__tests__/silentGuardKey.test.ts +0 -82
  245. package/src/utils/silentGuardKey.ts +0 -46
@@ -9,18 +9,33 @@ var _core = require("@oxyhq/core");
9
9
  * Shared, pure orchestration for completing the cross-app device-flow sign-in
10
10
  * (the QR-code / "Open Oxy Auth" path used on native and web).
11
11
  *
12
- * THE BUG THIS FIXES (native): once another authenticated device approves the
13
- * pending AuthSession, the originating client is notified (socket / poll /
14
- * deep-link) with the authorized `sessionId`. Before any session-management
15
- * code can use it, the client MUST exchange the secret 128-bit `sessionToken`
16
- * (held only by this client, generated for THIS flow) for the first access
17
- * token via `claimSessionByToken` — the device-flow equivalent of OAuth's
18
- * code-for-token exchange (RFC 8628 §3.4).
12
+ * THE FIRST BUG THIS FIXES (native): once another authenticated device
13
+ * approves the pending AuthSession, the originating client is notified
14
+ * (socket / poll / deep-link) with the authorized `sessionId`. Before any
15
+ * session-management code can use it, the client MUST exchange the secret
16
+ * 128-bit `sessionToken` (held only by this client, generated for THIS flow)
17
+ * for the first access token via `claimSessionByToken` — the device-flow
18
+ * equivalent of OAuth's code-for-token exchange (RFC 8628 §3.4).
19
+ *
20
+ * THE SECOND BUG THIS FIXES (session-sync cutover regression): the
21
+ * freshly-claimed session is NOT yet registered in the device's
22
+ * server-authoritative session set — nothing has run
23
+ * `sessionClient.addCurrentAccount()` for it — so it must NOT be committed
24
+ * through `switchSession`. That path is now an account-SWITCH between
25
+ * accounts already registered on this device (`OxyContext`'s
26
+ * `switchSessionForContext`), and throws `No device account found for
27
+ * session "..."` for anything else, surfacing as "Authorization successful
28
+ * but failed to complete sign in." Instead the claimed session must be
29
+ * committed through the SAME path a fresh password sign-in uses —
30
+ * `useOxy().handleWebSession` (`OxyContext`'s `handleWebSSOSession`) — which
31
+ * registers the account into the device set, persists it durably, and
32
+ * hydrates the full user profile.
19
33
  *
20
34
  * Skipping the claim leaves the SDK with NO bearer token: the session is
21
35
  * authorized server-side but the app never becomes authenticated and the UI
22
- * sits "Waiting for authorization..." forever. Consolidating the claim→switch
23
- * sequence here keeps native and web identical and unit-testable.
36
+ * sits "Waiting for authorization..." forever. Consolidating the
37
+ * claim->commit sequence here keeps native and web identical and
38
+ * unit-testable.
24
39
  */
25
40
 
26
41
  /**
@@ -28,20 +43,26 @@ var _core = require("@oxyhq/core");
28
43
  * structural type (rather than importing the full client) so the helper is
29
44
  * trivially unit-testable with a stub and never pulls the RN/Expo runtime into
30
45
  * a test bundle.
46
+ *
47
+ * Extends {@link SsoEstablishClient} (`requestSsoEstablishUrl`) so the WEB
48
+ * post-claim durable-session hop can be driven off the same client.
31
49
  */
32
50
 
33
51
  /**
34
52
  * Complete a device-flow sign-in: claim the first access token with the secret
35
- * `sessionToken` (planting the bearer), then hydrate the session via
36
- * `switchSession`. Returns the authenticated user.
53
+ * `sessionToken` (planting the bearer), then commit the resulting session via
54
+ * `commitSession` (registers it into the device's server-authoritative session
55
+ * set and hydrates the full user). Returns the authenticated user.
37
56
  *
38
- * Throws if either the claim or the switch fails; callers surface a retry UI.
57
+ * Throws if the claim did not return a usable session, or if either the claim
58
+ * or the commit fails; callers surface a retry UI.
39
59
  */
40
60
  async function completeDeviceFlowSignIn({
41
61
  oxyServices,
42
62
  sessionId,
43
63
  sessionToken,
44
- switchSession
64
+ commitSession,
65
+ establishDeps
45
66
  }) {
46
67
  // 1) Plant the bearer + refresh tokens. The claim response is also persisted
47
68
  // to native shared secure storage so a later cold boot has a bearer before
@@ -50,8 +71,42 @@ async function completeDeviceFlowSignIn({
50
71
  if (claimed?.accessToken) {
51
72
  await _core.KeyManager.storeSharedSession(claimed.sessionId || sessionId, claimed.accessToken);
52
73
  }
74
+ if (!claimed?.accessToken || !claimed.user) {
75
+ throw new Error('Device-flow claim did not return a usable session');
76
+ }
77
+
78
+ // `SessionLoginResponse.user` is the minimal session-carried shape (avatar
79
+ // is `string | undefined`); the claim response returns the full `User`
80
+ // (avatar is `string | null | undefined`). Normalize rather than widening
81
+ // `SessionLoginResponse.user` to accept `null`.
82
+ const minimalUser = {
83
+ id: claimed.user.id,
84
+ username: claimed.user.username,
85
+ name: claimed.user.name,
86
+ avatar: claimed.user.avatar ?? undefined
87
+ };
88
+
89
+ // 2) Bearer is now planted — commit the session through the same path a
90
+ // fresh sign-in uses so it is registered into the device's
91
+ // server-authoritative session set instead of an account switch.
92
+ await commitSession({
93
+ sessionId: claimed.sessionId || sessionId,
94
+ deviceId: claimed.deviceId ?? '',
95
+ expiresAt: claimed.expiresAt ?? '',
96
+ user: minimalUser,
97
+ accessToken: claimed.accessToken
98
+ });
53
99
 
54
- // 2) Bearer is now planted hydrate the session through the normal path.
55
- return switchSession(sessionId);
100
+ // 3) WEB durable-session hop (no-op on native). A device-flow claim plants
101
+ // ONLY in-memory tokens — no IdP `fedcm_session` cookie is ever planted, so
102
+ // a reload cannot re-mint a token and the session is lost. Now that the
103
+ // session is committed AND durably persisted (step 2), plant the per-apex
104
+ // IdP cookie via ONE top-level establish hop. Single attempt; total (never
105
+ // throws) — an establish failure leaves the committed session as-is. On web
106
+ // success it navigates away, so it is the LAST step: the browser tears the
107
+ // page down on the next tick, after `claimed.user` is returned to the
108
+ // caller's `onSignedIn`.
109
+ await (0, _core.establishIdpSessionAfterClaim)(oxyServices, establishDeps ?? {});
110
+ return claimed.user;
56
111
  }
57
112
  //# sourceMappingURL=deviceFlowSignIn.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","completeDeviceFlowSignIn","oxyServices","sessionId","sessionToken","switchSession","claimed","claimSessionByToken","accessToken","KeyManager","storeSharedSession"],"sourceRoot":"../../../src","sources":["utils/deviceFlowSignIn.ts"],"mappings":";;;;;;AAkBA,IAAAA,KAAA,GAAAC,OAAA;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,wBAAwBA,CAAC;EAC7CC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC;AAC+B,CAAC,EAAiB;EACjD;EACA;EACA;EACA,MAAMC,OAAO,GAAG,MAAMJ,WAAW,CAACK,mBAAmB,CAACH,YAAY,CAAC;EACnE,IAAIE,OAAO,EAAEE,WAAW,EAAE;IACxB,MAAMC,gBAAU,CAACC,kBAAkB,CAACJ,OAAO,CAACH,SAAS,IAAIA,SAAS,EAAEG,OAAO,CAACE,WAAW,CAAC;EAC1F;;EAEA;EACA,OAAOH,aAAa,CAACF,SAAS,CAAC;AACjC","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","completeDeviceFlowSignIn","oxyServices","sessionId","sessionToken","commitSession","establishDeps","claimed","claimSessionByToken","accessToken","KeyManager","storeSharedSession","user","Error","minimalUser","id","username","name","avatar","undefined","deviceId","expiresAt","establishIdpSessionAfterClaim"],"sourceRoot":"../../../src","sources":["utils/deviceFlowSignIn.ts"],"mappings":";;;;;;AAiCA,IAAAA,KAAA,GAAAC,OAAA;AAjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,wBAAwBA,CAAC;EAC7CC,WAAW;EACXC,SAAS;EACTC,YAAY;EACZC,aAAa;EACbC;AAC+B,CAAC,EAAiB;EACjD;EACA;EACA;EACA,MAAMC,OAAO,GAAG,MAAML,WAAW,CAACM,mBAAmB,CAACJ,YAAY,CAAC;EACnE,IAAIG,OAAO,EAAEE,WAAW,EAAE;IACxB,MAAMC,gBAAU,CAACC,kBAAkB,CAACJ,OAAO,CAACJ,SAAS,IAAIA,SAAS,EAAEI,OAAO,CAACE,WAAW,CAAC;EAC1F;EAEA,IAAI,CAACF,OAAO,EAAEE,WAAW,IAAI,CAACF,OAAO,CAACK,IAAI,EAAE;IAC1C,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;;EAEA;EACA;EACA;EACA;EACA,MAAMC,WAA4B,GAAG;IACnCC,EAAE,EAAER,OAAO,CAACK,IAAI,CAACG,EAAE;IACnBC,QAAQ,EAAET,OAAO,CAACK,IAAI,CAACI,QAAQ;IAC/BC,IAAI,EAAEV,OAAO,CAACK,IAAI,CAACK,IAAI;IACvBC,MAAM,EAAEX,OAAO,CAACK,IAAI,CAACM,MAAM,IAAIC;EACjC,CAAC;;EAED;EACA;EACA;EACA,MAAMd,aAAa,CAAC;IAClBF,SAAS,EAAEI,OAAO,CAACJ,SAAS,IAAIA,SAAS;IACzCiB,QAAQ,EAAEb,OAAO,CAACa,QAAQ,IAAI,EAAE;IAChCC,SAAS,EAAEd,OAAO,CAACc,SAAS,IAAI,EAAE;IAClCT,IAAI,EAAEE,WAAW;IACjBL,WAAW,EAAEF,OAAO,CAACE;EACvB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,IAAAa,mCAA6B,EAACpB,WAAW,EAAEI,aAAa,IAAI,CAAC,CAAC,CAAC;EAErE,OAAOC,OAAO,CAACK,IAAI;AACrB","ignoreList":[]}
@@ -50,7 +50,6 @@ export { useAssetStore, useAssets as useAssetsStore, useAsset, useUploadProgress
50
50
  // ---------------------------------------------------------------------------
51
51
  // Session / asset hooks
52
52
  // ---------------------------------------------------------------------------
53
- export { useSessionSocket } from "./ui/hooks/useSessionSocket.js";
54
53
  export { useAssets, setOxyAssetInstance } from "./ui/hooks/useAssets.js";
55
54
  export { useFileDownloadUrl } from "./ui/hooks/useFileDownloadUrl.js";
56
55
  export { useFollow, useFollowerCounts } from "./ui/hooks/useFollow.js";
@@ -122,9 +121,11 @@ export { default as ProfileMenu } from "./ui/components/ProfileMenu.js";
122
121
  // opens this; the `AccountSwitcherView` body also backs the `AccountSwitcher`
123
122
  // bottom-sheet route.
124
123
  export { default as AccountSwitcher, AccountSwitcherView } from "./ui/components/AccountSwitcher.js";
125
- // Unified device-account hook (hydrates every signed-in account on the device
126
- // with real name/email/avatar/color for the account switcher).
127
- export { useDeviceAccounts } from "./ui/hooks/useDeviceAccounts.js";
124
+ // Unified switchable-accounts hook the single source of everything the user
125
+ // can switch into: device sign-ins AND linked graph accounts (owned orgs +
126
+ // shared-with-you), deduped by account id and hydrated with real
127
+ // name/email/avatar/color. Every switch routes through `switchToAccount`.
128
+ export { useSwitchableAccounts } from "./ui/hooks/useSwitchableAccounts.js";
128
129
  // Unified "Manage your Oxy Account" screen (the caller's own personal account)
129
130
  export { default as ManageAccountScreen } from "./ui/screens/ManageAccountScreen.js";
130
131
  export { default as NotificationsScreen } from "./ui/screens/NotificationsScreen.js";
@@ -1 +1 @@
1
- {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","FontLoader","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useAuthorizedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeAuthorizedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","useMutationStatus","useOnlineStatus","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","CrossApexDirectSignInError","isCrossApexWeb","useFileFiltering","Avatar","OxySignInButton","OxyAuthPrompt","OxyLogo","FollowButton","LogoIcon","LogoText","AccountMenu","AccountMenuButton","ProfileButton","ProfileMenu","AccountSwitcher","AccountSwitcherView","useDeviceAccounts","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","AccountSwitcherScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","showBottomSheet","closeBottomSheet","showSignInModal","hideSignInModal"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["setPlatformOS","Platform","OS","default","OxyProvider","useOxy","useAuth","FontLoader","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","setOxyAssetInstance","useFileDownloadUrl","useFollow","useFollowerCounts","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useAuthorizedApps","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useAccountStorageUsage","useSecurityActivity","useRecentSecurityActivity","useInfiniteSecurityActivity","useUserSubscription","useUserPayments","useUserWallet","useUserWalletTransactions","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUpdateNotificationPreferences","useUpdateUserPreferences","useRevokeAuthorizedApp","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","createProfileMutation","createGenericMutation","mutationKeys","queryKeys","invalidateAccountQueries","invalidateUserQueries","invalidateSessionQueries","invalidateDeviceQueries","invalidatePrivacyQueries","invalidateSecurityQueries","invalidateStorageQueries","invalidatePaymentsQueries","invalidateConnectedAppsQueries","useMutationStatus","useOnlineStatus","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage","CrossApexDirectSignInError","isCrossApexWeb","useFileFiltering","Avatar","OxySignInButton","OxyAuthPrompt","OxyLogo","FollowButton","LogoIcon","LogoText","AccountMenu","AccountMenuButton","ProfileButton","ProfileMenu","AccountSwitcher","AccountSwitcherView","useSwitchableAccounts","ManageAccountScreen","NotificationsScreen","PreferencesScreen","ConnectedAppsScreen","AccountSwitcherScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","showBottomSheet","closeBottomSheet","showSignInModal","hideSignInModal"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -10,8 +10,7 @@ import Avatar from "./Avatar.js";
10
10
  import { useOxy } from "../context/OxyContext.js";
11
11
  import { useI18n } from "../hooks/useI18n.js";
12
12
  import { isDev, logger as loggerUtil } from '@oxyhq/core';
13
- import { buildAccountRows } from "./accountMenuRows.js";
14
- import { useDeviceAccounts } from "../hooks/useDeviceAccounts.js";
13
+ import { useSwitchableAccounts } from "../hooks/useSwitchableAccounts.js";
15
14
 
16
15
  /**
17
16
  * Web-only anchor for the popover panel. Each field anchors the panel against
@@ -35,9 +34,11 @@ const PANEL_WIDTH = 360;
35
34
  /**
36
35
  * Unified, canonical account switcher for the Oxy ecosystem. Gmail-style: the
37
36
  * accounts list sits at the top (current account first, with a checkmark), then
38
- * "Add another account", "Manage account", and the sign-out actions.
37
+ * "Add another account", "Manage account", and the sign-out actions. Lists EVERY
38
+ * switchable account (device sign-ins AND linked graph accounts) and routes every
39
+ * switch through the single `switchToAccount(accountId)` path.
39
40
  *
40
- * Reads everything it needs from `useOxy()` / `useDeviceAccounts()` — never
41
+ * Reads everything it needs from `useOxy()` / `useSwitchableAccounts()` — never
41
42
  * receives a session via props. Renders as a popover anchored to the trigger on
42
43
  * web, and as a full-width bottom-sheet style modal on native.
43
44
  */
@@ -50,8 +51,7 @@ const AccountMenu = ({
50
51
  onBeforeSessionChange
51
52
  }) => {
52
53
  const {
53
- activeSessionId,
54
- switchSession,
54
+ switchToAccount,
55
55
  logout,
56
56
  logoutAll,
57
57
  removeSession
@@ -62,15 +62,16 @@ const AccountMenu = ({
62
62
  const bloomTheme = useTheme();
63
63
  const colors = bloomTheme.colors;
64
64
 
65
- // Source EVERY account's real name/email/avatar/color from the unified
66
- // device-account hook (shared apex `refresh-all` path on `*.oxy.so`, local
67
- // `useOxy()` fallback on cross-domain web / native). This also synthesises a
68
- // live-user row when the probe is empty, so the signed-in user is always
69
- // represented (no "Not signed in" false negative).
65
+ // Source EVERY switchable account device sign-ins AND linked graph
66
+ // accounts (owned orgs + shared-with-you) from the single
67
+ // `useSwitchableAccounts` hook, each hydrated with real
68
+ // name/email/avatar/color. It also synthesises a live-user row when the
69
+ // device set has not synced yet, so the signed-in user is always represented
70
+ // (no "Not signed in" false negative).
70
71
  const {
71
- accounts: deviceAccounts
72
- } = useDeviceAccounts();
73
- const [busySessionId, setBusySessionId] = useState(null);
72
+ accounts
73
+ } = useSwitchableAccounts();
74
+ const [switchingAccountId, setSwitchingAccountId] = useState(null);
74
75
  const [removingSessionId, setRemovingSessionId] = useState(null);
75
76
  const [signingOut, setSigningOut] = useState(false);
76
77
  const [signingOutAll, setSigningOutAll] = useState(false);
@@ -78,35 +79,37 @@ const AccountMenu = ({
78
79
  const signOutAllDialog = useDialogControl();
79
80
  const containerRef = useRef(null);
80
81
 
81
- // Current account first, then the rest in their existing order — matching
82
- // the Gmail-style chooser the inbox design ports from.
82
+ // Current account first, then the remaining device sign-ins, then the linked
83
+ // graph accounts — matching the Gmail-style chooser the inbox design ports.
83
84
  const rows = useMemo(() => {
84
- const built = buildAccountRows({
85
- accounts: deviceAccounts
86
- });
87
- const current = built.filter(row => row.isActive);
88
- const others = built.filter(row => !row.isActive);
89
- return [...current, ...others];
90
- }, [deviceAccounts]);
91
- const isSwitching = busySessionId !== null;
85
+ const device = accounts.filter(account => account.onDevice);
86
+ const graph = accounts.filter(account => !account.onDevice);
87
+ const current = device.filter(account => account.isCurrent);
88
+ const others = device.filter(account => !account.isCurrent);
89
+ return [...current, ...others, ...graph];
90
+ }, [accounts]);
92
91
 
93
- // Switch to a non-active account. We route ALL rows through
94
- // `useOxy().switchSession(sessionId)` the SDK's canonical switch path. On
95
- // WEB it already performs the same silent activation the auth chooser uses:
96
- // when the target `ClientSession` carries an `authuser` slot, it rotates that
97
- // slot via `oxyServices.refreshTokenViaCookie({ authuser })` and plants the
98
- // fresh access token before validating (see `useSessionManagement.switchSession`).
99
- // On NATIVE it validates the session id directly. There is no separate
100
- // "activate by authuser" SDK entry point, so reusing `switchSession`
101
- // (rather than inventing a parallel mechanism) keeps a single source of truth.
102
- const handleSwitch = useCallback(async sessionId => {
103
- if (sessionId === activeSessionId || busySessionId) {
92
+ // "Sign out of all accounts" only applies to real device sessions.
93
+ const deviceCount = useMemo(() => accounts.filter(account => account.onDevice).length, [accounts]);
94
+
95
+ // Account ids currently listed used to indent a graph-only row whose parent
96
+ // account is also shown.
97
+ const listedAccountIds = useMemo(() => new Set(rows.map(row => row.accountId)), [rows]);
98
+ const isSwitching = switchingAccountId !== null;
99
+
100
+ // The ONE uniform switch path: every row (device sign-in or linked graph
101
+ // account) routes through `useOxy().switchToAccount(accountId)`. It reuses
102
+ // the device session when the account is already signed in here, and mints a
103
+ // real session only on the first switch into a graph account — a single
104
+ // source of truth for every switch.
105
+ const handleSwitch = useCallback(async account => {
106
+ if (account.isCurrent || switchingAccountId) {
104
107
  return;
105
108
  }
106
- setBusySessionId(sessionId);
109
+ setSwitchingAccountId(account.accountId);
107
110
  try {
108
111
  await onBeforeSessionChange?.();
109
- await switchSession(sessionId);
112
+ await switchToAccount(account.accountId);
110
113
  toast.success(t('accountSwitcher.toasts.switchSuccess') || 'Switched account');
111
114
  onClose();
112
115
  } catch (error) {
@@ -117,9 +120,9 @@ const AccountMenu = ({
117
120
  }
118
121
  toast.error(t('accountSwitcher.toasts.switchFailed') || 'Failed to switch account');
119
122
  } finally {
120
- setBusySessionId(null);
123
+ setSwitchingAccountId(null);
121
124
  }
122
- }, [activeSessionId, busySessionId, switchSession, t, onClose, onBeforeSessionChange]);
125
+ }, [switchingAccountId, switchToAccount, t, onClose, onBeforeSessionChange]);
123
126
 
124
127
  // Sign out a SPECIFIC inactive account from its per-row icon. `removeSession`
125
128
  // is the SDK's canonical per-session sign-out: it targets the given session
@@ -127,7 +130,7 @@ const AccountMenu = ({
127
130
  // otherwise) and removes ONLY that account without switching/clearing the
128
131
  // active session. The menu stays open so the user can keep managing accounts.
129
132
  const handleRemove = useCallback(async sessionId => {
130
- if (sessionId === activeSessionId || removingSessionId) {
133
+ if (removingSessionId) {
131
134
  return;
132
135
  }
133
136
  setRemovingSessionId(sessionId);
@@ -142,7 +145,7 @@ const AccountMenu = ({
142
145
  } finally {
143
146
  setRemovingSessionId(null);
144
147
  }
145
- }, [activeSessionId, removingSessionId, removeSession, t]);
148
+ }, [removingSessionId, removeSession, t]);
146
149
  const performSignOut = useCallback(async () => {
147
150
  if (signingOut) {
148
151
  return;
@@ -244,55 +247,71 @@ const AccountMenu = ({
244
247
  contentContainerStyle: styles.scrollContent,
245
248
  showsVerticalScrollIndicator: false,
246
249
  children: [rows.map(row => {
247
- const isBusy = busySessionId === row.sessionId;
248
- const isRemoving = removingSessionId === row.sessionId;
250
+ const sessionId = row.sessionId;
251
+ const isBusy = switchingAccountId === row.accountId;
252
+ const isRemoving = sessionId ? removingSessionId === sessionId : false;
253
+ const isChild = Boolean(row.parentAccountId && listedAccountIds.has(row.parentAccountId));
254
+ const role = row.callerMembership?.role;
249
255
  return /*#__PURE__*/_jsxs(TouchableOpacity, {
250
256
  accessibilityRole: "menuitem",
251
257
  accessibilityLabel: row.displayName,
252
258
  accessibilityState: {
253
- selected: row.isActive
259
+ selected: row.isCurrent
254
260
  },
255
- onPress: () => handleSwitch(row.sessionId),
256
- disabled: row.isActive || isBusy || isSwitching,
261
+ onPress: () => handleSwitch(row),
262
+ disabled: row.isCurrent || isBusy || isSwitching,
257
263
  activeOpacity: 0.6,
258
- style: [styles.accountRow, row.isActive && {
264
+ style: [styles.accountRow, isChild && styles.childRow, row.isCurrent && {
259
265
  backgroundColor: colors.primarySubtle
260
- }, isSwitching && !row.isActive && styles.rowDisabled],
266
+ }, isSwitching && !row.isCurrent && styles.rowDisabled],
261
267
  children: [/*#__PURE__*/_jsx(Avatar, {
262
- uri: row.avatarUri,
268
+ uri: row.avatarUrl,
263
269
  name: row.displayName,
264
- size: row.isActive ? 40 : 32
270
+ size: row.isCurrent ? 40 : isChild ? 28 : 32
265
271
  }), /*#__PURE__*/_jsxs(View, {
266
272
  style: styles.accountInfo,
267
- children: [/*#__PURE__*/_jsx(Text, {
268
- style: [styles.accountName, {
269
- color: colors.text
270
- }, row.isActive && styles.accountNameActive],
271
- numberOfLines: 1,
272
- children: row.displayName
273
- }), row.secondary ? /*#__PURE__*/_jsx(Text, {
273
+ children: [/*#__PURE__*/_jsxs(View, {
274
+ style: styles.nameRow,
275
+ children: [/*#__PURE__*/_jsx(Text, {
276
+ style: [styles.accountName, {
277
+ color: colors.text
278
+ }, row.isCurrent && styles.accountNameActive],
279
+ numberOfLines: 1,
280
+ children: row.displayName
281
+ }), role ? /*#__PURE__*/_jsx(View, {
282
+ style: [styles.roleBadge, {
283
+ backgroundColor: colors.card
284
+ }],
285
+ children: /*#__PURE__*/_jsx(Text, {
286
+ style: [styles.roleBadgeText, {
287
+ color: colors.textSecondary
288
+ }],
289
+ children: t(`accounts.roles.${role}.label`) || role
290
+ })
291
+ }) : null]
292
+ }), row.email ? /*#__PURE__*/_jsx(Text, {
274
293
  style: [styles.accountEmail, {
275
294
  color: colors.textSecondary
276
295
  }],
277
296
  numberOfLines: 1,
278
- children: row.secondary
297
+ children: row.email
279
298
  }) : null]
280
299
  }), isBusy ? /*#__PURE__*/_jsx(ActivityIndicator, {
281
300
  color: colors.primary,
282
301
  size: "small"
283
- }) : row.isActive ? /*#__PURE__*/_jsx(Ionicons, {
302
+ }) : row.isCurrent ? /*#__PURE__*/_jsx(Ionicons, {
284
303
  name: "checkmark",
285
304
  size: 20,
286
305
  color: colors.primary
287
306
  }) : isRemoving ? /*#__PURE__*/_jsx(ActivityIndicator, {
288
307
  color: colors.textSecondary,
289
308
  size: "small"
290
- }) : /*#__PURE__*/_jsx(TouchableOpacity, {
309
+ }) : sessionId ? /*#__PURE__*/_jsx(TouchableOpacity, {
291
310
  accessibilityRole: "button",
292
311
  accessibilityLabel: t('accountMenu.signOutAccount', {
293
312
  name: row.displayName
294
313
  }) || `Sign out ${row.displayName}`,
295
- onPress: () => handleRemove(row.sessionId),
314
+ onPress: () => handleRemove(sessionId),
296
315
  disabled: isSwitching || removingSessionId !== null,
297
316
  activeOpacity: 0.6,
298
317
  hitSlop: {
@@ -307,8 +326,8 @@ const AccountMenu = ({
307
326
  size: 18,
308
327
  color: colors.textSecondary
309
328
  })
310
- })]
311
- }, `account-${row.sessionId}`);
329
+ }) : null]
330
+ }, `account-${row.accountId}`);
312
331
  }), isSwitching ? /*#__PURE__*/_jsxs(View, {
313
332
  style: styles.switchingRow,
314
333
  children: [/*#__PURE__*/_jsx(ActivityIndicator, {
@@ -386,7 +405,7 @@ const AccountMenu = ({
386
405
  }],
387
406
  children: t('common.actions.signOut') || 'Sign out'
388
407
  })]
389
- }), rows.length > 1 ? /*#__PURE__*/_jsxs(TouchableOpacity, {
408
+ }), deviceCount > 1 ? /*#__PURE__*/_jsxs(TouchableOpacity, {
390
409
  accessibilityRole: "menuitem",
391
410
  accessibilityLabel: t('accountMenu.signOutAll') || 'Sign out of all accounts',
392
411
  onPress: () => signOutAllDialog.open(),
@@ -502,6 +521,9 @@ const styles = StyleSheet.create({
502
521
  paddingVertical: 10,
503
522
  gap: 10
504
523
  },
524
+ childRow: {
525
+ paddingLeft: 34
526
+ },
505
527
  rowDisabled: {
506
528
  opacity: 0.4
507
529
  },
@@ -509,13 +531,29 @@ const styles = StyleSheet.create({
509
531
  flex: 1,
510
532
  minWidth: 0
511
533
  },
534
+ nameRow: {
535
+ flexDirection: 'row',
536
+ alignItems: 'center',
537
+ gap: 6
538
+ },
512
539
  accountName: {
513
540
  fontSize: 13,
514
- fontWeight: '500'
541
+ fontWeight: '500',
542
+ flexShrink: 1
515
543
  },
516
544
  accountNameActive: {
517
545
  fontWeight: '600'
518
546
  },
547
+ roleBadge: {
548
+ paddingHorizontal: 6,
549
+ paddingVertical: 1,
550
+ borderRadius: 8
551
+ },
552
+ roleBadgeText: {
553
+ fontSize: 10,
554
+ fontWeight: '600',
555
+ textTransform: 'capitalize'
556
+ },
519
557
  accountEmail: {
520
558
  fontSize: 11,
521
559
  marginTop: 1
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","View","Text","TouchableOpacity","StyleSheet","ScrollView","Modal","Pressable","Platform","ActivityIndicator","Ionicons","toast","useDialogControl","Dialog","Divider","useTheme","Avatar","useOxy","useI18n","isDev","logger","loggerUtil","buildAccountRows","useDeviceAccounts","jsx","_jsx","jsxs","_jsxs","isWeb","OS","PANEL_WIDTH","AccountMenu","open","onClose","onNavigateManage","onAddAccount","anchor","onBeforeSessionChange","activeSessionId","switchSession","logout","logoutAll","removeSession","t","bloomTheme","colors","accounts","deviceAccounts","busySessionId","setBusySessionId","removingSessionId","setRemovingSessionId","signingOut","setSigningOut","signingOutAll","setSigningOutAll","signOutDialog","signOutAllDialog","containerRef","rows","built","current","filter","row","isActive","others","isSwitching","handleSwitch","sessionId","success","error","warn","component","handleRemove","performSignOut","performSignOutAll","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","overlayStyles","styles","webOverlay","nativeOverlay","anchorStyle","top","bottom","left","right","panelStyles","panelBase","panelWeb","backgroundColor","background","borderColor","border","panelNative","actionDisabled","content","ref","onPress","style","accessibilityRole","accessibilityLabel","children","scroll","contentContainerStyle","scrollContent","showsVerticalScrollIndicator","map","isBusy","isRemoving","displayName","accessibilityState","selected","disabled","activeOpacity","accountRow","primarySubtle","rowDisabled","uri","avatarUri","name","size","accountInfo","accountName","color","text","accountNameActive","numberOfLines","secondary","accountEmail","textSecondary","primary","hitSlop","rowSignOutButton","switchingRow","switchingText","spacing","actionRow","icon","actionText","length","visible","transparent","animationType","onRequestClose","control","title","description","actions","label","create","flex","position","justifyContent","borderRadius","shadowColor","shadowOpacity","shadowRadius","shadowOffset","width","height","elevation","overflow","maxHeight","borderWidth","marginHorizontal","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","paddingBottom","flexGrow","paddingVertical","flexDirection","alignItems","paddingHorizontal","gap","opacity","minWidth","fontSize","fontWeight","marginTop"],"sourceRoot":"../../../../src","sources":["ui/components/AccountMenu.tsx"],"mappings":";;AACA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SACIC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,iBAAiB,QAEd,cAAc;AACrB,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,KAAK,EAAEC,gBAAgB,EAAEC,MAAM,QAAQ,cAAc;AAC9D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,OAAOC,MAAM,MAAM,aAAU;AAC7B,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,KAAK,EAAEC,MAAM,IAAIC,UAAU,QAAQ,aAAa;AACzD,SAASC,gBAAgB,QAAyB,sBAAmB;AACrE,SAASC,iBAAiB,QAAQ,+BAA4B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAkCA,MAAMC,KAAK,GAAGpB,QAAQ,CAACqB,EAAE,KAAK,KAAK;;AAEnC;AACA;AACA,MAAMC,WAAW,GAAG,GAAG;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAuC,GAAGA,CAAC;EAC7CC,IAAI;EACJC,OAAO;EACPC,gBAAgB;EAChBC,YAAY;EACZC,MAAM;EACNC;AACJ,CAAC,KAAK;EACF,MAAM;IACFC,eAAe;IACfC,aAAa;IACbC,MAAM;IACNC,SAAS;IACTC;EACJ,CAAC,GAAGzB,MAAM,CAAC,CAAC;EACZ,MAAM;IAAE0B;EAAE,CAAC,GAAGzB,OAAO,CAAC,CAAC;EACvB,MAAM0B,UAAU,GAAG7B,QAAQ,CAAC,CAAC;EAC7B,MAAM8B,MAAM,GAAGD,UAAU,CAACC,MAAM;;EAEhC;EACA;EACA;EACA;EACA;EACA,MAAM;IAAEC,QAAQ,EAAEC;EAAe,CAAC,GAAGxB,iBAAiB,CAAC,CAAC;EAExD,MAAM,CAACyB,aAAa,EAAEC,gBAAgB,CAAC,GAAGjD,QAAQ,CAAgB,IAAI,CAAC;EACvE,MAAM,CAACkD,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGnD,QAAQ,CAAgB,IAAI,CAAC;EAC/E,MAAM,CAACoD,UAAU,EAAEC,aAAa,CAAC,GAAGrD,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACsD,aAAa,EAAEC,gBAAgB,CAAC,GAAGvD,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAMwD,aAAa,GAAG5C,gBAAgB,CAAC,CAAC;EACxC,MAAM6C,gBAAgB,GAAG7C,gBAAgB,CAAC,CAAC;EAE3C,MAAM8C,YAAY,GAAG3D,MAAM,CAAc,IAAI,CAAC;;EAE9C;EACA;EACA,MAAM4D,IAAI,GAAG7D,OAAO,CAAe,MAAM;IACrC,MAAM8D,KAAK,GAAGtC,gBAAgB,CAAC;MAAEwB,QAAQ,EAAEC;IAAe,CAAC,CAAC;IAC5D,MAAMc,OAAO,GAAGD,KAAK,CAACE,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACC,QAAQ,CAAC;IACnD,MAAMC,MAAM,GAAGL,KAAK,CAACE,MAAM,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACC,QAAQ,CAAC;IACnD,OAAO,CAAC,GAAGH,OAAO,EAAE,GAAGI,MAAM,CAAC;EAClC,CAAC,EAAE,CAAClB,cAAc,CAAC,CAAC;EAEpB,MAAMmB,WAAW,GAAGlB,aAAa,KAAK,IAAI;;EAE1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMmB,YAAY,GAAGvE,WAAW,CAAC,MAAOwE,SAAiB,IAAK;IAC1D,IAAIA,SAAS,KAAK9B,eAAe,IAAIU,aAAa,EAAE;MAChD;IACJ;IACAC,gBAAgB,CAACmB,SAAS,CAAC;IAC3B,IAAI;MACA,MAAM/B,qBAAqB,GAAG,CAAC;MAC/B,MAAME,aAAa,CAAC6B,SAAS,CAAC;MAC9BzD,KAAK,CAAC0D,OAAO,CAAC1B,CAAC,CAAC,sCAAsC,CAAC,IAAI,kBAAkB,CAAC;MAC9EV,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,OAAOqC,KAAK,EAAE;MACZ,IAAI,CAACnD,KAAK,CAAC,CAAC,EAAE;QACVE,UAAU,CAACkD,IAAI,CAAC,uBAAuB,EAAE;UAAEC,SAAS,EAAE;QAAc,CAAC,EAAEF,KAAgB,CAAC;MAC5F;MACA3D,KAAK,CAAC2D,KAAK,CAAC3B,CAAC,CAAC,qCAAqC,CAAC,IAAI,0BAA0B,CAAC;IACvF,CAAC,SAAS;MACNM,gBAAgB,CAAC,IAAI,CAAC;IAC1B;EACJ,CAAC,EAAE,CAACX,eAAe,EAAEU,aAAa,EAAET,aAAa,EAAEI,CAAC,EAAEV,OAAO,EAAEI,qBAAqB,CAAC,CAAC;;EAEtF;EACA;EACA;EACA;EACA;EACA,MAAMoC,YAAY,GAAG7E,WAAW,CAAC,MAAOwE,SAAiB,IAAK;IAC1D,IAAIA,SAAS,KAAK9B,eAAe,IAAIY,iBAAiB,EAAE;MACpD;IACJ;IACAC,oBAAoB,CAACiB,SAAS,CAAC;IAC/B,IAAI;MACA,MAAM1B,aAAa,CAAC0B,SAAS,CAAC;MAC9BzD,KAAK,CAAC0D,OAAO,CAAC1B,CAAC,CAAC,0BAA0B,CAAC,IAAI,YAAY,CAAC;IAChE,CAAC,CAAC,OAAO2B,KAAK,EAAE;MACZjD,UAAU,CAACkD,IAAI,CAAC,uBAAuB,EAAE;QAAEC,SAAS,EAAE;MAAc,CAAC,EAAEF,KAAgB,CAAC;MACxF3D,KAAK,CAAC2D,KAAK,CAAC3B,CAAC,CAAC,6BAA6B,CAAC,IAAI,oBAAoB,CAAC;IACzE,CAAC,SAAS;MACNQ,oBAAoB,CAAC,IAAI,CAAC;IAC9B;EACJ,CAAC,EAAE,CAACb,eAAe,EAAEY,iBAAiB,EAAER,aAAa,EAAEC,CAAC,CAAC,CAAC;EAE1D,MAAM+B,cAAc,GAAG9E,WAAW,CAAC,YAAY;IAC3C,IAAIwD,UAAU,EAAE;MACZ;IACJ;IACAC,aAAa,CAAC,IAAI,CAAC;IACnB,IAAI;MACA,MAAMhB,qBAAqB,GAAG,CAAC;MAC/B,MAAMG,MAAM,CAAC,CAAC;MACd7B,KAAK,CAAC0D,OAAO,CAAC1B,CAAC,CAAC,0BAA0B,CAAC,IAAI,YAAY,CAAC;MAC5DV,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,OAAOqC,KAAK,EAAE;MACZjD,UAAU,CAACkD,IAAI,CAAC,iBAAiB,EAAE;QAAEC,SAAS,EAAE;MAAc,CAAC,EAAEF,KAAgB,CAAC;MAClF3D,KAAK,CAAC2D,KAAK,CAAC3B,CAAC,CAAC,6BAA6B,CAAC,IAAI,oBAAoB,CAAC;IACzE,CAAC,SAAS;MACNU,aAAa,CAAC,KAAK,CAAC;IACxB;EACJ,CAAC,EAAE,CAACD,UAAU,EAAEZ,MAAM,EAAEG,CAAC,EAAEV,OAAO,EAAEI,qBAAqB,CAAC,CAAC;EAE3D,MAAMsC,iBAAiB,GAAG/E,WAAW,CAAC,YAAY;IAC9C,IAAI0D,aAAa,EAAE;MACf;IACJ;IACAC,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACA,MAAMlB,qBAAqB,GAAG,CAAC;MAC/B,MAAMI,SAAS,CAAC,CAAC;MACjB9B,KAAK,CAAC0D,OAAO,CAAC1B,CAAC,CAAC,0CAA0C,CAAC,IAAI,4BAA4B,CAAC;MAC5FV,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,OAAOqC,KAAK,EAAE;MACZjD,UAAU,CAACkD,IAAI,CAAC,qBAAqB,EAAE;QAAEC,SAAS,EAAE;MAAc,CAAC,EAAEF,KAAgB,CAAC;MACtF3D,KAAK,CAAC2D,KAAK,CAAC3B,CAAC,CAAC,gCAAgC,CAAC,IAAI,oCAAoC,CAAC;IAC5F,CAAC,SAAS;MACNY,gBAAgB,CAAC,KAAK,CAAC;IAC3B;EACJ,CAAC,EAAE,CAACD,aAAa,EAAEb,SAAS,EAAEE,CAAC,EAAEV,OAAO,EAAEI,qBAAqB,CAAC,CAAC;;EAEjE;EACAxC,SAAS,CAAC,MAAM;IACZ,IAAI,CAACmC,IAAI,IAAI,CAACJ,KAAK,IAAI,OAAOgD,QAAQ,KAAK,WAAW,EAAE;MACpD,OAAOC,SAAS;IACpB;IACA,MAAMC,KAAK,GAAIC,KAAoB,IAAK;MACpC,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QACxBD,KAAK,CAACE,eAAe,CAAC,CAAC;QACvBhD,OAAO,CAAC,CAAC;MACb;IACJ,CAAC;IACD2C,QAAQ,CAACM,gBAAgB,CAAC,SAAS,EAAEJ,KAAK,EAAE,IAAI,CAAC;IACjD,OAAO,MAAMF,QAAQ,CAACO,mBAAmB,CAAC,SAAS,EAAEL,KAAK,EAAE,IAAI,CAAC;EACrE,CAAC,EAAE,CAAC9C,IAAI,EAAEC,OAAO,CAAC,CAAC;EAEnB,IAAI,CAACD,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,MAAMoD,aAAwB,GAAGxD,KAAK,GAChCyD,MAAM,CAACC,UAAU,GACjBD,MAAM,CAACE,aAAa;;EAE1B;EACA;EACA;EACA,MAAMC,WAAsB,GAAGpD,MAAM,GAC/B;IACE,IAAIA,MAAM,CAACqD,GAAG,KAAKZ,SAAS,GAAG;MAAEY,GAAG,EAAErD,MAAM,CAACqD;IAAI,CAAC,GAAG,IAAI,CAAC;IAC1D,IAAIrD,MAAM,CAACsD,MAAM,KAAKb,SAAS,GAAG;MAAEa,MAAM,EAAEtD,MAAM,CAACsD;IAAO,CAAC,GAAG,IAAI,CAAC;IACnE,IAAItD,MAAM,CAACuD,IAAI,KAAKd,SAAS,GAAG;MAAEc,IAAI,EAAEvD,MAAM,CAACuD;IAAK,CAAC,GAAG,IAAI,CAAC;IAC7D,IAAIvD,MAAM,CAACwD,KAAK,KAAKf,SAAS,GAAG;MAAEe,KAAK,EAAExD,MAAM,CAACwD;IAAM,CAAC,GAAG,IAAI;EACnE,CAAC,GACC;IAAEH,GAAG,EAAE,EAAE;IAAEG,KAAK,EAAE;EAAG,CAAC;EAE5B,MAAMC,WAAwB,GAAGjE,KAAK,GAChC,CACEyD,MAAM,CAACS,SAAS,EAChBT,MAAM,CAACU,QAAQ,EACfP,WAAW,EACX;IAAEQ,eAAe,EAAEnD,MAAM,CAACoD,UAAU;IAAEC,WAAW,EAAErD,MAAM,CAACsD;EAAO,CAAC,CACrE,GACC,CACEd,MAAM,CAACS,SAAS,EAChBT,MAAM,CAACe,WAAW,EAClB;IAAEJ,eAAe,EAAEnD,MAAM,CAACoD;EAAW,CAAC,CACzC;EAEL,MAAMI,cAAc,GAAGnC,WAAW,IAAId,UAAU,IAAIE,aAAa;EAEjE,MAAMgD,OAAO,gBACT7E,IAAA,CAAClB,SAAS;IACNgG,GAAG,EAAE7C;IACL;IACA;IACA;IACA;IAAA;IACA8C,OAAO,EAAEA,CAAA,KAAM3B,SAAU;IACzB4B,KAAK,EAAEZ,WAAY;IACnBa,iBAAiB,EAAC,MAAM;IACxBC,kBAAkB,EAAEhE,CAAC,CAAC,mBAAmB,CAAC,IAAI,cAAe;IAAAiE,QAAA,eAE7DjF,KAAA,CAACtB,UAAU;MACPoG,KAAK,EAAEpB,MAAM,CAACwB,MAAO;MACrBC,qBAAqB,EAAEzB,MAAM,CAAC0B,aAAc;MAC5CC,4BAA4B,EAAE,KAAM;MAAAJ,QAAA,GAGnCjD,IAAI,CAACsD,GAAG,CAAElD,GAAG,IAAK;QACf,MAAMmD,MAAM,GAAGlE,aAAa,KAAKe,GAAG,CAACK,SAAS;QAC9C,MAAM+C,UAAU,GAAGjE,iBAAiB,KAAKa,GAAG,CAACK,SAAS;QACtD,oBACIzC,KAAA,CAACxB,gBAAgB;UAEbuG,iBAAiB,EAAC,UAAU;UAC5BC,kBAAkB,EAAE5C,GAAG,CAACqD,WAAY;UACpCC,kBAAkB,EAAE;YAAEC,QAAQ,EAAEvD,GAAG,CAACC;UAAS,CAAE;UAC/CwC,OAAO,EAAEA,CAAA,KAAMrC,YAAY,CAACJ,GAAG,CAACK,SAAS,CAAE;UAC3CmD,QAAQ,EAAExD,GAAG,CAACC,QAAQ,IAAIkD,MAAM,IAAIhD,WAAY;UAChDsD,aAAa,EAAE,GAAI;UACnBf,KAAK,EAAE,CACHpB,MAAM,CAACoC,UAAU,EACjB1D,GAAG,CAACC,QAAQ,IAAI;YAAEgC,eAAe,EAAEnD,MAAM,CAAC6E;UAAc,CAAC,EACzDxD,WAAW,IAAI,CAACH,GAAG,CAACC,QAAQ,IAAIqB,MAAM,CAACsC,WAAW,CACpD;UAAAf,QAAA,gBAEFnF,IAAA,CAACT,MAAM;YACH4G,GAAG,EAAE7D,GAAG,CAAC8D,SAAU;YACnBC,IAAI,EAAE/D,GAAG,CAACqD,WAAY;YACtBW,IAAI,EAAEhE,GAAG,CAACC,QAAQ,GAAG,EAAE,GAAG;UAAG,CAChC,CAAC,eACFrC,KAAA,CAAC1B,IAAI;YAACwG,KAAK,EAAEpB,MAAM,CAAC2C,WAAY;YAAApB,QAAA,gBAC5BnF,IAAA,CAACvB,IAAI;cACDuG,KAAK,EAAE,CACHpB,MAAM,CAAC4C,WAAW,EAClB;gBAAEC,KAAK,EAAErF,MAAM,CAACsF;cAAK,CAAC,EACtBpE,GAAG,CAACC,QAAQ,IAAIqB,MAAM,CAAC+C,iBAAiB,CAC1C;cACFC,aAAa,EAAE,CAAE;cAAAzB,QAAA,EAEhB7C,GAAG,CAACqD;YAAW,CACd,CAAC,EACNrD,GAAG,CAACuE,SAAS,gBACV7G,IAAA,CAACvB,IAAI;cACDuG,KAAK,EAAE,CAACpB,MAAM,CAACkD,YAAY,EAAE;gBAAEL,KAAK,EAAErF,MAAM,CAAC2F;cAAc,CAAC,CAAE;cAC9DH,aAAa,EAAE,CAAE;cAAAzB,QAAA,EAEhB7C,GAAG,CAACuE;YAAS,CACZ,CAAC,GACP,IAAI;UAAA,CACN,CAAC,EACNpB,MAAM,gBACHzF,IAAA,CAAChB,iBAAiB;YAACyH,KAAK,EAAErF,MAAM,CAAC4F,OAAQ;YAACV,IAAI,EAAC;UAAO,CAAE,CAAC,GACzDhE,GAAG,CAACC,QAAQ,gBACZvC,IAAA,CAACf,QAAQ;YAACoH,IAAI,EAAC,WAAW;YAACC,IAAI,EAAE,EAAG;YAACG,KAAK,EAAErF,MAAM,CAAC4F;UAAQ,CAAE,CAAC,GAC9DtB,UAAU,gBACV1F,IAAA,CAAChB,iBAAiB;YAACyH,KAAK,EAAErF,MAAM,CAAC2F,aAAc;YAACT,IAAI,EAAC;UAAO,CAAE,CAAC,gBAE/DtG,IAAA,CAACtB,gBAAgB;YACbuG,iBAAiB,EAAC,QAAQ;YAC1BC,kBAAkB,EACdhE,CAAC,CAAC,4BAA4B,EAAE;cAAEmF,IAAI,EAAE/D,GAAG,CAACqD;YAAY,CAAC,CAAC,IACvD,YAAYrD,GAAG,CAACqD,WAAW,EACjC;YACDZ,OAAO,EAAEA,CAAA,KAAM/B,YAAY,CAACV,GAAG,CAACK,SAAS,CAAE;YAC3CmD,QAAQ,EAAErD,WAAW,IAAIhB,iBAAiB,KAAK,IAAK;YACpDsE,aAAa,EAAE,GAAI;YACnBkB,OAAO,EAAE;cAAEjD,GAAG,EAAE,CAAC;cAAEC,MAAM,EAAE,CAAC;cAAEC,IAAI,EAAE,CAAC;cAAEC,KAAK,EAAE;YAAE,CAAE;YAClDa,KAAK,EAAEpB,MAAM,CAACsD,gBAAiB;YAAA/B,QAAA,eAE/BnF,IAAA,CAACf,QAAQ;cACLoH,IAAI,EAAC,iBAAiB;cACtBC,IAAI,EAAE,EAAG;cACTG,KAAK,EAAErF,MAAM,CAAC2F;YAAc,CAC/B;UAAC,CACY,CACrB;QAAA,GA/DI,WAAWzE,GAAG,CAACK,SAAS,EAgEf,CAAC;MAE3B,CAAC,CAAC,EAGDF,WAAW,gBACRvC,KAAA,CAAC1B,IAAI;QAACwG,KAAK,EAAEpB,MAAM,CAACuD,YAAa;QAAAhC,QAAA,gBAC7BnF,IAAA,CAAChB,iBAAiB;UAACyH,KAAK,EAAErF,MAAM,CAAC2F,aAAc;UAACT,IAAI,EAAC;QAAO,CAAE,CAAC,eAC/DtG,IAAA,CAACvB,IAAI;UAACuG,KAAK,EAAE,CAACpB,MAAM,CAACwD,aAAa,EAAE;YAAEX,KAAK,EAAErF,MAAM,CAAC2F;UAAc,CAAC,CAAE;UAAA5B,QAAA,EAChEjE,CAAC,CAAC,uBAAuB,CAAC,IAAI;QAAoB,CACjD,CAAC;MAAA,CACL,CAAC,GACP,IAAI,eAERlB,IAAA,CAACX,OAAO;QAACoH,KAAK,EAAErF,MAAM,CAACsD,MAAO;QAAC2C,OAAO,EAAE;MAAE,CAAE,CAAC,eAG7CnH,KAAA,CAACxB,gBAAgB;QACbuG,iBAAiB,EAAC,UAAU;QAC5BC,kBAAkB,EAAEhE,CAAC,CAAC,wBAAwB,CAAC,IAAI,qBAAsB;QACzE6D,OAAO,EAAEA,CAAA,KAAM;UACXvE,OAAO,CAAC,CAAC;UACTE,YAAY,CAAC,CAAC;QAClB,CAAE;QACFoF,QAAQ,EAAElB,cAAe;QACzBmB,aAAa,EAAE,GAAI;QACnBf,KAAK,EAAE,CAACpB,MAAM,CAAC0D,SAAS,EAAE1C,cAAc,IAAIhB,MAAM,CAACsC,WAAW,CAAE;QAAAf,QAAA,gBAEhEnF,IAAA,CAACf,QAAQ;UAACoH,IAAI,EAAC,oBAAoB;UAACC,IAAI,EAAE,EAAG;UAACG,KAAK,EAAErF,MAAM,CAACmG;QAAK,CAAE,CAAC,eACpEvH,IAAA,CAACvB,IAAI;UAACuG,KAAK,EAAE,CAACpB,MAAM,CAAC4D,UAAU,EAAE;YAAEf,KAAK,EAAErF,MAAM,CAACsF;UAAK,CAAC,CAAE;UAAAvB,QAAA,EACpDjE,CAAC,CAAC,wBAAwB,CAAC,IAAI;QAAqB,CACnD,CAAC;MAAA,CACO,CAAC,eAEnBlB,IAAA,CAACX,OAAO;QAACoH,KAAK,EAAErF,MAAM,CAACsD,MAAO;QAAC2C,OAAO,EAAE;MAAE,CAAE,CAAC,eAG7CnH,KAAA,CAACxB,gBAAgB;QACbuG,iBAAiB,EAAC,UAAU;QAC5BC,kBAAkB,EAAEhE,CAAC,CAAC,oBAAoB,CAAC,IAAI,yBAA0B;QACzE6D,OAAO,EAAEA,CAAA,KAAM;UACXvE,OAAO,CAAC,CAAC;UACTC,gBAAgB,CAAC,CAAC;QACtB,CAAE;QACFqF,QAAQ,EAAElB,cAAe;QACzBmB,aAAa,EAAE,GAAI;QACnBf,KAAK,EAAE,CAACpB,MAAM,CAAC0D,SAAS,EAAE1C,cAAc,IAAIhB,MAAM,CAACsC,WAAW,CAAE;QAAAf,QAAA,gBAEhEnF,IAAA,CAACf,QAAQ;UAACoH,IAAI,EAAC,kBAAkB;UAACC,IAAI,EAAE,EAAG;UAACG,KAAK,EAAErF,MAAM,CAACmG;QAAK,CAAE,CAAC,eAClEvH,IAAA,CAACvB,IAAI;UAACuG,KAAK,EAAE,CAACpB,MAAM,CAAC4D,UAAU,EAAE;YAAEf,KAAK,EAAErF,MAAM,CAACsF;UAAK,CAAC,CAAE;UAAAvB,QAAA,EACpDjE,CAAC,CAAC,oBAAoB,CAAC,IAAI;QAAyB,CACnD,CAAC;MAAA,CACO,CAAC,eAGnBhB,KAAA,CAACxB,gBAAgB;QACbuG,iBAAiB,EAAC,UAAU;QAC5BC,kBAAkB,EAAEhE,CAAC,CAAC,wBAAwB,CAAC,IAAI,UAAW;QAC9D6D,OAAO,EAAEA,CAAA,KAAMhD,aAAa,CAACxB,IAAI,CAAC,CAAE;QACpCuF,QAAQ,EAAElB,cAAe;QACzBmB,aAAa,EAAE,GAAI;QACnBf,KAAK,EAAE,CAACpB,MAAM,CAAC0D,SAAS,EAAE1C,cAAc,IAAIhB,MAAM,CAACsC,WAAW,CAAE;QAAAf,QAAA,GAE/DxD,UAAU,gBACP3B,IAAA,CAAChB,iBAAiB;UAACyH,KAAK,EAAErF,MAAM,CAACyB,KAAM;UAACyD,IAAI,EAAC;QAAO,CAAE,CAAC,gBAEvDtG,IAAA,CAACf,QAAQ;UAACoH,IAAI,EAAC,iBAAiB;UAACC,IAAI,EAAE,EAAG;UAACG,KAAK,EAAErF,MAAM,CAACyB;QAAM,CAAE,CACpE,eACD7C,IAAA,CAACvB,IAAI;UAACuG,KAAK,EAAE,CAACpB,MAAM,CAAC4D,UAAU,EAAE;YAAEf,KAAK,EAAErF,MAAM,CAACyB;UAAM,CAAC,CAAE;UAAAsC,QAAA,EACrDjE,CAAC,CAAC,wBAAwB,CAAC,IAAI;QAAU,CACxC,CAAC;MAAA,CACO,CAAC,EAGlBgB,IAAI,CAACuF,MAAM,GAAG,CAAC,gBACZvH,KAAA,CAACxB,gBAAgB;QACbuG,iBAAiB,EAAC,UAAU;QAC5BC,kBAAkB,EAAEhE,CAAC,CAAC,wBAAwB,CAAC,IAAI,0BAA2B;QAC9E6D,OAAO,EAAEA,CAAA,KAAM/C,gBAAgB,CAACzB,IAAI,CAAC,CAAE;QACvCuF,QAAQ,EAAElB,cAAe;QACzBmB,aAAa,EAAE,GAAI;QACnBf,KAAK,EAAE,CAACpB,MAAM,CAAC0D,SAAS,EAAE1C,cAAc,IAAIhB,MAAM,CAACsC,WAAW,CAAE;QAAAf,QAAA,GAE/DtD,aAAa,gBACV7B,IAAA,CAAChB,iBAAiB;UAACyH,KAAK,EAAErF,MAAM,CAACyB,KAAM;UAACyD,IAAI,EAAC;QAAO,CAAE,CAAC,gBAEvDtG,IAAA,CAACf,QAAQ;UAACoH,IAAI,EAAC,iBAAiB;UAACC,IAAI,EAAE,EAAG;UAACG,KAAK,EAAErF,MAAM,CAACyB;QAAM,CAAE,CACpE,eACD7C,IAAA,CAACvB,IAAI;UAACuG,KAAK,EAAE,CAACpB,MAAM,CAAC4D,UAAU,EAAE;YAAEf,KAAK,EAAErF,MAAM,CAACyB;UAAM,CAAC,CAAE;UAAAsC,QAAA,EACrDjE,CAAC,CAAC,wBAAwB,CAAC,IAAI;QAA0B,CACxD,CAAC;MAAA,CACO,CAAC,GACnB,IAAI;IAAA,CACA;EAAC,CACN,CACd;EAED,oBACIhB,KAAA,CAACrB,KAAK;IACF6I,OAAO,EAAEnH,IAAK;IACdoH,WAAW;IACXC,aAAa,EAAEzH,KAAK,GAAG,MAAM,GAAG,OAAQ;IACxC0H,cAAc,EAAErH,OAAQ;IAAA2E,QAAA,gBAExBnF,IAAA,CAAClB,SAAS;MACNmG,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAEhE,CAAC,CAAC,sBAAsB,CAAC,IAAI,OAAQ;MACzD6D,OAAO,EAAEvE,OAAQ;MACjBwE,KAAK,EAAErB,aAAc;MAAAwB,QAAA,EAUpBN;IAAO,CACD,CAAC,eAEZ7E,IAAA,CAACZ,MAAM;MACH0I,OAAO,EAAE/F,aAAc;MACvBgG,KAAK,EAAE7G,CAAC,CAAC,wBAAwB,CAAC,IAAI,UAAW;MACjD8G,WAAW,EAAE9G,CAAC,CAAC,yBAAyB,CAAC,IAAI,oCAAqC;MAClF+G,OAAO,EAAE,CACL;QACIC,KAAK,EAAEhH,CAAC,CAAC,wBAAwB,CAAC,IAAI,UAAU;QAChDuF,KAAK,EAAE,aAAa;QACpB1B,OAAO,EAAE9B;MACb,CAAC,EACD;QAAEiF,KAAK,EAAEhH,CAAC,CAAC,eAAe,CAAC,IAAI,QAAQ;QAAEuF,KAAK,EAAE;MAAS,CAAC;IAC5D,CACL,CAAC,eACFzG,IAAA,CAACZ,MAAM;MACH0I,OAAO,EAAE9F,gBAAiB;MAC1B+F,KAAK,EAAE7G,CAAC,CAAC,wBAAwB,CAAC,IAAI,0BAA2B;MACjE8G,WAAW,EAAE9G,CAAC,CAAC,4BAA4B,CAAC,IAAI,oDAAqD;MACrG+G,OAAO,EAAE,CACL;QACIC,KAAK,EAAEhH,CAAC,CAAC,wBAAwB,CAAC,IAAI,0BAA0B;QAChEuF,KAAK,EAAE,aAAa;QACpB1B,OAAO,EAAE7B;MACb,CAAC,EACD;QAAEgF,KAAK,EAAEhH,CAAC,CAAC,eAAe,CAAC,IAAI,QAAQ;QAAEuF,KAAK,EAAE;MAAS,CAAC;IAC5D,CACL,CAAC;EAAA,CACC,CAAC;AAEhB,CAAC;AAED,MAAM7C,MAAM,GAAGjF,UAAU,CAACwJ,MAAM,CAAC;EAC7BtE,UAAU,EAAE;IACRuE,IAAI,EAAE,CAAC;IACP7D,eAAe,EAAE,aAAa;IAC9B;IACA;IACA;IACA;IACA8D,QAAQ,EAAE;EACd,CAAC;EACDvE,aAAa,EAAE;IACXsE,IAAI,EAAE,CAAC;IACP7D,eAAe,EAAE,kBAAkB;IACnC+D,cAAc,EAAE;EACpB,CAAC;EACDjE,SAAS,EAAE;IACPkE,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,MAAM;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,EAAE;IAChBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,SAAS,EAAE,EAAE;IACbC,QAAQ,EAAE;EACd,CAAC;EACDzE,QAAQ,EAAE;IACN+D,QAAQ,EAAE,UAAU;IACpBO,KAAK,EAAEvI,WAAW;IAClB2I,SAAS,EAAE,KAAK;IAChBC,WAAW,EAAE;EACjB,CAAC;EACDtE,WAAW,EAAE;IACTuE,gBAAgB,EAAE,CAAC;IACnBC,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,sBAAsB,EAAE,CAAC;IACzBC,uBAAuB,EAAE,CAAC;IAC1BC,aAAa,EAAE,EAAE;IACjBP,SAAS,EAAE;EACf,CAAC;EACD5D,MAAM,EAAE;IACJoE,QAAQ,EAAE;EACd,CAAC;EACDlE,aAAa,EAAE;IACXmE,eAAe,EAAE;EACrB,CAAC;EACDzD,UAAU,EAAE;IACR0D,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE,EAAE;IACrBH,eAAe,EAAE,EAAE;IACnBI,GAAG,EAAE;EACT,CAAC;EACD3D,WAAW,EAAE;IACT4D,OAAO,EAAE;EACb,CAAC;EACDvD,WAAW,EAAE;IACT6B,IAAI,EAAE,CAAC;IACP2B,QAAQ,EAAE;EACd,CAAC;EACDvD,WAAW,EAAE;IACTwD,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EAChB,CAAC;EACDtD,iBAAiB,EAAE;IACfsD,UAAU,EAAE;EAChB,CAAC;EACDnD,YAAY,EAAE;IACVkD,QAAQ,EAAE,EAAE;IACZE,SAAS,EAAE;EACf,CAAC;EACDhD,gBAAgB,EAAE;IACd0B,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVc,UAAU,EAAE,QAAQ;IACpBrB,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAE,EAAE;IAChBuB,OAAO,EAAE;EACb,CAAC;EACD3C,YAAY,EAAE;IACVuC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBrB,cAAc,EAAE,QAAQ;IACxBmB,eAAe,EAAE,CAAC;IAClBI,GAAG,EAAE;EACT,CAAC;EACDzC,aAAa,EAAE;IACX4C,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EAChB,CAAC;EACD3C,SAAS,EAAE;IACPoC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAE,EAAE;IACrBH,eAAe,EAAE,EAAE;IACnBI,GAAG,EAAE;EACT,CAAC;EACDrC,UAAU,EAAE;IACRwC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EAChB;AACJ,CAAC,CAAC;AAEF,eAAe3J,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","View","Text","TouchableOpacity","StyleSheet","ScrollView","Modal","Pressable","Platform","ActivityIndicator","Ionicons","toast","useDialogControl","Dialog","Divider","useTheme","Avatar","useOxy","useI18n","isDev","logger","loggerUtil","useSwitchableAccounts","jsx","_jsx","jsxs","_jsxs","isWeb","OS","PANEL_WIDTH","AccountMenu","open","onClose","onNavigateManage","onAddAccount","anchor","onBeforeSessionChange","switchToAccount","logout","logoutAll","removeSession","t","bloomTheme","colors","accounts","switchingAccountId","setSwitchingAccountId","removingSessionId","setRemovingSessionId","signingOut","setSigningOut","signingOutAll","setSigningOutAll","signOutDialog","signOutAllDialog","containerRef","rows","device","filter","account","onDevice","graph","current","isCurrent","others","deviceCount","length","listedAccountIds","Set","map","row","accountId","isSwitching","handleSwitch","success","error","warn","component","handleRemove","sessionId","performSignOut","performSignOutAll","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","overlayStyles","styles","webOverlay","nativeOverlay","anchorStyle","top","bottom","left","right","panelStyles","panelBase","panelWeb","backgroundColor","background","borderColor","border","panelNative","actionDisabled","content","ref","onPress","style","accessibilityRole","accessibilityLabel","children","scroll","contentContainerStyle","scrollContent","showsVerticalScrollIndicator","isBusy","isRemoving","isChild","Boolean","parentAccountId","has","role","callerMembership","displayName","accessibilityState","selected","disabled","activeOpacity","accountRow","childRow","primarySubtle","rowDisabled","uri","avatarUrl","name","size","accountInfo","nameRow","accountName","color","text","accountNameActive","numberOfLines","roleBadge","card","roleBadgeText","textSecondary","email","accountEmail","primary","hitSlop","rowSignOutButton","switchingRow","switchingText","spacing","actionRow","icon","actionText","visible","transparent","animationType","onRequestClose","control","title","description","actions","label","create","flex","position","justifyContent","borderRadius","shadowColor","shadowOpacity","shadowRadius","shadowOffset","width","height","elevation","overflow","maxHeight","borderWidth","marginHorizontal","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","paddingBottom","flexGrow","paddingVertical","flexDirection","alignItems","paddingHorizontal","gap","paddingLeft","opacity","minWidth","fontSize","fontWeight","flexShrink","textTransform","marginTop"],"sourceRoot":"../../../../src","sources":["ui/components/AccountMenu.tsx"],"mappings":"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","ignoreList":[]}