@dxos/plugin-space 0.7.5-main.ff8607b → 0.7.5-staging.2ff1350

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 (224) hide show
  1. package/dist/lib/browser/{app-graph-builder-J4NX44Y4.mjs → app-graph-builder-MGK5HWPZ.mjs} +21 -100
  2. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-QF7VVRCV.mjs → app-graph-serializer-FOWFLYGU.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-6UIFMVVI.mjs → chunk-23RVI5FZ.mjs} +16 -5
  5. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-RLZQJD47.mjs → chunk-NU7WDVGN.mjs} +2 -1
  7. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-XZ2NH3CP.mjs → chunk-POARSSRI.mjs} +306 -210
  9. package/dist/lib/browser/chunk-POARSSRI.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-SDK7RZI3.mjs → chunk-UDWHTKB5.mjs} +6 -3
  11. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-XPZ6IIXF.mjs → chunk-ULA2UQJ4.mjs} +15 -1
  13. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +7 -0
  14. package/dist/lib/browser/{identity-created-25TK5XNO.mjs → identity-created-FYGS6TBH.mjs} +2 -2
  15. package/dist/lib/browser/index.mjs +55 -21
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-IEDVV74T.mjs → intent-resolver-E2UU3DAS.mjs} +86 -54
  18. package/dist/lib/browser/intent-resolver-E2UU3DAS.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-6VRPRLQR.mjs → react-root-STUND2SO.mjs} +5 -5
  21. package/dist/lib/browser/{react-surface-DMNDXLZ7.mjs → react-surface-P7CKFNJR.mjs} +16 -22
  22. package/dist/lib/browser/react-surface-P7CKFNJR.mjs.map +7 -0
  23. package/dist/lib/browser/schema-5W3DSY2E.mjs +24 -0
  24. package/dist/lib/browser/schema-5W3DSY2E.mjs.map +7 -0
  25. package/dist/lib/browser/{settings-K4JPYYEM.mjs → settings-PHPCXX33.mjs} +2 -2
  26. package/dist/lib/browser/{spaces-ready-2MUWWVVO.mjs → spaces-ready-K47RR7N2.mjs} +4 -4
  27. package/dist/lib/browser/{state-6DCY5YJP.mjs → state-INJ63O57.mjs} +2 -2
  28. package/dist/lib/browser/types/index.mjs +5 -3
  29. package/dist/lib/node/{app-graph-builder-ZOPG4MOS.cjs → app-graph-builder-ZIUBXRPA.cjs} +45 -124
  30. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +7 -0
  31. package/dist/lib/node/{app-graph-serializer-QE2G4MWB.cjs → app-graph-serializer-VQOGHKXL.cjs} +20 -20
  32. package/dist/lib/node/{chunk-3QWZCN6L.cjs → chunk-OVGKWJOC.cjs} +51 -40
  33. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-SZEIQGQU.cjs → chunk-RHYA4XUB.cjs} +367 -270
  35. package/dist/lib/node/chunk-RHYA4XUB.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-D6BFKOXY.cjs → chunk-U6DYXAR3.cjs} +10 -7
  37. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-6MEOP3DH.cjs → chunk-WAJKBO3J.cjs} +21 -6
  39. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-UX3U4RU2.cjs → chunk-YZKNRFHU.cjs} +5 -4
  41. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +7 -0
  42. package/dist/lib/node/{identity-created-7G5U7R36.cjs → identity-created-AXI64BLE.cjs} +6 -6
  43. package/dist/lib/node/index.cjs +108 -75
  44. package/dist/lib/node/index.cjs.map +3 -3
  45. package/dist/lib/node/{intent-resolver-N2W2L6OL.cjs → intent-resolver-TJ5DFPZP.cjs} +136 -105
  46. package/dist/lib/node/intent-resolver-TJ5DFPZP.cjs.map +7 -0
  47. package/dist/lib/node/meta.json +1 -1
  48. package/dist/lib/node/{react-root-YD35W3VU.cjs → react-root-WQGBCJ2K.cjs} +10 -10
  49. package/dist/lib/node/{react-surface-QPLXK7DT.cjs → react-surface-GSEV6XCR.cjs} +49 -57
  50. package/dist/lib/node/react-surface-GSEV6XCR.cjs.map +7 -0
  51. package/dist/lib/node/schema-YN7WVFRX.cjs +40 -0
  52. package/dist/lib/node/schema-YN7WVFRX.cjs.map +7 -0
  53. package/dist/lib/node/{settings-TEELGWS4.cjs → settings-5QYFWNH7.cjs} +6 -6
  54. package/dist/lib/node/{spaces-ready-PZZQWS6T.cjs → spaces-ready-FQNAKR7G.cjs} +13 -13
  55. package/dist/lib/node/{state-WPZC4JXB.cjs → state-57UE3DYE.cjs} +6 -6
  56. package/dist/lib/node/types/index.cjs +18 -16
  57. package/dist/lib/node/types/index.cjs.map +2 -2
  58. package/dist/lib/node-esm/{app-graph-builder-TKGLOK22.mjs → app-graph-builder-TERVM2SL.mjs} +21 -100
  59. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +7 -0
  60. package/dist/lib/node-esm/{app-graph-serializer-HLX2JRNF.mjs → app-graph-serializer-GZRSWHEN.mjs} +4 -4
  61. package/dist/lib/node-esm/{chunk-4UX5WGKJ.mjs → chunk-2TQ2AJEZ.mjs} +6 -3
  62. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-LGL4A5B5.mjs → chunk-6RSVVEPS.mjs} +2 -1
  64. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-N6EAOMIS.mjs → chunk-ONKFX23L.mjs} +306 -210
  66. package/dist/lib/node-esm/chunk-ONKFX23L.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-LA45TPAN.mjs → chunk-PGH5L7MV.mjs} +16 -5
  68. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-AAQRELDK.mjs → chunk-TRNZQEEN.mjs} +15 -1
  70. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +7 -0
  71. package/dist/lib/node-esm/{identity-created-7THGZ7EW.mjs → identity-created-3CGEXNPO.mjs} +2 -2
  72. package/dist/lib/node-esm/index.mjs +55 -21
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-L2TKJU4I.mjs → intent-resolver-7NJCJ3FA.mjs} +86 -54
  75. package/dist/lib/node-esm/intent-resolver-7NJCJ3FA.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-root-Q5MFDXZE.mjs → react-root-OLYAEMP5.mjs} +5 -5
  78. package/dist/lib/node-esm/{react-surface-RQQZ5BOG.mjs → react-surface-6IFC6ZMN.mjs} +16 -22
  79. package/dist/lib/node-esm/react-surface-6IFC6ZMN.mjs.map +7 -0
  80. package/dist/lib/node-esm/schema-LOR2EVGY.mjs +25 -0
  81. package/dist/lib/node-esm/schema-LOR2EVGY.mjs.map +7 -0
  82. package/dist/lib/node-esm/{settings-KXYUZBLN.mjs → settings-H6MXTEQM.mjs} +2 -2
  83. package/dist/lib/node-esm/{spaces-ready-MWNP3WBX.mjs → spaces-ready-HKAQG5SA.mjs} +4 -4
  84. package/dist/lib/node-esm/{state-5GH2D5U4.mjs → state-VYA6OFHD.mjs} +2 -2
  85. package/dist/lib/node-esm/types/index.mjs +5 -3
  86. package/dist/types/src/SpacePlugin.d.ts +5 -1
  87. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/capabilities.d.ts +2 -1
  90. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +2 -0
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -1
  94. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/schema.d.ts +4 -0
  97. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  98. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts +1 -2
  99. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  100. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts +1 -2
  101. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +1 -1
  102. package/dist/types/src/components/AwaitingObject.d.ts +1 -2
  103. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  104. package/dist/types/src/components/BaseObjectSettings.d.ts +1 -2
  105. package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -1
  106. package/dist/types/src/components/CollectionMain.d.ts +1 -2
  107. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  108. package/dist/types/src/components/CollectionSection.d.ts +1 -2
  109. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  110. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -4
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -7
  114. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  115. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -2
  116. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  117. package/dist/types/src/components/JoinDialog.d.ts +1 -2
  118. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/MenuFooter.d.ts +1 -2
  120. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  121. package/dist/types/src/components/PersistenceStatus.d.ts +1 -2
  122. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  123. package/dist/types/src/components/PopoverAddSpace.d.ts +3 -0
  124. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -0
  125. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -2
  126. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  127. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -2
  128. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  129. package/dist/types/src/components/ShareSpaceButton.d.ts +2 -3
  130. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -1
  131. package/dist/types/src/components/SpacePluginSettings.d.ts +1 -2
  132. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/SpacePresence.d.ts +4 -5
  134. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  135. package/dist/types/src/components/SpacePresence.stories.d.ts +2 -3
  136. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +1 -2
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  139. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +3 -5
  140. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  141. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +1 -1
  142. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts +1 -2
  143. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  144. package/dist/types/src/components/SyncStatus/Space.d.ts +2 -3
  145. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -1
  146. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +3 -4
  147. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  148. package/dist/types/src/components/index.d.ts +1 -0
  149. package/dist/types/src/components/index.d.ts.map +1 -1
  150. package/dist/types/src/events.d.ts +4 -0
  151. package/dist/types/src/events.d.ts.map +1 -1
  152. package/dist/types/src/index.d.ts +1 -1
  153. package/dist/types/src/index.d.ts.map +1 -1
  154. package/dist/types/src/translations.d.ts +9 -0
  155. package/dist/types/src/translations.d.ts.map +1 -1
  156. package/dist/types/src/types/types.d.ts +26 -1
  157. package/dist/types/src/types/types.d.ts.map +1 -1
  158. package/dist/types/src/util.d.ts +2 -1
  159. package/dist/types/src/util.d.ts.map +1 -1
  160. package/package.json +41 -39
  161. package/src/SpacePlugin.tsx +41 -12
  162. package/src/capabilities/app-graph-builder.ts +15 -90
  163. package/src/capabilities/capabilities.ts +3 -1
  164. package/src/capabilities/index.ts +1 -0
  165. package/src/capabilities/intent-resolver.ts +93 -46
  166. package/src/capabilities/react-surface.tsx +12 -28
  167. package/src/capabilities/schema.ts +27 -0
  168. package/src/components/BaseObjectSettings.tsx +7 -0
  169. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +1 -3
  170. package/src/components/CreateDialog/CreateObjectDialog.tsx +29 -21
  171. package/src/components/CreateDialog/CreateObjectPanel.tsx +41 -44
  172. package/src/components/CreateDialog/CreateSpaceDialog.tsx +8 -1
  173. package/src/components/PopoverAddSpace.tsx +46 -0
  174. package/src/components/SpacePresence.stories.tsx +2 -2
  175. package/src/components/SpaceSettings/SpaceSettingsPanel.stories.tsx +5 -1
  176. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +27 -4
  177. package/src/components/index.ts +1 -0
  178. package/src/events.ts +6 -0
  179. package/src/index.ts +1 -1
  180. package/src/translations.ts +3 -0
  181. package/src/types/types.ts +21 -1
  182. package/src/util.tsx +8 -2
  183. package/dist/lib/browser/app-graph-builder-J4NX44Y4.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-6UIFMVVI.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-RLZQJD47.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-SDK7RZI3.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-XPZ6IIXF.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-XZ2NH3CP.mjs.map +0 -7
  189. package/dist/lib/browser/intent-resolver-IEDVV74T.mjs.map +0 -7
  190. package/dist/lib/browser/react-surface-DMNDXLZ7.mjs.map +0 -7
  191. package/dist/lib/node/app-graph-builder-ZOPG4MOS.cjs.map +0 -7
  192. package/dist/lib/node/chunk-3QWZCN6L.cjs.map +0 -7
  193. package/dist/lib/node/chunk-6MEOP3DH.cjs.map +0 -7
  194. package/dist/lib/node/chunk-D6BFKOXY.cjs.map +0 -7
  195. package/dist/lib/node/chunk-SZEIQGQU.cjs.map +0 -7
  196. package/dist/lib/node/chunk-UX3U4RU2.cjs.map +0 -7
  197. package/dist/lib/node/intent-resolver-N2W2L6OL.cjs.map +0 -7
  198. package/dist/lib/node/react-surface-QPLXK7DT.cjs.map +0 -7
  199. package/dist/lib/node-esm/app-graph-builder-TKGLOK22.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-4UX5WGKJ.mjs.map +0 -7
  201. package/dist/lib/node-esm/chunk-AAQRELDK.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-LA45TPAN.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-LGL4A5B5.mjs.map +0 -7
  204. package/dist/lib/node-esm/chunk-N6EAOMIS.mjs.map +0 -7
  205. package/dist/lib/node-esm/intent-resolver-L2TKJU4I.mjs.map +0 -7
  206. package/dist/lib/node-esm/react-surface-RQQZ5BOG.mjs.map +0 -7
  207. /package/dist/lib/browser/{app-graph-serializer-QF7VVRCV.mjs.map → app-graph-serializer-FOWFLYGU.mjs.map} +0 -0
  208. /package/dist/lib/browser/{identity-created-25TK5XNO.mjs.map → identity-created-FYGS6TBH.mjs.map} +0 -0
  209. /package/dist/lib/browser/{react-root-6VRPRLQR.mjs.map → react-root-STUND2SO.mjs.map} +0 -0
  210. /package/dist/lib/browser/{settings-K4JPYYEM.mjs.map → settings-PHPCXX33.mjs.map} +0 -0
  211. /package/dist/lib/browser/{spaces-ready-2MUWWVVO.mjs.map → spaces-ready-K47RR7N2.mjs.map} +0 -0
  212. /package/dist/lib/browser/{state-6DCY5YJP.mjs.map → state-INJ63O57.mjs.map} +0 -0
  213. /package/dist/lib/node/{app-graph-serializer-QE2G4MWB.cjs.map → app-graph-serializer-VQOGHKXL.cjs.map} +0 -0
  214. /package/dist/lib/node/{identity-created-7G5U7R36.cjs.map → identity-created-AXI64BLE.cjs.map} +0 -0
  215. /package/dist/lib/node/{react-root-YD35W3VU.cjs.map → react-root-WQGBCJ2K.cjs.map} +0 -0
  216. /package/dist/lib/node/{settings-TEELGWS4.cjs.map → settings-5QYFWNH7.cjs.map} +0 -0
  217. /package/dist/lib/node/{spaces-ready-PZZQWS6T.cjs.map → spaces-ready-FQNAKR7G.cjs.map} +0 -0
  218. /package/dist/lib/node/{state-WPZC4JXB.cjs.map → state-57UE3DYE.cjs.map} +0 -0
  219. /package/dist/lib/node-esm/{app-graph-serializer-HLX2JRNF.mjs.map → app-graph-serializer-GZRSWHEN.mjs.map} +0 -0
  220. /package/dist/lib/node-esm/{identity-created-7THGZ7EW.mjs.map → identity-created-3CGEXNPO.mjs.map} +0 -0
  221. /package/dist/lib/node-esm/{react-root-Q5MFDXZE.mjs.map → react-root-OLYAEMP5.mjs.map} +0 -0
  222. /package/dist/lib/node-esm/{settings-KXYUZBLN.mjs.map → settings-H6MXTEQM.mjs.map} +0 -0
  223. /package/dist/lib/node-esm/{spaces-ready-MWNP3WBX.mjs.map → spaces-ready-HKAQG5SA.mjs.map} +0 -0
  224. /package/dist/lib/node-esm/{state-5GH2D5U4.mjs.map → state-VYA6OFHD.mjs.map} +0 -0
