@dxos/plugin-space 0.8.1 → 0.8.2-main.2f9c567

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 (279) hide show
  1. package/dist/lib/browser/{app-graph-builder-GMFCSOLG.mjs → app-graph-builder-I2BU35J5.mjs} +61 -7
  2. package/dist/lib/browser/app-graph-builder-I2BU35J5.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-DSF2U3A5.mjs → app-graph-serializer-HPYDOKA5.mjs} +8 -8
  4. package/dist/lib/browser/app-graph-serializer-HPYDOKA5.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-5BDV575R.mjs → chunk-OS5QKO4Z.mjs} +20 -8
  6. package/dist/lib/browser/chunk-OS5QKO4Z.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-LO5UL6RU.mjs → chunk-RERTVPBV.mjs} +60 -141
  8. package/dist/lib/browser/chunk-RERTVPBV.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-JZXWPMLA.mjs → chunk-TSX67XGX.mjs} +526 -670
  10. package/dist/lib/browser/chunk-TSX67XGX.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-YQNBTJI4.mjs +308 -0
  12. package/dist/lib/browser/chunk-YQNBTJI4.mjs.map +7 -0
  13. package/dist/lib/browser/{identity-created-JR7BNXFH.mjs → identity-created-DWFKBGOA.mjs} +4 -4
  14. package/dist/lib/browser/identity-created-DWFKBGOA.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +19 -40
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-RKYILWWQ.mjs → intent-resolver-GKDCJ4H2.mjs} +92 -82
  18. package/dist/lib/browser/intent-resolver-GKDCJ4H2.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-6H7NX2M2.mjs → react-root-667IZ2Q4.mjs} +4 -4
  21. package/dist/lib/browser/{react-surface-7AGLOVMK.mjs → react-surface-I4RNTGGN.mjs} +121 -47
  22. package/dist/lib/browser/react-surface-I4RNTGGN.mjs.map +7 -0
  23. package/dist/lib/browser/{schema-FHTA26SW.mjs → schema-defs-FLFEUSLB.mjs} +4 -4
  24. package/dist/lib/browser/{schema-FHTA26SW.mjs.map → schema-defs-FLFEUSLB.mjs.map} +2 -2
  25. package/dist/lib/browser/{schema-tools-YAXPRIXP.mjs → schema-tools-MYC4LTQD.mjs} +22 -22
  26. package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +7 -0
  27. package/dist/lib/browser/{settings-PJPTJUPE.mjs → settings-ILGGNYJ7.mjs} +4 -4
  28. package/dist/lib/browser/settings-ILGGNYJ7.mjs.map +7 -0
  29. package/dist/lib/browser/{spaces-ready-BSSP7HHG.mjs → spaces-ready-IXZF3RWW.mjs} +5 -5
  30. package/dist/lib/browser/spaces-ready-IXZF3RWW.mjs.map +7 -0
  31. package/dist/lib/browser/{state-X7VLCC6E.mjs → state-CYV6QCTN.mjs} +1 -3
  32. package/dist/lib/browser/state-CYV6QCTN.mjs.map +7 -0
  33. package/dist/lib/browser/types/index.mjs +7 -1
  34. package/dist/lib/node/{app-graph-builder-DPY7AUZE.cjs → app-graph-builder-H7MDHM3X.cjs} +83 -30
  35. package/dist/lib/node/app-graph-builder-H7MDHM3X.cjs.map +7 -0
  36. package/dist/lib/node/{app-graph-serializer-JELGJUAY.cjs → app-graph-serializer-G7UYFWG6.cjs} +20 -20
  37. package/dist/lib/node/app-graph-serializer-G7UYFWG6.cjs.map +7 -0
  38. package/dist/lib/node/chunk-AR3JHVCY.cjs +336 -0
  39. package/dist/lib/node/chunk-AR3JHVCY.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-TUZWEPGX.cjs → chunk-EG3WAZLA.cjs} +84 -167
  41. package/dist/lib/node/chunk-EG3WAZLA.cjs.map +7 -0
  42. package/dist/lib/node/{chunk-3GKCNADA.cjs → chunk-HD4C6KKO.cjs} +517 -659
  43. package/dist/lib/node/chunk-HD4C6KKO.cjs.map +7 -0
  44. package/dist/lib/node/{chunk-PU2EYH4E.cjs → chunk-NCSFM6RA.cjs} +24 -12
  45. package/dist/lib/node/chunk-NCSFM6RA.cjs.map +7 -0
  46. package/dist/lib/node/{identity-created-XU4HFV2T.cjs → identity-created-YLGVEWAJ.cjs} +6 -6
  47. package/dist/lib/node/identity-created-YLGVEWAJ.cjs.map +7 -0
  48. package/dist/lib/node/index.cjs +73 -94
  49. package/dist/lib/node/index.cjs.map +3 -3
  50. package/dist/lib/node/{intent-resolver-VJ7YV74L.cjs → intent-resolver-V7UJKLE7.cjs} +141 -131
  51. package/dist/lib/node/intent-resolver-V7UJKLE7.cjs.map +7 -0
  52. package/dist/lib/node/meta.json +1 -1
  53. package/dist/lib/node/{react-root-TEL5RW3N.cjs → react-root-I3SSFA5O.cjs} +8 -8
  54. package/dist/lib/node/{react-surface-2H3S5TY5.cjs → react-surface-OLMQCCYD.cjs} +146 -74
  55. package/dist/lib/node/react-surface-OLMQCCYD.cjs.map +7 -0
  56. package/dist/lib/node/{schema-PPJ5BZ3A.cjs → schema-defs-PKZVL52M.cjs} +6 -6
  57. package/dist/lib/node/{schema-PPJ5BZ3A.cjs.map → schema-defs-PKZVL52M.cjs.map} +2 -2
  58. package/dist/lib/node/{schema-tools-BLIMOZYY.cjs → schema-tools-OE3MFYYH.cjs} +24 -24
  59. package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +7 -0
  60. package/dist/lib/node/{settings-WVFP2UEP.cjs → settings-7TC55JP4.cjs} +7 -7
  61. package/dist/lib/node/settings-7TC55JP4.cjs.map +7 -0
  62. package/dist/lib/node/{spaces-ready-7DNZSUOG.cjs → spaces-ready-4H3Q46GV.cjs} +12 -12
  63. package/dist/lib/node/spaces-ready-4H3Q46GV.cjs.map +7 -0
  64. package/dist/lib/node/{state-5KX6WBJH.cjs → state-JLN7TGRR.cjs} +4 -6
  65. package/dist/lib/node/state-JLN7TGRR.cjs.map +7 -0
  66. package/dist/lib/node/types/index.cjs +18 -12
  67. package/dist/lib/node/types/index.cjs.map +2 -2
  68. package/dist/lib/node-esm/{app-graph-builder-42IGWRPL.mjs → app-graph-builder-NI7X6W3Q.mjs} +61 -7
  69. package/dist/lib/node-esm/app-graph-builder-NI7X6W3Q.mjs.map +7 -0
  70. package/dist/lib/node-esm/{app-graph-serializer-FXONFKOE.mjs → app-graph-serializer-CVPYWWW3.mjs} +8 -8
  71. package/dist/lib/node-esm/app-graph-serializer-CVPYWWW3.mjs.map +7 -0
  72. package/dist/lib/node-esm/{chunk-ZGLK25WQ.mjs → chunk-B2P24Q5R.mjs} +60 -141
  73. package/dist/lib/node-esm/chunk-B2P24Q5R.mjs.map +7 -0
  74. package/dist/lib/node-esm/{chunk-BEWBZ4Q4.mjs → chunk-BU6F7ZU4.mjs} +526 -670
  75. package/dist/lib/node-esm/chunk-BU6F7ZU4.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-3ZOUV4DF.mjs → chunk-FUH5OODY.mjs} +20 -8
  77. package/dist/lib/node-esm/chunk-FUH5OODY.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-RUWTHAV7.mjs +309 -0
  79. package/dist/lib/node-esm/chunk-RUWTHAV7.mjs.map +7 -0
  80. package/dist/lib/node-esm/{identity-created-WJKAS2PV.mjs → identity-created-7NHGER3Q.mjs} +4 -4
  81. package/dist/lib/node-esm/identity-created-7NHGER3Q.mjs.map +7 -0
  82. package/dist/lib/node-esm/index.mjs +19 -40
  83. package/dist/lib/node-esm/index.mjs.map +3 -3
  84. package/dist/lib/node-esm/{intent-resolver-ZFNSA4CM.mjs → intent-resolver-IL63YTIT.mjs} +92 -82
  85. package/dist/lib/node-esm/intent-resolver-IL63YTIT.mjs.map +7 -0
  86. package/dist/lib/node-esm/meta.json +1 -1
  87. package/dist/lib/node-esm/{react-root-PRBJMWLQ.mjs → react-root-JEGVIVVK.mjs} +4 -4
  88. package/dist/lib/node-esm/{react-surface-RCZG2PNF.mjs → react-surface-DRRXIJBE.mjs} +121 -47
  89. package/dist/lib/node-esm/react-surface-DRRXIJBE.mjs.map +7 -0
  90. package/dist/lib/node-esm/{schema-OUZKVYM5.mjs → schema-defs-IIEQR7B3.mjs} +4 -4
  91. package/dist/lib/node-esm/{schema-OUZKVYM5.mjs.map → schema-defs-IIEQR7B3.mjs.map} +2 -2
  92. package/dist/lib/node-esm/{schema-tools-IU7EX5A5.mjs → schema-tools-YTJLA3NQ.mjs} +22 -22
  93. package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +7 -0
  94. package/dist/lib/node-esm/{settings-FJZPC2TV.mjs → settings-CXMV2AFR.mjs} +4 -4
  95. package/dist/lib/node-esm/settings-CXMV2AFR.mjs.map +7 -0
  96. package/dist/lib/node-esm/{spaces-ready-7X5PGB2V.mjs → spaces-ready-QMXLQ4QV.mjs} +5 -5
  97. package/dist/lib/node-esm/spaces-ready-QMXLQ4QV.mjs.map +7 -0
  98. package/dist/lib/node-esm/{state-Z6E2YTNC.mjs → state-YZPY5T5A.mjs} +1 -3
  99. package/dist/lib/node-esm/state-YZPY5T5A.mjs.map +7 -0
  100. package/dist/lib/node-esm/types/index.mjs +7 -1
  101. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/index.d.ts +3 -2
  104. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -1
  106. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/{schema.d.ts → schema-defs.d.ts} +1 -1
  109. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  110. package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
  111. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  113. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  114. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  115. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  116. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  117. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  118. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  119. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  120. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  121. package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/AdvancedObjectSettings.d.ts +2 -2
  122. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -0
  123. package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/BaseObjectSettings.d.ts +2 -2
  124. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -0
  125. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -0
  126. package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/ObjectSettingsContainer.d.ts +2 -2
  127. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -0
  129. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -1
  130. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  131. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  132. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  133. package/dist/types/src/components/SchemaContainer.d.ts +13 -0
  134. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -0
  135. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  136. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +0 -2
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  139. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +7 -0
  140. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -0
  141. package/dist/types/src/components/SpaceSettings/index.d.ts +0 -1
  142. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  143. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  144. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -8
  145. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  146. package/dist/types/src/components/index.d.ts +2 -2
  147. package/dist/types/src/components/index.d.ts.map +1 -1
  148. package/dist/types/src/hooks/index.d.ts +1 -0
  149. package/dist/types/src/hooks/index.d.ts.map +1 -1
  150. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +14 -0
  151. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -0
  152. package/dist/types/src/translations.d.ts +45 -9
  153. package/dist/types/src/translations.d.ts.map +1 -1
  154. package/dist/types/src/types/collection.d.ts +9 -8
  155. package/dist/types/src/types/collection.d.ts.map +1 -1
  156. package/dist/types/src/types/thread.d.ts +329 -110
  157. package/dist/types/src/types/thread.d.ts.map +1 -1
  158. package/dist/types/src/types/types.d.ts +167 -140
  159. package/dist/types/src/types/types.d.ts.map +1 -1
  160. package/dist/types/src/util.d.ts +31 -9
  161. package/dist/types/src/util.d.ts.map +1 -1
  162. package/package.json +46 -44
  163. package/src/SpacePlugin.tsx +11 -20
  164. package/src/capabilities/app-graph-builder.ts +47 -8
  165. package/src/capabilities/app-graph-serializer.ts +4 -4
  166. package/src/capabilities/identity-created.ts +2 -2
  167. package/src/capabilities/index.ts +2 -2
  168. package/src/capabilities/intent-resolver.ts +87 -84
  169. package/src/capabilities/react-surface.tsx +111 -42
  170. package/src/capabilities/schema-tool.test.ts +2 -3
  171. package/src/capabilities/schema-tools.ts +25 -25
  172. package/src/capabilities/settings.ts +2 -2
  173. package/src/capabilities/spaces-ready.ts +2 -2
  174. package/src/capabilities/state.ts +0 -2
  175. package/src/components/CollectionMain.tsx +2 -5
  176. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +2 -2
  177. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -3
  178. package/src/components/CreateDialog/CreateObjectPanel.tsx +3 -25
  179. package/src/components/CreateDialog/CreateSpaceDialog.tsx +6 -3
  180. package/src/components/MembersContainer.tsx +80 -54
  181. package/src/components/MenuFooter.tsx +2 -2
  182. package/src/components/{ObjectSettingsContainer → ObjectSettings}/AdvancedObjectSettings.tsx +2 -2
  183. package/src/components/{ObjectSettingsContainer → ObjectSettings}/BaseObjectSettings.tsx +2 -2
  184. package/src/components/{ObjectSettingsContainer → ObjectSettings}/ObjectSettingsContainer.tsx +2 -2
  185. package/src/components/PopoverAddSpace.tsx +9 -3
  186. package/src/components/PopoverRenameObject.tsx +14 -8
  187. package/src/components/PopoverRenameSpace.tsx +8 -0
  188. package/src/components/SchemaContainer.tsx +59 -0
  189. package/src/components/SpacePluginSettings.tsx +27 -2
  190. package/src/components/SpacePresence.tsx +29 -25
  191. package/src/components/SpaceSettings/{SpacePropertiesForm.stories.tsx → SpaceSettingsContainer.stories.tsx} +6 -6
  192. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +159 -39
  193. package/src/components/SpaceSettings/index.ts +0 -1
  194. package/src/components/SyncStatus/InlineSyncStatus.tsx +5 -7
  195. package/src/components/SyncStatus/SyncStatus.tsx +6 -69
  196. package/src/components/index.ts +2 -2
  197. package/src/hooks/index.ts +1 -0
  198. package/src/hooks/useInputSurfaceLookup.tsx +31 -0
  199. package/src/translations.ts +18 -5
  200. package/src/types/collection.ts +6 -4
  201. package/src/types/thread.ts +14 -8
  202. package/src/types/types.ts +128 -101
  203. package/src/util.tsx +52 -112
  204. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +0 -7
  205. package/dist/lib/browser/app-graph-serializer-DSF2U3A5.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-5BDV575R.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-AYW4IDRT.mjs +0 -275
  208. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +0 -7
  209. package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +0 -7
  210. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +0 -7
  211. package/dist/lib/browser/identity-created-JR7BNXFH.mjs.map +0 -7
  212. package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +0 -7
  213. package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +0 -7
  214. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +0 -7
  215. package/dist/lib/browser/settings-PJPTJUPE.mjs.map +0 -7
  216. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +0 -7
  217. package/dist/lib/browser/state-X7VLCC6E.mjs.map +0 -7
  218. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +0 -7
  219. package/dist/lib/node/app-graph-serializer-JELGJUAY.cjs.map +0 -7
  220. package/dist/lib/node/chunk-3GKCNADA.cjs.map +0 -7
  221. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +0 -7
  222. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +0 -7
  223. package/dist/lib/node/chunk-WDEIFDTX.cjs +0 -300
  224. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +0 -7
  225. package/dist/lib/node/identity-created-XU4HFV2T.cjs.map +0 -7
  226. package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +0 -7
  227. package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +0 -7
  228. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +0 -7
  229. package/dist/lib/node/settings-WVFP2UEP.cjs.map +0 -7
  230. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +0 -7
  231. package/dist/lib/node/state-5KX6WBJH.cjs.map +0 -7
  232. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +0 -7
  233. package/dist/lib/node-esm/app-graph-serializer-FXONFKOE.mjs.map +0 -7
  234. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +0 -7
  235. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +0 -7
  236. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs +0 -276
  237. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +0 -7
  238. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +0 -7
  239. package/dist/lib/node-esm/identity-created-WJKAS2PV.mjs.map +0 -7
  240. package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +0 -7
  241. package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +0 -7
  242. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +0 -7
  243. package/dist/lib/node-esm/settings-FJZPC2TV.mjs.map +0 -7
  244. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +0 -7
  245. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +0 -7
  246. package/dist/types/src/capabilities/schema.d.ts.map +0 -1
  247. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +0 -1
  248. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +0 -1
  249. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +0 -1
  250. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +0 -1
  251. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +0 -1
  252. package/dist/types/src/components/ShareSpaceButton.d.ts +0 -9
  253. package/dist/types/src/components/ShareSpaceButton.d.ts.map +0 -1
  254. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +0 -10
  255. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +0 -1
  256. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +0 -7
  257. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +0 -1
  258. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +0 -7
  259. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +0 -1
  260. package/dist/types/src/components/SyncStatus/Space.d.ts +0 -13
  261. package/dist/types/src/components/SyncStatus/Space.d.ts.map +0 -1
  262. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +0 -9
  263. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +0 -1
  264. package/dist/types/src/components/SyncStatus/sync-state.d.ts +0 -18
  265. package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +0 -1
  266. package/src/components/ShareSpaceButton.stories.tsx +0 -27
  267. package/src/components/ShareSpaceButton.tsx +0 -32
  268. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +0 -136
  269. package/src/components/SyncStatus/Space.tsx +0 -133
  270. package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +0 -89
  271. package/src/components/SyncStatus/sync-state.ts +0 -101
  272. /package/dist/lib/browser/{react-root-6H7NX2M2.mjs.map → react-root-667IZ2Q4.mjs.map} +0 -0
  273. /package/dist/lib/node/{react-root-TEL5RW3N.cjs.map → react-root-I3SSFA5O.cjs.map} +0 -0
  274. /package/dist/lib/node-esm/{react-root-PRBJMWLQ.mjs.map → react-root-JEGVIVVK.mjs.map} +0 -0
  275. /package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/ForeignKeys.d.ts +0 -0
  276. /package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/index.d.ts +0 -0
  277. /package/src/capabilities/{schema.ts → schema-defs.ts} +0 -0
  278. /package/src/components/{ObjectSettingsContainer → ObjectSettings}/ForeignKeys.tsx +0 -0
  279. /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_HD4C6KKO_exports = {};
