@dxos/plugin-space 0.8.2-main.f11618f → 0.8.2-staging.7ac8446

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/dist/lib/browser/{app-graph-builder-ZWNOWRAX.mjs → app-graph-builder-GMFCSOLG.mjs} +7 -61
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-UUJH7JRN.mjs → app-graph-serializer-DSF2U3A5.mjs} +8 -8
  4. package/dist/lib/browser/app-graph-serializer-DSF2U3A5.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-DIJ7LMCS.mjs → chunk-5BDV575R.mjs} +8 -20
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-O7WGQVLQ.mjs → chunk-AYW4IDRT.mjs} +4 -35
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-4226DMDP.mjs → chunk-JZXWPMLA.mjs} +666 -522
  10. package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-JS6ZV4GV.mjs → chunk-LO5UL6RU.mjs} +141 -60
  12. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  13. package/dist/lib/browser/{identity-created-NRVE4XLL.mjs → identity-created-JR7BNXFH.mjs} +4 -4
  14. package/dist/lib/browser/identity-created-JR7BNXFH.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +33 -12
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-NP55M7C7.mjs → intent-resolver-RKYILWWQ.mjs} +82 -92
  18. package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-XKAUZ3X2.mjs → react-root-6H7NX2M2.mjs} +4 -4
  21. package/dist/lib/browser/{react-surface-2DW2UDRX.mjs → react-surface-7AGLOVMK.mjs} +47 -121
  22. package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
  23. package/dist/lib/browser/{settings-MVT32NP6.mjs → settings-PJPTJUPE.mjs} +4 -4
  24. package/dist/lib/browser/settings-PJPTJUPE.mjs.map +7 -0
  25. package/dist/lib/browser/{spaces-ready-ERNSICUW.mjs → spaces-ready-BSSP7HHG.mjs} +5 -5
  26. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  27. package/dist/lib/browser/{state-CYV6QCTN.mjs → state-X7VLCC6E.mjs} +3 -1
  28. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  29. package/dist/lib/browser/types/index.mjs +1 -7
  30. package/dist/lib/node/{app-graph-builder-LLIV422L.cjs → app-graph-builder-DPY7AUZE.cjs} +30 -83
  31. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  32. package/dist/lib/node/{app-graph-serializer-M6Z2OPA4.cjs → app-graph-serializer-JELGJUAY.cjs} +20 -20
  33. package/dist/lib/node/app-graph-serializer-JELGJUAY.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-ZMQO74LX.cjs → chunk-3GKCNADA.cjs} +655 -513
  35. package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-UOCR4G2D.cjs → chunk-PU2EYH4E.cjs} +12 -24
  37. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-XADZLQAJ.cjs → chunk-TUZWEPGX.cjs} +167 -84
  39. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-EQ5BPSQ7.cjs → chunk-WDEIFDTX.cjs} +7 -41
  41. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  42. package/dist/lib/node/{identity-created-YDTRMOMX.cjs → identity-created-XU4HFV2T.cjs} +6 -6
  43. package/dist/lib/node/identity-created-XU4HFV2T.cjs.map +7 -0
  44. package/dist/lib/node/index.cjs +89 -68
  45. package/dist/lib/node/index.cjs.map +3 -3
  46. package/dist/lib/node/{intent-resolver-3J52ARFL.cjs → intent-resolver-VJ7YV74L.cjs} +131 -141
  47. package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
  48. package/dist/lib/node/meta.json +1 -1
  49. package/dist/lib/node/{react-root-XUE2J7HT.cjs → react-root-TEL5RW3N.cjs} +8 -8
  50. package/dist/lib/node/{react-surface-IWSTOZ2E.cjs → react-surface-2H3S5TY5.cjs} +74 -146
  51. package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
  52. package/dist/lib/node/{settings-JLV7YT6Q.cjs → settings-WVFP2UEP.cjs} +7 -7
  53. package/dist/lib/node/settings-WVFP2UEP.cjs.map +7 -0
  54. package/dist/lib/node/{spaces-ready-6EBR4SM4.cjs → spaces-ready-7DNZSUOG.cjs} +12 -12
  55. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  56. package/dist/lib/node/{state-JLN7TGRR.cjs → state-5KX6WBJH.cjs} +6 -4
  57. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  58. package/dist/lib/node/types/index.cjs +12 -18
  59. package/dist/lib/node/types/index.cjs.map +2 -2
  60. package/dist/lib/node-esm/{app-graph-builder-HSGLCS76.mjs → app-graph-builder-42IGWRPL.mjs} +7 -61
  61. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  62. package/dist/lib/node-esm/{app-graph-serializer-J3B4WSXU.mjs → app-graph-serializer-FXONFKOE.mjs} +8 -8
  63. package/dist/lib/node-esm/app-graph-serializer-FXONFKOE.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-OLISVDCF.mjs → chunk-3ZOUV4DF.mjs} +8 -20
  65. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-PQI4D4SH.mjs → chunk-BEWBZ4Q4.mjs} +666 -522
  67. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-FJPCLEKN.mjs → chunk-FC4UHDPL.mjs} +4 -35
  69. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  70. package/dist/lib/node-esm/{chunk-ABTVMAG5.mjs → chunk-ZGLK25WQ.mjs} +141 -60
  71. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  72. package/dist/lib/node-esm/{identity-created-EC6SVYB5.mjs → identity-created-WJKAS2PV.mjs} +4 -4
  73. package/dist/lib/node-esm/identity-created-WJKAS2PV.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +33 -12
  75. package/dist/lib/node-esm/index.mjs.map +3 -3
  76. package/dist/lib/node-esm/{intent-resolver-MXQIFIRC.mjs → intent-resolver-ZFNSA4CM.mjs} +82 -92
  77. package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
  78. package/dist/lib/node-esm/meta.json +1 -1
  79. package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs → react-root-PRBJMWLQ.mjs} +4 -4
  80. package/dist/lib/node-esm/{react-surface-JCHDAPGM.mjs → react-surface-RCZG2PNF.mjs} +47 -121
  81. package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
  82. package/dist/lib/node-esm/{settings-AILIMHTE.mjs → settings-FJZPC2TV.mjs} +4 -4
  83. package/dist/lib/node-esm/settings-FJZPC2TV.mjs.map +7 -0
  84. package/dist/lib/node-esm/{spaces-ready-5PXESKHX.mjs → spaces-ready-7X5PGB2V.mjs} +5 -5
  85. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  86. package/dist/lib/node-esm/{state-YZPY5T5A.mjs → state-Z6E2YTNC.mjs} +3 -1
  87. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  88. package/dist/lib/node-esm/types/index.mjs +1 -7
  89. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +0 -1
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  94. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  97. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  98. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  99. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  100. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  101. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  102. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  103. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  104. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  105. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  106. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  107. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  108. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -1
  109. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  110. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  111. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  112. package/dist/types/src/components/ShareSpaceButton.d.ts +9 -0
  113. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -0
  114. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +10 -0
  115. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -0
  116. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  117. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  118. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  119. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  120. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  121. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  122. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +2 -0
  123. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  124. package/dist/types/src/components/SpaceSettings/index.d.ts +1 -0
  125. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  126. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  127. package/dist/types/src/components/SyncStatus/Space.d.ts +13 -0
  128. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -0
  129. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +8 -1
  130. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  131. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +9 -0
  132. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +1 -0
  133. package/dist/types/src/components/SyncStatus/sync-state.d.ts +18 -0
  134. package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +1 -0
  135. package/dist/types/src/components/index.d.ts +2 -2
  136. package/dist/types/src/components/index.d.ts.map +1 -1
  137. package/dist/types/src/hooks/index.d.ts +0 -1
  138. package/dist/types/src/hooks/index.d.ts.map +1 -1
  139. package/dist/types/src/translations.d.ts +9 -45
  140. package/dist/types/src/translations.d.ts.map +1 -1
  141. package/dist/types/src/types/thread.d.ts +17 -241
  142. package/dist/types/src/types/thread.d.ts.map +1 -1
  143. package/dist/types/src/types/types.d.ts +14 -40
  144. package/dist/types/src/types/types.d.ts.map +1 -1
  145. package/dist/types/src/util.d.ts +5 -27
  146. package/dist/types/src/util.d.ts.map +1 -1
  147. package/package.json +43 -44
  148. package/src/SpacePlugin.tsx +13 -3
  149. package/src/capabilities/app-graph-builder.ts +5 -44
  150. package/src/capabilities/app-graph-serializer.ts +4 -4
  151. package/src/capabilities/identity-created.ts +2 -2
  152. package/src/capabilities/intent-resolver.ts +84 -87
  153. package/src/capabilities/react-surface.tsx +37 -106
  154. package/src/capabilities/settings.ts +2 -2
  155. package/src/capabilities/spaces-ready.ts +2 -2
  156. package/src/capabilities/state.ts +2 -0
  157. package/src/components/CollectionMain.tsx +5 -2
  158. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +2 -2
  159. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -3
  160. package/src/components/CreateDialog/CreateObjectPanel.tsx +25 -3
  161. package/src/components/CreateDialog/CreateSpaceDialog.tsx +0 -4
  162. package/src/components/MembersContainer.tsx +54 -80
  163. package/src/components/PopoverAddSpace.tsx +3 -9
  164. package/src/components/PopoverRenameObject.tsx +8 -14
  165. package/src/components/PopoverRenameSpace.tsx +0 -8
  166. package/src/components/ShareSpaceButton.stories.tsx +27 -0
  167. package/src/components/ShareSpaceButton.tsx +32 -0
  168. package/src/components/SpacePluginSettings.tsx +2 -27
  169. package/src/components/SpacePresence.tsx +25 -29
  170. package/src/components/SpaceSettings/{SpaceSettingsContainer.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  171. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  172. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +39 -157
  173. package/src/components/SpaceSettings/index.ts +1 -0
  174. package/src/components/SyncStatus/InlineSyncStatus.tsx +7 -5
  175. package/src/components/SyncStatus/Space.tsx +133 -0
  176. package/src/components/SyncStatus/SyncStatus.tsx +69 -6
  177. package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +89 -0
  178. package/src/components/SyncStatus/sync-state.ts +101 -0
  179. package/src/components/index.ts +2 -2
  180. package/src/hooks/index.ts +0 -1
  181. package/src/translations.ts +5 -18
  182. package/src/types/types.ts +8 -30
  183. package/src/util.tsx +103 -43
  184. package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +0 -7
  185. package/dist/lib/browser/app-graph-serializer-UUJH7JRN.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-4226DMDP.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-DIJ7LMCS.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +0 -7
  190. package/dist/lib/browser/identity-created-NRVE4XLL.mjs.map +0 -7
  191. package/dist/lib/browser/intent-resolver-NP55M7C7.mjs.map +0 -7
  192. package/dist/lib/browser/react-surface-2DW2UDRX.mjs.map +0 -7
  193. package/dist/lib/browser/settings-MVT32NP6.mjs.map +0 -7
  194. package/dist/lib/browser/spaces-ready-ERNSICUW.mjs.map +0 -7
  195. package/dist/lib/browser/state-CYV6QCTN.mjs.map +0 -7
  196. package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +0 -7
  197. package/dist/lib/node/app-graph-serializer-M6Z2OPA4.cjs.map +0 -7
  198. package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +0 -7
  199. package/dist/lib/node/chunk-UOCR4G2D.cjs.map +0 -7
  200. package/dist/lib/node/chunk-XADZLQAJ.cjs.map +0 -7
  201. package/dist/lib/node/chunk-ZMQO74LX.cjs.map +0 -7
  202. package/dist/lib/node/identity-created-YDTRMOMX.cjs.map +0 -7
  203. package/dist/lib/node/intent-resolver-3J52ARFL.cjs.map +0 -7
  204. package/dist/lib/node/react-surface-IWSTOZ2E.cjs.map +0 -7
  205. package/dist/lib/node/settings-JLV7YT6Q.cjs.map +0 -7
  206. package/dist/lib/node/spaces-ready-6EBR4SM4.cjs.map +0 -7
  207. package/dist/lib/node/state-JLN7TGRR.cjs.map +0 -7
  208. package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +0 -7
  209. package/dist/lib/node-esm/app-graph-serializer-J3B4WSXU.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-OLISVDCF.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-PQI4D4SH.mjs.map +0 -7
  214. package/dist/lib/node-esm/identity-created-EC6SVYB5.mjs.map +0 -7
  215. package/dist/lib/node-esm/intent-resolver-MXQIFIRC.mjs.map +0 -7
  216. package/dist/lib/node-esm/react-surface-JCHDAPGM.mjs.map +0 -7
  217. package/dist/lib/node-esm/settings-AILIMHTE.mjs.map +0 -7
  218. package/dist/lib/node-esm/spaces-ready-5PXESKHX.mjs.map +0 -7
  219. package/dist/lib/node-esm/state-YZPY5T5A.mjs.map +0 -7
  220. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  221. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  222. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  223. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  224. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  225. package/dist/types/src/components/SchemaContainer.d.ts +0 -13
  226. package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
  227. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +0 -7
  228. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +0 -1
  229. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +0 -14
  230. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +0 -1
  231. package/src/components/SchemaContainer.tsx +0 -59
  232. package/src/hooks/useInputSurfaceLookup.tsx +0 -31
  233. /package/dist/lib/browser/{react-root-XKAUZ3X2.mjs.map → react-root-6H7NX2M2.mjs.map} +0 -0
  234. /package/dist/lib/node/{react-root-XUE2J7HT.cjs.map → react-root-TEL5RW3N.cjs.map} +0 -0
  235. /package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs.map → react-root-PRBJMWLQ.mjs.map} +0 -0
  236. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
  237. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.d.ts +0 -0
  238. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  239. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.d.ts +0 -0
  240. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/index.d.ts +0 -0
  241. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +0 -0
  242. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.tsx +0 -0
  243. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
  244. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.tsx +0 -0
  245. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/index.ts +0 -0
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_ZMQO74LX_exports = {};
30
- __export(chunk_ZMQO74LX_exports, {
29
+ var chunk_3GKCNADA_exports = {};
30
+ __export(chunk_3GKCNADA_exports, {
31
31
  AppGraphBuilder: () => AppGraphBuilder,
32
32
  AppGraphSerializer: () => AppGraphSerializer,
33
33
  AwaitingObject: () => AwaitingObject,
@@ -55,25 +55,28 @@ __export(chunk_ZMQO74LX_exports, {
55
55
  PopoverRenameSpace: () => PopoverRenameSpace,
56
56
  ReactRoot: () => ReactRoot,
57
57
  ReactSurface: () => ReactSurface,
58
+ SPACE_SETTINGS_DIALOG: () => SPACE_SETTINGS_DIALOG,
58
59
  Schema: () => Schema,
59
- SchemaContainer: () => SchemaContainer,
60
+ ShareSpaceButton: () => ShareSpaceButton,
61
+ ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
60
62
  SmallPresence: () => SmallPresence,
61
63
  SmallPresenceLive: () => SmallPresenceLive,
62
64
  SpacePluginSettings: () => SpacePluginSettings,
63
65
  SpacePresence: () => SpacePresence,
66
+ SpacePropertiesForm: () => SpacePropertiesForm,
64
67
  SpaceSettings: () => SpaceSettings,
65
68
  SpaceSettingsContainer: () => SpaceSettingsContainer,
66
69
  SpaceState: () => SpaceState,
67
70
  SpacesReady: () => SpacesReady,
68
71
  SyncStatus: () => SyncStatus,
72
+ SyncStatusDetail: () => SyncStatusDetail,
69
73
  SyncStatusIndicator: () => SyncStatusIndicator,
70
- Tools: () => Tools,
71
- useQuerySpaceSchemas: () => useQuerySpaceSchemas
74
+ Tools: () => Tools
72
75
  });
73
- module.exports = __toCommonJS(chunk_ZMQO74LX_exports);
76
+ module.exports = __toCommonJS(chunk_3GKCNADA_exports);
74
77
  var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
75
- var import_chunk_XADZLQAJ = require("./chunk-XADZLQAJ.cjs");
76
- var import_chunk_EQ5BPSQ7 = require("./chunk-EQ5BPSQ7.cjs");
78
+ var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
79
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
77
80
  var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
78
81
  var import_react = require("@phosphor-icons/react");
79
82
  var import_react2 = __toESM(require("react"));
@@ -90,6 +93,7 @@ var import_react_client2 = require("@dxos/react-client");
90
93
  var import_echo2 = require("@dxos/react-client/echo");
91
94
  var import_react_ui2 = require("@dxos/react-ui");
92
95
  var import_react4 = __toESM(require("react"));
96
+ var import_app_framework3 = require("@dxos/app-framework");
93
97
  var import_echo_schema = require("@dxos/echo-schema");
94
98
  var import_invariant2 = require("@dxos/invariant");
95
99
  var import_react_ui3 = require("@dxos/react-ui");
@@ -97,31 +101,27 @@ var import_react_ui_form = require("@dxos/react-ui-form");
97
101
  var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
98
102
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
99
103
  var import_util = require("@dxos/util");
100
- var import_react5 = __toESM(require("react"));
101
- var import_app_framework3 = require("@dxos/app-framework");
102
- var import_react6 = require("react");
103
104
  var import_app_framework4 = require("@dxos/app-framework");
104
105
  var import_effect2 = require("effect");
105
- var import_react7 = __toESM(require("react"));
106
+ var import_react5 = __toESM(require("react"));
106
107
  var import_app_framework5 = require("@dxos/app-framework");
107
108
  var import_react_ui4 = require("@dxos/react-ui");
108
109
  var import_react_ui_form2 = require("@dxos/react-ui-form");
109
- var import_react8 = __toESM(require("react"));
110
+ var import_react6 = __toESM(require("react"));
110
111
  var import_react_ui5 = require("@dxos/react-ui");
111
112
  var import_react_ui_theme3 = require("@dxos/react-ui-theme");
112
- var import_react9 = __toESM(require("react"));
113
+ var import_react7 = __toESM(require("react"));
113
114
  var import_react_ui6 = require("@dxos/react-ui");
114
- var import_react10 = __toESM(require("react"));
115
+ var import_react8 = __toESM(require("react"));
115
116
  var import_app_framework6 = require("@dxos/app-framework");
116
117
  var import_async = require("@dxos/async");
117
118
  var import_types = require("@dxos/plugin-observability/types");
118
119
  var import_react_client3 = require("@dxos/react-client");
119
120
  var import_react_ui7 = require("@dxos/react-ui");
120
- var import_react11 = require("@dxos/shell/react");
121
- var import_react12 = require("@phosphor-icons/react");
122
- var import_react13 = __toESM(require("react"));
121
+ var import_react9 = require("@dxos/shell/react");
122
+ var import_react10 = require("@phosphor-icons/react");
123
+ var import_react11 = __toESM(require("react"));
123
124
  var import_react_qr_rounded = require("react-qr-rounded");
124
- var import_app_framework7 = require("@dxos/app-framework");
125
125
  var import_log = require("@dxos/log");
126
126
  var import_react_client4 = require("@dxos/react-client");
127
127
  var import_echo3 = require("@dxos/react-client/echo");
@@ -130,48 +130,45 @@ var import_react_ui8 = require("@dxos/react-ui");
130
130
  var import_react_ui_form3 = require("@dxos/react-ui-form");
131
131
  var import_react_ui_stack = require("@dxos/react-ui-stack");
132
132
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
133
- var import_react14 = require("@dxos/shell/react");
133
+ var import_react12 = require("@dxos/shell/react");
134
134
  var import_util2 = require("@dxos/util");
135
- var import_react15 = require("@phosphor-icons/react");
136
- var import_react16 = __toESM(require("react"));
135
+ var import_react13 = require("@phosphor-icons/react");
136
+ var import_react14 = __toESM(require("react"));
137
137
  var import_echo4 = require("@dxos/client/echo");
138
138
  var import_react_client5 = require("@dxos/react-client");
139
139
  var import_react_ui9 = require("@dxos/react-ui");
140
- var import_react17 = __toESM(require("react"));
141
- var import_app_framework8 = require("@dxos/app-framework");
140
+ var import_react15 = __toESM(require("react"));
141
+ var import_app_framework7 = require("@dxos/app-framework");
142
142
  var import_react_ui10 = require("@dxos/react-ui");
143
143
  var import_react_ui_stack2 = require("@dxos/react-ui-stack");
144
- var import_react18 = __toESM(require("react"));
144
+ var import_react16 = __toESM(require("react"));
145
145
  var import_echo_schema2 = require("@dxos/echo-schema");
146
146
  var import_echo5 = require("@dxos/react-client/echo");
147
147
  var import_react_ui11 = require("@dxos/react-ui");
148
148
  var import_react_ui_form4 = require("@dxos/react-ui-form");
149
- var import_react19 = __toESM(require("react"));
149
+ var import_react17 = __toESM(require("react"));
150
150
  var import_react_ui12 = require("@dxos/react-ui");
151
- var import_react20 = __toESM(require("react"));
151
+ var import_react18 = __toESM(require("react"));
152
152
  var import_react_ui13 = require("@dxos/react-ui");
153
153
  var import_react_ui_theme5 = require("@dxos/react-ui-theme");
154
- var import_react21 = require("@phosphor-icons/react");
155
- var import_react22 = __toESM(require("react"));
154
+ var import_react19 = require("@phosphor-icons/react");
155
+ var import_react20 = __toESM(require("react"));
156
156
  var import_async2 = require("@dxos/async");
157
157
  var import_react_ui14 = require("@dxos/react-ui");
158
158
  var import_react_ui_theme6 = require("@dxos/react-ui-theme");
159
- var import_react23 = __toESM(require("react"));
160
- var import_app_framework9 = require("@dxos/app-framework");
159
+ var import_react21 = __toESM(require("react"));
160
+ var import_app_framework8 = require("@dxos/app-framework");
161
161
  var import_react_ui15 = require("@dxos/react-ui");
162
- var import_react24 = __toESM(require("react"));
163
- var import_app_framework10 = require("@dxos/app-framework");
162
+ var import_react22 = __toESM(require("react"));
164
163
  var import_log2 = require("@dxos/log");
165
164
  var import_react_ui16 = require("@dxos/react-ui");
166
- var import_react25 = __toESM(require("react"));
167
- var import_app_framework11 = require("@dxos/app-framework");
165
+ var import_react23 = __toESM(require("react"));
168
166
  var import_react_ui17 = require("@dxos/react-ui");
169
- var import_react26 = __toESM(require("react"));
167
+ var import_react24 = __toESM(require("react"));
168
+ var import_app_framework9 = require("@dxos/app-framework");
170
169
  var import_react_ui18 = require("@dxos/react-ui");
171
- var import_react_ui_form5 = require("@dxos/react-ui-form");
172
- var import_react_ui_stack3 = require("@dxos/react-ui-stack");
173
- var import_react27 = __toESM(require("react"));
174
- var import_app_framework12 = require("@dxos/app-framework");
170
+ var import_react25 = __toESM(require("react"));
171
+ var import_app_framework10 = require("@dxos/app-framework");
175
172
  var import_display_name = require("@dxos/display-name");
176
173
  var import_react_client6 = require("@dxos/react-client");
177
174
  var import_echo6 = require("@dxos/react-client/echo");
@@ -179,37 +176,46 @@ var import_halo = require("@dxos/react-client/halo");
179
176
  var import_react_ui19 = require("@dxos/react-ui");
180
177
  var import_react_ui_attention = require("@dxos/react-ui-attention");
181
178
  var import_util3 = require("@dxos/util");
182
- var import_react28 = __toESM(require("react"));
183
- var import_app_framework13 = require("@dxos/app-framework");
184
- var import_react_client7 = require("@dxos/react-client");
185
- var import_echo7 = require("@dxos/react-client/echo");
179
+ var import_react26 = require("react");
180
+ var import_react27 = __toESM(require("react"));
186
181
  var import_react_ui20 = require("@dxos/react-ui");
187
- var import_react_ui_form6 = require("@dxos/react-ui-form");
188
- var import_effect3 = require("effect");
189
- var import_react29 = __toESM(require("react"));
190
- var import_app_framework14 = require("@dxos/app-framework");
182
+ var import_react_ui_form5 = require("@dxos/react-ui-form");
183
+ var import_react28 = __toESM(require("react"));
191
184
  var import_log3 = require("@dxos/log");
192
185
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
193
- var import_react_client8 = require("@dxos/react-client");
194
- var import_echo8 = require("@dxos/react-client/echo");
195
186
  var import_react_ui21 = require("@dxos/react-ui");
196
- var import_react_ui_form7 = require("@dxos/react-ui-form");
187
+ var import_react_ui_form6 = require("@dxos/react-ui-form");
197
188
  var import_react_ui_pickers = require("@dxos/react-ui-pickers");
198
- var import_react_ui_stack4 = require("@dxos/react-ui-stack");
189
+ var import_react29 = __toESM(require("react"));
190
+ var import_app_framework11 = require("@dxos/app-framework");
191
+ var import_react_ui22 = require("@dxos/react-ui");
192
+ var import_react_ui_form7 = require("@dxos/react-ui-form");
193
+ var import_react_ui_list = require("@dxos/react-ui-list");
194
+ var import_react_ui_stack3 = require("@dxos/react-ui-stack");
195
+ var import_util4 = require("@dxos/util");
199
196
  var import_react30 = __toESM(require("react"));
200
- var import_app_framework15 = require("@dxos/app-framework");
197
+ var import_app_framework12 = require("@dxos/app-framework");
201
198
  var import_services = require("@dxos/protocols/proto/dxos/client/services");
202
199
  var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
203
- var import_react_client9 = require("@dxos/react-client");
204
- var import_echo9 = require("@dxos/react-client/echo");
205
- var import_react_ui22 = require("@dxos/react-ui");
200
+ var import_react_client7 = require("@dxos/react-client");
201
+ var import_react_ui23 = require("@dxos/react-ui");
206
202
  var import_react_ui_attention2 = require("@dxos/react-ui-attention");
207
- var import_react31 = __toESM(require("react"));
203
+ var import_react31 = require("react");
204
+ var import_context = require("@dxos/context");
205
+ var import_protocols = require("@dxos/protocols");
206
+ var import_react_client8 = require("@dxos/react-client");
207
+ var import_react32 = __toESM(require("react"));
208
208
  var import_plugin_status_bar = require("@dxos/plugin-status-bar");
209
+ var import_react_client9 = require("@dxos/react-client");
210
+ var import_react_ui24 = require("@dxos/react-ui");
211
+ var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
212
+ var import_react_ui_theme7 = require("@dxos/react-ui-theme");
213
+ var import_react33 = __toESM(require("react"));
209
214
  var import_react_client10 = require("@dxos/react-client");
210
- var import_echo10 = require("@dxos/react-client/echo");
211
- var import_react_ui23 = require("@dxos/react-ui");
212
- var import_context = require("@dxos/context");
215
+ var import_echo7 = require("@dxos/react-client/echo");
216
+ var import_react_ui25 = require("@dxos/react-ui");
217
+ var import_react_ui_theme8 = require("@dxos/react-ui-theme");
218
+ var import_context2 = require("@dxos/context");
213
219
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
214
220
  var TOAST_TIMEOUT = 24e4;
215
221
  var AwaitingObject = ({ id }) => {
@@ -244,7 +250,7 @@ var AwaitingObject = ({ id }) => {
244
250
  objects,
245
251
  layout
246
252
  ]);
247
- const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.WaitForObject, {
253
+ const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
248
254
  id: void 0
249
255
  })), [
250
256
  dispatch
@@ -294,9 +300,10 @@ var AwaitingObject = ({ id }) => {
294
300
  ns: "appkit"
295
301
  })))));
