@oxyhq/services 28.0.0 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/NOTICE +10 -9
  2. package/README.md +65 -2
  3. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionModule.kt +178 -0
  4. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionProvider.kt +99 -0
  5. package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionStore.kt +115 -0
  6. package/expo-module.config.json +1 -0
  7. package/lib/commonjs/index.js +60 -16
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/ui/boot/runProviderColdBoot.js +7 -0
  10. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  11. package/lib/commonjs/ui/client.js +12 -7
  12. package/lib/commonjs/ui/client.js.map +1 -1
  13. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +10 -27
  14. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  15. package/lib/commonjs/ui/components/OxyAuthChooser.js +132 -44
  16. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  17. package/lib/commonjs/ui/components/OxyProvider.js +4 -2
  18. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  19. package/lib/commonjs/ui/components/SurfaceScreen.js +31 -3
  20. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  21. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +209 -84
  22. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +25 -7
  24. package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/primitives.js +35 -22
  26. package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/types.js +11 -0
  28. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  29. package/lib/commonjs/ui/context/OxyContext.js +257 -306
  30. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  31. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +27 -37
  32. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  33. package/lib/commonjs/ui/context/oxyContextHelpers.js +0 -29
  34. package/lib/commonjs/ui/context/oxyContextHelpers.js.map +1 -1
  35. package/lib/commonjs/ui/context/useOxyAccountGraph.js +6 -17
  36. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +42 -0
  38. package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -0
  39. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +0 -19
  40. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  41. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +57 -0
  42. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -0
  43. package/lib/commonjs/ui/hooks/useI18n.js +22 -3
  44. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  45. package/lib/commonjs/ui/hooks/useSessionManagement.js +46 -153
  46. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  47. package/lib/commonjs/ui/index.js +12 -7
  48. package/lib/commonjs/ui/index.js.map +1 -1
  49. package/lib/commonjs/ui/navigation/routes.js +85 -73
  50. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  51. package/lib/commonjs/ui/navigation/surfaces.js +8 -7
  52. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  53. package/lib/commonjs/ui/runtime/createOxyRuntime.js +433 -0
  54. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -0
  55. package/lib/commonjs/ui/runtime/index.js +63 -0
  56. package/lib/commonjs/ui/runtime/index.js.map +1 -0
  57. package/lib/commonjs/ui/runtime/runtimeContext.js +83 -0
  58. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -0
  59. package/lib/commonjs/ui/runtime/types.js +6 -0
  60. package/lib/commonjs/ui/runtime/types.js.map +1 -0
  61. package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js +57 -0
  62. package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js.map +1 -0
  63. package/lib/commonjs/ui/server.js +1 -2
  64. package/lib/commonjs/ui/server.js.map +1 -1
  65. package/lib/commonjs/ui/session/authStore.js +45 -9
  66. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  67. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +306 -0
  68. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -0
  69. package/lib/commonjs/ui/stores/authStore.js +154 -55
  70. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  71. package/lib/commonjs/ui/utils/avatarUtils.js +2 -36
  72. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  73. package/lib/module/index.js +16 -8
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/ui/boot/runProviderColdBoot.js +7 -0
  76. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  77. package/lib/module/ui/client.js +1 -2
  78. package/lib/module/ui/client.js.map +1 -1
  79. package/lib/module/ui/components/OxyAccountDialogScreen.js +10 -27
  80. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  81. package/lib/module/ui/components/OxyAuthChooser.js +134 -44
  82. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  83. package/lib/module/ui/components/OxyProvider.js +5 -3
  84. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  85. package/lib/module/ui/components/SurfaceScreen.js +33 -5
  86. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  87. package/lib/module/ui/components/authChooser/AccountsMenuView.js +210 -85
  88. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  89. package/lib/module/ui/components/authChooser/SignInEntryView.js +25 -7
  90. package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
  91. package/lib/module/ui/components/authChooser/primitives.js +35 -22
  92. package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
  93. package/lib/module/ui/components/authChooser/types.js +11 -0
  94. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  95. package/lib/module/ui/context/OxyContext.js +251 -303
  96. package/lib/module/ui/context/OxyContext.js.map +1 -1
  97. package/lib/module/ui/context/hooks/useAuthOperations.js +27 -37
  98. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  99. package/lib/module/ui/context/oxyContextHelpers.js +0 -28
  100. package/lib/module/ui/context/oxyContextHelpers.js.map +1 -1
  101. package/lib/module/ui/context/useOxyAccountGraph.js +6 -17
  102. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  103. package/lib/module/ui/hooks/accountDialogSnapshot.js +38 -0
  104. package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -0
  105. package/lib/module/ui/hooks/mutations/useAccountMutations.js +0 -19
  106. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  107. package/lib/module/ui/hooks/useDeviceSwitcher.js +53 -0
  108. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -0
  109. package/lib/module/ui/hooks/useI18n.js +24 -4
  110. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  111. package/lib/module/ui/hooks/useSessionManagement.js +47 -155
  112. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  113. package/lib/module/ui/index.js +1 -2
  114. package/lib/module/ui/index.js.map +1 -1
  115. package/lib/module/ui/navigation/routes.js +84 -72
  116. package/lib/module/ui/navigation/routes.js.map +1 -1
  117. package/lib/module/ui/navigation/surfaces.js +6 -6
  118. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  119. package/lib/module/ui/runtime/createOxyRuntime.js +430 -0
  120. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -0
  121. package/lib/module/ui/runtime/index.js +15 -0
  122. package/lib/module/ui/runtime/index.js.map +1 -0
  123. package/lib/module/ui/runtime/runtimeContext.js +75 -0
  124. package/lib/module/ui/runtime/runtimeContext.js.map +1 -0
  125. package/lib/module/ui/runtime/types.js +4 -0
  126. package/lib/module/ui/runtime/types.js.map +1 -0
  127. package/lib/module/ui/runtime/useRuntimeSnapshot.js +52 -0
  128. package/lib/module/ui/runtime/useRuntimeSnapshot.js.map +1 -0
  129. package/lib/module/ui/server.js +0 -1
  130. package/lib/module/ui/server.js.map +1 -1
  131. package/lib/module/ui/session/authStore.js +46 -11
  132. package/lib/module/ui/session/authStore.js.map +1 -1
  133. package/lib/module/ui/session/sharedDeviceCredentialStore.js +302 -0
  134. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -0
  135. package/lib/module/ui/stores/authStore.js +154 -55
  136. package/lib/module/ui/stores/authStore.js.map +1 -1
  137. package/lib/module/ui/utils/avatarUtils.js +2 -35
  138. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  139. package/lib/typescript/commonjs/index.d.ts +5 -3
  140. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/ui/client.d.ts +1 -2
  143. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
  149. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +3 -1
  151. package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +18 -6
  153. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +33 -1
  155. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +35 -4
  157. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +8 -12
  159. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts +0 -2
  161. package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +9 -1
  163. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +1 -3
  165. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +15 -0
  167. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
  168. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +49 -0
  170. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts +13 -0
  172. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +23 -18
  174. package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/ui/index.d.ts +1 -2
  176. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +15 -1
  178. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +144 -0
  181. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/ui/runtime/index.d.ts +16 -0
  183. package/lib/typescript/commonjs/ui/runtime/index.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +43 -0
  185. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/ui/runtime/types.d.ts +89 -0
  187. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
  189. package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/ui/server.d.ts +0 -1
  191. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/session/authStore.d.ts +60 -9
  193. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
  195. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/ui/stores/authStore.d.ts +49 -5
  197. package/lib/typescript/commonjs/ui/stores/authStore.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/ui/types/navigation.d.ts +26 -0
  199. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts +2 -10
  201. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  202. package/lib/typescript/module/index.d.ts +5 -3
  203. package/lib/typescript/module/index.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  205. package/lib/typescript/module/ui/client.d.ts +1 -2
  206. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  207. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  208. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  209. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  211. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
  212. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  213. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +3 -1
  214. package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
  215. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +18 -6
  216. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  217. package/lib/typescript/module/ui/components/authChooser/types.d.ts +33 -1
  218. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  219. package/lib/typescript/module/ui/context/OxyContext.d.ts +35 -4
  220. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  221. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +8 -12
  222. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  223. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts +0 -2
  224. package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts.map +1 -1
  225. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +9 -1
  226. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  227. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +1 -3
  228. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  229. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +15 -0
  230. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
  231. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  232. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +49 -0
  233. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
  234. package/lib/typescript/module/ui/hooks/useI18n.d.ts +13 -0
  235. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +23 -18
  237. package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
  238. package/lib/typescript/module/ui/index.d.ts +1 -2
  239. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  240. package/lib/typescript/module/ui/navigation/routes.d.ts +15 -1
  241. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  242. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  243. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +144 -0
  244. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -0
  245. package/lib/typescript/module/ui/runtime/index.d.ts +16 -0
  246. package/lib/typescript/module/ui/runtime/index.d.ts.map +1 -0
  247. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +43 -0
  248. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -0
  249. package/lib/typescript/module/ui/runtime/types.d.ts +89 -0
  250. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -0
  251. package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
  252. package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
  253. package/lib/typescript/module/ui/server.d.ts +0 -1
  254. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  255. package/lib/typescript/module/ui/session/authStore.d.ts +60 -9
  256. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  257. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
  258. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
  259. package/lib/typescript/module/ui/stores/authStore.d.ts +49 -5
  260. package/lib/typescript/module/ui/stores/authStore.d.ts.map +1 -1
  261. package/lib/typescript/module/ui/types/navigation.d.ts +26 -0
  262. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  263. package/lib/typescript/module/ui/utils/avatarUtils.d.ts +2 -10
  264. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  265. package/package.json +6 -7
  266. package/plugins/withSharedDeviceSessionProvider.js +102 -0
  267. package/plugins/withSharedDeviceSessionReader.js +57 -0
  268. package/src/__tests__/esmSourcePurity.test.ts +61 -0
  269. package/src/index.ts +31 -9
  270. package/src/ui/boot/runProviderColdBoot.ts +7 -0
  271. package/src/ui/client.ts +1 -2
  272. package/src/ui/components/OxyAccountDialogScreen.tsx +10 -29
  273. package/src/ui/components/OxyAuthChooser.tsx +149 -50
  274. package/src/ui/components/OxyProvider.tsx +7 -5
  275. package/src/ui/components/SurfaceScreen.tsx +28 -4
  276. package/src/ui/components/authChooser/AccountsMenuView.tsx +246 -96
  277. package/src/ui/components/authChooser/SignInEntryView.tsx +31 -8
  278. package/src/ui/components/authChooser/primitives.tsx +37 -23
  279. package/src/ui/components/authChooser/types.ts +34 -1
  280. package/src/ui/context/OxyContext.tsx +269 -324
  281. package/src/ui/context/hooks/useAuthOperations.ts +32 -35
  282. package/src/ui/context/oxyContextHelpers.ts +0 -30
  283. package/src/ui/context/oxyContextTypes.ts +9 -1
  284. package/src/ui/context/useOxyAccountGraph.ts +5 -19
  285. package/src/ui/hooks/accountDialogSnapshot.ts +37 -0
  286. package/src/ui/hooks/mutations/useAccountMutations.ts +0 -19
  287. package/src/ui/hooks/queries/__tests__/userCache.test.ts +12 -1
  288. package/src/ui/hooks/useDeviceSwitcher.ts +110 -0
  289. package/src/ui/hooks/useI18n.ts +23 -3
  290. package/src/ui/hooks/useSessionManagement.ts +62 -211
  291. package/src/ui/index.ts +1 -2
  292. package/src/ui/navigation/routes.ts +85 -75
  293. package/src/ui/navigation/surfaces.ts +6 -9
  294. package/src/ui/runtime/createOxyRuntime.ts +623 -0
  295. package/src/ui/runtime/index.ts +34 -0
  296. package/src/ui/runtime/runtimeContext.tsx +111 -0
  297. package/src/ui/runtime/types.ts +110 -0
  298. package/src/ui/runtime/useRuntimeSnapshot.ts +52 -0
  299. package/src/ui/server.ts +0 -1
  300. package/src/ui/session/__tests__/authStore.test.ts +90 -0
  301. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +289 -0
  302. package/src/ui/session/authStore.ts +78 -9
  303. package/src/ui/session/sharedDeviceCredentialStore.ts +318 -0
  304. package/src/ui/stores/authStore.ts +171 -43
  305. package/src/ui/types/navigation.ts +26 -0
  306. package/src/ui/utils/avatarUtils.ts +2 -37
  307. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +0 -64
  308. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +0 -1
  309. package/lib/commonjs/ui/stores/accountStore.js +0 -221
  310. package/lib/commonjs/ui/stores/accountStore.js.map +0 -1
  311. package/lib/module/ui/hooks/useSwitchableAccounts.js +0 -60
  312. package/lib/module/ui/hooks/useSwitchableAccounts.js.map +0 -1
  313. package/lib/module/ui/stores/accountStore.js +0 -213
  314. package/lib/module/ui/stores/accountStore.js.map +0 -1
  315. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +0 -23
  316. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
  317. package/lib/typescript/commonjs/ui/stores/accountStore.d.ts +0 -27
  318. package/lib/typescript/commonjs/ui/stores/accountStore.d.ts.map +0 -1
  319. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +0 -23
  320. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
  321. package/lib/typescript/module/ui/stores/accountStore.d.ts +0 -27
  322. package/lib/typescript/module/ui/stores/accountStore.d.ts.map +0 -1
  323. package/src/ui/hooks/useSwitchableAccounts.ts +0 -75
  324. package/src/ui/stores/accountStore.ts +0 -264
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeSafeAreaContext","_OxyContext","_reactQuery","_dialog","_surfaces","_toast","_core","_RequireOxyAuth","_queryClient","_storageHelpers","_netConnectivity","_jsxRuntime","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BOOT_BG_COLOR","bootStyles","StyleSheet","create","providerRoot","flex","bootShell","backgroundColor","isWeb","Platform","OS","KEYBOARD_CONTROLLER_MODULE","OxyProvider","oxyServices","children","onAuthStateChange","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","sessionMode","webAuthMode","queryClient","providedQueryClient","requireAuth","backgroundSession","KBProvider","setKBProvider","useState","useEffect","moduleName","specifier","Promise","then","s","mod","KeyboardProvider","catch","error","__DEV__","loggerUtil","warn","component","KeyboardWrapper","jsx","Fragment","storageRef","useRef","queryClientRef","persistenceUnsubRef","setQueryClient","current","mounted","bootstrap","storage","createPlatformStorage","client","createQueryClient","restored","unsubscribe","attachQueryPersistence","handleVisibilityChange","focusManager","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","AppState","state","remove","cleanup","setupNetworkMonitoring","onlineManager","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","resolve","fetch","isNetConnectivityOnline","GestureHandlerRootView","style","SafeAreaProvider","View","coreContent","QueryClientProvider","BloomDialogProvider","jsxs","OxyContextProvider","SurfaceProvider","RequireOxyAuth","prompt","ToastOutlet","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeSafeAreaContext","_OxyContext","_reactQuery","_dialog","_surfaces","_toast","_core","_RequireOxyAuth","_queryClient","_storageHelpers","_netConnectivity","_jsxRuntime","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BOOT_BG_COLOR","bootStyles","StyleSheet","create","providerRoot","flex","bootShell","backgroundColor","isWeb","Platform","OS","KEYBOARD_CONTROLLER_MODULE","OxyProvider","oxyServices","children","onAuthStateChange","storageKeyPrefix","clientId","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","sessionMode","webAuthMode","queryClient","providedQueryClient","requireAuth","backgroundSession","deviceCredentialStorage","KBProvider","setKBProvider","useState","useEffect","moduleName","specifier","Promise","then","s","mod","KeyboardProvider","catch","error","__DEV__","loggerUtil","warn","component","KeyboardWrapper","jsx","Fragment","storageRef","useRef","queryClientRef","persistenceUnsubRef","setQueryClient","current","mounted","bootstrap","storage","createPlatformStorage","client","createQueryClient","restored","unsubscribe","attachQueryPersistence","handleVisibilityChange","focusManager","setFocused","document","visibilityState","addEventListener","removeEventListener","subscription","AppState","state","remove","cleanup","setupNetworkMonitoring","onlineManager","setOnline","navigator","onLine","handleOnline","handleOffline","window","NetInfo","resolve","fetch","isNetConnectivityOnline","GestureHandlerRootView","style","SafeAreaProvider","View","coreContent","QueryClientProvider","BloomDialogProvider","jsxs","OxyRuntimeProvider","SurfaceProvider","RequireOxyAuth","prompt","ToastOutlet","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/OxyProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ var _surfaces = require("../navigation/surfaces.js");
16
16
  var _useSurfaceHeader = require("../hooks/useSurfaceHeader.js");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  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); }