30
+ __export(chunk_HD4C6KKO_exports, {
31
31
  AppGraphBuilder: () => AppGraphBuilder,
32
32
  AppGraphSerializer: () => AppGraphSerializer,
33
33
  AwaitingObject: () => AwaitingObject,
@@ -55,28 +55,25 @@ __export(chunk_3GKCNADA_exports, {
55
55
  PopoverRenameSpace: () => PopoverRenameSpace,
56
56
  ReactRoot: () => ReactRoot,
57
57
  ReactSurface: () => ReactSurface,
58
- SPACE_SETTINGS_DIALOG: () => SPACE_SETTINGS_DIALOG,
59
- Schema: () => Schema,
60
- ShareSpaceButton: () => ShareSpaceButton,
61
- ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
58
+ SchemaContainer: () => SchemaContainer,
59
+ SchemaDefs: () => SchemaDefs,
60
+ SchemaTools: () => SchemaTools,
62
61
  SmallPresence: () => SmallPresence,
63
62
  SmallPresenceLive: () => SmallPresenceLive,
64
63
  SpacePluginSettings: () => SpacePluginSettings,
65
64
  SpacePresence: () => SpacePresence,
66
- SpacePropertiesForm: () => SpacePropertiesForm,
67
65
  SpaceSettings: () => SpaceSettings,
68
66
  SpaceSettingsContainer: () => SpaceSettingsContainer,
69
67
  SpaceState: () => SpaceState,
70
68
  SpacesReady: () => SpacesReady,
71
69
  SyncStatus: () => SyncStatus,
72
- SyncStatusDetail: () => SyncStatusDetail,
73
70
  SyncStatusIndicator: () => SyncStatusIndicator,
74
- Tools: () => Tools
71
+ useQuerySpaceSchemas: () => useQuerySpaceSchemas
75
72
  });
76
- module.exports = __toCommonJS(chunk_3GKCNADA_exports);
73
+ module.exports = __toCommonJS(chunk_HD4C6KKO_exports);
77
74
  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");
75
+ var import_chunk_EG3WAZLA = require("./chunk-EG3WAZLA.cjs");
76
+ var import_chunk_AR3JHVCY = require("./chunk-AR3JHVCY.cjs");
80
77
  var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
81
78
  var import_react = require("@phosphor-icons/react");
82
79
  var import_react2 = __toESM(require("react"));
@@ -93,7 +90,6 @@ var import_react_client2 = require("@dxos/react-client");
93
90
  var import_echo2 = require("@dxos/react-client/echo");
94
91
  var import_react_ui2 = require("@dxos/react-ui");
95
92
  var import_react4 = __toESM(require("react"));
96
- var import_app_framework3 = require("@dxos/app-framework");
97
93
  var import_echo_schema = require("@dxos/echo-schema");
98
94
  var import_invariant2 = require("@dxos/invariant");
99
95
  var import_react_ui3 = require("@dxos/react-ui");
@@ -101,27 +97,31 @@ var import_react_ui_form = require("@dxos/react-ui-form");
101
97
  var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
102
98
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
103
99
  var import_util = require("@dxos/util");
100
+ var import_react5 = __toESM(require("react"));
101
+ var import_app_framework3 = require("@dxos/app-framework");
102
+ var import_react6 = require("react");
104
103
  var import_app_framework4 = require("@dxos/app-framework");
105
104
  var import_effect2 = require("effect");
106
- var import_react5 = __toESM(require("react"));
105
+ var import_react7 = __toESM(require("react"));
107
106
  var import_app_framework5 = require("@dxos/app-framework");
108
107
  var import_react_ui4 = require("@dxos/react-ui");
109
108
  var import_react_ui_form2 = require("@dxos/react-ui-form");
110
- var import_react6 = __toESM(require("react"));
109
+ var import_react8 = __toESM(require("react"));
111
110
  var import_react_ui5 = require("@dxos/react-ui");
112
111
  var import_react_ui_theme3 = require("@dxos/react-ui-theme");
113
- var import_react7 = __toESM(require("react"));
112
+ var import_react9 = __toESM(require("react"));
114
113
  var import_react_ui6 = require("@dxos/react-ui");
115
- var import_react8 = __toESM(require("react"));
114
+ var import_react10 = __toESM(require("react"));
116
115
  var import_app_framework6 = require("@dxos/app-framework");
117
116
  var import_async = require("@dxos/async");
118
117
  var import_types = require("@dxos/plugin-observability/types");
119
118
  var import_react_client3 = require("@dxos/react-client");
120
119
  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"));
120
+ var import_react11 = require("@dxos/shell/react");
121
+ var import_react12 = require("@phosphor-icons/react");
122
+ var import_react13 = __toESM(require("react"));
124
123
  var import_react_qr_rounded = require("react-qr-rounded");
124
+ var import_app_framework7 = require("@dxos/app-framework");
125
125
  var import_log = require("@dxos/log");
126
126
  var import_react_client4 = require("@dxos/react-client");
127
127
  var import_echo3 = require("@dxos/react-client/echo");
@@ -130,45 +130,48 @@ var import_react_ui8 = require("@dxos/react-ui");
130
130
  var import_react_ui_form3 = require("@dxos/react-ui-form");
131
131
  var import_react_ui_stack = require("@dxos/react-ui-stack");
132
132
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
133
- var import_react12 = require("@dxos/shell/react");
133
+ var import_react14 = require("@dxos/shell/react");
134
134
  var import_util2 = require("@dxos/util");
135
- var import_react13 = require("@phosphor-icons/react");
136
- var import_react14 = __toESM(require("react"));
135
+ var import_react15 = require("@phosphor-icons/react");
136
+ var import_react16 = __toESM(require("react"));
137
137
  var import_echo4 = require("@dxos/client/echo");
138
138
  var import_react_client5 = require("@dxos/react-client");
139
139
  var import_react_ui9 = require("@dxos/react-ui");
140
- var import_react15 = __toESM(require("react"));
141
- var import_app_framework7 = require("@dxos/app-framework");
140
+ var import_react17 = __toESM(require("react"));
141
+ var import_app_framework8 = require("@dxos/app-framework");
142
142
  var import_react_ui10 = require("@dxos/react-ui");
143
143
  var import_react_ui_stack2 = require("@dxos/react-ui-stack");
144
- var import_react16 = __toESM(require("react"));
144
+ var import_react18 = __toESM(require("react"));
145
145
  var import_echo_schema2 = require("@dxos/echo-schema");
146
146
  var import_echo5 = require("@dxos/react-client/echo");
147
147
  var import_react_ui11 = require("@dxos/react-ui");
148
148
  var import_react_ui_form4 = require("@dxos/react-ui-form");
149
- var import_react17 = __toESM(require("react"));
149
+ var import_react19 = __toESM(require("react"));
150
150
  var import_react_ui12 = require("@dxos/react-ui");
151
- var import_react18 = __toESM(require("react"));
151
+ var import_react20 = __toESM(require("react"));
152
152
  var import_react_ui13 = require("@dxos/react-ui");
153
153
  var import_react_ui_theme5 = require("@dxos/react-ui-theme");
154
- var import_react19 = require("@phosphor-icons/react");
155
- var import_react20 = __toESM(require("react"));
154
+ var import_react21 = require("@phosphor-icons/react");
155
+ var import_react22 = __toESM(require("react"));
156
156
  var import_async2 = require("@dxos/async");
157
157
  var import_react_ui14 = require("@dxos/react-ui");
158
158
  var import_react_ui_theme6 = require("@dxos/react-ui-theme");
159
- var import_react21 = __toESM(require("react"));
160
- var import_app_framework8 = require("@dxos/app-framework");
159
+ var import_react23 = __toESM(require("react"));
160
+ var import_app_framework9 = require("@dxos/app-framework");
161
161
  var import_react_ui15 = require("@dxos/react-ui");
162
- var import_react22 = __toESM(require("react"));
162
+ var import_react24 = __toESM(require("react"));
163
+ var import_app_framework10 = require("@dxos/app-framework");
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"));
167
+ var import_app_framework11 = require("@dxos/app-framework");
166
168
  var import_react_ui17 = require("@dxos/react-ui");
167
- var import_react24 = __toESM(require("react"));
168
- var import_app_framework9 = require("@dxos/app-framework");
169
+ var import_react26 = __toESM(require("react"));
169
170
  var import_react_ui18 = require("@dxos/react-ui");
170
- var import_react25 = __toESM(require("react"));
171
- var import_app_framework10 = require("@dxos/app-framework");
171
+ var import_react_ui_form5 = require("@dxos/react-ui-form");
172
+ var import_react_ui_stack3 = require("@dxos/react-ui-stack");
173
+ var import_react27 = __toESM(require("react"));
174
+ var import_app_framework12 = require("@dxos/app-framework");
172
175
  var import_display_name = require("@dxos/display-name");
173
176
  var import_react_client6 = require("@dxos/react-client");
174
177
  var import_echo6 = require("@dxos/react-client/echo");
@@ -176,46 +179,37 @@ var import_halo = require("@dxos/react-client/halo");
176
179
  var import_react_ui19 = require("@dxos/react-ui");
177
180
  var import_react_ui_attention = require("@dxos/react-ui-attention");
178
181
  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
182
  var import_react28 = __toESM(require("react"));
183
+ var import_app_framework13 = require("@dxos/app-framework");
184
+ var import_react_client7 = require("@dxos/react-client");
185
+ var import_echo7 = require("@dxos/react-client/echo");
186
+ var import_react_ui20 = require("@dxos/react-ui");
187
+ var import_react_ui_form6 = require("@dxos/react-ui-form");
188
+ var import_effect3 = require("effect");
189
+ var import_react29 = __toESM(require("react"));
190
+ var import_app_framework14 = require("@dxos/app-framework");
184
191
  var import_log3 = require("@dxos/log");
185
192
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
193
+ var import_react_client8 = require("@dxos/react-client");
194
+ var import_echo8 = require("@dxos/react-client/echo");
186
195
  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
- var import_react29 = __toESM(require("react"));
190
- var import_app_framework11 = require("@dxos/app-framework");
191
- var import_react_ui22 = require("@dxos/react-ui");
192
196
  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");
197
+ var import_react_ui_pickers = require("@dxos/react-ui-pickers");
198
+ var import_react_ui_stack4 = require("@dxos/react-ui-stack");
196
199
  var import_react30 = __toESM(require("react"));
197
- var import_app_framework12 = require("@dxos/app-framework");
200
+ var import_app_framework15 = require("@dxos/app-framework");
198
201
  var import_services = require("@dxos/protocols/proto/dxos/client/services");
199
202
  var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
200
- var import_react_client7 = require("@dxos/react-client");
201
- var import_react_ui23 = require("@dxos/react-ui");
203
+ var import_react_client9 = require("@dxos/react-client");
204
+ var import_echo9 = require("@dxos/react-client/echo");
205
+ var import_react_ui22 = require("@dxos/react-ui");
202
206
  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
- var import_react32 = __toESM(require("react"));
207
+ var import_react31 = __toESM(require("react"));
208
208
  var import_plugin_status_bar = require("@dxos/plugin-status-bar");
209
- var import_react_client9 = require("@dxos/react-client");
210
- var import_react_ui24 = require("@dxos/react-ui");
211
- var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
212
- var import_react_ui_theme7 = require("@dxos/react-ui-theme");
213
- var import_react33 = __toESM(require("react"));
214
209
  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");
210
+ var import_echo10 = require("@dxos/react-client/echo");
211
+ var import_react_ui23 = require("@dxos/react-ui");
212
+ var import_context = require("@dxos/context");
219
213
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
220
214
  var TOAST_TIMEOUT = 24e4;
221
215
  var AwaitingObject = ({ id }) => {
@@ -250,7 +244,7 @@ var AwaitingObject = ({ id }) => {
250
244
  objects,
251
245
  layout
252
246
  ]);
253
- const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
247
+ const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_AR3JHVCY.SpaceAction.WaitForObject, {
254
248
  id: void 0
255
249
  })), [
256
250
  dispatch
@@ -300,10 +294,9 @@ var AwaitingObject = ({ id }) => {
300
294
  ns: "appkit"
301
295
  })))));