296
302
  };
303
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
297
304
  var useInputSurfaceLookup = (baseData) => {
298
305
  const pluginManager = (0, import_app_framework3.usePluginManager)();
299
- return (0, import_react5.useCallback)(({ prop, schema, inputProps }) => {
306
+ return (0, import_react4.useCallback)(({ prop, schema, inputProps }) => {
300
307
  const composedData = {
301
308
  prop,
302
309
  schema,
@@ -308,7 +315,7 @@ var useInputSurfaceLookup = (baseData) => {
308
315
  })) {
309
316
  return void 0;
310
317
  }
311
- return /* @__PURE__ */ import_react5.default.createElement(import_app_framework3.Surface, {
318
+ return /* @__PURE__ */ import_react4.default.createElement(import_app_framework3.Surface, {
312
319
  role: "form-input",
313
320
  data: composedData,
314
321
  ...inputProps
@@ -318,40 +325,6 @@ var useInputSurfaceLookup = (baseData) => {
318
325
  baseData
319
326
  ]);
320
327
  };
321
- var usePath = (graph, id, timeout) => {
322
- const [pathState, setPathState] = (0, import_react6.useState)(id ? graph.getPath({
323
- target: id
324
- }) : void 0);
325
- (0, import_react6.useEffect)(() => {
326
- if (!id && pathState) {
327
- setPathState(void 0);
328
- }
329
- if (pathState?.at(-1) === id || !id) {
330
- return;
331
- }
332
- const frame = requestAnimationFrame(async () => {
333
- try {
334
- const path = await graph.waitForPath({
335
- target: id
336
- }, {
337
- timeout
338
- });
339
- if (path) {
340
- setPathState(path);
341
- }
342
- } catch {
343
- }
344
- });
345
- return () => cancelAnimationFrame(frame);
346
- }, [
347
- graph,
348
- id,
349
- timeout,
350
- pathState
351
- ]);
352
- return pathState;
353
- };
354
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
355
328
  var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
356
329
  const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
357
330
  const [typename, setTypename] = (0, import_react4.useState)(initialTypename);
@@ -385,7 +358,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
385
358
  const handleSetTypename = (0, import_react4.useCallback)(async (typename2) => {
386
359
  (0, import_invariant2.invariant)(target, "target is required", {
387
360
  F: __dxlog_file,
388
- L: 72,
361
+ L: 94,
389
362
  S: void 0,
390
363
  A: [
391
364
  "target",
@@ -445,23 +418,23 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
445
418
  }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
446
419
  classNames: "max-bs-[24rem] overflow-auto"
447
420
  }, spaces.sort((a, b) => {
448
- const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_XADZLQAJ.getSpaceDisplayName)(a, {
421
+ const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(a, {
449
422
  personal: a.id === defaultSpaceId
450
423
  }), t);
451
- const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_XADZLQAJ.getSpaceDisplayName)(b, {
424
+ const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(b, {
452
425
  personal: b.id === defaultSpaceId
453
426
  }), t);
454
427
  return aName.localeCompare(bName);
455
428
  }).map((space) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
456
429
  key: space.id,
457
- value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_XADZLQAJ.getSpaceDisplayName)(space, {
430
+ value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
458
431
  personal: space.id === defaultSpaceId
459
432
  }), t),
460
433
  onSelect: () => onChange(space),
461
434
  classNames: "flex items-center gap-2"
462
435
  }, /* @__PURE__ */ import_react4.default.createElement("span", {
463
436
  className: "grow truncate"
464
- }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_XADZLQAJ.getSpaceDisplayName)(space, {
437
+ }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
465
438
  personal: space.id === defaultSpaceId
466
439
  }), t))))));