19
- /** Error boundary catching screen render failures (e.g. a lazy `require()` throw). */
19
+ /** Error boundary catching screen render failures, so one bad screen cannot blank the surface. */
20
20
 
21
21
  class ScreenErrorBoundary extends _react.default.Component {
22
22
  state = {
@@ -55,6 +55,8 @@ class ScreenErrorBoundary extends _react.default.Component {
55
55
  return this.props.children;
56
56
  }
57
57
  }
58
+
59
+ /** The body fill shared by the two states that replace a screen: crashed, and not loaded yet. */
58
60
  const errorStyles = _reactNative.StyleSheet.create({
59
61
  container: {
60
62
  flex: 1,
@@ -72,6 +74,29 @@ const errorStyles = _reactNative.StyleSheet.create({
72
74
  textAlign: 'center'
73
75
  }
74
76
  });
77
+
78
+ /**
79
+ * Shown while a route's screen module is still loading. Screens are registered
80
+ * as `lazy(() => import(...))` (see `../navigation/routes`), so the very first
81
+ * presentation of a surface can land here for a frame; the surface chrome is
82
+ * already on screen by then, so this fills only the body.
83
+ *
84
+ * Deliberately RN's `ActivityIndicator` rather than `@oxyhq/bloom/loading`,
85
+ * matching `authChooser/requestSurfaces`: Bloom still declares
86
+ * `sideEffects: false`, so its `Loading` can still tree-shake to `undefined` in
87
+ * a rolldown-vite production bundle. Removing that risk from the first frame of
88
+ * every route is not worth a themed spinner.
89
+ */
90
+ function ScreenPending() {
91
+ const theme = (0, _theme.useTheme)();
92
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
93
+ style: errorStyles.container,
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
95
+ size: "large",
96
+ color: theme.colors.primary
97
+ })
98
+ });
99
+ }
75
100
  /**
76
101
  * Binds one SDK surface to its content: resolves the lazy screen for the current
77
102
  * nav-stack frame and renders it inside the error boundary with the per-surface
@@ -219,8 +244,11 @@ function SurfaceScreen({
219
244
  value: headerContext,
220
245
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ScreenErrorBoundary, {
221
246
  screenName: top.route,
222
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ScreenComponent, {
223
- ...screenProps
247
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Suspense, {
248
+ fallback: /*#__PURE__*/(0, _jsxRuntime.jsx)(ScreenPending, {}),
249
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ScreenComponent, {
250
+ ...screenProps
251
+ })
224
252
  })