302
296
  };
303
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
304
297
  var useInputSurfaceLookup = (baseData) => {
305
298
  const pluginManager = (0, import_app_framework3.usePluginManager)();
306
- return (0, import_react4.useCallback)(({ prop, schema, inputProps }) => {
299
+ return (0, import_react5.useCallback)(({ prop, schema, inputProps }) => {
307
300
  const composedData = {
308
301
  prop,
309
302
  schema,
@@ -315,7 +308,7 @@ var useInputSurfaceLookup = (baseData) => {
315
308
  })) {
316
309
  return void 0;
317
310
  }
318
- return /* @__PURE__ */ import_react4.default.createElement(import_app_framework3.Surface, {
311
+ return /* @__PURE__ */ import_react5.default.createElement(import_app_framework3.Surface, {
319
312
  role: "form-input",
320
313
  data: composedData,
321
314
  ...inputProps
@@ -325,6 +318,40 @@ var useInputSurfaceLookup = (baseData) => {
325
318
  baseData
326
319
  ]);
327
320
  };
321
+ var usePath = (graph, id, timeout) => {
322
+ const [pathState, setPathState] = (0, import_react6.useState)(id ? graph.getPath({
323
+ target: id
324
+ }) : void 0);
325
+ (0, import_react6.useEffect)(() => {
326
+ if (!id && pathState) {
327
+ setPathState(void 0);
328
+ }
329
+ if (pathState?.at(-1) === id || !id) {
330
+ return;
331
+ }
332
+ const frame = requestAnimationFrame(async () => {
333
+ try {
334
+ const path = await graph.waitForPath({
335
+ target: id
336
+ }, {
337
+ timeout
338
+ });
339
+ if (path) {
340
+ setPathState(path);
341
+ }
342
+ } catch {
343
+ }
344
+ });
345
+ return () => cancelAnimationFrame(frame);
346
+ }, [
347
+ graph,
348
+ id,
349
+ timeout,
350
+ pathState
351
+ ]);
352
+ return pathState;
353
+ };
354
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
328
355
  var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
329
356
  const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
330
357
  const [typename, setTypename] = (0, import_react4.useState)(initialTypename);
@@ -358,7 +385,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
358
385
  const handleSetTypename = (0, import_react4.useCallback)(async (typename2) => {
359
386
  (0, import_invariant2.invariant)(target, "target is required", {
360
387
  F: __dxlog_file,
361
- L: 94,
388
+ L: 72,
362
389
  S: void 0,
363
390
  A: [
364
391
  "target",
@@ -418,23 +445,23 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
418
445
  }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
419
446
  classNames: "max-bs-[24rem] overflow-auto"
420
447
  }, spaces.sort((a, b) => {
421
- const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(a, {
448
+ const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_EG3WAZLA.getSpaceDisplayName)(a, {
422
449
  personal: a.id === defaultSpaceId
423
450
  }), t);
424
- const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(b, {
451
+ const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_EG3WAZLA.getSpaceDisplayName)(b, {
425
452
  personal: b.id === defaultSpaceId
426
453
  }), t);
427
454
  return aName.localeCompare(bName);
428
455
  }).map((space) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
429
456
  key: space.id,
430
- value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
457
+ value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_EG3WAZLA.getSpaceDisplayName)(space, {
431
458
  personal: space.id === defaultSpaceId
432
459
  }), t),
433
460
  onSelect: () => onChange(space),
434
461
  classNames: "flex items-center gap-2"
435
462
  }, /* @__PURE__ */ import_react4.default.createElement("span", {
436
463
  className: "grow truncate"
437
- }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
464
+ }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_EG3WAZLA.getSpaceDisplayName)(space, {
438
465
  personal: space.id === defaultSpaceId
439
466
  }), t))))));