@@ -11,8 +11,10 @@ import {
11
11
  JOIN_DIALOG,
12
12
  JoinDialog,
13
13
  MenuFooter,
14
+ POPOVER_ADD_SPACE,
14
15
  POPOVER_RENAME_OBJECT,
15
16
  POPOVER_RENAME_SPACE,
17
+ PopoverAddSpace,
16
18
  PopoverRenameObject,
17
19
  PopoverRenameSpace,
18
20
  SPACE_SETTINGS_DIALOG,
@@ -22,23 +24,22 @@ import {
22
24
  SpaceSettingsDialog,
23
25
  SpaceSettingsPanel,
24
26
  SyncStatus
25
- } from "./chunk-XZ2NH3CP.mjs";
27
+ } from "./chunk-POARSSRI.mjs";
26
28
  import {
27
29
  SpaceCapabilities
28
- } from "./chunk-RLZQJD47.mjs";
29
- import "./chunk-6UIFMVVI.mjs";
30
+ } from "./chunk-NU7WDVGN.mjs";
31
+ import "./chunk-23RVI5FZ.mjs";
30
32
  import {
31
33
  CollectionType
32
- } from "./chunk-XPZ6IIXF.mjs";
34
+ } from "./chunk-ULA2UQJ4.mjs";
33
35
  import {
34
36
  SPACE_PLUGIN
35
37
  } from "./chunk-PQXZCNAU.mjs";