225
253
  })
226
254
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_zustand","_theme","_dialog","_routes","_surfaceBackBridge","_surfaceRegistry","_surfaces","_useSurfaceHeader","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScreenErrorBoundary","React","Component","state","error","getDerivedStateFromError","componentDidCatch","info","__DEV__","console","props","screenName","componentStack","componentDidUpdate","prevProps","setState","render","jsxs","View","style","errorStyles","container","children","jsx","Text","title","message","StyleSheet","create","flex","alignItems","justifyContent","padding","fontSize","fontWeight","marginBottom","textAlign","SurfaceScreen","navStack","surface","dismissOnBackdrop","theme","useTheme","useStore","store","top","frames","length","useEffect","closing","dismiss","closeResult","ScreenComponent","useMemo","getScreenComponent","route","navigate","useCallback","navigateWithinOrPresent","replace","replaceWithinOrPresent","result","resolveFlowOrDismiss","canGoBack","setStep","step","goBack","current","getTop","requestDismiss","handleSystemBack","pushSurfaceBackHandler","present","presentRoute","headerContent","setHeaderContent","useState","headerContext","setContent","config","getSurfaceConfig","headerMode","header","height","viewportHeight","useWindowDimensions","frameSize","spec","undefined","heightRatio","Math","round","maxWidth","useDialogFrame","key","morph","size","canGoBackNow","dialogHeader","largeTitle","onBack","useDialogHeader","screenProps","initialStep","_omitInitialStep","rest","onStepChange","currentScreen","onClose","closeAllRouteSurfaces","onAuthenticated","mode","SurfaceHeaderContext","Provider","value","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/SurfaceScreen.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAOA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AAEA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AAMA,IAAAS,iBAAA,GAAAT,OAAA;AAGmC,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGnC;;AAKA,MAAMkB,mBAAmB,SAASC,cAAK,CAACC,SAAS,CAG/C;EACAC,KAAK,GAA6B;IAAEC,KAAK,EAAE;EAAK,CAAC;EAEjD,OAAOC,wBAAwBA,CAACD,KAAY,EAA4B;IACtE,OAAO;MAAEA;IAAM,CAAC;EAClB;EAEAE,iBAAiBA,CAACF,KAAY,EAAEG,IAAe,EAAQ;IACrD,IAAIC,OAAO,EAAE;MACXC,OAAO,CAACL,KAAK,CACX,2BAA2B,IAAI,CAACM,KAAK,CAACC,UAAU,YAAY,EAC5DP,KAAK,EACLG,IAAI,CAACK,cACP,CAAC;IACH;EACF;EAEAC,kBAAkBA,CAACC,SAAiC,EAAQ;IAC1D,IAAIA,SAAS,CAACH,UAAU,KAAK,IAAI,CAACD,KAAK,CAACC,UAAU,IAAI,IAAI,CAACR,KAAK,CAACC,KAAK,EAAE;MACtE,IAAI,CAACW,QAAQ,CAAC;QAAEX,KAAK,EAAE;MAAK,CAAC,CAAC;IAChC;EACF;EAEAY,MAAMA,CAAA,EAAoB;IACxB,IAAI,IAAI,CAACb,KAAK,CAACC,KAAK,EAAE;MACpB,oBACE,IAAAxB,WAAA,CAAAqC,IAAA,EAAC9C,YAAA,CAAA+C,IAAI;QAACC,KAAK,EAAEC,WAAW,CAACC,SAAU;QAAAC,QAAA,gBACjC,IAAA1C,WAAA,CAAA2C,GAAA,EAACpD,YAAA,CAAAqD,IAAI;UAACL,KAAK,EAAEC,WAAW,CAACK,KAAM;UAAAH,QAAA,EAAC;QAAoB,CAAM,CAAC,EAC1Dd,OAAO,iBAAI,IAAA5B,WAAA,CAAA2C,GAAA,EAACpD,YAAA,CAAAqD,IAAI;UAACL,KAAK,EAAEC,WAAW,CAACM,OAAQ;UAAAJ,QAAA,EAAE,IAAI,CAACnB,KAAK,CAACC,KAAK,CAACsB;QAAO,CAAO,CAAC;MAAA,CAC3E,CAAC;IAEX;IACA,OAAO,IAAI,CAAChB,KAAK,CAACY,QAAQ;EAC5B;AACF;AAEA,MAAMF,WAAW,GAAGO,uBAAU,CAACC,MAAM,CAAC;EACpCP,SAAS,EAAE;IAAEQ,IAAI,EAAE,CAAC;IAAEC,UAAU,EAAE,QAAQ;IAAEC,cAAc,EAAE,QAAQ;IAAEC,OAAO,EAAE;EAAG,CAAC;EACnFP,KAAK,EAAE;IAAEQ,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,YAAY,EAAE;EAAE,CAAC;EAC3DT,OAAO,EAAE;IAAEO,QAAQ,EAAE,EAAE;IAAEG,SAAS,EAAE;EAAS;AAC/C,CAAC,CAAC;AAWF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAAC;EACrBC,QAAQ;EACRC,OAAO;EACPC,iBAAiB,GAAG;AACF,CAAC,EAAE;EACrB,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;EACxB,MAAMvC,KAAK,GAAG,IAAAwC,iBAAQ,EAACL,QAAQ,CAACM,KAAK,CAAC;EACtC,MAAMC,GAAG,GAAG1C,KAAK,CAAC2C,MAAM,CAAC3C,KAAK,CAAC2C,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC;EAEjD,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI7C,KAAK,CAAC8C,OAAO,EAAEV,OAAO,CAACW,OAAO,CAAC/C,KAAK,CAACgD,WAAW,CAAC;EACvD,CAAC,EAAE,CAAChD,KAAK,CAAC8C,OAAO,EAAE9C,KAAK,CAACgD,WAAW,EAAEZ,OAAO,CAAC,CAAC;EAE/C,MAAMa,eAAe,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,0BAAkB,EAACT,GAAG,CAACU,KAAK,CAAC,IAAI,IAAI,EAAE,CAACV,GAAG,CAACU,KAAK,CAAC,CAAC;EAEzF,MAAMC,QAAQ,GAAG,IAAAC,kBAAW,EAC1B,CAACF,KAAgB,EAAE7C,KAA+B,KAChD,IAAAgD,iCAAuB,EAACpB,QAAQ,EAAEiB,KAAK,EAAE7C,KAAK,CAAC,EACjD,CAAC4B,QAAQ,CACX,CAAC;EAED,MAAMqB,OAAO,GAAG,IAAAF,kBAAW,EACzB,CAACF,KAAgB,EAAE7C,KAA+B,KAChD,IAAAkD,gCAAsB,EAACtB,QAAQ,EAAEiB,KAAK,EAAE7C,KAAK,CAAC,EAChD,CAAC4B,QAAQ,CACX,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMY,OAAO,GAAG,IAAAO,kBAAW,EACxBI,MAAgB,IAAKvB,QAAQ,CAACwB,oBAAoB,CAACD,MAAM,CAAC,EAC3D,CAACvB,QAAQ,CACX,CAAC;EAED,MAAMyB,SAAS,GAAG,IAAAN,kBAAW,EAAC,MAAMnB,QAAQ,CAACyB,SAAS,CAAC,CAAC,EAAE,CAACzB,QAAQ,CAAC,CAAC;EAErE,MAAM0B,OAAO,GAAG,IAAAP,kBAAW,EAAEQ,IAAY,IAAK3B,QAAQ,CAAC0B,OAAO,CAACC,IAAI,CAAC,EAAE,CAAC3B,QAAQ,CAAC,CAAC;;EAEjF;EACA;EACA,MAAM4B,MAAM,GAAG,IAAAT,kBAAW,EAAC,MAAY;IACrC,IAAInB,QAAQ,CAAC4B,MAAM,CAAC,CAAC,EAAE;IACvB,MAAMC,OAAO,GAAG7B,QAAQ,CAAC8B,MAAM,CAAC,CAAC;IACjC,IAAID,OAAO,CAACF,IAAI,GAAG,CAAC,EAAE;MACpB3B,QAAQ,CAAC0B,OAAO,CAACG,OAAO,CAACF,IAAI,GAAG,CAAC,CAAC;MAClC;IACF;IACA3B,QAAQ,CAAC+B,cAAc,CAAC,CAAC;EAC3B,CAAC,EAAE,CAAC/B,QAAQ,CAAC,CAAC;EAEd,MAAMgC,gBAAgB,GAAG,IAAAb,kBAAW,EAAC,MAAe;IAClD,IAAInB,QAAQ,CAAC4B,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI;IAClC,MAAMC,OAAO,GAAG7B,QAAQ,CAAC8B,MAAM,CAAC,CAAC;IACjC,IAAID,OAAO,CAACF,IAAI,GAAG,CAAC,EAAE;MACpB3B,QAAQ,CAAC0B,OAAO,CAACG,OAAO,CAACF,IAAI,GAAG,CAAC,CAAC;MAClC,OAAO,IAAI;IACb;IACA,IAAIzB,iBAAiB,EAAEF,QAAQ,CAAC+B,cAAc,CAAC,CAAC;IAChD,OAAO,IAAI;EACb,CAAC,EAAE,CAAC/B,QAAQ,EAAEE,iBAAiB,CAAC,CAAC;EAEjC,IAAAQ,gBAAS,EAAC,MAAM,IAAAuB,yCAAsB,EAACD,gBAAgB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAE7E,MAAME,OAAO,GAAG,IAAAf,kBAAW,EACzB,CAACF,KAAgB,EAAE7C,KAA+B,KAAK,IAAA+D,sBAAY,EAAClB,KAAK,EAAE7C,KAAK,CAAC,CAACmD,MAAM,EACxF,EACF,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM,CAACa,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAA8B,IAAI,CAAC;EACrF,MAAMC,aAAa,GAAG,IAAAxB,cAAO,EAAC,OAAO;IAAEyB,UAAU,EAAEH;EAAiB,CAAC,CAAC,EAAE,EAAE,CAAC;EAE3E,MAAMI,MAAM,GAAG,IAAA1B,cAAO,EAAC,MAAM,IAAA2B,iCAAgB,EAACnC,GAAG,CAACU,KAAK,EAAEV,GAAG,CAACnC,KAAK,CAAC,EAAE,CAACmC,GAAG,CAACU,KAAK,EAAEV,GAAG,CAACnC,KAAK,CAAC,CAAC;EAC5F,MAAMuE,UAAU,GAAGF,MAAM,CAACG,MAAM;;EAEhC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;IAAEC,MAAM,EAAEC;EAAe,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACxD,MAAMC,SAAS,GAAG,IAAAjC,cAAO,EAAC,MAAM;IAC9B,MAAMkC,IAAI,GAAGR,MAAM,CAACO,SAAS;IAC7B,IAAI,CAACC,IAAI,EAAE,OAAOC,SAAS;IAC3B,MAAML,MAAM,GACVI,IAAI,CAACE,WAAW,KAAKD,SAAS,GAAGE,IAAI,CAACC,KAAK,CAACP,cAAc,GAAGG,IAAI,CAACE,WAAW,CAAC,GAAGD,SAAS;IAC5F,OAAO;MAAEL,MAAM;MAAES,QAAQ,EAAEL,IAAI,CAACK;IAAS,CAAC;EAC5C,CAAC,EAAE,CAACb,MAAM,CAACO,SAAS,EAAEF,cAAc,CAAC,CAAC;EACtC,IAAAS,sBAAc,EACZ,IAAAxC,cAAO,EACL,OAAO;IAAEyC,GAAG,EAAE,GAAGjD,GAAG,CAACU,KAAK,IAAIV,GAAG,CAACoB,IAAI,EAAE;IAAE8B,KAAK,EAAEhB,MAAM,CAACgB,KAAK;IAAEC,IAAI,EAAEV;EAAU,CAAC,CAAC,EACjF,CAACzC,GAAG,CAACU,KAAK,EAAEV,GAAG,CAACoB,IAAI,EAAEc,MAAM,CAACgB,KAAK,EAAET,SAAS,CAC/C,CACF,CAAC;EACD;EACA;EACA,MAAMW,YAAY,GAAG9F,KAAK,CAAC2C,MAAM,CAACC,MAAM,GAAG,CAAC,IAAIF,GAAG,CAACoB,IAAI,GAAG,CAAC;EAE5D,MAAMiC,YAAY,GAAG,IAAA7C,cAAO,EAA4B,MAAM;IAC5D,IAAI,CAAC4B,UAAU,EAAE,OAAO,IAAI;IAC5B,OAAO;MACLkB,UAAU,EAAE,IAAI;MAChB,GAAGzB,aAAa;MAChB;MACA;MACA;MACA0B,MAAM,EAAE1B,aAAa,EAAE0B,MAAM,KAAKH,YAAY,GAAG/B,MAAM,GAAGsB,SAAS;IACrE,CAAC;EACH,CAAC,EAAE,CAACP,UAAU,EAAEP,aAAa,EAAEuB,YAAY,EAAE/B,MAAM,CAAC,CAAC;EAErD,IAAAmC,uBAAe,EAACH,YAAY,CAAC;EAE7B,MAAMI,WAAW,GAAG,IAAAjD,cAAO,EAAkB,MAAM;IACjD,MAAM;MAAEkD,WAAW,EAAEC,gBAAgB;MAAE,GAAGC;IAAK,CAAC,GAAG5D,GAAG,CAACnC,KAAK;IAC5D,OAAO;MACL;MACA8C,QAAQ;MACRU,MAAM;MACNP,OAAO;MACPI,SAAS;MACTwC,WAAW,EAAE1D,GAAG,CAACoB,IAAI;MACrBA,IAAI,EAAEpB,GAAG,CAACoB,IAAI;MACdyC,YAAY,EAAE1C,OAAO;MACrBA,OAAO;MACP2C,aAAa,EAAE9D,GAAG,CAACU,KAAK;MACxB;MACA;MACAqD,OAAO,EAAEC,+BAAqB;MAC9BC,eAAe,EAAED,+BAAqB;MACtC3D,OAAO;MACPsB,OAAO;MACP;MACA/B,KAAK,EAAEA,KAAK,CAACsE,IAAI;MACjB,GAAGN;IACL,CAAC;EACH,CAAC,EAAE,CAACjD,QAAQ,EAAEU,MAAM,EAAEP,OAAO,EAAEI,SAAS,EAAEC,OAAO,EAAEQ,OAAO,EAAEtB,OAAO,EAAET,KAAK,CAACsE,IAAI,EAAElE,GAAG,CAACU,KAAK,EAAEV,GAAG,CAACoB,IAAI,EAAEpB,GAAG,CAACnC,KAAK,CAAC,CAAC;EAEjH,IAAI,CAAC0C,eAAe,EAAE,OAAO,IAAI;EAEjC,oBACE,IAAAxE,WAAA,CAAA2C,GAAA,EAAC5C,iBAAA,CAAAqI,oBAAoB,CAACC,QAAQ;IAACC,KAAK,EAAErC,aAAc;IAAAvD,QAAA,eAClD,IAAA1C,WAAA,CAAA2C,GAAA,EAACvB,mBAAmB;MAACW,UAAU,EAAEkC,GAAG,CAACU,KAAM;MAAAjC,QAAA,eACzC,IAAA1C,WAAA,CAAA2C,GAAA,EAAC6B,eAAe;QAAA,GAAKkD;MAAW,CAAG;IAAC,CACjB;EAAC,CACO,CAAC;AAEpC;AAAC,IAAAa,QAAA,GAAAC,OAAA,CAAA7H,OAAA,GAEc8C,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_zustand","_theme","_dialog","_routes","_surfaceBackBridge","_surfaceRegistry","_surfaces","_useSurfaceHeader","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ScreenErrorBoundary","React","Component","state","error","getDerivedStateFromError","componentDidCatch","info","__DEV__","console","props","screenName","componentStack","componentDidUpdate","prevProps","setState","render","jsxs","View","style","errorStyles","container","children","jsx","Text","title","message","StyleSheet","create","flex","alignItems","justifyContent","padding","fontSize","fontWeight","marginBottom","textAlign","ScreenPending","theme","useTheme","ActivityIndicator","size","color","colors","primary","SurfaceScreen","navStack","surface","dismissOnBackdrop","useStore","store","top","frames","length","useEffect","closing","dismiss","closeResult","ScreenComponent","useMemo","getScreenComponent","route","navigate","useCallback","navigateWithinOrPresent","replace","replaceWithinOrPresent","result","resolveFlowOrDismiss","canGoBack","setStep","step","goBack","current","getTop","requestDismiss","handleSystemBack","pushSurfaceBackHandler","present","presentRoute","headerContent","setHeaderContent","useState","headerContext","setContent","config","getSurfaceConfig","headerMode","header","height","viewportHeight","useWindowDimensions","frameSize","spec","undefined","heightRatio","Math","round","maxWidth","useDialogFrame","key","morph","canGoBackNow","dialogHeader","largeTitle","onBack","useDialogHeader","screenProps","initialStep","_omitInitialStep","rest","onStepChange","currentScreen","onClose","closeAllRouteSurfaces","onAuthenticated","mode","SurfaceHeaderContext","Provider","value","Suspense","fallback","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/SurfaceScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -32,8 +32,11 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
32
32
  * avatar (with a camera badge to change the photo), the greeting, the account