440
467
  };
@@ -468,17 +495,17 @@ var SelectSchema = ({ options, resolve, onChange }) => {
468
495
  defaultValue: option.typename
469
496
  }))))));
470
497
  };
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"));
477
- var Schema = (0, import_app_framework4.lazy)(() => import("./schema-PPJ5BZ3A.cjs"));
478
- 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"));
498
+ var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-H7MDHM3X.cjs"));
499
+ var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-G7UYFWG6.cjs"));
500
+ var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-YLGVEWAJ.cjs"));
501
+ var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-V7UJKLE7.cjs"));
502
+ var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-I3SSFA5O.cjs"));
503
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-OLMQCCYD.cjs"));
504
+ var SchemaDefs = (0, import_app_framework4.lazy)(() => import("./schema-defs-PKZVL52M.cjs"));
505
+ var SchemaTools = (0, import_app_framework4.lazy)(() => import("./schema-tools-OE3MFYYH.cjs"));
506
+ var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-7TC55JP4.cjs"));
507
+ var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-JLN7TGRR.cjs"));
508
+ var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-4H3Q46GV.cjs"));
482
509
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
483
510
  var CREATE_OBJECT_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateObjectDialog`;
484
511
  var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
@@ -511,8 +538,8 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
511
538
  space
512
539
  }));
513
540
  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, {
541
+ if ((0, import_echo2.isLiveObject)(object)) {
542
+ const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_AR3JHVCY.SpaceAction.AddObject, {
516
543
  target: target2,
517
544
  object,
518
545
  hidden: form.hidden
@@ -566,17 +593,18 @@ var initialValues = {
566
593
  edgeReplication: true
567
594
  };
568
595
  var CreateSpaceDialog = () => {
569
- const closeRef = (0, import_react5.useRef)(null);
596
+ const closeRef = (0, import_react7.useRef)(null);
570
597
  const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
571
598
  const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
572
- const handleCreateSpace = (0, import_react5.useCallback)(async (data) => {
599
+ const inputSurfaceLookup = useInputSurfaceLookup();
600
+ const handleCreateSpace = (0, import_react7.useCallback)(async (data) => {
573
601
  const program = import_effect2.Effect.gen(function* () {
574
- const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Create, data));
602
+ const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_AR3JHVCY.SpaceAction.Create, data));
575
603
  yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
576
604
  part: "workspace",
577
605
  subject: space.id
578
606
  }));
579
- yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateObject, {
607
+ yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_AR3JHVCY.SpaceAction.OpenCreateObject, {
580
608
  target: space
581
609
  }));
582
610
  });
@@ -587,49 +615,50 @@ var CreateSpaceDialog = () => {
587
615
  return (
588
616
  // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
589
617
  // Consider factoring it out to the tabs package.
590
- /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Content, {
618
+ /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Dialog.Content, {
591
619
  classNames: "p-0 bs-content min-bs-[16rem] max-bs-full md:max-is-[32rem] overflow-hidden"
592
- }, /* @__PURE__ */ import_react5.default.createElement("div", {
620
+ }, /* @__PURE__ */ import_react7.default.createElement("div", {
593
621
  role: "none",
594
622
  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, {
623
+ }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Dialog.Close, {
596
624
  asChild: true
597
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Button, {
625
+ }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Button, {
598
626
  ref: closeRef,
599
627
  density: "fine",
600
628
  variant: "ghost",
601
629
  autoFocus: true
602
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Icon, {
630
+ }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui4.Icon, {
603
631
  icon: "ph--x--regular",
604
632
  size: 4
605
- })))), /* @__PURE__ */ import_react5.default.createElement("div", {
633
+ })))), /* @__PURE__ */ import_react7.default.createElement("div", {
606
634
  className: "p-4"
607
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui_form2.Form, {
635
+ }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui_form2.Form, {
608
636
  testId: "create-space-form",
609
637
  classNames: "!p-0",
610
638
  autoFocus: true,
611
639
  values: initialValues,
612
- schema: import_chunk_WDEIFDTX.SpaceForm,
640
+ schema: import_chunk_AR3JHVCY.SpaceForm,
641
+ lookupComponent: inputSurfaceLookup,
613
642
  onSave: handleCreateSpace
614
643
  })))
615
644
  );
616
645
  };
617
646
  var CollectionMain = ({ collection }) => {
618
647
  const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
619
- return /* @__PURE__ */ import_react6.default.createElement("div", {
648
+ return /* @__PURE__ */ import_react8.default.createElement("div", {
620
649
  role: "none",
621
650
  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
651
  "data-testid": "composer.firstRunMessage"
623
- }, /* @__PURE__ */ import_react6.default.createElement("p", {
652
+ }, /* @__PURE__ */ import_react8.default.createElement("p", {
624
653
  role: "alert",
625
- className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
654
+ className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionMessage, "rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
626
655
  }, collection.name ?? t("unnamed collection label")));
627
656
  };
628
657
  var CollectionSection = ({ collection }) => {
629
658
  const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
630
- return /* @__PURE__ */ import_react7.default.createElement("div", {
659
+ return /* @__PURE__ */ import_react9.default.createElement("div", {
631
660
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
632
- }, /* @__PURE__ */ import_react7.default.createElement("span", {
661
+ }, /* @__PURE__ */ import_react9.default.createElement("span", {
633
662
  className: "truncate"
634
663
  }, collection.name ?? t("unnamed collection label")));
635
664
  };
@@ -639,7 +668,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
639
668
  const client = (0, import_react_client3.useClient)();
640
669
  const { graph } = (0, import_app_framework6.useAppGraph)();
641
670
  const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
642
- const handleDone = (0, import_react8.useCallback)(async (result) => {
671
+ const handleDone = (0, import_react10.useCallback)(async (result) => {
643
672
  const spaceKey = result?.spaceKey;
644
673
  if (!spaceKey) {
645
674
  return;
@@ -719,16 +748,16 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
719
748
  client,
720
749
  graph
721
750
  ]);
722
- return /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Content, null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Title, {
751
+ return /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Content, null, /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Title, {
723
752
  classNames: "sr-only"
724
753
  }, t("join space label", {
725
754
  ns: "os"
726
- })), /* @__PURE__ */ import_react8.default.createElement(import_react9.JoinPanel, {
755
+ })), /* @__PURE__ */ import_react10.default.createElement(import_react11.JoinPanel, {
727
756
  ...props,
728
- exitActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
757
+ exitActionParent: /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Close, {
729
758
  asChild: true
730
759
  }),
731
- doneActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
760
+ doneActionParent: /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Dialog.Close, {
732
761
  asChild: true
733
762
  }),
734
763
  onDone: handleDone
@@ -744,7 +773,7 @@ var handleInvitationEvent = (invitation, subscription) => {
744
773
  authCode: invitation.authCode
745
774
  }), void 0, {
746
775
  F: __dxlog_file3,
747
- L: 38,
776
+ L: 40,
748
777
  S: void 0,
749
778
  C: (f, a) => f(...a)
750
779
  });
@@ -752,54 +781,72 @@ var handleInvitationEvent = (invitation, subscription) => {
752
781
  }
753
782
  };
754
783
  var MembersContainer = ({ space, createInvitationUrl }) => {
755
- const { t } = (0, import_react_ui8.useTranslation)("os");
784
+ const { t } = (0, import_react_ui8.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
756
785
  const config = (0, import_react_client4.useConfig)();
786
+ const { dispatchPromise: dispatch } = (0, import_app_framework7.useIntentDispatcher)();
757
787
  const invitations = (0, import_echo3.useSpaceInvitations)(space.key);
758
788
  const visibleInvitations = invitations?.filter((invitation) => ![
759
789
  import_invitations.Invitation.State.CANCELLED
760
790
  ].includes(invitation.get().state));
761
- const [activeAction, setInternalActiveAction] = (0, import_react11.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
791
+ const [activeAction, setInternalActiveAction] = (0, import_react13.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
762
792
  const setActiveAction = (nextAction) => {
763
793
  setInternalActiveAction(nextAction);
764
794
  localStorage.setItem(activeActionKey, nextAction);
765
795
  };
766
- const target = space.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target?.objects[0]?.target;
767
- const inviteActions = (0, import_react11.useMemo)(() => ({
796
+ const target = space.properties[import_chunk_AR3JHVCY.CollectionType.typename]?.target?.objects[0]?.target;
797
+ const locked = space.properties[import_chunk_EG3WAZLA.COMPOSER_SPACE_LOCK];
798
+ const handleChangeLocked = (0, import_react13.useCallback)(() => {
799
+ space.properties[import_chunk_EG3WAZLA.COMPOSER_SPACE_LOCK] = !locked;
800
+ }, [
801
+ locked,
802
+ space
803
+ ]);
804
+ const inviteActions = (0, import_react13.useMemo)(() => ({
768
805
  inviteOne: {
769
- label: t("invite one label"),
770
- description: t("invite one description"),
771
- icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
806
+ label: t("invite one label", {
807
+ ns: "os"
808
+ }),
809
+ description: t("invite one description", {
810
+ ns: "os"
811
+ }),
812
+ icon: () => /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Icon, {
772
813
  icon: "ph--user-plus--regular",
773
814
  size: 5
774
815
  }),
775
816
  testId: "membersContainer.inviteOne",
776
- onClick: () => {
777
- const invitation = space.share?.({
817
+ onClick: async () => {
818
+ const { data: invitation } = await dispatch((0, import_app_framework7.createIntent)(import_chunk_AR3JHVCY.SpaceAction.Share, {
819
+ space,
778
820
  type: import_invitations.Invitation.Type.INTERACTIVE,
779
821
  authMethod: import_invitations.Invitation.AuthMethod.SHARED_SECRET,
780
822
  multiUse: false,
781
823
  target: target && (0, import_echo3.fullyQualifiedId)(target)
782
- });
824
+ }));
783
825
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
784
826
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
785
827
  }
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
  }),
795
841
  testId: "membersContainer.inviteMany",
796
- onClick: () => {
797
- const invitation = space.share?.({
842
+ onClick: async () => {
843
+ const { data: invitation } = await dispatch((0, import_app_framework7.createIntent)(import_chunk_AR3JHVCY.SpaceAction.Share, {
844
+ space,
798
845
  type: import_invitations.Invitation.Type.DELEGATED,
799
846
  authMethod: import_invitations.Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
800
847
  multiUse: true,
801
848
  target: target && (0, import_echo3.fullyQualifiedId)(target)
802
- });
849
+ }));
803
850
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
804
851
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
805
852
  }
@@ -810,72 +857,75 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
810
857
  space,
811
858
  target
812
859
  ]);
813
- const [selectedInvitation, setSelectedInvitation] = (0, import_react11.useState)(null);
860
+ const [selectedInvitation, setSelectedInvitation] = (0, import_react13.useState)(null);
814
861
  const handleSend = (event) => {
815
862
  setSelectedInvitation(event.invitation);
816
863
  };
817
864
  const handleBack = () => {
818
865
  setSelectedInvitation(null);
819
866
  };
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, {
867
+ return /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_stack.StackItem.Content, {
868
+ classNames: "block overflow-y-auto"
869
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlPage, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlSection, {
870
+ title: t("members verbose label"),
871
+ description: t("members description")
872
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrameItem, {
873
+ title: t("members label")
874
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react14.SpaceMemberList, {
834
875
  spaceKey: space.key,
835
876
  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, {
877
+ })), locked && /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrameItem, {
878
+ title: t("invitations label")
879
+ }, /* @__PURE__ */ import_react13.default.createElement("p", {
880
+ className: "text-description mbe-2"
881
+ }, t("locked space description"))), !locked && /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlFrameItem, {
882
+ title: t("invitations label")
883
+ }, selectedInvitation && /* @__PURE__ */ import_react13.default.createElement(InvitationSection, {
841
884
  ...selectedInvitation,
842
885
  onBack: handleBack
843
- }), !selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
886
+ }), !selectedInvitation && /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("p", {
844
887
  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, {
888
+ }, t("space invitation description")), /* @__PURE__ */ import_react13.default.createElement(import_react14.InvitationList, {
848
889
  className: "mb-2",
849
890
  send: handleSend,
850
891
  invitations: visibleInvitations ?? [],
851
892
  onClickRemove: (invitation) => invitation.cancel(),
852
893
  createInvitationUrl
853
- }), /* @__PURE__ */ import_react11.default.createElement(import_react12.BifurcatedAction, {
894
+ }), /* @__PURE__ */ import_react13.default.createElement(import_react14.BifurcatedAction, {
854
895
  actions: inviteActions,
855
896
  activeAction,
856
897
  onChangeActiveAction: setActiveAction,
857
898
  "data-testid": "membersContainer.createInvitation"
899
+ })))), /* @__PURE__ */ import_react13.default.createElement("div", {
900
+ className: "justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
901
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui_form3.ControlItemInput, {
902
+ title: t("space locked label"),
903
+ description: t("space locked description")
904
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Input.Switch, {
905
+ checked: locked,
906
+ onCheckedChange: handleChangeLocked,
907
+ classNames: "justify-self-end"
858
908
  })))))));
859
909
  };
860
910
  var InvitationSection = ({ state = import_invitations.Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
861
911
  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, {
912
+ return /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.Root, {
863
913
  activeView
864
- }, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Views, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
914
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.Views, null, /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
865
915
  id: "init"
866
- }), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
916
+ }), /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
867
917
  id: "complete"
868
- }, /* @__PURE__ */ import_react11.default.createElement(InvitationComplete, {
918
+ }, /* @__PURE__ */ import_react13.default.createElement(InvitationComplete, {
869
919
  statusValue: state
870
- })), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
920
+ })), /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
871
921
  id: "auth-code"
872
- }, /* @__PURE__ */ import_react11.default.createElement(InvitationAuthCode, {
922
+ }, /* @__PURE__ */ import_react13.default.createElement(InvitationAuthCode, {
873
923
  id: invitationId,
874
924
  code: authCode ?? "never",
875
925
  onCancel: onBack
876
- })), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
926
+ })), /* @__PURE__ */ import_react13.default.createElement(import_react14.Viewport.View, {
877
927
  id: "qr-code"
878
- }, /* @__PURE__ */ import_react11.default.createElement(InvitationQR, {
928
+ }, /* @__PURE__ */ import_react13.default.createElement(InvitationQR, {
879
929
  id: invitationId,
880
930
  url,
881
931
  onCancel: onBack
@@ -885,31 +935,31 @@ var InvitationQR = ({ id, url, onCancel }) => {
885
935
  const { t } = (0, import_react_ui8.useTranslation)("os");
886
936
  const qrLabel = (0, import_react_ui8.useId)("members-container__qr-code");
887
937
  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", {
938
+ return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("p", {
889
939
  className: "text-description"
890
940
  }, t("qr code description", {
891
941
  ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
892
- })), /* @__PURE__ */ import_react11.default.createElement("div", {
942
+ })), /* @__PURE__ */ import_react13.default.createElement("div", {
893
943
  role: "group",
894
944
  className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
895
- }, /* @__PURE__ */ import_react11.default.createElement("div", {
945
+ }, /* @__PURE__ */ import_react13.default.createElement("div", {
896
946
  role: "none",
897
947
  className: "is-full aspect-square relative text-description"
898
- }, /* @__PURE__ */ import_react11.default.createElement(import_react_qr_rounded.QR, {
948
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_qr_rounded.QR, {
899
949
  rounding: 100,
900
950
  backgroundColor: "transparent",
901
951
  color: "currentColor",
902
952
  "aria-labelledby": qrLabel,
903
953
  errorCorrectionLevel: "Q",
904
954
  cutout: true
905
- }, url ?? "never"), /* @__PURE__ */ import_react11.default.createElement(import_react12.Centered, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
955
+ }, url ?? "never"), /* @__PURE__ */ import_react13.default.createElement(import_react14.Centered, null, /* @__PURE__ */ import_react13.default.createElement(import_react14.Emoji, {
906
956
  text: emoji
907
- }))), /* @__PURE__ */ import_react11.default.createElement("span", {
957
+ }))), /* @__PURE__ */ import_react13.default.createElement("span", {
908
958
  id: qrLabel,
909
959
  className: "sr-only"
910
- }, t("qr label")), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Button, {
960
+ }, t("qr label")), /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Clipboard.Button, {
911
961
  value: url ?? "never"
912
- })), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
962
+ })), /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Button, {
913
963
  variant: "ghost",
914
964
  onClick: onCancel
915
965
  }, t("cancel label")));
@@ -917,26 +967,26 @@ var InvitationQR = ({ id, url, onCancel }) => {
917
967
  var InvitationAuthCode = ({ id, code, onCancel }) => {
918
968
  const { t } = (0, import_react_ui8.useTranslation)("os");
919
969
  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", {
970
+ return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement("p", {
921
971
  className: "text-description"
922
- }, t("auth other device emoji message")), emoji && /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
972
+ }, t("auth other device emoji message")), emoji && /* @__PURE__ */ import_react13.default.createElement(import_react14.Emoji, {
923
973
  text: emoji,
924
974
  className: "mli-auto mlb-2 text-center"
925
- }), /* @__PURE__ */ import_react11.default.createElement("p", {
975
+ }), /* @__PURE__ */ import_react13.default.createElement("p", {
926
976
  className: "text-description"
927
- }, t("auth code message")), /* @__PURE__ */ import_react11.default.createElement(import_react12.AuthCode, {
977
+ }, t("auth code message")), /* @__PURE__ */ import_react13.default.createElement(import_react14.AuthCode, {
928
978
  code,
929
979
  large: true,
930
980
  classNames: "mli-auto mlb-2 text-center grow"
931
- }), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
981
+ }), /* @__PURE__ */ import_react13.default.createElement(import_react_ui8.Button, {
932
982
  variant: "ghost",
933
983
  onClick: onCancel
934
984
  }, t("cancel label")));
935
985
  };
936
986
  var InvitationComplete = ({ statusValue }) => {
937
- return statusValue > 0 ? /* @__PURE__ */ import_react11.default.createElement(import_react10.Check, {
987
+ return statusValue > 0 ? /* @__PURE__ */ import_react13.default.createElement(import_react12.Check, {
938
988
  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, {
989
+ }) : /* @__PURE__ */ import_react13.default.createElement(import_react12.X, {
940
990
  className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
941
991
  });
942
992
  };
@@ -944,23 +994,23 @@ var MenuFooter = ({ object }) => {
944
994
  const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
945
995
  const client = (0, import_react_client5.useClient)();
946
996
  const space = (0, import_echo4.getSpace)(object);
947
- const spaceName = space ? (0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
997
+ const spaceName = space ? (0, import_chunk_EG3WAZLA.getSpaceDisplayName)(space, {
948
998
  personal: client.spaces.default === space
949
999
  }) : "";
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", {
1000
+ return space ? /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.DropdownMenu.Separator, null), /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react16.default.createElement("dl", {
951
1001
  className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
952
- }, /* @__PURE__ */ import_react14.default.createElement("dt", {
1002
+ }, /* @__PURE__ */ import_react16.default.createElement("dt", {
953
1003
  className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
954
- }, t("location label")), /* @__PURE__ */ import_react14.default.createElement("dd", {
1004
+ }, t("location label")), /* @__PURE__ */ import_react16.default.createElement("dd", {
955
1005
  className: "line-clamp-3"
956
- }, /* @__PURE__ */ import_react14.default.createElement(import_react13.Planet, {
1006
+ }, /* @__PURE__ */ import_react16.default.createElement(import_react15.Planet, {
957
1007
  className: "inline-block mie-1"
958
1008
  }), (0, import_react_ui9.toLocalizedString)(spaceName, t)))) : null;
959
1009
  };
960
1010
  var ForeignKeys = ({ keys, onDelete }) => {
961
- return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.List, {
1011
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.List, {
962
1012
  classNames: "flex flex-col gap-2"
963
- }, keys.map((key) => /* @__PURE__ */ import_react17.default.createElement(KeyItem, {
1013
+ }, keys.map((key) => /* @__PURE__ */ import_react19.default.createElement(KeyItem, {
964
1014
  key: key.id,
965
1015
  forignKey: key,
966
1016
  onDelete
@@ -968,19 +1018,19 @@ var ForeignKeys = ({ keys, onDelete }) => {
968
1018
  };
969
1019
  var KeyItem = ({ forignKey, onDelete }) => {
970
1020
  const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
971
- const handleDelete = (0, import_react17.useCallback)(() => {
1021
+ const handleDelete = (0, import_react19.useCallback)(() => {
972
1022
  onDelete?.(forignKey);
973
1023
  }, [
974
1024
  forignKey,
975
1025
  onDelete
976
1026
  ]);
977
- return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Root, {
1027
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ListItem.Root, {
978
1028
  classNames: "px-2"
979
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Heading, {
1029
+ }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ListItem.Heading, {
980
1030
  classNames: "flex flex-col grow truncate"
981
- }, /* @__PURE__ */ import_react17.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react17.default.createElement("div", {
1031
+ }, /* @__PURE__ */ import_react19.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react19.default.createElement("div", {
982
1032
  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, {
1033
+ }, forignKey.id)), /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.ListItem.Endcap, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.IconButton, {
984
1034
  iconOnly: true,
985
1035
  icon: "ph--x--regular",
986
1036
  variant: "ghost",
@@ -994,11 +1044,11 @@ var initialValues2 = {
994
1044
  };
995
1045
  var AdvancedObjectSettings = ({ object }) => {
996
1046
  const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
997
- const [adding, setAdding] = (0, import_react16.useState)(false);
1047
+ const [adding, setAdding] = (0, import_react18.useState)(false);
998
1048
  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) => {
1049
+ const handleNew = (0, import_react18.useCallback)(() => setAdding(true), []);
1050
+ const handleCancel = (0, import_react18.useCallback)(() => setAdding(false), []);
1051
+ const handleSave = (0, import_react18.useCallback)((key) => {
1002
1052
  const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
1003
1053
  if (index === -1) {
1004
1054
  keys.push(key);
@@ -1007,7 +1057,7 @@ var AdvancedObjectSettings = ({ object }) => {
1007
1057
  }, [
1008
1058
  keys
1009
1059
  ]);
1010
- const handleDelete = (0, import_react16.useCallback)((key) => {
1060
+ const handleDelete = (0, import_react18.useCallback)((key) => {
1011
1061
  const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
1012
1062
  if (index !== -1) {
1013
1063
  keys.splice(index, 1);
@@ -1015,23 +1065,23 @@ var AdvancedObjectSettings = ({ object }) => {
1015
1065
  }, [
1016
1066
  keys
1017
1067
  ]);
1018
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement("div", {
1068
+ return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement("div", {
1019
1069
  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", {
1070
+ }, /* @__PURE__ */ import_react18.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react18.default.createElement("div", {
1021
1071
  className: "flex items-center"
1022
- }, /* @__PURE__ */ import_react16.default.createElement("h3", {
1072
+ }, /* @__PURE__ */ import_react18.default.createElement("h3", {
1023
1073
  className: "text-sm font-semibold"
1024
- }, t("foreign keys")), /* @__PURE__ */ import_react16.default.createElement("div", {
1074
+ }, t("foreign keys")), /* @__PURE__ */ import_react18.default.createElement("div", {
1025
1075
  className: "grow"
1026
- }), /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.IconButton, {
1076
+ }), /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.IconButton, {
1027
1077
  classNames: adding && "invisible",
1028
1078
  icon: "ph--plus--regular",
1029
1079
  label: t("add key"),
1030
1080
  onClick: handleNew
1031
- })), !adding && /* @__PURE__ */ import_react16.default.createElement(ForeignKeys, {
1081
+ })), !adding && /* @__PURE__ */ import_react18.default.createElement(ForeignKeys, {
1032
1082
  keys,
1033
1083
  onDelete: handleDelete
1034
- })), adding && /* @__PURE__ */ import_react16.default.createElement(import_react_ui_form4.Form, {
1084
+ })), adding && /* @__PURE__ */ import_react18.default.createElement(import_react_ui_form4.Form, {
1035
1085
  schema: import_echo_schema2.ForeignKeySchema,
1036
1086
  values: initialValues2,
1037
1087
  onSave: handleSave,
@@ -1040,10 +1090,10 @@ var AdvancedObjectSettings = ({ object }) => {
1040
1090
  };
1041
1091
  var BaseObjectSettings = ({ classNames, children, object }) => {
1042
1092
  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", {
1093
+ const inputRef = (0, import_react20.useRef)(null);
1094
+ return /* @__PURE__ */ import_react20.default.createElement("form", {
1045
1095
  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, {
1096
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Input.Label, null, t("name label")), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Input.TextInput, {
1047
1097
  ref: inputRef,
1048
1098
  placeholder: t("name placeholder"),
1049
1099
  value: object.name ?? "",
@@ -1058,25 +1108,25 @@ var BaseObjectSettings = ({ classNames, children, object }) => {
1058
1108
  })), children);
1059
1109
  };
1060
1110
  var ObjectSettingsContainer = ({ object, role }) => {
1061
- const data = (0, import_react15.useMemo)(() => ({
1111
+ const data = (0, import_react17.useMemo)(() => ({
1062
1112
  subject: object
1063
1113
  }), [
1064
1114
  object
1065
1115
  ]);
1066
- return /* @__PURE__ */ import_react15.default.createElement(import_react_ui10.Clipboard.Provider, null, /* @__PURE__ */ import_react15.default.createElement(import_react_ui_stack2.StackItem.Content, {
1116
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Clipboard.Provider, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui_stack2.StackItem.Content, {
1067
1117
  toolbar: false,
1068
1118
  role
1069
- }, /* @__PURE__ */ import_react15.default.createElement("div", {
1119
+ }, /* @__PURE__ */ import_react17.default.createElement("div", {
1070
1120
  className: "flex flex-col overflow-y-auto divide-y divide-separator"
1071
- }, /* @__PURE__ */ import_react15.default.createElement(BaseObjectSettings, {
1121
+ }, /* @__PURE__ */ import_react17.default.createElement(BaseObjectSettings, {
1072
1122
  object
1073
- }, /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
1123
+ }, /* @__PURE__ */ import_react17.default.createElement(import_app_framework8.Surface, {
1074
1124
  role: "base-object-settings",
1075
1125
  data
1076
- })), /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
1126
+ })), /* @__PURE__ */ import_react17.default.createElement(import_app_framework8.Surface, {
1077
1127
  role: "object-settings",
1078
1128
  data
1079
- }), /* @__PURE__ */ import_react15.default.createElement(AdvancedObjectSettings, {
1129
+ }), /* @__PURE__ */ import_react17.default.createElement(AdvancedObjectSettings, {
1080
1130
  object
1081
1131
  }))));
1082
1132
  };
@@ -1088,11 +1138,11 @@ var Status;
1088
1138
  })(Status || (Status = {}));
1089
1139
  var PersistenceStatus = ({ db }) => {
1090
1140
  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);
1141
+ const [displayMessage, setDisplayMessage] = (0, import_react22.useState)(false);
1142
+ const [status, naturalSetStatus] = (0, import_react22.useState)(0);
1143
+ const [prevStatus, setPrevStatus] = (0, import_react22.useState)(0);
1094
1144
  const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
1095
- (0, import_react20.useEffect)(() => {
1145
+ (0, import_react22.useEffect)(() => {
1096
1146
  setPrevStatus(status);
1097
1147
  if (prevStatus !== status && status === 0) {
1098
1148
  setDisplayMessage(true);
@@ -1104,66 +1154,68 @@ var PersistenceStatus = ({ db }) => {
1104
1154
  ]);
1105
1155
  switch (status) {
1106
1156
  case 2:
1107
- return /* @__PURE__ */ import_react20.default.createElement("div", {
1157
+ return /* @__PURE__ */ import_react22.default.createElement("div", {
1108
1158
  className: "flex items-center"
1109
- }, /* @__PURE__ */ import_react20.default.createElement(import_react19.Warning, {
1159
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react21.Warning, {
1110
1160
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1111
- }), /* @__PURE__ */ import_react20.default.createElement("span", {
1161
+ }), /* @__PURE__ */ import_react22.default.createElement("span", {
1112
1162
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
1113
1163
  }, t("persistence error label")));
1114
1164
  case 1:
1115
- return /* @__PURE__ */ import_react20.default.createElement("div", {
1165
+ return /* @__PURE__ */ import_react22.default.createElement("div", {
1116
1166
  className: "flex items-center"
1117
- }, /* @__PURE__ */ import_react20.default.createElement(import_react19.ArrowsCounterClockwise, {
1167
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react21.ArrowsCounterClockwise, {
1118
1168
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1119
- }), /* @__PURE__ */ import_react20.default.createElement("span", {
1169
+ }), /* @__PURE__ */ import_react22.default.createElement("span", {
1120
1170
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
1121
1171
  }, t("persistence pending label")));
1122
1172
  case 0:
1123
1173
  default:
1124
- return /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Root, {
1174
+ return /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, {
1125
1175
  delayDuration: 400
1126
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Trigger, {
1176
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, {
1127
1177
  role: "status",
1128
1178
  className: "flex items-center"
1129
- }, /* @__PURE__ */ import_react20.default.createElement(import_react19.CheckCircle, {
1179
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react21.CheckCircle, {
1130
1180
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1131
- }), displayMessage && /* @__PURE__ */ import_react20.default.createElement("span", {
1181
+ }), displayMessage && /* @__PURE__ */ import_react22.default.createElement("span", {
1132
1182
  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))));
1183
+ }, t("persisted locally label"))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, null, t("persisted locally message"), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
1134
1184
  }
1135
1185
  };
1136
1186
  var POPOVER_ADD_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
1137
1187
  var PopoverAddSpace = () => {
1138
1188
  const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1139
- const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
1140
- return /* @__PURE__ */ import_react21.default.createElement("div", {
1189
+ const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
1190
+ return /* @__PURE__ */ import_react23.default.createElement("div", {
1141
1191
  role: "none",
1142
- className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
1143
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
1192
+ className: "p-1 grid grid-cols-1 gap-1 [&>button]:justify-start"
1193
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.IconButton, {
1144
1194
  variant: "ghost",
1145
1195
  label: t("create space label"),
1146
1196
  icon: "ph--plus--regular",
1147
1197
  onClick: () => {
1148
- void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateSpace));
1149
- void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1198
+ void dispatch((0, import_app_framework9.createIntent)(import_chunk_AR3JHVCY.SpaceAction.OpenCreateSpace));
1199
+ void dispatch((0, import_app_framework9.createIntent)(import_app_framework9.LayoutAction.UpdatePopover, {
1150
1200
  part: "popover",
1151
1201
  options: {
1202
+ variant: "react",
1152
1203
  anchorId: "",
1153
1204
  state: false
1154
1205
  }
1155
1206
  }));
1156
1207
  },
1157
1208
  "data-testid": "spacePlugin.createSpace"
1158
- }), /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
1209
+ }), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.IconButton, {
1159
1210
  variant: "ghost",
1160
1211
  label: t("join space label"),
1161
1212
  icon: "ph--sign-in--regular",
1162
1213
  onClick: () => {
1163
- void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Join));
1164
- void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1214
+ void dispatch((0, import_app_framework9.createIntent)(import_chunk_AR3JHVCY.SpaceAction.Join));
1215
+ void dispatch((0, import_app_framework9.createIntent)(import_app_framework9.LayoutAction.UpdatePopover, {
1165
1216
  part: "popover",
1166
1217
  options: {
1218
+ variant: "react",
1167
1219
  anchorId: "",
1168
1220
  state: false
1169
1221
  }
@@ -1176,10 +1228,11 @@ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/s
1176
1228
  var POPOVER_RENAME_OBJECT = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameObject`;