36
38
 
37
39
  // packages/plugins/plugin-space/src/capabilities/react-surface.tsx
38
- import React, { useCallback } from "react";
39
- import { Capabilities, contributes, createSurface, Surface, useCapability, useCapabilities, usePluginManager } from "@dxos/app-framework";
40
+ import React from "react";
41
+ import { Capabilities, contributes, createSurface, Surface, useCapability } from "@dxos/app-framework";
40
42
  import { SettingsStore } from "@dxos/local-storage";
41
- import { ClientCapabilities } from "@dxos/plugin-client";
42
43
  import { getSpace, isEchoObject, isReactiveObject, isSpace, SpaceState } from "@dxos/react-client/echo";
43
44
  var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilities.ReactSurface, [
44
45
  createSurface({
@@ -118,20 +119,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
118
119
  id: CREATE_OBJECT_DIALOG,
119
120
  role: "dialog",
120
121
  filter: (data) => data.component === CREATE_OBJECT_DIALOG,
121
- component: ({ data }) => {
122
- const schemas = useCapabilities(ClientCapabilities.Schema).flat();
123
- const manager = usePluginManager();
124
- const resolve = useCallback((typename) => {
125
- return manager.context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
126
- }, [
127
- manager
128
- ]);
129
- return /* @__PURE__ */ React.createElement(CreateObjectDialog, {
130
- schemas,
131
- resolve,
132
- ...data.props
133
- });
134
- }
122
+ component: ({ data }) => /* @__PURE__ */ React.createElement(CreateObjectDialog, data.props)
135
123
  }),
136
124
  createSurface({
137
125
  id: POPOVER_RENAME_SPACE,
@@ -149,6 +137,12 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
149
137
  object: data.props
150
138
  })
151
139
  }),