33
33
  * address, and a "Manage your Oxy account" pill.
34
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.
35
+ * the device's people + "Add another account" + "Manage accounts on this
36
+ * device" reveal beneath it. The list is grouped BY PERSON (ADR 0002): an
37
+ * account sits under the human who can operate it, and the same organization
38
+ * reachable through two people is two rows under two names — the thing a list
39
+ * keyed by account id structurally cannot say.
37
40
  * - OXY STORAGE: cloud + used/total + a composition meter + Upgrade / Manage chips.
38
41
  * - MENU rows: Your data in Oxy · Oxy settings · Help & feedback · Sign out —
39
42
  * Bloom's grouped section, the same component every other SDK settings surface
@@ -76,6 +79,11 @@ const SWITCH_CARD_RADIUS_SETTLE = 0.2;
76
79
  const SWITCH_REVEAL_MS = 240;
77
80
  /** Diameter of an account row's avatar in the switch list (own markup). */
78
81
  const SWITCH_AVATAR_SIZE = 36;
82
+ /**
83
+ * The person's avatar above their block of accounts. Smaller than the account
84
+ * rows beneath it: the header labels the group, the rows are the targets.
85
+ */
86
+ const PRINCIPAL_AVATAR_SIZE = 24;
79
87
  /** Glyph inside a bordered affordance badge, sized to the avatar it stands in for. */