1177
1229
  var PopoverRenameObject = ({ object: obj }) => {
1178
1230
  const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1179
- const doneButton = (0, import_react22.useRef)(null);
1231
+ const doneButton = (0, import_react24.useRef)(null);
1180
1232
  const object = obj;
1181
- const [name, setName] = (0, import_react22.useState)(object.name || object.title || "");
1182
- const handleDone = (0, import_react22.useCallback)(() => {
1233
+ const [name, setName] = (0, import_react24.useState)(object.name || object.title || "");
1234
+ const { dispatchPromise: dispatch } = (0, import_app_framework10.useIntentDispatcher)();
1235
+ const handleDone = (0, import_react24.useCallback)(() => {
1183
1236
  try {
1184
1237
  object.name = name;
1185
1238
  } catch {
@@ -1190,69 +1243,84 @@ var PopoverRenameObject = ({ object: obj }) => {
1190
1243
  err
1191
1244
  }, {
1192
1245
  F: __dxlog_file4,
1193
- L: 30,
1246
+ L: 32,
1194
1247
  S: void 0,
1195
1248
  C: (f, a) => f(...a)
1196
1249
  });
1197
1250
  }
1198
1251
  }
1252
+ void dispatch((0, import_app_framework10.createIntent)(import_app_framework10.LayoutAction.UpdatePopover, {
1253
+ part: "popover",
1254
+ options: {
1255
+ variant: "react",
1256
+ anchorId: "",
1257
+ state: false
1258
+ }
1259
+ }));
1199
1260
  }, [
1200
1261
  object,
1201
1262
  name
1202
1263
  ]);
1203
- return /* @__PURE__ */ import_react22.default.createElement("div", {
1264
+ return /* @__PURE__ */ import_react24.default.createElement("div", {
1204
1265
  role: "none",
1205
1266
  className: "p-1 flex gap-2"
1206
- }, /* @__PURE__ */ import_react22.default.createElement("div", {
1267
+ }, /* @__PURE__ */ import_react24.default.createElement("div", {
1207
1268
  role: "none",
1208
1269
  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, {
1270
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Label, {
1210
1271
  srOnly: true
1211
- }, t("object name label")), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.TextInput, {
1272
+ }, t("object name label")), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.TextInput, {
1212
1273
  placeholder: t("object placeholder"),
1213
1274
  value: name,
1214
1275
  "data-testid": "spacePlugin.renameObject.input",
1215
1276
  onChange: ({ target: { value } }) => setName(value),
1216
1277
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1217
- }))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Close, {
1218
- asChild: true
1219
- }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Button, {
1278
+ }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Button, {
1220
1279
  ref: doneButton,
1221
1280
  classNames: "self-stretch",
1222
1281
  onClick: handleDone
1223
1282
  }, t("done label", {
1224
1283
  ns: "os"
1225
- }))));
1284
+ })));
1226
1285
  };