467
440
  };
@@ -495,17 +468,17 @@ var SelectSchema = ({ options, resolve, onChange }) => {
495
468
  defaultValue: option.typename
496
469
  }))))));
497
470
  };
498
- var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-LLIV422L.cjs"));
499
- var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-M6Z2OPA4.cjs"));
500
- var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-YDTRMOMX.cjs"));
501
- var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-3J52ARFL.cjs"));
502
- var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-XUE2J7HT.cjs"));
503
- var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-IWSTOZ2E.cjs"));
471
+ var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-DPY7AUZE.cjs"));
472
+ var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-JELGJUAY.cjs"));
473
+ var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-XU4HFV2T.cjs"));
474
+ var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-VJ7YV74L.cjs"));
475
+ var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-TEL5RW3N.cjs"));
476
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-2H3S5TY5.cjs"));
504
477
  var Schema = (0, import_app_framework4.lazy)(() => import("./schema-PPJ5BZ3A.cjs"));
505
478
  var Tools = (0, import_app_framework4.lazy)(() => import("./schema-tools-BLIMOZYY.cjs"));
506
- var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-JLV7YT6Q.cjs"));
507
- var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-JLN7TGRR.cjs"));
508
- var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-6EBR4SM4.cjs"));
479
+ var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-WVFP2UEP.cjs"));
480
+ var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-5KX6WBJH.cjs"));
481
+ var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-7DNZSUOG.cjs"));
509
482
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
510
483
  var CREATE_OBJECT_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateObjectDialog`;
511
484
  var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
@@ -538,8 +511,8 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
538
511
  space
539
512
  }));
540
513
  const object = result.data?.object;
541
- if ((0, import_echo2.isLiveObject)(object)) {
542
- const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.AddObject, {
514
+ if ((0, import_echo2.isReactiveObject)(object)) {
515
+ const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_WDEIFDTX.SpaceAction.AddObject, {
543
516
  target: target2,
544
517
  object,
545
518
  hidden: form.hidden
@@ -593,18 +566,17 @@ var initialValues = {
593
566
  edgeReplication: true
594
567
  };
595
568
  var CreateSpaceDialog = () => {
596
- const closeRef = (0, import_react7.useRef)(null);
569
+ const closeRef = (0, import_react5.useRef)(null);
597
570
  const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
598
571
  const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
599
- const inputSurfaceLookup = useInputSurfaceLookup();
600
- const handleCreateSpace = (0, import_react7.useCallback)(async (data) => {
572
+ const handleCreateSpace = (0, import_react5.useCallback)(async (data) => {
601
573
  const program = import_effect2.Effect.gen(function* () {
602
- const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.Create, data));
574
+ const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Create, data));
603
575
  yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
604
576
  part: "workspace",
605
577
  subject: space.id
606
578
  }));
607
- yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.OpenCreateObject, {
579
+ yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateObject, {
608
580
  target: space
609
581
  }));
610
582
  });
@@ -615,50 +587,49 @@ var CreateSpaceDialog = () => {
615
587
  return (
616
588
  // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
617
589
  // Consider factoring it out to the tabs package.
618
- /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Dialog.Content, {
590
+ /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Content, {
619
591
  classNames: "p-0 bs-content min-bs-[16rem] max-bs-full md:max-is-[32rem] overflow-hidden"
620
- }, /* @__PURE__ */ import_react7.default.createElement("div", {
592
+ }, /* @__PURE__ */ import_react5.default.createElement("div", {
621
593
  role: "none",
622
594
  className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
623
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Dialog.Close, {
595
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Close, {
624
596
  asChild: true
625
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Button, {
597
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Button, {
626
598
  ref: closeRef,
627
599
  density: "fine",
628
600
  variant: "ghost",
629
601
  autoFocus: true
630
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Icon, {
602
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Icon, {
631
603
  icon: "ph--x--regular",
632
604
  size: 4
633
- })))), /* @__PURE__ */ import_react7.default.createElement("div", {
605
+ })))), /* @__PURE__ */ import_react5.default.createElement("div", {
634
606
  className: "p-4"
635
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui_form2.Form, {
607
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui_form2.Form, {
636
608
  testId: "create-space-form",
637
609
  classNames: "!p-0",
638
610
  autoFocus: true,
639
611
  values: initialValues,
640
- schema: import_chunk_EQ5BPSQ7.SpaceForm,
641
- lookupComponent: inputSurfaceLookup,
612
+ schema: import_chunk_WDEIFDTX.SpaceForm,
642
613
  onSave: handleCreateSpace
643
614
  })))
644
615
  );
645
616
  };
646
617
  var CollectionMain = ({ collection }) => {
647
618
  const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
648
- return /* @__PURE__ */ import_react8.default.createElement("div", {
619
+ return /* @__PURE__ */ import_react6.default.createElement("div", {
649
620
  role: "none",
650
621
  className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
651
622
  "data-testid": "composer.firstRunMessage"
652
- }, /* @__PURE__ */ import_react8.default.createElement("p", {
623
+ }, /* @__PURE__ */ import_react6.default.createElement("p", {
653
624
  role: "alert",
654
- className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionMessage, "rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
625
+ className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
655
626
  }, collection.name ?? t("unnamed collection label")));
656
627
  };
657
628
  var CollectionSection = ({ collection }) => {
658
629
  const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
659
- return /* @__PURE__ */ import_react9.default.createElement("div", {
630
+ return /* @__PURE__ */ import_react7.default.createElement("div", {
660
631
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
661
- }, /* @__PURE__ */ import_react9.default.createElement("span", {
632
+ }, /* @__PURE__ */ import_react7.default.createElement("span", {
662
633
  className: "truncate"
663
634
  }, collection.name ?? t("unnamed collection label")));
664
635
  };
@@ -668,7 +639,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
668
639
  const client = (0, import_react_client3.useClient)();
669
640
  const { graph } = (0, import_app_framework6.useAppGraph)();
670
641
  const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
671
- const handleDone = (0, import_react10.useCallback)(async (result) => {
642
+ const handleDone = (0, import_react8.useCallback)(async (result) => {
672
643
  const spaceKey = result?.spaceKey;
673
644
  if (!spaceKey) {
674
645
  return;
@@ -748,16 +719,16 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
748
719
  client,
749
720
  graph
750
721
  ]);
751
- return /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Content, null, /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Title, {
722
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Content, null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Title, {
752
723
  classNames: "sr-only"
753
724
  }, t("join space label", {
754
725
  ns: "os"
755
- })), /* @__PURE__ */ import_react10.default.createElement(import_react11.JoinPanel, {
726
+ })), /* @__PURE__ */ import_react8.default.createElement(import_react9.JoinPanel, {
756
727
  ...props,
757
- exitActionParent: /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Close, {
728
+ exitActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
758
729
  asChild: true
759
730
  }),
760
- doneActionParent: /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Close, {
731
+ doneActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
761
732
  asChild: true
762
733
  }),
763
734
  onDone: handleDone
@@ -773,7 +744,7 @@ var handleInvitationEvent = (invitation, subscription) => {
773
744
  authCode: invitation.authCode
774
745
  }), void 0, {
775
746
  F: __dxlog_file3,
776
- L: 40,
747
+ L: 38,
777
748
  S: void 0,
778
749
  C: (f, a) => f(...a)
779
750
  });
@@ -781,72 +752,54 @@ var handleInvitationEvent = (invitation, subscription) => {
781
752
  }
782
753
  };
783
754
  var MembersContainer = ({ space, createInvitationUrl }) => {
784
- const { t } = (0, import_react_ui8.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
755
+ const { t } = (0, import_react_ui8.useTranslation)("os");
785
756
  const config = (0, import_react_client4.useConfig)();
786
- const { dispatchPromise: dispatch } = (0, import_app_framework7.useIntentDispatcher)();
787
757
  const invitations = (0, import_echo3.useSpaceInvitations)(space.key);
788
758
  const visibleInvitations = invitations?.filter((invitation) => ![
789
759
  import_invitations.Invitation.State.CANCELLED
790
760
  ].includes(invitation.get().state));
791
- const [activeAction, setInternalActiveAction] = (0, import_react13.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
761
+ const [activeAction, setInternalActiveAction] = (0, import_react11.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
792
762
  const setActiveAction = (nextAction) => {
793
763
  setInternalActiveAction(nextAction);
794
764
  localStorage.setItem(activeActionKey, nextAction);
795
765
  };
796
- const target = space.properties[import_chunk_EQ5BPSQ7.CollectionType.typename]?.target?.objects[0]?.target;
797
- const locked = space.properties[import_chunk_XADZLQAJ.COMPOSER_SPACE_LOCK];
798
- const handleChangeLocked = (0, import_react13.useCallback)(() => {
799
- space.properties[import_chunk_XADZLQAJ.COMPOSER_SPACE_LOCK] = !locked;
800
- }, [
801
- locked,
802
- space
803
- ]);
804
- const inviteActions = (0, import_react13.useMemo)(() => ({
766
+ const target = space.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target?.objects[0]?.target;
767
+ const inviteActions = (0, import_react11.useMemo)(() => ({
805
768
  inviteOne: {
806
- label: t("invite one label", {
807
- ns: "os"
808
- }),
809
- description: t("invite one description", {
810
- ns: "os"
811
- }),
812
- icon: () => /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Icon, {
769
+ label: t("invite one label"),
770
+ description: t("invite one description"),
771
+ icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
813
772
  icon: "ph--user-plus--regular",
814
773
  size: 5
815
774
  }),
816
775
  testId: "membersContainer.inviteOne",
817
- onClick: async () => {
818
- const { data: invitation } = await dispatch((0, import_app_framework7.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.Share, {
819
- space,
776
+ onClick: () => {
777
+ const invitation = space.share?.({
820
778
  type: import_invitations.Invitation.Type.INTERACTIVE,
821
779
  authMethod: import_invitations.Invitation.AuthMethod.SHARED_SECRET,
822
780
  multiUse: false,
823
781
  target: target && (0, import_echo3.fullyQualifiedId)(target)
824
- }));
782
+ });
825
783
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
826
784
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
827
785
  }
828
786
  }
829
787
  },
830
788
  inviteMany: {
831
- label: t("invite many label", {
832
- ns: "os"
833
- }),
834
- description: t("invite many description", {
835
- ns: "os"
836
- }),
837
- icon: () => /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Icon, {
789
+ label: t("invite many label"),
790
+ description: t("invite many description"),
791
+ icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
838
792
  icon: "ph--users-three--regular",
839
793
  size: 5
840
794
  }),
841
795
  testId: "membersContainer.inviteMany",
842
- onClick: async () => {
843
- const { data: invitation } = await dispatch((0, import_app_framework7.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.Share, {
844
- space,
796
+ onClick: () => {
797
+ const invitation = space.share?.({
845
798
  type: import_invitations.Invitation.Type.DELEGATED,
846
799
  authMethod: import_invitations.Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
847
800
  multiUse: true,
848
801
  target: target && (0, import_echo3.fullyQualifiedId)(target)
849
- }));
802
+ });
850
803
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
851
804
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
852
805
  }
@@ -857,75 +810,72 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
857
810
  space,
858
811
  target
859
812
  ]);
860
- const [selectedInvitation, setSelectedInvitation] = (0, import_react13.useState)(null);
813
+ const [selectedInvitation, setSelectedInvitation] = (0, import_react11.useState)(null);
861
814
  const handleSend = (event) => {
862
815
  setSelectedInvitation(event.invitation);
863
816
  };
864
817
  const handleBack = () => {
865
818
  setSelectedInvitation(null);
866
819
  };
867
- return /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_stack.StackItem.Content, {
868
- classNames: "block overflow-y-auto"
869
- }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlPage, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlSection, {
870
- title: t("members verbose label"),
871
- description: t("members description")
872
- }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrameItem, {
873
- title: t("members label")
874
- }, /* @__PURE__ */ import_react13.default.createElement(import_react14.SpaceMemberList, {
820
+ return /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_stack.StackItem.Content, {
821
+ classNames: "p-2 block overflow-y-auto"
822
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlSection, {
823
+ title: t("members verbose label", {
824
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
825
+ }),
826
+ description: t("members description", {
827
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
828
+ })
829
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
830
+ title: t("members label", {
831
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
832
+ })
833
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react12.SpaceMemberList, {
875
834
  spaceKey: space.key,
876
835
  includeSelf: true
877
- })), locked && /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrameItem, {
878
- title: t("invitations label")
879
- }, /* @__PURE__ */ import_react13.default.createElement("p", {
880
- className: "text-description mbe-2"
881
- }, t("locked space description"))), !locked && /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrameItem, {
882
- title: t("invitations label")
883
- }, selectedInvitation && /* @__PURE__ */ import_react13.default.createElement(InvitationSection, {
836
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
837
+ title: t("invitations label", {
838
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
839
+ })
840
+ }, selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(InvitationSection, {
884
841
  ...selectedInvitation,
885
842
  onBack: handleBack
886
- }), !selectedInvitation && /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("p", {
843
+ }), !selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
887
844
  className: "text-description mbe-2"
888
- }, t("space invitation description")), /* @__PURE__ */ import_react13.default.createElement(import_react14.InvitationList, {
845
+ }, t("space invitation description", {
846
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
847
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.InvitationList, {
889
848
  className: "mb-2",
890
849
  send: handleSend,
891
850
  invitations: visibleInvitations ?? [],
892
851
  onClickRemove: (invitation) => invitation.cancel(),
893
852
  createInvitationUrl
894
- }), /* @__PURE__ */ import_react13.default.createElement(import_react14.BifurcatedAction, {
853
+ }), /* @__PURE__ */ import_react11.default.createElement(import_react12.BifurcatedAction, {
895
854
  actions: inviteActions,
896
855
  activeAction,
897
856
  onChangeActiveAction: setActiveAction,
898
857
  "data-testid": "membersContainer.createInvitation"
899
- })))), /* @__PURE__ */ import_react13.default.createElement("div", {
900
- className: "justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
901
- }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlItemInput, {
902
- title: t("space locked label"),
903
- description: t("space locked description")
904
- }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Input.Switch, {
905
- checked: locked,
906
- onCheckedChange: handleChangeLocked,
907
- classNames: "justify-self-end"
908
858
  })))))));
909
859
  };
910
860
  var InvitationSection = ({ state = import_invitations.Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
911
861
  const activeView = state < 0 ? "init" : state >= import_invitations.Invitation.State.CANCELLED ? "complete" : state >= import_invitations.Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
912
- return /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.Root, {
862
+ return /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Root, {
913
863
  activeView
914
- }, /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.Views, null, /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
864
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Views, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
915
865
  id: "init"
916
- }), /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
866
+ }), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
917
867
  id: "complete"
918
- }, /* @__PURE__ */ import_react13.default.createElement(InvitationComplete, {
868
+ }, /* @__PURE__ */ import_react11.default.createElement(InvitationComplete, {
919
869
  statusValue: state
920
- })), /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
870
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
921
871
  id: "auth-code"
922
- }, /* @__PURE__ */ import_react13.default.createElement(InvitationAuthCode, {
872
+ }, /* @__PURE__ */ import_react11.default.createElement(InvitationAuthCode, {
923
873
  id: invitationId,
924
874
  code: authCode ?? "never",
925
875
  onCancel: onBack
926
- })), /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
876
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
927
877
  id: "qr-code"
928
- }, /* @__PURE__ */ import_react13.default.createElement(InvitationQR, {
878
+ }, /* @__PURE__ */ import_react11.default.createElement(InvitationQR, {
929
879
  id: invitationId,
930
880
  url,
931
881
  onCancel: onBack
@@ -935,31 +885,31 @@ var InvitationQR = ({ id, url, onCancel }) => {
935
885
  const { t } = (0, import_react_ui8.useTranslation)("os");
936
886
  const qrLabel = (0, import_react_ui8.useId)("members-container__qr-code");
937
887
  const emoji = (0, import_util2.hexToEmoji)(id);
938
- return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("p", {
888
+ return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
939
889
  className: "text-description"
940
890
  }, t("qr code description", {
941
891
  ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
942
- })), /* @__PURE__ */ import_react13.default.createElement("div", {
892
+ })), /* @__PURE__ */ import_react11.default.createElement("div", {
943
893
  role: "group",
944
894
  className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
945
- }, /* @__PURE__ */ import_react13.default.createElement("div", {
895
+ }, /* @__PURE__ */ import_react11.default.createElement("div", {
946
896
  role: "none",
947
897
  className: "is-full aspect-square relative text-description"
948
- }, /* @__PURE__ */ import_react13.default.createElement(import_react_qr_rounded.QR, {
898
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_qr_rounded.QR, {
949
899
  rounding: 100,
950
900
  backgroundColor: "transparent",
951
901
  color: "currentColor",
952
902
  "aria-labelledby": qrLabel,
953
903
  errorCorrectionLevel: "Q",
954
904
  cutout: true
955
- }, url ?? "never"), /* @__PURE__ */ import_react13.default.createElement(import_react14.Centered, null, /* @__PURE__ */ import_react13.default.createElement(import_react14.Emoji, {
905
+ }, url ?? "never"), /* @__PURE__ */ import_react11.default.createElement(import_react12.Centered, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
956
906
  text: emoji
957
- }))), /* @__PURE__ */ import_react13.default.createElement("span", {
907
+ }))), /* @__PURE__ */ import_react11.default.createElement("span", {
958
908
  id: qrLabel,
959
909
  className: "sr-only"
960
- }, t("qr label")), /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Clipboard.Button, {
910
+ }, t("qr label")), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Button, {
961
911
  value: url ?? "never"
962
- })), /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Button, {
912
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
963
913
  variant: "ghost",
964
914
  onClick: onCancel
965
915
  }, t("cancel label")));
@@ -967,26 +917,26 @@ var InvitationQR = ({ id, url, onCancel }) => {
967
917
  var InvitationAuthCode = ({ id, code, onCancel }) => {
968
918
  const { t } = (0, import_react_ui8.useTranslation)("os");
969
919
  const emoji = (0, import_util2.hexToEmoji)(id);
970
- return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("p", {
920
+ return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
971
921
  className: "text-description"
972
- }, t("auth other device emoji message")), emoji && /* @__PURE__ */ import_react13.default.createElement(import_react14.Emoji, {
922
+ }, t("auth other device emoji message")), emoji && /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
973
923
  text: emoji,
974
924
  className: "mli-auto mlb-2 text-center"
975
- }), /* @__PURE__ */ import_react13.default.createElement("p", {
925
+ }), /* @__PURE__ */ import_react11.default.createElement("p", {
976
926
  className: "text-description"
977
- }, t("auth code message")), /* @__PURE__ */ import_react13.default.createElement(import_react14.AuthCode, {
927
+ }, t("auth code message")), /* @__PURE__ */ import_react11.default.createElement(import_react12.AuthCode, {
978
928
  code,
979
929
  large: true,
980
930
  classNames: "mli-auto mlb-2 text-center grow"
981
- }), /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Button, {
931
+ }), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
982
932
  variant: "ghost",
983
933
  onClick: onCancel
984
934
  }, t("cancel label")));
985
935
  };
986
936
  var InvitationComplete = ({ statusValue }) => {
987
- return statusValue > 0 ? /* @__PURE__ */ import_react13.default.createElement(import_react12.Check, {
937
+ return statusValue > 0 ? /* @__PURE__ */ import_react11.default.createElement(import_react10.Check, {
988
938
  className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
989
- }) : /* @__PURE__ */ import_react13.default.createElement(import_react12.X, {
939
+ }) : /* @__PURE__ */ import_react11.default.createElement(import_react10.X, {
990
940
  className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
991
941
  });
992
942
  };
@@ -994,23 +944,23 @@ var MenuFooter = ({ object }) => {
994
944
  const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
995
945
  const client = (0, import_react_client5.useClient)();
996
946
  const space = (0, import_echo4.getSpace)(object);
997
- const spaceName = space ? (0, import_chunk_XADZLQAJ.getSpaceDisplayName)(space, {
947
+ const spaceName = space ? (0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
998
948
  personal: client.spaces.default === space
999
949
  }) : "";
1000
- return space ? /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.DropdownMenu.Separator, null), /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react16.default.createElement("dl", {
950
+ return space ? /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui9.DropdownMenu.Separator, null), /* @__PURE__ */ import_react14.default.createElement(import_react_ui9.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react14.default.createElement("dl", {
1001
951
  className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
1002
- }, /* @__PURE__ */ import_react16.default.createElement("dt", {
952
+ }, /* @__PURE__ */ import_react14.default.createElement("dt", {
1003
953
  className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
1004
- }, t("location label")), /* @__PURE__ */ import_react16.default.createElement("dd", {
954
+ }, t("location label")), /* @__PURE__ */ import_react14.default.createElement("dd", {
1005
955
  className: "line-clamp-3"
1006
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.Planet, {
956
+ }, /* @__PURE__ */ import_react14.default.createElement(import_react13.Planet, {
1007
957
  className: "inline-block mie-1"
1008
958
  }), (0, import_react_ui9.toLocalizedString)(spaceName, t)))) : null;
1009
959
  };
1010
960
  var ForeignKeys = ({ keys, onDelete }) => {
1011
- return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.List, {
961
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.List, {
1012
962
  classNames: "flex flex-col gap-2"
1013
- }, keys.map((key) => /* @__PURE__ */ import_react19.default.createElement(KeyItem, {
963
+ }, keys.map((key) => /* @__PURE__ */ import_react17.default.createElement(KeyItem, {
1014
964
  key: key.id,
1015
965
  forignKey: key,
1016
966
  onDelete
@@ -1018,19 +968,19 @@ var ForeignKeys = ({ keys, onDelete }) => {
1018
968
  };
1019
969
  var KeyItem = ({ forignKey, onDelete }) => {
1020
970
  const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1021
- const handleDelete = (0, import_react19.useCallback)(() => {
971
+ const handleDelete = (0, import_react17.useCallback)(() => {
1022
972
  onDelete?.(forignKey);
1023
973
  }, [
1024
974
  forignKey,
1025
975
  onDelete
1026
976
  ]);
1027
- return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ListItem.Root, {
977
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Root, {
1028
978
  classNames: "px-2"
1029
- }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ListItem.Heading, {
979
+ }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Heading, {
1030
980
  classNames: "flex flex-col grow truncate"
1031
- }, /* @__PURE__ */ import_react19.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react19.default.createElement("div", {
981
+ }, /* @__PURE__ */ import_react17.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react17.default.createElement("div", {
1032
982
  className: "text-description text-sm truncate"
1033
- }, forignKey.id)), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ListItem.Endcap, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.IconButton, {
983
+ }, forignKey.id)), /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Endcap, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.IconButton, {
1034
984
  iconOnly: true,
1035
985
  icon: "ph--x--regular",
1036
986
  variant: "ghost",
@@ -1044,11 +994,11 @@ var initialValues2 = {
1044
994
  };
1045
995
  var AdvancedObjectSettings = ({ object }) => {
1046
996
  const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1047
- const [adding, setAdding] = (0, import_react18.useState)(false);
997
+ const [adding, setAdding] = (0, import_react16.useState)(false);
1048
998
  const keys = (0, import_echo5.getMeta)(object).keys;
1049
- const handleNew = (0, import_react18.useCallback)(() => setAdding(true), []);
1050
- const handleCancel = (0, import_react18.useCallback)(() => setAdding(false), []);
1051
- const handleSave = (0, import_react18.useCallback)((key) => {
999
+ const handleNew = (0, import_react16.useCallback)(() => setAdding(true), []);
1000
+ const handleCancel = (0, import_react16.useCallback)(() => setAdding(false), []);
1001
+ const handleSave = (0, import_react16.useCallback)((key) => {
1052
1002
  const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
1053
1003
  if (index === -1) {
1054
1004
  keys.push(key);
@@ -1057,7 +1007,7 @@ var AdvancedObjectSettings = ({ object }) => {
1057
1007
  }, [
1058
1008
  keys
1059
1009
  ]);
1060
- const handleDelete = (0, import_react18.useCallback)((key) => {
1010
+ const handleDelete = (0, import_react16.useCallback)((key) => {
1061
1011
  const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
1062
1012
  if (index !== -1) {
1063
1013
  keys.splice(index, 1);
@@ -1065,23 +1015,23 @@ var AdvancedObjectSettings = ({ object }) => {
1065
1015
  }, [
1066
1016
  keys
1067
1017
  ]);
1068
- return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement("div", {
1018
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement("div", {
1069
1019
  className: "p-2 flex flex-col gap-4"
1070
- }, /* @__PURE__ */ import_react18.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react18.default.createElement("div", {
1020
+ }, /* @__PURE__ */ import_react16.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react16.default.createElement("div", {
1071
1021
  className: "flex items-center"
1072
- }, /* @__PURE__ */ import_react18.default.createElement("h3", {
1022
+ }, /* @__PURE__ */ import_react16.default.createElement("h3", {
1073
1023
  className: "text-sm font-semibold"
1074
- }, t("foreign keys")), /* @__PURE__ */ import_react18.default.createElement("div", {
1024
+ }, t("foreign keys")), /* @__PURE__ */ import_react16.default.createElement("div", {
1075
1025
  className: "grow"
1076
- }), /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.IconButton, {
1026
+ }), /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.IconButton, {
1077
1027
  classNames: adding && "invisible",
1078
1028
  icon: "ph--plus--regular",
1079
1029
  label: t("add key"),
1080
1030
  onClick: handleNew
1081
- })), !adding && /* @__PURE__ */ import_react18.default.createElement(ForeignKeys, {
1031
+ })), !adding && /* @__PURE__ */ import_react16.default.createElement(ForeignKeys, {
1082
1032
  keys,
1083
1033
  onDelete: handleDelete
1084
- })), adding && /* @__PURE__ */ import_react18.default.createElement(import_react_ui_form4.Form, {
1034
+ })), adding && /* @__PURE__ */ import_react16.default.createElement(import_react_ui_form4.Form, {
1085
1035
  schema: import_echo_schema2.ForeignKeySchema,
1086
1036
  values: initialValues2,
1087
1037
  onSave: handleSave,
@@ -1090,10 +1040,10 @@ var AdvancedObjectSettings = ({ object }) => {
1090
1040
  };
1091
1041
  var BaseObjectSettings = ({ classNames, children, object }) => {
1092
1042
  const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6P2DB4QQ.meta.id);
1093
- const inputRef = (0, import_react20.useRef)(null);
1094
- return /* @__PURE__ */ import_react20.default.createElement("form", {
1043
+ const inputRef = (0, import_react18.useRef)(null);
1044
+ return /* @__PURE__ */ import_react18.default.createElement("form", {
1095
1045
  className: (0, import_react_ui_theme5.mx)("flex flex-col p-2 gap-2", classNames)
1096
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Input.Label, null, t("name label")), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Input.TextInput, {
1046
+ }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.Label, null, t("name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.TextInput, {
1097
1047
  ref: inputRef,
1098
1048
  placeholder: t("name placeholder"),
1099
1049
  value: object.name ?? "",
@@ -1108,25 +1058,25 @@ var BaseObjectSettings = ({ classNames, children, object }) => {
1108
1058
  })), children);
1109
1059
  };
1110
1060
  var ObjectSettingsContainer = ({ object, role }) => {
1111
- const data = (0, import_react17.useMemo)(() => ({
1061
+ const data = (0, import_react15.useMemo)(() => ({
1112
1062
  subject: object
1113
1063
  }), [
1114
1064
  object
1115
1065
  ]);
1116
- return /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Clipboard.Provider, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui_stack2.StackItem.Content, {
1066
+ return /* @__PURE__ */ import_react15.default.createElement(import_react_ui10.Clipboard.Provider, null, /* @__PURE__ */ import_react15.default.createElement(import_react_ui_stack2.StackItem.Content, {
1117
1067
  toolbar: false,
1118
1068
  role
1119
- }, /* @__PURE__ */ import_react17.default.createElement("div", {
1069
+ }, /* @__PURE__ */ import_react15.default.createElement("div", {
1120
1070
  className: "flex flex-col overflow-y-auto divide-y divide-separator"
1121
- }, /* @__PURE__ */ import_react17.default.createElement(BaseObjectSettings, {
1071
+ }, /* @__PURE__ */ import_react15.default.createElement(BaseObjectSettings, {
1122
1072
  object
1123
- }, /* @__PURE__ */ import_react17.default.createElement(import_app_framework8.Surface, {
1073
+ }, /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
1124
1074
  role: "base-object-settings",
1125
1075
  data
1126
- })), /* @__PURE__ */ import_react17.default.createElement(import_app_framework8.Surface, {
1076
+ })), /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
1127
1077
  role: "object-settings",
1128
1078
  data
1129
- }), /* @__PURE__ */ import_react17.default.createElement(AdvancedObjectSettings, {
1079
+ }), /* @__PURE__ */ import_react15.default.createElement(AdvancedObjectSettings, {
1130
1080
  object
1131
1081
  }))));
1132
1082
  };
@@ -1138,11 +1088,11 @@ var Status;
1138
1088
  })(Status || (Status = {}));
1139
1089
  var PersistenceStatus = ({ db }) => {
1140
1090
  const { t } = (0, import_react_ui14.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1141
- const [displayMessage, setDisplayMessage] = (0, import_react22.useState)(false);
1142
- const [status, naturalSetStatus] = (0, import_react22.useState)(0);
1143
- const [prevStatus, setPrevStatus] = (0, import_react22.useState)(0);
1091
+ const [displayMessage, setDisplayMessage] = (0, import_react20.useState)(false);
1092
+ const [status, naturalSetStatus] = (0, import_react20.useState)(0);
1093
+ const [prevStatus, setPrevStatus] = (0, import_react20.useState)(0);
1144
1094
  const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
1145
- (0, import_react22.useEffect)(() => {
1095
+ (0, import_react20.useEffect)(() => {
1146
1096
  setPrevStatus(status);
1147
1097
  if (prevStatus !== status && status === 0) {
1148
1098
  setDisplayMessage(true);
@@ -1154,68 +1104,66 @@ var PersistenceStatus = ({ db }) => {
1154
1104
  ]);
1155
1105
  switch (status) {
1156
1106
  case 2:
1157
- return /* @__PURE__ */ import_react22.default.createElement("div", {
1107
+ return /* @__PURE__ */ import_react20.default.createElement("div", {
1158
1108
  className: "flex items-center"
1159
- }, /* @__PURE__ */ import_react22.default.createElement(import_react21.Warning, {
1109
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.Warning, {
1160
1110
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1161
- }), /* @__PURE__ */ import_react22.default.createElement("span", {
1111
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1162
1112
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
1163
1113
  }, t("persistence error label")));
1164
1114
  case 1:
1165
- return /* @__PURE__ */ import_react22.default.createElement("div", {
1115
+ return /* @__PURE__ */ import_react20.default.createElement("div", {
1166
1116
  className: "flex items-center"
1167
- }, /* @__PURE__ */ import_react22.default.createElement(import_react21.ArrowsCounterClockwise, {
1117
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.ArrowsCounterClockwise, {
1168
1118
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1169
- }), /* @__PURE__ */ import_react22.default.createElement("span", {
1119
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1170
1120
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
1171
1121
  }, t("persistence pending label")));
1172
1122
  case 0:
1173
1123
  default:
1174
- return /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, {
1124
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Root, {
1175
1125
  delayDuration: 400
1176
- }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, {
1126
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Trigger, {
1177
1127
  role: "status",
1178
1128
  className: "flex items-center"
1179
- }, /* @__PURE__ */ import_react22.default.createElement(import_react21.CheckCircle, {
1129
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.CheckCircle, {
1180
1130
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1181
- }), displayMessage && /* @__PURE__ */ import_react22.default.createElement("span", {
1131
+ }), displayMessage && /* @__PURE__ */ import_react20.default.createElement("span", {
1182
1132
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
1183
- }, t("persisted locally label"))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, null, t("persisted locally message"), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
1133
+ }, t("persisted locally label"))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Content, null, t("persisted locally message"), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
1184
1134
  }
1185
1135
  };
1186
1136
  var POPOVER_ADD_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
1187
1137
  var PopoverAddSpace = () => {
1188
1138
  const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1189
- const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
1190
- return /* @__PURE__ */ import_react23.default.createElement("div", {
1139
+ const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
1140
+ return /* @__PURE__ */ import_react21.default.createElement("div", {
1191
1141
  role: "none",
1192
- className: "p-1 grid grid-cols-1 gap-1 [&>button]:justify-start"
1193
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.IconButton, {
1142
+ className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
1143
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
1194
1144
  variant: "ghost",
1195
1145
  label: t("create space label"),
1196
1146
  icon: "ph--plus--regular",
1197
1147
  onClick: () => {
1198
- void dispatch((0, import_app_framework9.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.OpenCreateSpace));
1199
- void dispatch((0, import_app_framework9.createIntent)(import_app_framework9.LayoutAction.UpdatePopover, {
1148
+ void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateSpace));
1149
+ void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1200
1150
  part: "popover",
1201
1151
  options: {
1202
- variant: "react",
1203
1152
  anchorId: "",
1204
1153
  state: false
1205
1154
  }
1206
1155
  }));
1207
1156
  },
1208
1157
  "data-testid": "spacePlugin.createSpace"
1209
- }), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.IconButton, {
1158
+ }), /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
1210
1159
  variant: "ghost",
1211
1160
  label: t("join space label"),
1212
1161
  icon: "ph--sign-in--regular",
1213
1162
  onClick: () => {
1214
- void dispatch((0, import_app_framework9.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.Join));
1215
- void dispatch((0, import_app_framework9.createIntent)(import_app_framework9.LayoutAction.UpdatePopover, {
1163
+ void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Join));
1164
+ void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1216
1165
  part: "popover",
1217
1166
  options: {
1218
- variant: "react",
1219
1167
  anchorId: "",
1220
1168
  state: false
1221
1169
  }
@@ -1228,11 +1176,10 @@ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/s
1228
1176
  var POPOVER_RENAME_OBJECT = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameObject`;