80
88
  const BADGE_GLYPH_SIZE = 19;
81
89
  /** The hero block's large current-account avatar. */
@@ -91,20 +99,6 @@ const FACEPILE_AVATAR_SIZE = 32;
91
99
  */
92
100
  const FACEPILE_OVERLAP = 4;
93
101
 
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
102
  /**
109
103
  * `bytes` → `"11.6 GB"`. Whole plan sizes read as whole numbers (`"17 GB"`, not
110
104
  * `"17.0 GB"`), and anything ≥ 100 GB drops the decimal entirely.
@@ -116,6 +110,8 @@ function formatStorageGb(bytes) {
116
110
  }
117
111
  const AccountsMenuView = ({
118
112
  snapshot,
113
+ principals,
114
+ hero,
119
115
  theme,
120
116
  t,
121
117
  handlers,
@@ -161,7 +157,7 @@ const AccountsMenuView = ({
161
157
  duration: SWITCH_REVEAL_MS
162
158
  });
163
159
  }, [expanded, listProgress]);
164
- if (snapshot.loading && snapshot.accounts.length === 0) {
160
+ if (snapshot.loading && principals.length === 0) {
165
161
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
166
162
  className: "items-center justify-center gap-space-12 py-space-24",
167
163
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
@@ -174,20 +170,24 @@ const AccountsMenuView = ({
174
170
  })]
175
171
  });
176
172
  }
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 switchableAccountKey = switchableAccounts.map(account => account.accountId).join(':');
187
- const facepile = switchableAccounts.map(account => ({
188
- id: account.accountId,
189
- uri: account.avatarUrl ?? undefined,
190
- displayName: account.displayName
173
+
174
+ // Activation and the two removals all mutate the same device, so any one of
175
+ // them in flight disables every row: a second press would race the first for
176
+ // which context the server ends up electing as active.
177
+ const busy = snapshot.activatingContextId !== null || snapshot.removingContextId !== null || snapshot.removingPrincipalId !== null;
178
+ const currentAccent = hero?.accentHex ?? theme.colors.primary;
179
+ // Naming the person above each block earns its place only when the grouping
180
+ // carries information a second person, or somebody with more than one
181
+ // account. On a one-person, one-account device it would just repeat the hero.
182
+ const showPrincipalHeaders = (0, _core.showsPrincipalHeaders)(principals);
183
+ const contextRows = principals.flatMap(principal => principal.contexts);
184
+ // Remounts the measured wrapper when the rows change, so the collapse animates
185
+ // to the new natural height instead of the previous one.
186
+ const switchListKey = contextRows.map(context => context.contextId).join(':');
187
+ const facepile = contextRows.map(context => ({
188
+ id: context.contextId,
189
+ uri: context.avatarUrl ?? undefined,
190
+ displayName: context.displayName
191
191
  }));
192
192
 
193
193
  // Used vs free is a two-part COMPOSITION (the parts always fill the bar), not
@@ -216,56 +216,39 @@ const AccountsMenuView = ({
216
216
  // draws those hairlines INSIDE the animated clip, so a collapsed list never
217
217
  // strands one against the header row.
218
218
  const listItems = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
219
- children: [switchableAccounts.map((account, index) => {
220
- const accent = (0, _types.resolveAccentHex)(account.color, theme.colors.primary);
221
- const isSwitching = snapshot.switchingAccountId === account.accountId;
222
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
223
- children: [index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
219
+ children: [principals.map((principal, principalIndex) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
220
+ children: [principalIndex > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
221
+ className: "h-px bg-border opacity-30"
222
+ }) : null, showPrincipalHeaders ? /*#__PURE__*/(0, _jsxRuntime.jsx)(PrincipalHeaderRow, {
223
+ principal: principal,
224
+ removing: snapshot.removingPrincipalId === principal.principalId,
225
+ disabled: busy,
226
+ onSignOut: () => handlers.onRemovePrincipal(principal.principalId),
227
+ theme: theme,
228
+ t: t
229
+ }) : null, principal.contexts.map((context, contextIndex) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
230
+ children: [contextIndex > 0 || showPrincipalHeaders ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
224
231
  className: "h-px bg-border opacity-30 ml-space-12"
225
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.HoverPressable, {
226
- baseClassName: `flex-row items-center gap-space-12 px-space-12 py-[10px]${switchingDisabled ? ' opacity-60' : ''}`,
227
- hoverClassName: "bg-fill-secondary",
228
- onPress: () => handlers.onSwitch(account.accountId),
229
- disabled: switchingDisabled,
230
- accessibilityRole: "button",
231
- accessibilityLabel: account.displayName,
232
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
233
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
234
- source: account.avatarUrl ?? undefined,
235
- variant: "thumb",
236
- name: account.displayName,
237
- size: SWITCH_AVATAR_SIZE
238
- }), account.isCurrent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
239
- style: [_styles.authChooserStyles.currentAvatarRing, {
240
- borderColor: accent
241
- }],
242
- pointerEvents: "none"
243
- }) : null]
244
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
245
- className: "flex-1 min-w-0",
246
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
247
- className: "text-body font-semibold text-text",
248
- numberOfLines: 1,
249
- children: account.displayName
250
- }), account.email ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
251
- className: "text-caption text-text-secondary",
252
- numberOfLines: 1,
253
- children: account.email
254
- }) : null]
255
- }), isSwitching ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
256
- name: "loading",
257
- size: 20,
258
- color: accent
259
- }) : null]
232
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(ContextRow, {
233
+ context: context,
234
+ principalName: principal.displayName,
235
+ accent: (0, _types.resolveAccentHex)(context.color, theme.colors.primary),
236
+ activating: snapshot.activatingContextId === context.contextId,
237
+ removing: snapshot.removingContextId === context.contextId,
238
+ disabled: busy,
239
+ onActivate: () => handlers.onActivate(context.contextId),
240
+ onRemove: () => handlers.onRemoveContext(context.contextId),
241
+ theme: theme,
242
+ t: t
260
243
  })]