1227
1286
  var POPOVER_RENAME_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
1228
1287
  var PopoverRenameSpace = ({ space }) => {
1229
1288
  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)(() => {
1289
+ const doneButton = (0, import_react25.useRef)(null);
1290
+ const [name, setName] = (0, import_react25.useState)(space.properties.name ?? "");
1291
+ const { dispatchPromise: dispatch } = (0, import_app_framework11.useIntentDispatcher)();
1292
+ const handleDone = (0, import_react25.useCallback)(() => {
1233
1293
  space.properties.name = name;
1294
+ void dispatch((0, import_app_framework11.createIntent)(import_app_framework11.LayoutAction.UpdatePopover, {
1295
+ part: "popover",
1296
+ options: {
1297
+ variant: "react",
1298
+ anchorId: "",
1299
+ state: false
1300
+ }
1301
+ }));
1234
1302
  }, [
1235
1303
  space,
1236
1304
  name
1237
1305
  ]);
1238
- return /* @__PURE__ */ import_react23.default.createElement("div", {
1306
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1239
1307
  role: "none",
1240
1308
  className: "p-1 flex gap-2"
1241
- }, /* @__PURE__ */ import_react23.default.createElement("div", {
1309
+ }, /* @__PURE__ */ import_react25.default.createElement("div", {
1242
1310
  role: "none",
1243
1311
  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, {
1312
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Input.Label, {
1245
1313
  srOnly: true
1246
- }, t("space name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.TextInput, {
1314
+ }, t("space name label")), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Input.TextInput, {
1247
1315
  defaultValue: space.properties.name ?? "",
1248
1316
  placeholder: t("unnamed space label"),
1249
1317
  onChange: ({ target: { value } }) => setName(value),
1250
1318
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1251
1319
  // Currently this is not possible because Radix does not expose the popover context.
1252
1320
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1253
- }))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Popover.Close, {
1321
+ }))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Popover.Close, {
1254
1322
  asChild: true
1255
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
1323
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Button, {
1256
1324
  ref: doneButton,
1257
1325
  classNames: "self-stretch",
1258
1326
  onClick: handleDone
@@ -1260,73 +1328,53 @@ var PopoverRenameSpace = ({ space }) => {
1260
1328
  ns: "os"
1261
1329
  }))));