140
+ createSurface({
141
+ id: POPOVER_ADD_SPACE,
142
+ role: "popover",
143
+ filter: (data) => data.component === POPOVER_ADD_SPACE,
144
+ component: () => /* @__PURE__ */ React.createElement(PopoverAddSpace, null)
145
+ }),
152
146
  createSurface({
153
147
  id: `${SPACE_PLUGIN}/navtree-presence`,
154
148
  role: "navtree-item-end",
@@ -228,4 +222,4 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
228
222
  export {
229
223
  react_surface_default as default
230
224
  };
231
- //# sourceMappingURL=react-surface-DMNDXLZ7.mjs.map
225
+ //# sourceMappingURL=react-surface-P7CKFNJR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, Surface, useCapability } from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\nimport {\n getSpace,\n isEchoObject,\n isReactiveObject,\n isSpace,\n SpaceState,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n AdvancedObjectSettings,\n BaseObjectSettings,\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SPACE_SETTINGS_DIALOG,\n SpacePluginSettings,\n SpacePresence,\n SpaceSettingsDialog,\n SpaceSettingsPanel,\n SyncStatus,\n type CreateObjectDialogProps,\n type SpaceSettingsDialogProps,\n POPOVER_ADD_SPACE,\n PopoverAddSpace,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings-panel`,\n // TODO(burdon): Add role name syntax to minimal plugin docs.\n role: 'complementary--settings',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <SpaceSettingsPanel space={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-base-panel`,\n role: 'complementary--settings',\n position: 'hoist',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <BaseObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-advanced-panel`,\n role: 'complementary--settings',\n position: 'fallback',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <AdvancedObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: SPACE_SETTINGS_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: SpaceSettingsDialogProps } => data.component === SPACE_SETTINGS_DIALOG,\n component: ({ data }) => <SpaceSettingsDialog {...data.props} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: POPOVER_ADD_SPACE,\n role: 'popover',\n filter: (data): data is any => data.component === POPOVER_ADD_SPACE,\n component: () => <PopoverAddSpace />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n createSurface({\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "Capabilities", "contributes", "createSurface", "Surface", "useCapability", "SettingsStore", "getSpace", "isEchoObject", "isReactiveObject", "isSpace", "SpaceState", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "CollectionType", "typename", "target", "position", "CollectionMain", "collection", "SpaceSettingsPanel", "space", "isEchoObject", "BaseObjectSettings", "object", "AdvancedObjectSettings", "SPACE_SETTINGS_DIALOG", "SpaceSettingsDialog", "props", "JOIN_DIALOG", "JoinDialog", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isReactiveObject", "PopoverRenameObject", "POPOVER_ADD_SPACE", "PopoverAddSpace", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "undefined", "SpacePresence", "CollectionSection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "MenuFooter", "SyncStatus"]
7
+ }
@@ -0,0 +1,24 @@
1
+ import {
2
+ SpaceCapabilities
3
+ } from "./chunk-NU7WDVGN.mjs";
4
+ import "./chunk-PQXZCNAU.mjs";
5
+
6
+ // packages/plugins/plugin-space/src/capabilities/schema.ts
7
+ import { effect } from "@preact/signals-core";
8
+ import { Capabilities, contributes } from "@dxos/app-framework";
9
+ import { ClientCapabilities } from "@dxos/plugin-client";
10
+ var schema_default = (context) => {
11
+ const client = context.requestCapability(ClientCapabilities.Client);
12
+ let previous = [];
13
+ const unsubscribe = effect(() => {
14
+ const forms = Array.from(new Set(context.requestCapabilities(SpaceCapabilities.ObjectForm)));
15
+ const newSchemas = forms.filter((form) => !previous.includes(form)).map((form) => form.objectSchema);
16
+ previous = forms;
17
+ client.addTypes(newSchemas);
18
+ });
19
+ return contributes(Capabilities.Null, null, () => unsubscribe());
20
+ };
21
+ export {
22
+ schema_default as default
23
+ };
24
+ //# sourceMappingURL=schema-5W3DSY2E.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/schema.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { type ObjectForm } from '../types';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // TODO(wittjosiah): Unregister schemas when they are disabled.\n let previous: ObjectForm[] = [];\n const unsubscribe = effect(() => {\n const forms = Array.from(new Set(context.requestCapabilities(SpaceCapabilities.ObjectForm)));\n // TODO(wittjosiah): Filter out schemas which the client has already registered.\n const newSchemas = forms.filter((form) => !previous.includes(form)).map((form) => form.objectSchema);\n previous = forms;\n client.addTypes(newSchemas);\n });\n\n return contributes(Capabilities.Null, null, () => unsubscribe());\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAwC;AAC/D,SAASC,0BAA0B;AAKnC,IAAA,iBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAGlE,MAAIC,WAAyB,CAAA;AAC7B,QAAMC,cAAcC,OAAO,MAAA;AACzB,UAAMC,QAAQC,MAAMC,KAAK,IAAIC,IAAIX,QAAQY,oBAAoBC,kBAAkBC,UAAU,CAAA,CAAA;AAEzF,UAAMC,aAAaP,MAAMQ,OAAO,CAACC,SAAS,CAACZ,SAASa,SAASD,IAAAA,CAAAA,EAAOE,IAAI,CAACF,SAASA,KAAKG,YAAY;AACnGf,eAAWG;AACXP,WAAOoB,SAASN,UAAAA;EAClB,CAAA;AAEA,SAAOO,YAAYC,aAAaC,MAAM,MAAM,MAAMlB,YAAAA,CAAAA;AACpD;",
6
+ "names": ["effect", "Capabilities", "contributes", "ClientCapabilities", "context", "client", "requestCapability", "ClientCapabilities", "Client", "previous", "unsubscribe", "effect", "forms", "Array", "from", "Set", "requestCapabilities", "SpaceCapabilities", "ObjectForm", "newSchemas", "filter", "form", "includes", "map", "objectSchema", "addTypes", "contributes", "Capabilities", "Null"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SpaceSettingsSchema
3
- } from "./chunk-XPZ6IIXF.mjs";
3
+ } from "./chunk-ULA2UQJ4.mjs";
4
4
  import {
5
5
  SPACE_PLUGIN
6
6
  } from "./chunk-PQXZCNAU.mjs";