1229
1177
  var PopoverRenameObject = ({ object: obj }) => {
1230
1178
  const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1231
- const doneButton = (0, import_react24.useRef)(null);
1179
+ const doneButton = (0, import_react22.useRef)(null);
1232
1180
  const object = obj;
1233
- const [name, setName] = (0, import_react24.useState)(object.name || object.title || "");
1234
- const { dispatchPromise: dispatch } = (0, import_app_framework10.useIntentDispatcher)();
1235
- const handleDone = (0, import_react24.useCallback)(() => {
1181
+ const [name, setName] = (0, import_react22.useState)(object.name || object.title || "");
1182
+ const handleDone = (0, import_react22.useCallback)(() => {
1236
1183
  try {
1237
1184
  object.name = name;
1238
1185
  } catch {
@@ -1243,84 +1190,69 @@ var PopoverRenameObject = ({ object: obj }) => {
1243
1190
  err
1244
1191
  }, {
1245
1192
  F: __dxlog_file4,
1246
- L: 32,
1193
+ L: 30,
1247
1194
  S: void 0,
1248
1195
  C: (f, a) => f(...a)
1249
1196
  });
1250
1197
  }
1251
1198
  }
1252
- void dispatch((0, import_app_framework10.createIntent)(import_app_framework10.LayoutAction.UpdatePopover, {
1253
- part: "popover",
1254
- options: {
1255
- variant: "react",
1256
- anchorId: "",
1257
- state: false
1258
- }
1259
- }));
1260
1199
  }, [
1261
1200
  object,
1262
1201
  name
1263
1202
  ]);
1264
- return /* @__PURE__ */ import_react24.default.createElement("div", {
1203
+ return /* @__PURE__ */ import_react22.default.createElement("div", {
1265
1204
  role: "none",
1266
1205
  className: "p-1 flex gap-2"
1267
- }, /* @__PURE__ */ import_react24.default.createElement("div", {
1206
+ }, /* @__PURE__ */ import_react22.default.createElement("div", {
1268
1207
  role: "none",
1269
1208
  className: "flex-1"
1270
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Label, {
1209
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Label, {
1271
1210
  srOnly: true
1272
- }, t("object name label")), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.TextInput, {
1211
+ }, t("object name label")), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.TextInput, {
1273
1212
  placeholder: t("object placeholder"),
1274
1213
  value: name,
1275
1214
  "data-testid": "spacePlugin.renameObject.input",
1276
1215
  onChange: ({ target: { value } }) => setName(value),
1277
1216
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1278
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Button, {
1217
+ }))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Close, {
1218
+ asChild: true
1219
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Button, {
1279
1220
  ref: doneButton,
1280
1221
  classNames: "self-stretch",
1281
1222
  onClick: handleDone
1282
1223
  }, t("done label", {
1283
1224
  ns: "os"
1284
- })));
1225
+ }))));
1285
1226
  };