1262
1330
  };
1263
- var ShareSpaceButton = ({ space }) => {
1264
- const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
1265
- return /* @__PURE__ */ import_react24.default.createElement(ShareSpaceButtonImpl, {
1266
- onClick: () => dispatch((0, import_app_framework9.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Share, {
1267
- space
1268
- }))
1269
- });
1270
- };
1271
- var ShareSpaceButtonImpl = ({ onClick }) => {
1272
- const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1273
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.IconButton, {
1274
- "data-testid": "spacePlugin.shareSpaceButton",
1275
- icon: "ph--users--regular",
1276
- label: t("share space label"),
1277
- onClick
1278
- });
1279
- };
1280
- var usePath = (graph, id, timeout) => {
1281
- const [pathState, setPathState] = (0, import_react26.useState)(id ? graph.getPath({
1282
- target: id
1283
- }) : void 0);
1331
+ var useQuerySpaceSchemas = (space) => {
1332
+ const [schemas, setSchemas] = (0, import_react26.useState)([]);
1284
1333
  (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);
1334
+ const query = space.db.schemaRegistry.query();
1335
+ const initialResults = query.runSync();
1336
+ setSchemas(initialResults);
1337
+ const unsubscribe = query.subscribe(() => setSchemas(query.results));
1338
+ return () => unsubscribe();
1305
1339
  }, [
1306
- graph,
1307
- id,
1308
- timeout,
1309
- pathState
1340
+ space
1310
1341
  ]);
1311
- return pathState;
1342
+ return schemas;
1343
+ };
1344
+ var SchemaContainer = ({ space }) => {
1345
+ const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1346
+ const schemas = useQuerySpaceSchemas(space);
1347
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_ui_stack3.StackItem.Content, {
1348
+ classNames: "block overflow-y-auto"
1349
+ }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_form5.ControlPage, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_form5.ControlSection, {
1350
+ title: t("schema verbose label"),
1351
+ description: t("schema description")
1352
+ }, /* @__PURE__ */ import_react26.default.createElement("div", {
1353
+ role: "none",
1354
+ className: import_react_ui_form5.controlItemClasses
1355
+ }, schemas.length === 0 && /* @__PURE__ */ import_react26.default.createElement("div", {
1356
+ className: "text-center plb-4"
1357
+ }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ import_react26.default.createElement("div", {
1358
+ key: schema.id
1359
+ }, /* @__PURE__ */ import_react26.default.createElement("div", null, schema.typename)))))));
1312
1360
  };
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);
1316
1364
  var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