@@ -21,4 +21,4 @@ var settings_default = () => {
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-K4JPYYEM.mjs.map
24
+ //# sourceMappingURL=settings-PHPCXX33.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-RLZQJD47.mjs";
3
+ } from "./chunk-NU7WDVGN.mjs";
4
4
  import {
5
5
  COMPOSER_SPACE_LOCK,
6
6
  SHARED
7
- } from "./chunk-6UIFMVVI.mjs";
7
+ } from "./chunk-23RVI5FZ.mjs";
8
8
  import {
9
9
  SpaceAction
10
- } from "./chunk-XPZ6IIXF.mjs";
10
+ } from "./chunk-ULA2UQJ4.mjs";
11
11
  import "./chunk-PQXZCNAU.mjs";
12
12
 
13
13
  // packages/plugins/plugin-space/src/capabilities/spaces-ready.ts
@@ -196,4 +196,4 @@ var spaces_ready_default = async (context) => {
196
196
  export {
197
197
  spaces_ready_default as default
198
198
  };
199
- //# sourceMappingURL=spaces-ready-2MUWWVVO.mjs.map
199
+ //# sourceMappingURL=spaces-ready-K47RR7N2.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-RLZQJD47.mjs";
3
+ } from "./chunk-NU7WDVGN.mjs";
4
4
  import {
5
5
  SPACE_PLUGIN
6
6
  } from "./chunk-PQXZCNAU.mjs";
@@ -44,4 +44,4 @@ var state_default = (context) => {
44
44
  export {
45
45
  state_default as default
46
46
  };
47
- //# sourceMappingURL=state-6DCY5YJP.mjs.map
47
+ //# sourceMappingURL=state-INJ63O57.mjs.map
@@ -12,8 +12,9 @@ import {
12
12
  SpaceForm,
13
13
  SpaceSettingsSchema,
14
14
  ThreadStatus,
15
- ThreadType
16
- } from "../chunk-XPZ6IIXF.mjs";
15
+ ThreadType,
16
+ defineObjectForm
17
+ } from "../chunk-ULA2UQJ4.mjs";
17
18
  import "../chunk-PQXZCNAU.mjs";