1286
1227
  var POPOVER_RENAME_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
1287
1228
  var PopoverRenameSpace = ({ space }) => {
1288
1229
  const { t } = (0, import_react_ui17.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1289
- const doneButton = (0, import_react25.useRef)(null);
1290
- const [name, setName] = (0, import_react25.useState)(space.properties.name ?? "");
1291
- const { dispatchPromise: dispatch } = (0, import_app_framework11.useIntentDispatcher)();
1292
- const handleDone = (0, import_react25.useCallback)(() => {
1230
+ const doneButton = (0, import_react23.useRef)(null);
1231
+ const [name, setName] = (0, import_react23.useState)(space.properties.name ?? "");
1232
+ const handleDone = (0, import_react23.useCallback)(() => {
1293
1233
  space.properties.name = name;
1294
- void dispatch((0, import_app_framework11.createIntent)(import_app_framework11.LayoutAction.UpdatePopover, {
1295
- part: "popover",
1296
- options: {
1297
- variant: "react",
1298
- anchorId: "",
1299
- state: false
1300
- }
1301
- }));
1302
1234
  }, [
1303
1235
  space,
1304
1236
  name
1305
1237
  ]);
1306
- return /* @__PURE__ */ import_react25.default.createElement("div", {
1238
+ return /* @__PURE__ */ import_react23.default.createElement("div", {
1307
1239
  role: "none",
1308
1240
  className: "p-1 flex gap-2"
1309
- }, /* @__PURE__ */ import_react25.default.createElement("div", {
1241
+ }, /* @__PURE__ */ import_react23.default.createElement("div", {
1310
1242
  role: "none",
1311
1243
  className: "flex-1"
1312
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Input.Label, {
1244
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Label, {
1313
1245
  srOnly: true
1314
- }, t("space name label")), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Input.TextInput, {
1246
+ }, t("space name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.TextInput, {
1315
1247
  defaultValue: space.properties.name ?? "",
1316
1248
  placeholder: t("unnamed space label"),
1317
1249
  onChange: ({ target: { value } }) => setName(value),
1318
1250
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1319
1251
  // Currently this is not possible because Radix does not expose the popover context.
1320
1252
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1321
- }))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Popover.Close, {
1253
+ }))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Popover.Close, {
1322
1254
  asChild: true
1323
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Button, {
1255
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
1324
1256
  ref: doneButton,
1325
1257
  classNames: "self-stretch",
1326
1258
  onClick: handleDone
@@ -1328,53 +1260,73 @@ var PopoverRenameSpace = ({ space }) => {
1328
1260
  ns: "os"
1329
1261
  }))));
1330
1262
  };
1331
- var useQuerySpaceSchemas = (space) => {
1332
- const [schemas, setSchemas] = (0, import_react26.useState)([]);
1263
+ var ShareSpaceButton = ({ space }) => {
1264
+ const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
1265
+ return /* @__PURE__ */ import_react24.default.createElement(ShareSpaceButtonImpl, {
1266
+ onClick: () => dispatch((0, import_app_framework9.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Share, {
1267
+ space
1268
+ }))
1269
+ });
1270
+ };
1271
+ var ShareSpaceButtonImpl = ({ onClick }) => {
1272
+ const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1273
+ return /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.IconButton, {
1274
+ "data-testid": "spacePlugin.shareSpaceButton",
1275
+ icon: "ph--users--regular",
1276
+ label: t("share space label"),
1277
+ onClick
1278
+ });
1279
+ };
1280
+ var usePath = (graph, id, timeout) => {
1281
+ const [pathState, setPathState] = (0, import_react26.useState)(id ? graph.getPath({
1282
+ target: id
1283
+ }) : void 0);
1333
1284
  (0, import_react26.useEffect)(() => {
1334
- const query = space.db.schemaRegistry.query();
1335
- const initialResults = query.runSync();
1336
- setSchemas(initialResults);
1337
- const unsubscribe = query.subscribe(() => setSchemas(query.results));
1338
- return () => unsubscribe();
1285
+ if (!id && pathState) {
1286
+ setPathState(void 0);
1287
+ }
1288
+ if (pathState?.at(-1) === id || !id) {
1289
+ return;
1290
+ }
1291
+ const frame = requestAnimationFrame(async () => {
1292
+ try {
1293
+ const path = await graph.waitForPath({
1294
+ target: id
1295
+ }, {
1296
+ timeout
1297
+ });
1298
+ if (path) {
1299
+ setPathState(path);
1300
+ }
1301
+ } catch {
1302
+ }
1303
+ });
1304
+ return () => cancelAnimationFrame(frame);
1339
1305
  }, [
1340
- space
1306
+ graph,
1307
+ id,
1308
+ timeout,
1309
+ pathState
1341
1310
  ]);
1342
- return schemas;
1343
- };
1344
- var SchemaContainer = ({ space }) => {
1345
- const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1346
- const schemas = useQuerySpaceSchemas(space);
1347
- return /* @__PURE__ */ import_react26.default.createElement(import_react_ui_stack3.StackItem.Content, {
1348
- classNames: "block overflow-y-auto"
1349
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_form5.ControlPage, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_form5.ControlSection, {
1350
- title: t("schema verbose label"),
1351
- description: t("schema description")
1352
- }, /* @__PURE__ */ import_react26.default.createElement("div", {
1353
- role: "none",
1354
- className: import_react_ui_form5.controlItemClasses
1355
- }, schemas.length === 0 && /* @__PURE__ */ import_react26.default.createElement("div", {
1356
- className: "text-center plb-4"
1357
- }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ import_react26.default.createElement("div", {
1358
- key: schema.id
1359
- }, /* @__PURE__ */ import_react26.default.createElement("div", null, schema.typename)))))));
1311
+ return pathState;
1360
1312
  };
1361
1313
  var REFRESH_INTERVAL = 5e3;
1362
1314
  var ACTIVITY_DURATION = 3e4;
1363
1315
  var noViewers = new import_util3.ComplexMap(import_react_client6.PublicKey.hash);
1364
1316
  var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
1365
1317
  var SpacePresence = ({ object, spaceKey }) => {
1366
- const spaceState = (0, import_app_framework12.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1318
+ const spaceState = (0, import_app_framework10.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1367
1319
  const client = (0, import_react_client6.useClient)();
1368
1320
  const identity = (0, import_halo.useIdentity)();
1369
1321
  const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo6.getSpace)(object);
1370
1322
  const spaceMembers = (0, import_echo6.useMembers)(space?.key);
1371
- const [_moment, setMoment] = (0, import_react27.useState)(Date.now());
1372
- (0, import_react27.useEffect)(() => {
1323
+ const [_moment, setMoment] = (0, import_react25.useState)(Date.now());
1324
+ (0, import_react25.useEffect)(() => {
1373
1325
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1374
1326
  return () => clearInterval(interval);
1375
1327
  }, []);
1376
- const memberOnline = (0, import_react27.useCallback)((member) => member.presence === 1, []);
1377
- const memberIsNotSelf = (0, import_react27.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1328
+ const memberOnline = (0, import_react25.useCallback)((member) => member.presence === 1, []);
1329
+ const memberIsNotSelf = (0, import_react25.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1378
1330
  identity?.identityKey
1379
1331
  ]);
1380
1332
  if (!identity || !spaceState || !space) {
@@ -1391,7 +1343,7 @@ var SpacePresence = ({ object, spaceKey }) => {
1391
1343
  lastSeen
1392
1344
  };
1393
1345
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1394
- return /* @__PURE__ */ import_react27.default.createElement(FullPresence, {
1346
+ return /* @__PURE__ */ import_react25.default.createElement(FullPresence, {
1395
1347
  members: membersForObject
1396
1348
  });
1397
1349
  };
@@ -1401,71 +1353,66 @@ var FullPresence = (props) => {
1401
1353
  if (members.length === 0) {
1402
1354
  return null;
1403
1355
  }
1404
- return /* @__PURE__ */ import_react27.default.createElement("div", {
1356
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1405
1357
  className: "dx-avatar-group",
1406
1358
  "data-testid": "spacePlugin.presence"
1407
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Root, {
1359
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, {
1408
1360
  key: member.identity.identityKey.toHex()
1409
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Trigger, {
1410
- className: "grid focus:outline-none"
1411
- }, /* @__PURE__ */ import_react27.default.createElement(PresenceAvatar, {
1361
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
1412
1362
  identity: member.identity,
1413
1363
  match: member.currentlyAttended,
1414
1364
  index: members.length - i,
1415
1365
  onClick: () => onMemberClick?.(member),
1416
1366
  size
1417
- })), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Content, {
1367
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1418
1368
  side: "bottom"
1419
- }, /* @__PURE__ */ import_react27.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Trigger, {
1420
- className: "grid focus:outline-none"
1421
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Content, {
1369
+ }, /* @__PURE__ */ import_react25.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
1422
1370
  status: "inactive",
1423
1371
  style: {
1424
1372
  zIndex: members.length - 4
1425
1373
  },
1426
- fallback: `+${members.length - 3}`,
1427
- size
1428
- }))), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Content, {
1374
+ fallback: `+${members.length - 3}`
1375
+ }))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1429
1376
  side: "bottom"
1430
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.List, {
1377
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.List, {
1431
1378
  classNames: "max-h-56 overflow-y-auto"
1432
- }, members.map((member) => /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.ListItem.Root, {
1379
+ }, members.map((member) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.ListItem.Root, {
1433
1380
  key: member.identity.identityKey.toHex(),
1434
1381
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1435
1382
  onClick: () => onMemberClick?.(member),
1436
1383
  "data-testid": "identity-list-item"
1437
- }, /* @__PURE__ */ import_react27.default.createElement(PresenceAvatar, {
1384
+ }, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
1438
1385
  identity: member.identity,
1439
1386
  size,
1440
1387
  showName: true,
1441
1388
  match: member.currentlyAttended
1442
1389
  }))))))));
1443
1390
  };
1444
- var PresenceAvatar = /* @__PURE__ */ (0, import_react27.forwardRef)(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
1391
+ var PrensenceAvatar = ({ identity, showName, match, index, onClick, size }) => {
1445
1392
  const status = match ? "current" : "active";
1446
1393
  const fallbackValue = (0, import_util3.keyToFallback)(identity.identityKey);
1447
- return /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Content, {
1394
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
1448
1395
  status,
1449
1396
  hue: identity.profile?.data?.hue || fallbackValue.hue,
1450
1397
  "data-testid": "spacePlugin.presence.member",
1451
1398
  "data-status": status,
1452
1399
  size,
1400
+ classNames: "mbs-2 mie-4",
1453
1401
  ...index ? {
1454
1402
  style: {
1455
1403
  zIndex: index
1456
1404
  }
1457
1405
  } : {},
1458
- onClick,
1459
- fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
1460
- ref: forwardedRef
1461
- }), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Label, {
1406
+ onClick: () => onClick?.(),
1407
+ fallback: identity.profile?.data?.emoji || fallbackValue.emoji
1408
+ }), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Label, {
1462
1409
  classNames: showName ? "text-sm truncate pli-2" : "sr-only"
1463
1410
  }, getName(identity)));