1317
1365
  var SpacePresence = ({ object, spaceKey }) => {
1318
- const spaceState = (0, import_app_framework10.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1366
+ const spaceState = (0, import_app_framework12.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1319
1367
  const client = (0, import_react_client6.useClient)();
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_react27.useState)(Date.now());
1372
+ (0, import_react27.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_react27.useCallback)((member) => member.presence === 1, []);
1377
+ const memberIsNotSelf = (0, import_react27.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1330
1378
  identity?.identityKey
1331
1379
  ]);
1332
1380
  if (!identity || !spaceState || !space) {
@@ -1343,7 +1391,7 @@ 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_react27.default.createElement(FullPresence, {
1347
1395
  members: membersForObject
1348
1396
  });
1349
1397
  };
@@ -1353,66 +1401,71 @@ var FullPresence = (props) => {
1353
1401
  if (members.length === 0) {
1354
1402
  return null;
1355
1403
  }
1356
- return /* @__PURE__ */ import_react25.default.createElement("div", {
1404
+ return /* @__PURE__ */ import_react27.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_react27.default.createElement(import_react_ui19.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_react27.default.createElement(import_react_ui19.Tooltip.Trigger, {
1410
+ className: "grid focus:outline-none"
1411
+ }, /* @__PURE__ */ import_react27.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_react27.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.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_react27.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Trigger, {
1420
+ className: "grid focus:outline-none"
1421
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Avatar.Content, {
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_react27.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.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_react27.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.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_react27.default.createElement(import_react_ui19.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_react27.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_react27.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_react27.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.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_react27.default.createElement(import_react_ui19.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;
1415
- const { graph } = (0, import_app_framework10.useAppGraph)();
1468
+ const { graph } = (0, import_app_framework12.useAppGraph)();
1416
1469
  const attended = (0, import_react_ui_attention.useAttended)();
1417
1470
  const startOfAttention = attended.at(-1);
1418
1471
  const path = usePath(graph, startOfAttention);
@@ -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_react27.useState)(viewers ? getActiveViewers(viewers) : []);
1478
+ (0, import_react27.useEffect)(() => {
1426
1479
  if (viewers) {
1427
1480
  setActiveViewers(getActiveViewers(viewers));
1428
1481
  const interval = setInterval(() => {
@@ -1433,7 +1486,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1433
1486
  }, [
1434
1487
  viewers
1435
1488
  ]);
1436
- return /* @__PURE__ */ import_react25.default.createElement(SmallPresence, {
1489
+ return /* @__PURE__ */ import_react27.default.createElement(SmallPresence, {
1437
1490
  count: activeViewers.length,
1438
1491
  attended: isAttended,
1439
1492
  containsAttended
@@ -1441,38 +1494,67 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1441
1494
  };
1442
1495
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1443
1496
  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, {
1497
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Trigger, {
1445
1498
  asChild: true
1446
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention.AttentionGlyph, {
1499
+ }, /* @__PURE__ */ import_react27.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_react27.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui19.Tooltip.Content, {
1452
1505
  side: "bottom"
1453
- }, /* @__PURE__ */ import_react25.default.createElement("span", null, t("presence label", {
1506
+ }, /* @__PURE__ */ import_react27.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_react27.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
1456
1509
  };
1457
1510
  var SpacePluginSettings = ({ settings }) => {
1458
1511
  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, {
1512
+ const { dispatchPromise: dispatch } = (0, import_app_framework13.useIntentDispatcher)();
1513
+ const client = (0, import_react_client7.useClient)();
1514
+ const spaces = (0, import_echo7.useSpaces)({
1515
+ all: settings.showHidden
1516
+ });
1517
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.DeprecatedFormContainer, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.DeprecatedFormInput, {
1460
1518
  label: t("show hidden spaces label")
1461
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui20.Input.Switch, {
1519
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.Input.Switch, {
1462
1520
  checked: settings.showHidden,
1463
1521
  onCheckedChange: (checked) => settings.showHidden = !!checked
1464
- })));
1522
+ })), /* @__PURE__ */ import_react28.default.createElement("div", {
1523
+ role: "none"
1524
+ }, /* @__PURE__ */ import_react28.default.createElement("h2", {
1525
+ className: "text-xl my-4"
1526
+ }, "Space Settings"), /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.List, {
1527
+ classNames: "max-w-md mx-auto"
1528
+ }, spaces.map((space) => /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.ListItem.Root, {
1529
+ key: space.id
1530
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.ListItem.Heading, {
1531
+ classNames: "flex flex-col grow truncate mbe-2"
1532
+ }, (0, import_react_ui20.toLocalizedString)((0, import_chunk_EG3WAZLA.getSpaceDisplayName)(space, {
1533
+ personal: space === client.spaces.default
1534
+ }), t)), /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.ListItem.Endcap, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui20.Button, {
1535
+ onClick: () => dispatch((0, import_app_framework13.createIntent)(import_chunk_AR3JHVCY.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 }) => {
1540
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
1541
+ var FormSchema = import_chunk_AR3JHVCY.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 }) => {
1468
1547
  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) => {
1548
+ const { dispatchPromise: dispatch } = (0, import_app_framework14.useIntentDispatcher)();
1549
+ const client = (0, import_react_client8.useClient)();
1550
+ const archived = (0, import_react_ui21.useMulticastObservable)(space.state) === import_echo8.SpaceState.SPACE_INACTIVE;
1551
+ const [edgeReplication, setEdgeReplication] = (0, import_react29.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1552
+ const toggleEdgeReplication = (0, import_react29.useCallback)(async (next) => {
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: 51,
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_react29.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_framework14.createIntent)(import_chunk_AR3JHVCY.SpaceAction.Close, {
1579
+ space
1580
+ }), (0, import_app_framework14.chain)(import_app_framework14.LayoutAction.SwitchWorkspace, {
1581
+ part: "workspace",
1582
+ subject: client.spaces.default.id
1583
+ })));
1584
+ } else if (!properties.archived && archived) {
1585
+ void dispatch((0, import_app_framework14.createIntent)(import_chunk_AR3JHVCY.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_react29.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_react29.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_react29.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_react29.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_react29.default.createElement(import_react_ui21.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_react29.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_react29.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_react29.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_react29.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_react29.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_react29.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_react29.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_react29.default.createElement(import_react_ui_pickers.HuePicker, {
1559
1656
  value: getValue(),
1560
1657
  onChange: handleChange,
1561
1658
  onReset: handleHueReset,
@@ -1563,145 +1660,58 @@ 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_react29.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_react29.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_react29.default.createElement(import_react_ui21.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_react29.useCallback)(() => onValueChange(type, !getValue()), [
1678
+ onValueChange,
1679
+ type,
1680
+ getValue
1681
+ ]);
1682
+ return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlItemInput, {
1683
+ title: label,
1684
+ description: t("archive space description")
1685
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui21.Button, {
1686
+ disabled: space === client.spaces.default,
1687
+ onClick: handleChange
1688
+ }, getValue() ? t("unarchive space label") : t("archive space label")));
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_react29.default.createElement(import_react_ui_stack4.StackItem.Content, {
1695
+ classNames: "block overflow-y-auto pli-2"
1696
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlPage, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlSection, {
1697
+ title: t("space properties settings verbose label", {
1698
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
1699
+ }),
1700
+ description: t("space properties settings description", {
1701
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
1702
+ })
1703
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.Form, {
1704
+ schema: FormSchema,
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)();
1713
+ const [status, setStatus] = (0, import_react30.useState)(import_services.EdgeStatus.NOT_CONNECTED);
1714
+ const client = (0, import_react_client9.useClient)();
1705
1715
  (0, import_react30.useEffect)(() => {
1706
1716
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1707
1717
  setStatus(status2);
@@ -1712,136 +1722,32 @@ var useEdgeStatus = () => {
1712
1722
  return status;
1713
1723
  };
1714
1724
  var InlineSyncStatus = ({ space, open }) => {
1715
- const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1725
+ const { t } = (0, import_react_ui22.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
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_framework15.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_react30.default.createElement(import_react_ui22.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Trigger, {
1729
1739
  asChild: true
1730
1740
  }, /* @__PURE__ */ import_react30.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_react30.default.createElement(import_react_ui22.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.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))));
1739
- };
1740
- var SYNC_STALLED_TIMEOUT = 5e3;
1741
- var styles = {
1742
- barBg: "bg-neutral-50 dark:bg-green-900 text-black",
1743
- barFg: "bg-neutral-100 bg-green-500",
1744
- barHover: "dark:hover:bg-green-500"
1748
+ }, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui22.Tooltip.Arrow, null))));
1745
1749
  };
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,23 +1833,24 @@ 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();
1933
- const [saved, setSaved] = (0, import_react32.useState)(true);
1934
- (0, import_react32.useEffect)(() => {
1838
+ const client = (0, import_react_client10.useClient)();
1839
+ const state = (0, import_echo10.useSyncState)();
1840
+ const [saved, setSaved] = (0, import_react31.useState)(true);
1841
+ (0, import_react31.useEffect)(() => {
1935
1842
  return createClientSaveTracker(client, (state2) => {
1936
1843
  setSaved(state2 === "saved");
1937
1844
  });
1938
1845
  }, []);
1939
- return /* @__PURE__ */ import_react32.default.createElement(SyncStatusIndicator, {
1846
+ return /* @__PURE__ */ import_react31.default.createElement(SyncStatusIndicator, {
1940
1847
  state,
1941
1848
  saved
1942
1849
  });
1943
1850
  };
1944
1851
  var SyncStatusIndicator = ({ state, saved }) => {
1945
- const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1946
- const summary = getSyncSummary(state);
1852
+ const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
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;
@@ -1953,8 +1860,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
1953
1860
  needsToUpload,
1954
1861
  needsToDownload
1955
1862
  });
1956
- const [classNames, setClassNames] = (0, import_react32.useState)();
1957
- (0, import_react32.useEffect)(() => {
1863
+ const [classNames, setClassNames] = (0, import_react31.useState)();
1864
+ (0, import_react31.useEffect)(() => {
1958
1865
  setClassNames(void 0);
1959
1866
  if (offline || !needsToUpload && !needsToDownload) {
1960
1867
  return;
@@ -1969,60 +1876,14 @@ var SyncStatusIndicator = ({ state, saved }) => {
1969
1876
  needsToDownload
1970
1877
  ]);
1971
1878
  const title = t(`${status} label`);
1972
- const icon = /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Icon, {
1879
+ const icon = /* @__PURE__ */ import_react31.default.createElement(import_react_ui23.Icon, {
1973
1880
  icon: getIcon(status),
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_react31.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,19 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
2053
1914
  PopoverRenameSpace,
2054
1915
  ReactRoot,
2055
1916
  ReactSurface,
2056
- SPACE_SETTINGS_DIALOG,
2057
- Schema,
2058
- ShareSpaceButton,
2059
- ShareSpaceButtonImpl,
1917
+ SchemaContainer,
1918
+ SchemaDefs,
1919
+ SchemaTools,
2060
1920
  SmallPresence,
2061
1921
  SmallPresenceLive,
2062
1922
  SpacePluginSettings,
2063
1923
  SpacePresence,
2064
- SpacePropertiesForm,
2065
1924
  SpaceSettings,
2066
1925
  SpaceSettingsContainer,
2067
1926
  SpaceState,
2068
1927
  SpacesReady,
2069
1928
  SyncStatus,
2070
- SyncStatusDetail,
2071
1929
  SyncStatusIndicator,
2072
- Tools
1930
+ useQuerySpaceSchemas
2073
1931
  });
2074
- //# sourceMappingURL=chunk-3GKCNADA.cjs.map
1932
+ //# sourceMappingURL=chunk-HD4C6KKO.cjs.map