18
19
  export {
19
20
  ActorSchema,
@@ -29,6 +30,7 @@ export {
29
30
  SpaceForm,
30
31
  SpaceSettingsSchema,
31
32
  ThreadStatus,
32
- ThreadType
33
+ ThreadType,
34
+ defineObjectForm
33
35
  };
34
36
  //# sourceMappingURL=index.mjs.map
@@ -16,14 +16,14 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var app_graph_builder_ZOPG4MOS_exports = {};
20
- __export(app_graph_builder_ZOPG4MOS_exports, {
19
+ var app_graph_builder_ZIUBXRPA_exports = {};
20
+ __export(app_graph_builder_ZIUBXRPA_exports, {
21
21
  default: () => app_graph_builder_default
22
22
  });
23
- module.exports = __toCommonJS(app_graph_builder_ZOPG4MOS_exports);
24
- var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
25
- var import_chunk_3QWZCN6L = require("./chunk-3QWZCN6L.cjs");
26
- var import_chunk_6MEOP3DH = require("./chunk-6MEOP3DH.cjs");
23
+ module.exports = __toCommonJS(app_graph_builder_ZIUBXRPA_exports);
24
+ var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
25
+ var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
26
+ var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
27
27
  var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
29
  var import_echo = require("@dxos/client/echo");
@@ -36,8 +36,8 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/sr
36
36
  var app_graph_builder_default = (context) => {
37
37
  const resolve = (typename) => context.requestCapabilities(import_app_framework.Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
38
38
  const spacesNode = {
39
- id: import_chunk_3QWZCN6L.SPACES,
40
- type: import_chunk_3QWZCN6L.SPACES,
39
+ id: import_chunk_OVGKWJOC.SPACES,
40
+ type: import_chunk_OVGKWJOC.SPACES,
41
41
  cacheable: [
42
42
  "label",
43
43
  "role"
@@ -58,16 +58,16 @@ var app_graph_builder_default = (context) => {
58
58
  onRearrangeChildren: async (nextOrder) => {
59
59
  const { graph } = context.requestCapability(import_app_framework.Capabilities.AppGraph);
60
60
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
61
- graph._sortEdges(import_chunk_3QWZCN6L.SPACES, "outbound", nextOrder.map(({ id }) => id));
61
+ graph._sortEdges(import_chunk_OVGKWJOC.SPACES, "outbound", nextOrder.map(({ id }) => id));
62
62
  const { objects: [spacesOrder] } = await client.spaces.default.db.query(import_echo.Filter.schema(import_echo.Expando, {
63
- key: import_chunk_3QWZCN6L.SHARED
63
+ key: import_chunk_OVGKWJOC.SHARED
64
64
  })).run();
65
65
  if (spacesOrder) {
66
66
  spacesOrder.order = nextOrder.map(({ id }) => id);
67
67
  } else {
68
68
  import_log.log.warn("spaces order object not found", void 0, {
69
69
  F: __dxlog_file,
70
- L: 74,
70
+ L: 73,
71
71
  S: void 0,
72
72
  C: (f, a) => f(...a)
73
73
  });
@@ -83,39 +83,22 @@ var app_graph_builder_default = (context) => {
83
83
  filter: (node) => node.id === "root",
84
84
  actions: () => [
85
85
  {
86
- id: import_chunk_6MEOP3DH.SpaceAction.OpenCreateSpace._tag,
87
- data: async () => {
86
+ id: import_chunk_WAJKBO3J.SpaceAction.AddSpace._tag,
87
+ data: async (params) => {
88
88
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
89
- await dispatch((0, import_app_framework.createIntent)(import_chunk_6MEOP3DH.SpaceAction.OpenCreateSpace));
89
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_WAJKBO3J.SpaceAction.AddSpace));
90
90
  },
91
91
  properties: {
92
92
  label: [
93
- "create space label",
93
+ "add space label",
94
94
  {
95
95
  ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
96
96
  }
97
97
  ],
98
98
  icon: "ph--plus--regular",
99
- testId: "spacePlugin.createSpace",
100
- disposition: "item"
101
- }
102
- },
103
- {
104
- id: import_chunk_6MEOP3DH.SpaceAction.Join._tag,
105
- data: async () => {
106
- const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
107
- await dispatch((0, import_app_framework.createIntent)(import_chunk_6MEOP3DH.SpaceAction.Join));
108
- },
109
- properties: {
110
- label: [
111
- "join space label",
112
- {
113
- ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
114
- }
115
- ],
116
- icon: "ph--sign-in--regular",
117
- testId: "spacePlugin.joinSpace",
118
- disposition: "item"
99
+ testId: "spacePlugin.addSpace",
100
+ disposition: "item",
101
+ position: "fallback"
119
102
  }
120
103
  }
121
104
  ]
@@ -128,12 +111,12 @@ var app_graph_builder_default = (context) => {
128
111
  connector: () => [
129
112
  spacesNode
130
113
  ],
131
- resolver: ({ id }) => id === import_chunk_3QWZCN6L.SPACES ? spacesNode : void 0
114
+ resolver: ({ id }) => id === import_chunk_OVGKWJOC.SPACES ? spacesNode : void 0
132
115
  }),
133
116
  // Create space nodes.
134
117
  (0, import_plugin_graph.createExtension)({
135
- id: import_chunk_3QWZCN6L.SPACES,
136
- filter: (node) => node.id === import_chunk_3QWZCN6L.SPACES,
118
+ id: import_chunk_OVGKWJOC.SPACES,
119
+ filter: (node) => node.id === import_chunk_OVGKWJOC.SPACES,
137
120
  connector: () => {
138
121
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
139
122
  const spaces = (0, import_plugin_graph.toSignal)((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
@@ -141,11 +124,11 @@ var app_graph_builder_default = (context) => {
141
124
  if (!spaces || !isReady) {
142
125
  return;
143
126
  }
144
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
127
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
145
128
  const settings = context.requestCapabilities(import_app_framework.Capabilities.SettingsStore)[0]?.getStore(import_chunk_WZR6OAN3.SPACE_PLUGIN)?.value;
146
129
  try {
147
- const [spacesOrder] = (0, import_chunk_3QWZCN6L.memoizeQuery)(client.spaces.default, import_echo.Filter.schema(import_echo.Expando, {
148
- key: import_chunk_3QWZCN6L.SHARED
130
+ const [spacesOrder] = (0, import_chunk_OVGKWJOC.memoizeQuery)(client.spaces.default, import_echo.Filter.schema(import_echo.Expando, {
131
+ key: import_chunk_OVGKWJOC.SHARED
149
132
  }));
150
133
  const order = spacesOrder?.order ?? [];
151
134
  const orderMap = new Map(order.map((id, index) => [
@@ -155,7 +138,7 @@ var app_graph_builder_default = (context) => {
155
138
  return [
156
139
  ...spaces.filter((space) => orderMap.has(space.id)).sort((a, b) => orderMap.get(a.id) - orderMap.get(b.id)),
157
140
  ...spaces.filter((space) => !orderMap.has(space.id))
158
- ].filter((space) => settings?.showHidden ? true : space.state.get() !== import_echo.SpaceState.SPACE_INACTIVE).map((space) => (0, import_chunk_3QWZCN6L.constructSpaceNode)({
141
+ ].filter((space) => settings?.showHidden ? true : space.state.get() !== import_echo.SpaceState.SPACE_INACTIVE).map((space) => (0, import_chunk_OVGKWJOC.constructSpaceNode)({
159
142
  space,
160
143
  navigable: state.navigableCollections,
161
144
  personal: space === client.spaces.default,
@@ -181,9 +164,11 @@ var app_graph_builder_default = (context) => {
181
164
  }
182
165
  if (space.state.get() === import_echo.SpaceState.SPACE_INACTIVE) {
183
166
  return false;
167
+ } else if (space.state.get() !== import_echo.SpaceState.SPACE_READY) {
168
+ return void 0;
184
169
  } else {
185
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
186
- return (0, import_chunk_3QWZCN6L.constructSpaceNode)({
170
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
171
+ return (0, import_chunk_OVGKWJOC.constructSpaceNode)({
187
172
  space,
188
173
  navigable: state.navigableCollections,
189
174
  personal: space === client.spaces.default,
@@ -201,8 +186,8 @@ var app_graph_builder_default = (context) => {
201
186
  const space = node.data;
202
187
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
203
188
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
204
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
205
- return (0, import_chunk_3QWZCN6L.constructSpaceActions)({
189
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
190
+ return (0, import_chunk_OVGKWJOC.constructSpaceActions)({
206
191
  space,
207
192
  dispatch,
208
193
  personal: space === client.spaces.default,
@@ -220,36 +205,36 @@ var app_graph_builder_default = (context) => {
220
205
  if (spaceState !== import_echo.SpaceState.SPACE_READY) {
221
206
  return;
222
207
  }
223
- const collection = space.properties[import_chunk_6MEOP3DH.CollectionType.typename]?.target;
208
+ const collection = space.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target;
224
209
  if (!collection) {
225
210
  return;
226
211
  }
227
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
228
- return collection.objects.map((object) => object.target).filter(import_util.nonNullable).map((object) => (0, import_chunk_3QWZCN6L.createObjectNode)({
212
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
213
+ return collection.objects.map((object) => object.target).filter(import_util.isNonNullable).map((object) => (0, import_chunk_OVGKWJOC.createObjectNode)({
229
214
  object,
230
215
  space,
231
216
  resolve,
232
217
  navigable: state.navigableCollections
233
- })).filter(import_util.nonNullable);
218
+ })).filter(import_util.isNonNullable);
234
219
  }
235
220
  }),
236
221
  // Create nodes for objects in a collection or by its fully qualified id.
237
222
  (0, import_plugin_graph.createExtension)({
238
223
  id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/objects`,
239
- filter: (node) => node.data instanceof import_chunk_6MEOP3DH.CollectionType,
224
+ filter: (node) => node.data instanceof import_chunk_WAJKBO3J.CollectionType,
240
225
  connector: ({ node }) => {
241
226
  const collection = node.data;
242
227
  const space = (0, import_echo.getSpace)(collection);
243
228
  if (!space) {
244
229
  return;
245
230
  }
246
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
247
- return collection.objects.map((object) => object.target).filter(import_util.nonNullable).map((object) => (0, import_chunk_3QWZCN6L.createObjectNode)({
231
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
232
+ return collection.objects.map((object) => object.target).filter(import_util.isNonNullable).map((object) => (0, import_chunk_OVGKWJOC.createObjectNode)({
248
233
  object,
249
234
  space,
250
235
  resolve,
251
236
  navigable: state.navigableCollections
252
- })).filter(import_util.nonNullable);
237
+ })).filter(import_util.isNonNullable);
253
238
  },
254
239
  resolver: ({ id }) => {
255
240
  if (id.length !== import_echo.FQ_ID_LENGTH) {
@@ -268,7 +253,7 @@ var app_graph_builder_default = (context) => {
268
253
  if (spaceState !== import_echo.SpaceState.SPACE_READY) {
269
254
  return;
270
255
  }
271
- const [object] = (0, import_chunk_3QWZCN6L.memoizeQuery)(space, {
256
+ const [object] = (0, import_chunk_OVGKWJOC.memoizeQuery)(space, {
272
257
  id: objectId
273
258
  });
274
259
  if (!object) {
@@ -277,8 +262,8 @@ var app_graph_builder_default = (context) => {
277
262
  if ((0, import_live_object.isDeleted)(object)) {
278
263
  return false;
279
264
  } else {
280
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
281
- return (0, import_chunk_3QWZCN6L.createObjectNode)({
265
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
266
+ return (0, import_chunk_OVGKWJOC.createObjectNode)({
282
267
  object,
283
268
  space,
284
269
  resolve,
@@ -293,78 +278,14 @@ var app_graph_builder_default = (context) => {
293
278
  filter: (node) => (0, import_echo.isEchoObject)(node.data),
294
279
  actions: ({ node }) => {
295
280
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
296
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.State);
297
- return (0, import_chunk_3QWZCN6L.constructObjectActions)({
281
+ const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.State);
282
+ return (0, import_chunk_OVGKWJOC.constructObjectActions)({
298
283
  node,
299
284
  dispatch,
300
285
  navigable: state.navigableCollections
301
286
  });
302
287
  }
303
- }),
304
- // Create nodes for object settings.
305
- (0, import_plugin_graph.createExtension)({
306
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings-for-subject`,
307
- resolver: ({ id }) => {
308
- if (!id.endsWith("~settings")) {
309
- return;
310
- }
311
- const type = "orphan-settings-for-subject";
312
- const icon = "ph--gear--regular";
313
- const [subjectId] = id.split("~");
314
- const { spaceId, objectId } = (0, import_echo.parseId)(subjectId);
315
- const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
316
- const spaces = (0, import_plugin_graph.toSignal)((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
317
- const space = spaces?.find((space2) => space2.id === spaceId && space2.state.get() === import_echo.SpaceState.SPACE_READY);
318
- if (!objectId) {
319
- const label2 = space ? space.properties.name || [
320
- "unnamed space label",
321
- {
322
- ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
323
- }
324
- ] : [
325
- "unnamed object settings label",
326
- {
327
- ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
328
- }
329
- ];
330
- return {
331
- id,
332
- type,
333
- data: null,
334
- properties: {
335
- icon,
336
- label: label2,
337
- showResolvedThreads: false,
338
- object: null,
339
- space
340
- }
341
- };
342
- }
343
- const [object] = (0, import_chunk_3QWZCN6L.memoizeQuery)(space, {
344
- id: objectId
345
- });
346
- if (!object || !subjectId) {
347
- return;
348
- }
349
- const meta = resolve((0, import_live_object.getTypename)(object) ?? "");
350
- const label = meta.label?.(object) || object.name || meta.placeholder || [
351
- "unnamed object settings label",
352
- {
353
- ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
354
- }
355
- ];
356
- return {
357
- id,
358
- type,
359
- data: null,
360
- properties: {
361
- icon,
362
- label,
363
- object
364
- }
365
- };
366
- }
367
288
  })
368
289
  ]);
369
290
  };
370
- //# sourceMappingURL=app-graph-builder-ZOPG4MOS.cjs.map
291
+ //# sourceMappingURL=app-graph-builder-ZIUBXRPA.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';\nimport {\n Expando,\n Filter,\n FQ_ID_LENGTH,\n getSpace,\n isEchoObject,\n isSpace,\n OBJECT_ID_LENGTH,\n type ReactiveEchoObject,\n SPACE_ID_LENGTH,\n SpaceState,\n type Space,\n} from '@dxos/client/echo';\nimport { isDeleted } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, toSignal, type Node, type InvokeParams } from '@dxos/plugin-graph';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n memoizeQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginsContext) => {\n const resolve = (typename: string) =>\n context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph._sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SpaceAction.AddSpace._tag,\n data: async (params: InvokeParams) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.AddSpace));\n },\n properties: {\n label: ['add space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.addSpace',\n disposition: 'item',\n position: 'fallback',\n },\n },\n ],\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [spacesNode],\n resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n filter: (node): node is Node<null> => node.id === SPACES,\n connector: () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<SpaceSettingsProps>(SPACE_PLUGIN)?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n const [spacesOrder] = memoizeQuery(client.spaces.default, Filter.schema(Expando, { key: SHARED }));\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) => (settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE))\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n } catch {}\n },\n resolver: ({ id }) => {\n if (id.length !== SPACE_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const spaces = toSignal(\n (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.get(),\n );\n\n const isReady = toSignal(\n (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n () => client.spaces.isReady.get(),\n );\n\n if (!spaces || !isReady) {\n return;\n }\n\n const space = spaces.find((space) => space.id === id);\n if (!space) {\n return;\n }\n\n if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n return false;\n } else if (space.state.get() !== SpaceState.SPACE_READY) {\n return undefined;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n });\n }\n },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n actions: ({ node }) => {\n const space = node.data;\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructSpaceActions({\n space,\n dispatch,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n },\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n connector: ({ node }) => {\n const space = node.data;\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const collection = space.properties[CollectionType.typename]?.target as CollectionType | undefined;\n if (!collection) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n filter: (node): node is Node<CollectionType> => node.data instanceof CollectionType,\n connector: ({ node }) => {\n const collection = node.data;\n const space = getSpace(collection);\n if (!space) {\n return;\n }\n\n const state = context.requestCapability(SpaceCapabilities.State);\n\n return collection.objects\n .map((object) => object.target)\n .filter(isNonNullable)\n .map((object) => createObjectNode({ object, space, resolve, navigable: state.navigableCollections }))\n .filter(isNonNullable);\n },\n resolver: ({ id }) => {\n if (id.length !== FQ_ID_LENGTH) {\n return;\n }\n\n const [spaceId, objectId] = id.split(':');\n if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n return;\n }\n\n const client = context.requestCapability(ClientCapabilities.Client);\n const space = client.spaces.get().find((space) => space.id === spaceId);\n if (!space) {\n return;\n }\n\n const spaceState = toSignal(\n (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n () => space.state.get(),\n space.id,\n );\n if (spaceState !== SpaceState.SPACE_READY) {\n return;\n }\n\n const [object] = memoizeQuery(space, { id: objectId });\n if (!object) {\n return;\n }\n\n if (isDeleted(object)) {\n return false;\n } else {\n const state = context.requestCapability(SpaceCapabilities.State);\n return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n }\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n filter: (node): node is Node<ReactiveEchoObject<any>> => isEchoObject(node.data),\n actions: ({ node }) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const state = context.requestCapability(SpaceCapabilities.State);\n return constructObjectActions({ node, dispatch, navigable: state.navigableCollections });\n },\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["context", "resolve", "typename", "requestCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "requestCapability", "AppGraph", "client", "ClientCapabilities", "Client", "_sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "filter", "node", "actions", "SpaceAction", "AddSpace", "_tag", "data", "params", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "connector", "resolver", "undefined", "toSignal", "onChange", "subscribe", "unsubscribe", "get", "isReady", "state", "SpaceCapabilities", "State", "settings", "SettingsStore", "getStore", "value", "memoizeQuery", "orderMap", "Map", "index", "space", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "length", "SPACE_ID_LENGTH", "SPACE_READY", "isSpace", "constructSpaceActions", "migrating", "sdkMigrationRunning", "spaceState", "collection", "CollectionType", "target", "object", "isNonNullable", "createObjectNode", "getSpace", "FQ_ID_LENGTH", "spaceId", "objectId", "split", "OBJECT_ID_LENGTH", "isDeleted", "isEchoObject", "constructObjectActions"]
7
+ }