261
- }, account.accountId);
262
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
244
+ }, context.contextId))]
245
+ }, principal.principalId)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
263
246
  className: "h-px bg-border opacity-30 ml-space-12"
264
247
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(AccountAffordanceRow, {
265
248
  icon: "plus",
266
249
  label: t('accountMenu.addAnother'),
267
250
  onPress: handlers.onAdd,
268
- disabled: switchingDisabled,
251
+ disabled: busy,
269
252
  theme: theme
270
253
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
271
254
  className: "h-px bg-border opacity-30 ml-space-12"
@@ -273,7 +256,7 @@ const AccountsMenuView = ({
273
256
  icon: "account-multiple-outline",
274
257
  label: t('accountSwitcher.manageOnDevice'),
275
258
  onPress: handlers.onManage,
276
- disabled: switchingDisabled,
259
+ disabled: busy,
277
260
  theme: theme
278
261
  })]
279
262
  });
@@ -282,15 +265,15 @@ const AccountsMenuView = ({
282
265
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
283
266
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
284
267
  style: _styles.authChooserStyles.hero,
285
- children: [current ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
268
+ children: [hero ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
286
269
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_pressableScale.PressableScale, {
287
270
  onPress: handlers.onEditAvatar,
288
271
  accessibilityRole: "button",
289
272
  accessibilityLabel: t('editProfile.changeAvatar'),
290
273
  style: _styles.authChooserStyles.heroAvatarPressable,
291
274
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
292
- source: current.avatarUrl ?? undefined,
293
- name: current.displayName,
275
+ source: hero.avatarUrl ?? undefined,
276
+ name: hero.displayName,
294
277
  size: HERO_AVATAR_SIZE
295
278
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
296
279
  style: [_styles.authChooserStyles.heroAvatarRing, {
@@ -306,14 +289,14 @@ const AccountsMenuView = ({
306
289
  }],
307
290
  numberOfLines: 2,
308
291
  children: t('accountMenu.greeting', {
309
- name: current.displayName
292
+ name: hero.displayName
310
293
  })
311
- }), currentAddress ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
294
+ }), hero.addressLine ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
312
295
  style: [_styles.authChooserStyles.heroAddress, {
313
296
  color: theme.colors.textSecondary
314
297
  }],
315
298
  numberOfLines: 1,
316
- children: currentAddress
299
+ children: hero.addressLine
317
300
  }) : null]
