@dxos/plugin-space 0.8.1 → 0.8.2-main.12df754

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