1464
- });
1411
+ };
1465
1412
  var SmallPresenceLive = ({ id, open, viewers }) => {
1466
1413
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
1467
1414
  const isAttended = hasAttention || isAncestor || isRelated;
1468
- const { graph } = (0, import_app_framework12.useAppGraph)();
1415
+ const { graph } = (0, import_app_framework10.useAppGraph)();
1469
1416
  const attended = (0, import_react_ui_attention.useAttended)();
1470
1417
  const startOfAttention = attended.at(-1);
1471
1418
  const path = usePath(graph, startOfAttention);
@@ -1474,8 +1421,8 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1474
1421
  const moment = Date.now();
1475
1422
  return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
1476
1423
  };
1477
- const [activeViewers, setActiveViewers] = (0, import_react27.useState)(viewers ? getActiveViewers(viewers) : []);
1478
- (0, import_react27.useEffect)(() => {
1424
+ const [activeViewers, setActiveViewers] = (0, import_react25.useState)(viewers ? getActiveViewers(viewers) : []);
1425
+ (0, import_react25.useEffect)(() => {
1479
1426
  if (viewers) {
1480
1427
  setActiveViewers(getActiveViewers(viewers));
1481
1428
  const interval = setInterval(() => {
@@ -1486,7 +1433,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1486
1433
  }, [
1487
1434
  viewers
1488
1435
  ]);
1489
- return /* @__PURE__ */ import_react27.default.createElement(SmallPresence, {
1436
+ return /* @__PURE__ */ import_react25.default.createElement(SmallPresence, {
1490
1437
  count: activeViewers.length,
1491
1438
  attended: isAttended,
1492
1439
  containsAttended
@@ -1494,67 +1441,38 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1494
1441
  };
1495
1442
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1496
1443
  const { t } = (0, import_react_ui19.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1497
- return /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Trigger, {
1444
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, {
1498
1445
  asChild: true
1499
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_attention.AttentionGlyph, {
1446
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention.AttentionGlyph, {
1500
1447
  attended,
1501
1448
  containsAttended,
1502
1449
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
1503
1450
  classNames: "self-center mie-1"
1504
- })), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Content, {
1451
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1505
1452
  side: "bottom"
1506
- }, /* @__PURE__ */ import_react27.default.createElement("span", null, t("presence label", {
1453
+ }, /* @__PURE__ */ import_react25.default.createElement("span", null, t("presence label", {
1507
1454
  count
1508
- })), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
1455
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
1509
1456
  };
1510
1457
  var SpacePluginSettings = ({ settings }) => {
1511
1458
  const { t } = (0, import_react_ui20.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1512
- const { dispatchPromise: dispatch } = (0, import_app_framework13.useIntentDispatcher)();
1513
- const client = (0, import_react_client7.useClient)();
1514
- const spaces = (0, import_echo7.useSpaces)({
1515
- all: settings.showHidden
1516
- });
1517
- return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.DeprecatedFormContainer, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.DeprecatedFormInput, {
1459
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1518
1460
  label: t("show hidden spaces label")
1519
- }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.Input.Switch, {
1461
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui20.Input.Switch, {
1520
1462
  checked: settings.showHidden,
1521
1463
  onCheckedChange: (checked) => settings.showHidden = !!checked
1522
- })), /* @__PURE__ */ import_react28.default.createElement("div", {
1523
- role: "none"
1524
- }, /* @__PURE__ */ import_react28.default.createElement("h2", {
1525
- className: "text-xl my-4"
1526
- }, "Space Settings"), /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.List, {
1527
- classNames: "max-w-md mx-auto"
1528
- }, spaces.map((space) => /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.ListItem.Root, {
1529
- key: space.id
1530
- }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.ListItem.Heading, {
1531
- classNames: "flex flex-col grow truncate mbe-2"
1532
- }, (0, import_react_ui20.toLocalizedString)((0, import_chunk_XADZLQAJ.getSpaceDisplayName)(space, {
1533
- personal: space === client.spaces.default
1534
- }), t)), /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.ListItem.Endcap, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.Button, {
1535
- onClick: () => dispatch((0, import_app_framework13.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.OpenSettings, {
1536
- space
1537
- }))
1538
- }, t("open space settings label"))))))));
1464
+ })));
1539
1465
  };
1540
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
1541
- var FormSchema = import_chunk_EQ5BPSQ7.SpaceForm.pipe(import_effect3.Schema.extend(import_effect3.Schema.Struct({
1542
- archived: import_effect3.Schema.Boolean.annotations({
1543
- title: "Archive space"
1544
- })
1545
- })));
1546
- var SpaceSettingsContainer = ({ space }) => {
1466
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpacePropertiesForm.tsx";
1467
+ var SpacePropertiesForm = ({ space }) => {
1547
1468
  const { t } = (0, import_react_ui21.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1548
- const { dispatchPromise: dispatch } = (0, import_app_framework14.useIntentDispatcher)();
1549
- const client = (0, import_react_client8.useClient)();
1550
- const archived = (0, import_react_ui21.useMulticastObservable)(space.state) === import_echo8.SpaceState.SPACE_INACTIVE;
1551
- const [edgeReplication, setEdgeReplication] = (0, import_react29.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1552
- const toggleEdgeReplication = (0, import_react29.useCallback)(async (next) => {
1469
+ const [edgeReplication, setEdgeReplication] = (0, import_react28.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1470
+ const toggleEdgeReplication = (0, import_react28.useCallback)(async (next) => {
1553
1471
  setEdgeReplication(next);
1554
1472
  await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
1555
1473
  import_log3.log.catch(err, void 0, {
1556
1474
  F: __dxlog_file5,
1557
- L: 49,
1475
+ L: 34,
1558
1476
  S: void 0,
1559
1477
  C: (f, a) => f(...a)
1560
1478
  });
@@ -1563,7 +1481,7 @@ var SpaceSettingsContainer = ({ space }) => {
1563
1481
  }, [
1564
1482
  space
1565
1483
  ]);
1566
- const handleSave = (0, import_react29.useCallback)((properties) => {
1484
+ const handleSave = (0, import_react28.useCallback)((properties) => {
1567
1485
  void toggleEdgeReplication(properties.edgeReplication);
1568
1486
  if (properties.name !== space.properties.name) {
1569
1487
  space.properties.name = properties.name;
@@ -1574,46 +1492,31 @@ var SpaceSettingsContainer = ({ space }) => {
1574
1492
  if (properties.hue !== space.properties.hue) {
1575
1493
  space.properties.hue = properties.hue;
1576
1494
  }
1577
- if (properties.archived && !archived) {
1578
- void dispatch((0, import_effect3.pipe)((0, import_app_framework14.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.Close, {
1579
- space
1580
- }), (0, import_app_framework14.chain)(import_app_framework14.LayoutAction.SwitchWorkspace, {
1581
- part: "workspace",
1582
- subject: client.spaces.default.id
1583
- })));
1584
- } else if (!properties.archived && archived) {
1585
- void dispatch((0, import_app_framework14.createIntent)(import_chunk_EQ5BPSQ7.SpaceAction.Open, {
1586
- space
1587
- }));
1588
- }
1589
1495
  }, [
1590
1496
  space,
1591
- toggleEdgeReplication,
1592
- archived
1497
+ toggleEdgeReplication
1593
1498
  ]);
1594
- const values = (0, import_react29.useMemo)(() => ({
1499
+ const values = (0, import_react28.useMemo)(() => ({
1595
1500
  name: space.properties.name,
1596
1501
  icon: space.properties.icon,
1597
1502
  hue: space.properties.hue,
1598
- edgeReplication,
1599
- archived
1503
+ edgeReplication
1600
1504
  }), [
1601
1505
  space.properties.name,
1602
1506
  space.properties.icon,
1603
1507
  space.properties.hue,
1604
- edgeReplication,
1605
- archived
1508
+ edgeReplication
1606
1509
  ]);
1607
- const customElements = (0, import_react29.useMemo)(() => ({
1510
+ const customElements = (0, import_react28.useMemo)(() => ({
1608
1511
  name: ({ type, label, getValue, onValueChange }) => {
1609
- const handleChange = (0, import_react29.useCallback)(({ target: { value } }) => onValueChange(type, value), [
1512
+ const handleChange = (0, import_react28.useCallback)(({ target: { value } }) => onValueChange(type, value), [
1610
1513
  onValueChange,
1611
1514
  type
1612
1515
  ]);
1613
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlItemInput, {
1516
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
1614
1517
  title: label,
1615
1518
  description: t("display name description")
1616
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui21.Input.TextInput, {
1519
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.TextInput, {
1617
1520
  value: getValue(),
1618
1521
  onChange: handleChange,
1619
1522
  placeholder: t("display name input placeholder"),
@@ -1621,18 +1524,18 @@ var SpaceSettingsContainer = ({ space }) => {
1621
1524
  }));
1622
1525
  },
1623
1526
  icon: ({ type, label, getValue, onValueChange }) => {
1624
- const handleChange = (0, import_react29.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
1527
+ const handleChange = (0, import_react28.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
1625
1528
  onValueChange,
1626
1529
  type
1627
1530
  ]);
1628
- const handleEmojiReset = (0, import_react29.useCallback)(() => onValueChange(type, void 0), [
1531
+ const handleEmojiReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
1629
1532
  onValueChange,
1630
1533
  type
1631
1534
  ]);
1632
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlItem, {
1535
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
1633
1536
  title: label,
1634
1537
  description: t("icon description")
1635
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_pickers.IconPicker, {
1538
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.IconPicker, {
1636
1539
  value: getValue(),
1637
1540
  onChange: handleChange,
1638
1541
  onReset: handleEmojiReset,
@@ -1641,18 +1544,18 @@ var SpaceSettingsContainer = ({ space }) => {
1641
1544
  }));
1642
1545
  },
1643
1546
  hue: ({ type, label, getValue, onValueChange }) => {
1644
- const handleChange = (0, import_react29.useCallback)((nextHue) => onValueChange(type, nextHue), [
1547
+ const handleChange = (0, import_react28.useCallback)((nextHue) => onValueChange(type, nextHue), [
1645
1548
  onValueChange,
1646
1549
  type
1647
1550
  ]);
1648
- const handleHueReset = (0, import_react29.useCallback)(() => onValueChange(type, void 0), [
1551
+ const handleHueReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
1649
1552
  onValueChange,
1650
1553
  type
1651
1554
  ]);
1652
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlItem, {
1555
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
1653
1556
  title: label,
1654
1557
  description: t("hue description")
1655
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_pickers.HuePicker, {
1558
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.HuePicker, {
1656
1559
  value: getValue(),
1657
1560
  onChange: handleChange,
1658
1561
  onReset: handleHueReset,
@@ -1660,58 +1563,145 @@ var SpaceSettingsContainer = ({ space }) => {
1660
1563
  }));
1661
1564
  },
1662
1565
  edgeReplication: ({ type, label, getValue, onValueChange }) => {
1663
- const handleChange = (0, import_react29.useCallback)((checked) => onValueChange(type, checked), [
1566
+ const handleChange = (0, import_react28.useCallback)((checked) => onValueChange(type, checked), [
1664
1567
  onValueChange,
1665
1568
  type
1666
1569
  ]);
1667
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlItemInput, {
1570
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
1668
1571
  title: label,
1669
1572
  description: t("edge replication description")
1670
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui21.Input.Switch, {
1573
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Switch, {
1671
1574
  checked: getValue(),
1672
1575
  onCheckedChange: handleChange,
1673
1576
  classNames: "justify-self-end"
1674
1577
  }));
1675
- },
1676
- archived: ({ type, label, getValue, onValueChange }) => {
1677
- const handleChange = (0, import_react29.useCallback)(() => onValueChange(type, !getValue()), [
1678
- onValueChange,
1679
- type,
1680
- getValue
1681
- ]);
1682
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlItemInput, {
1683
- title: label,
1684
- description: t("archive space description")
1685
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui21.Button, {
1686
- disabled: space === client.spaces.default,
1687
- onClick: handleChange
1688
- }, getValue() ? t("unarchive space label") : t("archive space label")));
1689
1578
  }
1690
1579
  }), [
1691
- t,
1692
- space
1580
+ t
1693
1581
  ]);
1694
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_stack4.StackItem.Content, {
1695
- classNames: "block overflow-y-auto pli-2"
1696
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlPage, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlSection, {
1697
- title: t("space properties settings verbose label", {
1698
- ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
1699
- }),
1700
- description: t("space properties settings description", {
1701
- ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
1702
- })
1703
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.Form, {
1704
- schema: FormSchema,
1582
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.Form, {
1583
+ schema: import_chunk_WDEIFDTX.SpaceForm,
1705
1584
  values,
1706
1585
  autoSave: true,
1707
1586
  onSave: handleSave,
1708
1587
  Custom: customElements,
1709
1588
  classNames: 'p-0 container-max-width [&_[role="form"]]:grid [&_[role="form"]]:grid-cols-1 md:[&_[role="form"]]:grid-cols-[1fr_min-content] [&_[role="form"]]:gap-4'
1710
- }))));
1589
+ });
1590
+ };
1591
+ var SPACE_SETTINGS_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/SpaceSettingsDialog`;
1592
+ var SpaceSettingsContainer = ({ space }) => {
1593
+ const { t } = (0, import_react_ui22.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1594
+ const state = (0, import_app_framework11.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1595
+ const items = (0, import_app_framework11.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.SettingsSection).toSorted(import_util4.byPosition);
1596
+ const data = (0, import_react29.useMemo)(() => ({
1597
+ subject: space
1598
+ }), [
1599
+ space
1600
+ ]);
1601
+ const handleOpenSectionChange = (0, import_react29.useCallback)((sections) => {
1602
+ state.spaceSettingsOpenSections.splice(0, state.spaceSettingsOpenSections.length, ...sections);
1603
+ }, [
1604
+ state
1605
+ ]);
1606
+ return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_stack3.StackItem.Content, {
1607
+ classNames: "p-2 block overflow-y-auto"
1608
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.Root, {
1609
+ items,
1610
+ value: state.spaceSettingsOpenSections,
1611
+ onValueChange: handleOpenSectionChange
1612
+ }, ({ items: items2 }) => /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, items2.map((item) => /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.Item, {
1613
+ key: item.id,
1614
+ item,
1615
+ classNames: "container-max-width"
1616
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.ItemHeader, {
1617
+ classNames: "pie-6",
1618
+ asChild: true
1619
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlSectionHeading, {
1620
+ title: (0, import_react_ui22.toLocalizedString)(item.label, t)
1621
+ })), /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.ItemBody, null, /* @__PURE__ */ import_react29.default.createElement(import_app_framework11.Surface, {
1622
+ role: `space-settings--${item.id}`,
1623
+ data
1624
+ })))))));
1625
+ };
1626
+ var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
1627
+ var createEmptyEdgeSyncState = () => ({
1628
+ missingOnLocal: 0,
1629
+ missingOnRemote: 0,
1630
+ localDocumentCount: 0,
1631
+ remoteDocumentCount: 0,
1632
+ differentDocuments: 0
1633
+ });
1634
+ var getSyncSummary = (syncMap) => {
1635
+ return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
1636
+ summary.missingOnLocal += peerState.missingOnLocal;
1637
+ summary.missingOnRemote += peerState.missingOnRemote;
1638
+ summary.localDocumentCount += peerState.localDocumentCount;
1639
+ summary.remoteDocumentCount += peerState.remoteDocumentCount;
1640
+ summary.differentDocuments += peerState.differentDocuments;
1641
+ return summary;
1642
+ }, createEmptyEdgeSyncState());
1643
+ };
1644
+ var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
1645
+ var useSyncState = () => {
1646
+ const client = (0, import_react_client8.useClient)();
1647
+ const [spaceState, setSpaceState] = (0, import_react31.useState)({});
1648
+ (0, import_react31.useEffect)(() => {
1649
+ const ctx = new import_context.Context(void 0, {
1650
+ F: __dxlog_file6,
1651
+ L: 48
1652
+ });
1653
+ const createSubscriptions = (spaces) => {
1654
+ for (const space of spaces) {
1655
+ if (spaceState[space.id]) {
1656
+ continue;
1657
+ }
1658
+ ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
1659
+ const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
1660
+ if (syncState) {
1661
+ setSpaceState((spaceState2) => ({
1662
+ ...spaceState2,
1663
+ [space.id]: syncState
1664
+ }));
1665
+ }
1666
+ }));
1667
+ }
1668
+ };
1669
+ createSubscriptions(client.spaces.get());
1670
+ client.spaces.subscribe((spaces) => {
1671
+ createSubscriptions(spaces);
1672
+ });
1673
+ return () => {
1674
+ void ctx.dispose();
1675
+ };
1676
+ }, [
1677
+ client
1678
+ ]);
1679
+ return spaceState;
1680
+ };
1681
+ var useSpaceSyncState = (space) => {
1682
+ const [spaceState, setSpaceState] = (0, import_react31.useState)();
1683
+ (0, import_react31.useEffect)(() => {
1684
+ const ctx = new import_context.Context(void 0, {
1685
+ F: __dxlog_file6,
1686
+ L: 87
1687
+ });
1688
+ space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
1689
+ const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
1690
+ if (syncState) {
1691
+ setSpaceState(syncState);
1692
+ }
1693
+ });
1694
+ return () => {
1695
+ void ctx.dispose();
1696
+ };
1697
+ }, [
1698
+ space
1699
+ ]);
1700
+ return spaceState;
1711
1701
  };
1712
1702
  var useEdgeStatus = () => {
1713
- const [status, setStatus] = (0, import_react30.useState)(import_services.EdgeStatus.NOT_CONNECTED);
1714
- const client = (0, import_react_client9.useClient)();
1703
+ const [status, setStatus] = (0, import_react30.useState)(import_services.QueryEdgeStatusResponse.EdgeStatus.NOT_CONNECTED);
1704
+ const client = (0, import_react_client7.useClient)();
1715
1705
  (0, import_react30.useEffect)(() => {
1716
1706
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1717
1707
  setStatus(status2);
@@ -1722,32 +1712,136 @@ var useEdgeStatus = () => {
1722
1712
  return status;
1723
1713
  };
1724
1714
  var InlineSyncStatus = ({ space, open }) => {
1725
- const { t } = (0, import_react_ui22.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1715
+ const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1726
1716
  const id = space.id;
1727
1717
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention2.useAttention)(id);
1728
1718
  const isAttended = hasAttention || isAncestor || isRelated;
1729
- const { graph } = (0, import_app_framework15.useAppGraph)();
1719
+ const { graph } = (0, import_app_framework12.useAppGraph)();
1730
1720
  const attended = (0, import_react_ui_attention2.useAttended)();
1731
1721
  const startOfAttention = attended.at(-1);
1732
1722
  const path = usePath(graph, startOfAttention);
1733
1723
  const containsAttended = !open && !isAttended && id && path ? path.includes(id) : false;
1734
- const connectedToEdge = useEdgeStatus() === import_services.EdgeStatus.CONNECTED;
1724
+ const connectedToEdge = useEdgeStatus() === import_services.QueryEdgeStatusResponse.EdgeStatus.CONNECTED;
1735
1725
  const edgeSyncEnabled = space.internal.data.edgeReplication === import_metadata2.EdgeReplicationSetting.ENABLED;
1736
- const syncState = (0, import_echo9.useSpaceSyncState)(space);
1726
+ const syncState = useSpaceSyncState(space);
1737
1727
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1738
- return /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Trigger, {
1728
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Trigger, {
1739
1729
  asChild: true
1740
1730
  }, /* @__PURE__ */ import_react30.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1741
1731
  syncing,
1742
1732
  attended: isAttended,
1743
1733
  containsAttended,
1744
1734
  classNames: "self-center mie-1"
1745
- })), /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Content, {
1735
+ })), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Content, {
1746
1736
  side: "bottom",
1747
1737
  classNames: "z-[70]"
1748
- }, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Arrow, null))));
1738
+ }, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Arrow, null))));
1739
+ };
1740
+ var SYNC_STALLED_TIMEOUT = 5e3;
1741
+ var styles = {
1742
+ barBg: "bg-neutral-50 dark:bg-green-900 text-black",
1743
+ barFg: "bg-neutral-100 bg-green-500",
1744
+ barHover: "dark:hover:bg-green-500"
1749
1745
  };
1750
- var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1746
+ var useActive = (count) => {
1747
+ const [current, setCurrent] = (0, import_react33.useState)(count);
1748
+ const [active, setActive] = (0, import_react33.useState)(false);
1749
+ (0, import_react33.useEffect)(() => {
1750
+ let t;
1751
+ if (count !== current) {
1752
+ setActive(true);
1753
+ setCurrent(count);
1754
+ t && clearTimeout(t);
1755
+ t = setTimeout(() => {
1756
+ setActive(false);
1757
+ }, SYNC_STALLED_TIMEOUT);
1758
+ }
1759
+ return () => {
1760
+ setActive(false);
1761
+ clearTimeout(t);
1762
+ };
1763
+ }, [
1764
+ count,
1765
+ current
1766
+ ]);
1767
+ return active;
1768
+ };
1769
+ var SpaceRowContainer = ({ spaceId, state }) => {
1770
+ const { t } = (0, import_react_ui25.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1771
+ const client = (0, import_react_client10.useClient)();
1772
+ const space = (0, import_echo7.useSpace)(spaceId);
1773
+ if (!space) {
1774
+ return null;
1775
+ }
1776
+ const spaceName = (0, import_react_ui25.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
1777
+ personal: space === client.spaces.default
1778
+ }), t);
1779
+ return /* @__PURE__ */ import_react33.default.createElement(SpaceRow, {
1780
+ spaceId,
1781
+ spaceName,
1782
+ state
1783
+ });
1784
+ };
1785
+ var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
1786
+ const downActive = useActive(localDocumentCount);
1787
+ const upActive = useActive(remoteDocumentCount);
1788
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1789
+ className: "flex items-center mx-0.5 gap-0.5 cursor-pointer",
1790
+ title: spaceId,
1791
+ onClick: () => {
1792
+ void navigator.clipboard.writeText(spaceId);
1793
+ }
1794
+ }, /* @__PURE__ */ import_react33.default.createElement("span", {
1795
+ className: "is-1/2 truncate"
1796
+ }, spaceName), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
1797
+ icon: "ph--arrow-fat-line-left--regular",
1798
+ size: 3,
1799
+ classNames: (0, import_react_ui_theme8.mx)(downActive && "animate-[pulse_1s_infinite]")
1800
+ }), /* @__PURE__ */ import_react33.default.createElement(Candle, {
1801
+ up: {
1802
+ count: remoteDocumentCount,
1803
+ total: remoteDocumentCount + missingOnRemote
1804
+ },
1805
+ down: {
1806
+ count: localDocumentCount,
1807
+ total: localDocumentCount + missingOnLocal
1808
+ },
1809
+ title: spaceId
1810
+ }), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
1811
+ icon: "ph--arrow-fat-line-right--regular",
1812
+ size: 3,
1813
+ classNames: (0, import_react_ui_theme8.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1814
+ }));
1815
+ };
1816
+ var Candle = ({ classNames, up, down }) => {
1817
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1818
+ className: (0, import_react_ui_theme8.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
1819
+ }, /* @__PURE__ */ import_react33.default.createElement(Bar, {
1820
+ classNames: "justify-end",
1821
+ ...up
1822
+ }), /* @__PURE__ */ import_react33.default.createElement("div", {
1823
+ className: "relative"
1824
+ }, /* @__PURE__ */ import_react33.default.createElement("div", {
1825
+ className: (0, import_react_ui_theme8.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
1826
+ }, up.total)), /* @__PURE__ */ import_react33.default.createElement(Bar, down));
1827
+ };
1828
+ var Bar = ({ classNames, count, total }) => {
1829
+ let p = count / total * 100;
1830
+ if (count < total) {
1831
+ p = Math.min(p, 95);
1832
+ }
1833
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1834
+ className: (0, import_react_ui_theme8.mx)("relative flex w-full", styles.barBg, classNames)
1835
+ }, /* @__PURE__ */ import_react33.default.createElement("div", {
1836
+ className: (0, import_react_ui_theme8.mx)("shrink-0", styles.barFg),
1837
+ style: {
1838
+ width: `${p}%`
1839
+ }
1840
+ }), count !== total && /* @__PURE__ */ import_react33.default.createElement("div", {
1841
+ className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
1842
+ }, count));
1843
+ };
1844
+ var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1751
1845
  var createClientSaveTracker = (client, cb) => {
1752
1846
  const CleanupFns = {};
1753
1847
  const state = {};
@@ -1774,8 +1868,8 @@ var createClientSaveTracker = (client, cb) => {
1774
1868
  };
1775
1869
  };
1776
1870
  var createSpaceSaveTracker = (space, cb) => {
1777
- const ctx = new import_context.Context(void 0, {
1778
- F: __dxlog_file6,
1871
+ const ctx = new import_context2.Context(void 0, {
1872
+ F: __dxlog_file7,
1779
1873
  L: 40
1780
1874
  });
1781
1875
  void space.waitUntilReady().then(() => {
@@ -1833,24 +1927,23 @@ var getIcon = (status) => {
1833
1927
  return "ph--cloud-check--regular";
1834
1928
  }
1835
1929
  };
1836
- var SYNC_STALLED_TIMEOUT = 5e3;
1837
1930
  var SyncStatus = () => {
1838
- const client = (0, import_react_client10.useClient)();
1839
- const state = (0, import_echo10.useSyncState)();
1840
- const [saved, setSaved] = (0, import_react31.useState)(true);
1841
- (0, import_react31.useEffect)(() => {
1931
+ const client = (0, import_react_client9.useClient)();
1932
+ const state = useSyncState();
1933
+ const [saved, setSaved] = (0, import_react32.useState)(true);
1934
+ (0, import_react32.useEffect)(() => {
1842
1935
  return createClientSaveTracker(client, (state2) => {
1843
1936
  setSaved(state2 === "saved");
1844
1937
  });
1845
1938
  }, []);
1846
- return /* @__PURE__ */ import_react31.default.createElement(SyncStatusIndicator, {
1939
+ return /* @__PURE__ */ import_react32.default.createElement(SyncStatusIndicator, {
1847
1940
  state,
1848
1941
  saved
1849
1942
  });
1850
1943
  };
1851
1944
  var SyncStatusIndicator = ({ state, saved }) => {
1852
- const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1853
- const summary = (0, import_echo10.getSyncSummary)(state);
1945
+ const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1946
+ const summary = getSyncSummary(state);
1854
1947
  const offline = Object.values(state).length === 0;
1855
1948
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
1856
1949
  const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
@@ -1860,8 +1953,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
1860
1953
  needsToUpload,
1861
1954
  needsToDownload
1862
1955
  });
1863
- const [classNames, setClassNames] = (0, import_react31.useState)();
1864
- (0, import_react31.useEffect)(() => {
1956
+ const [classNames, setClassNames] = (0, import_react32.useState)();
1957
+ (0, import_react32.useEffect)(() => {
1865
1958
  setClassNames(void 0);
1866
1959
  if (offline || !needsToUpload && !needsToDownload) {
1867
1960
  return;
@@ -1876,14 +1969,60 @@ var SyncStatusIndicator = ({ state, saved }) => {
1876
1969
  needsToDownload
1877
1970
  ]);
1878
1971
  const title = t(`${status} label`);
1879
- const icon = /* @__PURE__ */ import_react31.default.createElement(import_react_ui23.Icon, {
1972
+ const icon = /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Icon, {
1880
1973
  icon: getIcon(status),
1881
1974
  size: 4,
1882
1975
  classNames
1883
1976
  });
1884
- return /* @__PURE__ */ import_react31.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1885
- title
1886
- }, icon);
1977
+ if (offline) {
1978
+ return /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1979
+ title
1980
+ }, icon);
1981
+ } else {
1982
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Trigger, {
1983
+ asChild: true
1984
+ }, /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Button, {
1985
+ title
1986
+ }, icon)), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Portal, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Content, null, /* @__PURE__ */ import_react32.default.createElement(SyncStatusDetail, {
1987
+ state,
1988
+ summary,
1989
+ debug: false
1990
+ }), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Arrow, null))));
1991
+ }
1992
+ };
1993
+ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1994
+ const [showAll, setShowAll] = (0, import_react32.useState)(false);
1995
+ const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1996
+ const entries = Object.entries(state).filter(([_, value]) => showAll || value.missingOnLocal + value.missingOnRemote > 0).toSorted(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
1997
+ const handleCheckedChange = (0, import_react32.useCallback)((state2) => setShowAll(state2), [
1998
+ setShowAll
1999
+ ]);
2000
+ return /* @__PURE__ */ import_react32.default.createElement("div", {
2001
+ className: (0, import_react_ui_theme7.mx)("flex flex-col gap-3 p-2 text-xs min-w-[400px]", classNames)
2002
+ }, /* @__PURE__ */ import_react32.default.createElement("div", {
2003
+ role: "none",
2004
+ className: "flex items-center"
2005
+ }, /* @__PURE__ */ import_react32.default.createElement("h1", {
2006
+ className: "flex-1"
2007
+ }, t("sync status title")), /* @__PURE__ */ import_react32.default.createElement("div", {
2008
+ className: "flex items-center gap-2"
2009
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Label, {
2010
+ classNames: "text-xs"
2011
+ }, t("show all label")), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Checkbox, {
2012
+ checked: showAll,
2013
+ onCheckedChange: handleCheckedChange
2014
+ })))), /* @__PURE__ */ import_react32.default.createElement("div", {
2015
+ className: "flex flex-col gap-2"
2016
+ }, entries.length === 0 && /* @__PURE__ */ import_react32.default.createElement("div", {
2017
+ role: "none",
2018
+ className: "flex justify-center"
2019
+ }, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react32.default.createElement(SpaceRowContainer, {
2020
+ key: spaceId,
2021
+ spaceId,
2022
+ state: state2
2023
+ }))), debug && /* @__PURE__ */ import_react32.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
2024
+ language: "json"
2025
+ }, JSON.stringify(summary, null, 2)));
1887
2026
  };
1888
2027
  // Annotate the CommonJS export names for ESM import in node:
1889
2028
  0 && (module.exports = {
@@ -1914,19 +2053,22 @@ var SyncStatusIndicator = ({ state, saved }) => {
1914
2053
  PopoverRenameSpace,
1915
2054
  ReactRoot,
1916
2055
  ReactSurface,
2056
+ SPACE_SETTINGS_DIALOG,
1917
2057
  Schema,
1918
- SchemaContainer,
2058
+ ShareSpaceButton,
2059
+ ShareSpaceButtonImpl,
1919
2060
  SmallPresence,
1920
2061
  SmallPresenceLive,
1921
2062
  SpacePluginSettings,
1922
2063
  SpacePresence,
2064
+ SpacePropertiesForm,
1923
2065
  SpaceSettings,
1924
2066
  SpaceSettingsContainer,
1925
2067
  SpaceState,
1926
2068
  SpacesReady,
1927
2069
  SyncStatus,
2070
+ SyncStatusDetail,
1928
2071
  SyncStatusIndicator,
1929
- Tools,
1930
- useQuerySpaceSchemas
2072
+ Tools
1931
2073
  });
1932
- //# sourceMappingURL=chunk-ZMQO74LX.cjs.map
2074
+ //# sourceMappingURL=chunk-3GKCNADA.cjs.map