318
301
  })]
319
302
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
@@ -332,10 +315,10 @@ const AccountsMenuView = ({
332
315
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
333
316
  className: "bg-fill",
334
317
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.HoverPressable, {
335
- baseClassName: `flex-row items-center gap-space-12 px-space-12 py-[10px] min-h-[44px]${switchingDisabled ? ' opacity-60' : ''}`,
318
+ baseClassName: `flex-row items-center gap-space-12 px-space-12 py-[10px] min-h-[44px]${busy ? ' opacity-60' : ''}`,
336
319
  hoverClassName: "bg-fill-secondary",
337
320
  onPress: toggleExpanded,
338
- disabled: switchingDisabled,
321
+ disabled: busy,
339
322
  accessibilityRole: "button"
340
323
  // The ARIA prop, not `accessibilityState`: react-native-web 0.21
341
324
  // forwards only this one, and RN maps it to
@@ -379,7 +362,7 @@ const AccountsMenuView = ({
379
362
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
380
363
  children: listItems
381
364
  })
382
- }, switchableAccountKey)
365
+ }, switchListKey)
383
366
  })]
384
367
  })
385
368
  })
@@ -477,6 +460,148 @@ const AccountsMenuView = ({
477
460
  });
478
461
  };
479
462
 
463
+ /**
464
+ * The person a block of accounts hangs off, with the one action that removes
465
+ * THEM rather than one of their accounts.
466
+ *
467
+ * The distinction is the reason this row exists: dropping Alice's route to an
468
+ * organization is not the same as dropping Alice, and on a shared device the
469
+ * second must not touch Nate's route to the same organization. Two different
470
+ * server calls, two different rows, never one control doing both.
471
+ */
472
+ const PrincipalHeaderRow = ({
473
+ principal,
474
+ removing,
475
+ disabled,
476
+ onSignOut,
477
+ theme,
478
+ t
479
+ }) => {
480
+ const signOutLabel = t('accountSwitcher.principal.signOut', {
481
+ name: principal.displayName
482
+ });
483
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
484
+ className: "flex-row items-center gap-space-12 px-space-12 pt-space-12 pb-space-8",
485
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
486
+ source: principal.avatarUrl ?? undefined,
487
+ variant: "thumb",
488
+ name: principal.displayName,
489
+ size: PRINCIPAL_AVATAR_SIZE
490
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
491
+ className: "flex-1 min-w-0",
492
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
493
+ className: "text-caption font-semibold text-text",
494
+ numberOfLines: 1,
495
+ children: principal.displayName
496
+ }), principal.handle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
497
+ className: "text-caption text-text-tertiary",
498
+ numberOfLines: 1,
499
+ children: `@${principal.handle}`
500
+ }) : null]
501
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.HoverPressable, {
502
+ baseClassName: `rounded-radius-max px-space-8 py-[4px]${disabled ? ' opacity-60' : ''}`,
503
+ hoverClassName: "bg-fill-secondary",
504
+ onPress: onSignOut,
505
+ disabled: disabled,
506
+ accessibilityRole: "button",
507
+ accessibilityLabel: signOutLabel,
508
+ children: removing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
509
+ name: "loading",
510
+ size: 16,
511
+ color: theme.colors.textSecondary
512
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
513
+ className: "text-caption text-text-secondary",
514
+ children: t('accountMenu.signOut')
515
+ })
516
+ })]
517
+ });
518
+ };
519
+
520
+ /**
521
+ * One `principal acting as account` row.
522
+ *
523
+ * Pressing it activates the PAIR — a `contextId`, not an account id, because on
524
+ * this device the account below may also be reachable through somebody else.
525
+ * A row the server marks unavailable is rendered rather than hidden, so a
526
+ * membership going away is something the person can see instead of a row that
527
+ * silently stopped existing; it is disabled, because activating it is a request
528
+ * the server answers with a 403 and then heals the row away.
529
+ */
530
+ const ContextRow = ({
531
+ context,
532
+ principalName,
533
+ accent,
534
+ activating,
535
+ removing,
536
+ disabled,
537
+ onActivate,
538
+ onRemove,
539
+ theme,
540
+ t
541
+ }) => {
542
+ const unavailable = !context.canActivate;
543
+ const rowDisabled = disabled || unavailable;
544
+ const removeLabel = t('accountSwitcher.context.remove', {
545
+ account: context.displayName,
546
+ person: principalName
547
+ });
548
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
549
+ className: "flex-row items-center",
550
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.HoverPressable, {
551
+ baseClassName: `flex-1 min-w-0 flex-row items-center gap-space-12 pl-space-12 py-[10px]${rowDisabled ? ' opacity-60' : ''}`,
552
+ hoverClassName: "bg-fill-secondary",
553
+ onPress: onActivate,
554
+ disabled: rowDisabled,
555
+ accessibilityRole: "button",
556
+ accessibilityState: {
557
+ selected: context.isActive,
558
+ disabled: rowDisabled
559
+ },
560
+ accessibilityLabel: context.displayName,
561
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
562
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_avatar.Avatar, {
563
+ source: context.avatarUrl ?? undefined,
564
+ variant: "thumb",
565
+ name: context.displayName,
566
+ size: SWITCH_AVATAR_SIZE
567
+ }), context.isActive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.View, {
568
+ style: [_styles.authChooserStyles.currentAvatarRing, {
569
+ borderColor: accent
570
+ }],
571
+ pointerEvents: "none"
572
+ }) : null]
573
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.View, {
574
+ className: "flex-1 min-w-0",
575
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
576
+ className: "text-body font-semibold text-text",
577
+ numberOfLines: 1,
578
+ children: context.displayName
579
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
580
+ className: "text-caption text-text-secondary",
581
+ numberOfLines: 1,
582
+ children: unavailable ? t('accountSwitcher.context.unavailable') : context.handle ? `@${context.handle}` : ''
583
+ })]
584
+ }), activating ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
585
+ name: "loading",
586
+ size: 20,
587
+ color: accent
588
+ }) : null]
589
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.HoverPressable, {
590
+ baseClassName: `px-space-12 py-[10px]${disabled ? ' opacity-60' : ''}`,
591
+ hoverClassName: "bg-fill-secondary",
592
+ onPress: onRemove,
593
+ disabled: disabled,
594
+ accessibilityRole: "button",
595
+ accessibilityLabel: removeLabel,
596
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MaterialCommunityIcons.default, {
597
+ name: removing ? 'loading' : 'close',
598
+ size: 18,
599
+ color: theme.colors.textTertiary
600
+ })
601
+ })]
602
+ });
603
+ };
604
+
480
605
  /**
481
606
  * An account-list AFFORDANCE row ("Add another account", "Manage accounts on
482
607
  * this device") — a bordered circle sized to the avatar it stands in for, so its