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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/dist/lib/browser/{app-graph-builder-ZWNOWRAX.mjs → app-graph-builder-GMFCSOLG.mjs} +7 -61
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-UUJH7JRN.mjs → app-graph-serializer-DSF2U3A5.mjs} +8 -8
  4. package/dist/lib/browser/app-graph-serializer-DSF2U3A5.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-DIJ7LMCS.mjs → chunk-5BDV575R.mjs} +8 -20
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-O7WGQVLQ.mjs → chunk-AYW4IDRT.mjs} +4 -35
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-4226DMDP.mjs → chunk-JZXWPMLA.mjs} +666 -522
  10. package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-JS6ZV4GV.mjs → chunk-LO5UL6RU.mjs} +141 -60
  12. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  13. package/dist/lib/browser/{identity-created-NRVE4XLL.mjs → identity-created-JR7BNXFH.mjs} +4 -4
  14. package/dist/lib/browser/identity-created-JR7BNXFH.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +33 -12
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-NP55M7C7.mjs → intent-resolver-RKYILWWQ.mjs} +82 -92
  18. package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-XKAUZ3X2.mjs → react-root-6H7NX2M2.mjs} +4 -4
  21. package/dist/lib/browser/{react-surface-2DW2UDRX.mjs → react-surface-7AGLOVMK.mjs} +47 -121
  22. package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
  23. package/dist/lib/browser/{settings-MVT32NP6.mjs → settings-PJPTJUPE.mjs} +4 -4
  24. package/dist/lib/browser/settings-PJPTJUPE.mjs.map +7 -0
  25. package/dist/lib/browser/{spaces-ready-ERNSICUW.mjs → spaces-ready-BSSP7HHG.mjs} +5 -5
  26. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  27. package/dist/lib/browser/{state-CYV6QCTN.mjs → state-X7VLCC6E.mjs} +3 -1
  28. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  29. package/dist/lib/browser/types/index.mjs +1 -7
  30. package/dist/lib/node/{app-graph-builder-LLIV422L.cjs → app-graph-builder-DPY7AUZE.cjs} +30 -83
  31. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  32. package/dist/lib/node/{app-graph-serializer-M6Z2OPA4.cjs → app-graph-serializer-JELGJUAY.cjs} +20 -20
  33. package/dist/lib/node/app-graph-serializer-JELGJUAY.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-ZMQO74LX.cjs → chunk-3GKCNADA.cjs} +655 -513
  35. package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-UOCR4G2D.cjs → chunk-PU2EYH4E.cjs} +12 -24
  37. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-XADZLQAJ.cjs → chunk-TUZWEPGX.cjs} +167 -84
  39. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-EQ5BPSQ7.cjs → chunk-WDEIFDTX.cjs} +7 -41
  41. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  42. package/dist/lib/node/{identity-created-YDTRMOMX.cjs → identity-created-XU4HFV2T.cjs} +6 -6
  43. package/dist/lib/node/identity-created-XU4HFV2T.cjs.map +7 -0
  44. package/dist/lib/node/index.cjs +89 -68
  45. package/dist/lib/node/index.cjs.map +3 -3
  46. package/dist/lib/node/{intent-resolver-3J52ARFL.cjs → intent-resolver-VJ7YV74L.cjs} +131 -141
  47. package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
  48. package/dist/lib/node/meta.json +1 -1
  49. package/dist/lib/node/{react-root-XUE2J7HT.cjs → react-root-TEL5RW3N.cjs} +8 -8
  50. package/dist/lib/node/{react-surface-IWSTOZ2E.cjs → react-surface-2H3S5TY5.cjs} +74 -146
  51. package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
  52. package/dist/lib/node/{settings-JLV7YT6Q.cjs → settings-WVFP2UEP.cjs} +7 -7
  53. package/dist/lib/node/settings-WVFP2UEP.cjs.map +7 -0
  54. package/dist/lib/node/{spaces-ready-6EBR4SM4.cjs → spaces-ready-7DNZSUOG.cjs} +12 -12
  55. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  56. package/dist/lib/node/{state-JLN7TGRR.cjs → state-5KX6WBJH.cjs} +6 -4
  57. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  58. package/dist/lib/node/types/index.cjs +12 -18
  59. package/dist/lib/node/types/index.cjs.map +2 -2
  60. package/dist/lib/node-esm/{app-graph-builder-HSGLCS76.mjs → app-graph-builder-42IGWRPL.mjs} +7 -61
  61. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  62. package/dist/lib/node-esm/{app-graph-serializer-J3B4WSXU.mjs → app-graph-serializer-FXONFKOE.mjs} +8 -8
  63. package/dist/lib/node-esm/app-graph-serializer-FXONFKOE.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-OLISVDCF.mjs → chunk-3ZOUV4DF.mjs} +8 -20
  65. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-PQI4D4SH.mjs → chunk-BEWBZ4Q4.mjs} +666 -522
  67. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-FJPCLEKN.mjs → chunk-FC4UHDPL.mjs} +4 -35
  69. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  70. package/dist/lib/node-esm/{chunk-ABTVMAG5.mjs → chunk-ZGLK25WQ.mjs} +141 -60
  71. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  72. package/dist/lib/node-esm/{identity-created-EC6SVYB5.mjs → identity-created-WJKAS2PV.mjs} +4 -4
  73. package/dist/lib/node-esm/identity-created-WJKAS2PV.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +33 -12
  75. package/dist/lib/node-esm/index.mjs.map +3 -3
  76. package/dist/lib/node-esm/{intent-resolver-MXQIFIRC.mjs → intent-resolver-ZFNSA4CM.mjs} +82 -92
  77. package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
  78. package/dist/lib/node-esm/meta.json +1 -1
  79. package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs → react-root-PRBJMWLQ.mjs} +4 -4
  80. package/dist/lib/node-esm/{react-surface-JCHDAPGM.mjs → react-surface-RCZG2PNF.mjs} +47 -121
  81. package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
  82. package/dist/lib/node-esm/{settings-AILIMHTE.mjs → settings-FJZPC2TV.mjs} +4 -4
  83. package/dist/lib/node-esm/settings-FJZPC2TV.mjs.map +7 -0
  84. package/dist/lib/node-esm/{spaces-ready-5PXESKHX.mjs → spaces-ready-7X5PGB2V.mjs} +5 -5
  85. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  86. package/dist/lib/node-esm/{state-YZPY5T5A.mjs → state-Z6E2YTNC.mjs} +3 -1
  87. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  88. package/dist/lib/node-esm/types/index.mjs +1 -7
  89. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +0 -1
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  94. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  97. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  98. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  99. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  100. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  101. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  102. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  103. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  104. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  105. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  106. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  107. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  108. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -1
  109. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  110. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  111. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  112. package/dist/types/src/components/ShareSpaceButton.d.ts +9 -0
  113. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -0
  114. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +10 -0
  115. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -0
  116. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  117. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  118. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  119. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  120. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  121. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  122. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +2 -0
  123. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  124. package/dist/types/src/components/SpaceSettings/index.d.ts +1 -0
  125. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  126. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  127. package/dist/types/src/components/SyncStatus/Space.d.ts +13 -0
  128. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -0
  129. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +8 -1
  130. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  131. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +9 -0
  132. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +1 -0
  133. package/dist/types/src/components/SyncStatus/sync-state.d.ts +18 -0
  134. package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +1 -0
  135. package/dist/types/src/components/index.d.ts +2 -2
  136. package/dist/types/src/components/index.d.ts.map +1 -1
  137. package/dist/types/src/hooks/index.d.ts +0 -1
  138. package/dist/types/src/hooks/index.d.ts.map +1 -1
  139. package/dist/types/src/translations.d.ts +9 -45
  140. package/dist/types/src/translations.d.ts.map +1 -1
  141. package/dist/types/src/types/thread.d.ts +17 -241
  142. package/dist/types/src/types/thread.d.ts.map +1 -1
  143. package/dist/types/src/types/types.d.ts +14 -40
  144. package/dist/types/src/types/types.d.ts.map +1 -1
  145. package/dist/types/src/util.d.ts +5 -27
  146. package/dist/types/src/util.d.ts.map +1 -1
  147. package/package.json +43 -44
  148. package/src/SpacePlugin.tsx +13 -3
  149. package/src/capabilities/app-graph-builder.ts +5 -44
  150. package/src/capabilities/app-graph-serializer.ts +4 -4
  151. package/src/capabilities/identity-created.ts +2 -2
  152. package/src/capabilities/intent-resolver.ts +84 -87
  153. package/src/capabilities/react-surface.tsx +37 -106
  154. package/src/capabilities/settings.ts +2 -2
  155. package/src/capabilities/spaces-ready.ts +2 -2
  156. package/src/capabilities/state.ts +2 -0
  157. package/src/components/CollectionMain.tsx +5 -2
  158. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +2 -2
  159. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -3
  160. package/src/components/CreateDialog/CreateObjectPanel.tsx +25 -3
  161. package/src/components/CreateDialog/CreateSpaceDialog.tsx +0 -4
  162. package/src/components/MembersContainer.tsx +54 -80
  163. package/src/components/PopoverAddSpace.tsx +3 -9
  164. package/src/components/PopoverRenameObject.tsx +8 -14
  165. package/src/components/PopoverRenameSpace.tsx +0 -8
  166. package/src/components/ShareSpaceButton.stories.tsx +27 -0
  167. package/src/components/ShareSpaceButton.tsx +32 -0
  168. package/src/components/SpacePluginSettings.tsx +2 -27
  169. package/src/components/SpacePresence.tsx +25 -29
  170. package/src/components/SpaceSettings/{SpaceSettingsContainer.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  171. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  172. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +39 -157
  173. package/src/components/SpaceSettings/index.ts +1 -0
  174. package/src/components/SyncStatus/InlineSyncStatus.tsx +7 -5
  175. package/src/components/SyncStatus/Space.tsx +133 -0
  176. package/src/components/SyncStatus/SyncStatus.tsx +69 -6
  177. package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +89 -0
  178. package/src/components/SyncStatus/sync-state.ts +101 -0
  179. package/src/components/index.ts +2 -2
  180. package/src/hooks/index.ts +0 -1
  181. package/src/translations.ts +5 -18
  182. package/src/types/types.ts +8 -30
  183. package/src/util.tsx +103 -43
  184. package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +0 -7
  185. package/dist/lib/browser/app-graph-serializer-UUJH7JRN.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-4226DMDP.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-DIJ7LMCS.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +0 -7
  190. package/dist/lib/browser/identity-created-NRVE4XLL.mjs.map +0 -7
  191. package/dist/lib/browser/intent-resolver-NP55M7C7.mjs.map +0 -7
  192. package/dist/lib/browser/react-surface-2DW2UDRX.mjs.map +0 -7
  193. package/dist/lib/browser/settings-MVT32NP6.mjs.map +0 -7
  194. package/dist/lib/browser/spaces-ready-ERNSICUW.mjs.map +0 -7
  195. package/dist/lib/browser/state-CYV6QCTN.mjs.map +0 -7
  196. package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +0 -7
  197. package/dist/lib/node/app-graph-serializer-M6Z2OPA4.cjs.map +0 -7
  198. package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +0 -7
  199. package/dist/lib/node/chunk-UOCR4G2D.cjs.map +0 -7
  200. package/dist/lib/node/chunk-XADZLQAJ.cjs.map +0 -7
  201. package/dist/lib/node/chunk-ZMQO74LX.cjs.map +0 -7
  202. package/dist/lib/node/identity-created-YDTRMOMX.cjs.map +0 -7
  203. package/dist/lib/node/intent-resolver-3J52ARFL.cjs.map +0 -7
  204. package/dist/lib/node/react-surface-IWSTOZ2E.cjs.map +0 -7
  205. package/dist/lib/node/settings-JLV7YT6Q.cjs.map +0 -7
  206. package/dist/lib/node/spaces-ready-6EBR4SM4.cjs.map +0 -7
  207. package/dist/lib/node/state-JLN7TGRR.cjs.map +0 -7
  208. package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +0 -7
  209. package/dist/lib/node-esm/app-graph-serializer-J3B4WSXU.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-OLISVDCF.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-PQI4D4SH.mjs.map +0 -7
  214. package/dist/lib/node-esm/identity-created-EC6SVYB5.mjs.map +0 -7
  215. package/dist/lib/node-esm/intent-resolver-MXQIFIRC.mjs.map +0 -7
  216. package/dist/lib/node-esm/react-surface-JCHDAPGM.mjs.map +0 -7
  217. package/dist/lib/node-esm/settings-AILIMHTE.mjs.map +0 -7
  218. package/dist/lib/node-esm/spaces-ready-5PXESKHX.mjs.map +0 -7
  219. package/dist/lib/node-esm/state-YZPY5T5A.mjs.map +0 -7
  220. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  221. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  222. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  223. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  224. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  225. package/dist/types/src/components/SchemaContainer.d.ts +0 -13
  226. package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
  227. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +0 -7
  228. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +0 -1
  229. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +0 -14
  230. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +0 -1
  231. package/src/components/SchemaContainer.tsx +0 -59
  232. package/src/hooks/useInputSurfaceLookup.tsx +0 -31
  233. /package/dist/lib/browser/{react-root-XKAUZ3X2.mjs.map → react-root-6H7NX2M2.mjs.map} +0 -0
  234. /package/dist/lib/node/{react-root-XUE2J7HT.cjs.map → react-root-TEL5RW3N.cjs.map} +0 -0
  235. /package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs.map → react-root-PRBJMWLQ.mjs.map} +0 -0
  236. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
  237. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.d.ts +0 -0
  238. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  239. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.d.ts +0 -0
  240. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/index.d.ts +0 -0
  241. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +0 -0
  242. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.tsx +0 -0
  243. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
  244. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.tsx +0 -0
  245. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/index.ts +0 -0
@@ -1,8 +1,7 @@
1
1
  import {
2
2
  CollectionType,
3
- SPACE_TYPE,
4
3
  SpaceAction
5
- } from "./chunk-O7WGQVLQ.mjs";
4
+ } from "./chunk-AYW4IDRT.mjs";
6
5
  import {
7
6
  SPACE_PLUGIN
8
7
  } from "./chunk-PTKYMZWO.mjs";
@@ -10,15 +9,15 @@ import {
10
9
  // packages/plugins/plugin-space/src/util.tsx
11
10
  import { createIntent, LayoutAction } from "@dxos/app-framework";
12
11
  import { EXPANDO_TYPENAME, getTypeAnnotation, getTypename } from "@dxos/echo-schema";
13
- import { getSchema } from "@dxos/echo-schema";
14
12
  import { invariant } from "@dxos/invariant";
15
- import { isLiveObject, makeRef } from "@dxos/live-object";
13
+ import { getSchema, isReactiveObject, makeRef } from "@dxos/live-object";
16
14
  import { Migrations } from "@dxos/migrations";
15
+ import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
17
16
  import { ACTION_GROUP_TYPE, ACTION_TYPE, cleanup, getGraph, memoize } from "@dxos/plugin-graph";
18
17
  import { Filter, fullyQualifiedId, getSpace, isEchoObject, isSpace, SpaceState } from "@dxos/react-client/echo";
19
- import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
20
18
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
21
19
  var SPACES = `${SPACE_PLUGIN}-spaces`;
20
+ var SPACE_TYPE = "dxos.org/type/Space";
22
21
  var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
23
22
  var SHARED = "shared-spaces";
24
23
  var EMPTY_ARRAY = [];
@@ -118,9 +117,24 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
118
117
  },
119
118
  nodes: [
120
119
  {
121
- id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
120
+ id: `${space.id}${ATTENDABLE_PATH_SEPARATOR}members`,
121
+ type: `${SPACE_PLUGIN}/members`,
122
+ data: space,
123
+ properties: {
124
+ label: [
125
+ "members panel label",
126
+ {
127
+ ns: SPACE_PLUGIN
128
+ }
129
+ ],
130
+ icon: "ph--users--regular",
131
+ disposition: "hidden"
132
+ }
133
+ },
134
+ {
135
+ id: `${space.id}${ATTENDABLE_PATH_SEPARATOR}settings`,
122
136
  type: `${SPACE_PLUGIN}/settings`,
123
- data: null,
137
+ data: space,
124
138
  properties: {
125
139
  label: [
126
140
  "settings panel label",
@@ -128,55 +142,9 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
128
142
  ns: SPACE_PLUGIN
129
143
  }
130
144
  ],
131
- icon: "ph--faders--regular",
132
- disposition: "alternate-tree"
133
- },
134
- nodes: [
135
- {
136
- id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
137
- type: `${SPACE_PLUGIN}/properties`,
138
- data: `${SPACE_PLUGIN}/properties`,
139
- properties: {
140
- label: [
141
- "space settings properties label",
142
- {
143
- ns: SPACE_PLUGIN
144
- }
145
- ],
146
- icon: "ph--sliders--regular",
147
- position: "hoist"
148
- }
149
- },
150
- {
151
- id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
152
- type: `${SPACE_PLUGIN}/members`,
153
- data: `${SPACE_PLUGIN}/members`,
154
- properties: {
155
- label: [
156
- "members panel label",
157
- {
158
- ns: SPACE_PLUGIN
159
- }
160
- ],
161
- icon: "ph--users--regular",
162
- position: "hoist"
163
- }
164
- },
165
- {
166
- id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
167
- type: `${SPACE_PLUGIN}/schema`,
168
- data: `${SPACE_PLUGIN}/schema`,
169
- properties: {
170
- label: [
171
- "space settings schema label",
172
- {
173
- ns: SPACE_PLUGIN
174
- }
175
- ],
176
- icon: "ph--shapes--regular"
177
- }
178
- }
179
- ]
145
+ icon: "ph--gear--regular",
146
+ disposition: "hidden"
147
+ }
180
148
  }
181
149
  ]
182
150
  };
@@ -209,6 +177,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
209
177
  });
210
178
  }
211
179
  if (state === SpaceState.SPACE_READY && !hasPendingMigration) {
180
+ const locked = space.properties[COMPOSER_SPACE_LOCK];
212
181
  actions.push({
213
182
  id: getId(SpaceAction.OpenCreateObject._tag),
214
183
  type: ACTION_TYPE,
@@ -228,6 +197,58 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
228
197
  disposition: "item",
229
198
  testId: "spacePlugin.createObject"
230
199
  }
200
+ }, {
201
+ id: getId(SpaceAction.Share._tag),
202
+ type: ACTION_TYPE,
203
+ data: async () => {
204
+ if (locked) {
205
+ return;
206
+ }
207
+ await dispatch(createIntent(SpaceAction.Share, {
208
+ space
209
+ }));
210
+ },
211
+ properties: {
212
+ label: [
213
+ "share space label",
214
+ {
215
+ ns: SPACE_PLUGIN
216
+ }
217
+ ],
218
+ icon: "ph--users--regular",
219
+ disabled: locked,
220
+ disposition: "list-item-primary",
221
+ iconOnly: false,
222
+ variant: "default",
223
+ testId: "spacePlugin.shareSpace",
224
+ keyBinding: {
225
+ macos: "meta+.",
226
+ windows: "alt+."
227
+ }
228
+ }
229
+ }, {
230
+ id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),
231
+ type: ACTION_TYPE,
232
+ data: async () => {
233
+ if (locked) {
234
+ await dispatch(createIntent(SpaceAction.Unlock, {
235
+ space
236
+ }));
237
+ } else {
238
+ await dispatch(createIntent(SpaceAction.Lock, {
239
+ space
240
+ }));
241
+ }
242
+ },
243
+ properties: {
244
+ label: [
245
+ locked ? "unlock space label" : "lock space label",
246
+ {
247
+ ns: SPACE_PLUGIN
248
+ }
249
+ ],
250
+ icon: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
251
+ }
231
252
  }, {
232
253
  id: getId(SpaceAction.Rename._tag),
233
254
  type: ACTION_TYPE,
@@ -250,6 +271,65 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
250
271
  windows: "shift+F6"
251
272
  }
252
273
  }
274
+ }, {
275
+ id: getId(SpaceAction.OpenSettings._tag),
276
+ type: ACTION_TYPE,
277
+ data: async () => {
278
+ await dispatch(createIntent(SpaceAction.OpenSettings, {
279
+ space
280
+ }));
281
+ },
282
+ properties: {
283
+ label: [
284
+ "open space settings label",
285
+ {
286
+ ns: SPACE_PLUGIN
287
+ }
288
+ ],
289
+ icon: "ph--gear--regular"
290
+ }
291
+ });
292
+ }
293
+ if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {
294
+ actions.push({
295
+ id: getId(SpaceAction.Close._tag),
296
+ type: ACTION_TYPE,
297
+ data: async () => {
298
+ await dispatch(createIntent(SpaceAction.Close, {
299
+ space
300
+ }));
301
+ },
302
+ properties: {
303
+ label: [
304
+ "close space label",
305
+ {
306
+ ns: SPACE_PLUGIN
307
+ }
308
+ ],
309
+ icon: "ph--x--regular",
310
+ disabled: personal
311
+ }
312
+ });
313
+ }
314
+ if (state === SpaceState.SPACE_INACTIVE) {
315
+ actions.push({
316
+ id: getId(SpaceAction.Open._tag),
317
+ type: ACTION_TYPE,
318
+ data: async () => {
319
+ await dispatch(createIntent(SpaceAction.Open, {
320
+ space
321
+ }));
322
+ },
323
+ properties: {
324
+ label: [
325
+ "open space label",
326
+ {
327
+ ns: SPACE_PLUGIN
328
+ }
329
+ ],
330
+ icon: "ph--clock-counter-clockwise--regular",
331
+ disposition: "list-item-primary"
332
+ }
253
333
  });
254
334
  }
255
335
  return actions;
@@ -299,7 +379,7 @@ var constructObjectActions = ({ node, dispatch, navigable = false }) => {
299
379
  const space = getSpace(object);
300
380
  invariant(space, "Space not found", {
301
381
  F: __dxlog_file,
302
- L: 384,
382
+ L: 444,
303
383
  S: void 0,
304
384
  A: [
305
385
  "space",
@@ -428,7 +508,7 @@ var getActiveSpace = (graph, active) => {
428
508
  return;
429
509
  }
430
510
  const node = graph.findNode(active);
431
- if (!node || !isLiveObject(node.data)) {
511
+ if (!node || !isReactiveObject(node.data)) {
432
512
  return;
433
513
  }
434
514
  return getSpace(node.data);
@@ -457,7 +537,7 @@ var cloneObject = async (object, resolve, newSpace) => {
457
537
  const serializer = metadata.serializer;
458
538
  invariant(serializer, `No serializer for type: ${typename}`, {
459
539
  F: __dxlog_file,
460
- L: 528,
540
+ L: 588,
461
541
  S: void 0,
462
542
  A: [
463
543
  "serializer",
@@ -476,6 +556,7 @@ var cloneObject = async (object, resolve, newSpace) => {
476
556
 
477
557
  export {
478
558
  SPACES,
559
+ SPACE_TYPE,
479
560
  COMPOSER_SPACE_LOCK,
480
561
  SHARED,
481
562
  memoizeQuery,
@@ -488,4 +569,4 @@ export {
488
569
  getNestedObjects,
489
570
  cloneObject
490
571
  };
491
- //# sourceMappingURL=chunk-JS6ZV4GV.mjs.map
572
+ //# sourceMappingURL=chunk-LO5UL6RU.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { createIntent, type PromiseIntentDispatcher, LayoutAction } from '@dxos/app-framework';\nimport { EXPANDO_TYPENAME, getTypeAnnotation, getTypename, type Expando } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { getSchema, isReactiveObject, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n cleanup,\n getGraph,\n memoize,\n type ActionData,\n type Graph,\n type InvokeParams,\n type Node,\n type NodeArg,\n} from '@dxos/plugin-graph';\nimport {\n Filter,\n fullyQualifiedId,\n getSpace,\n isEchoObject,\n isSpace,\n SpaceState,\n type Echo,\n type FilterSource,\n type Query,\n type QueryOptions,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { CollectionType, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const SPACE_TYPE = 'dxos.org/type/Space';\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\nconst EMPTY_ARRAY: never[] = [];\n\n/**\n *\n * @param spaceOrEcho\n * @param filter\n * @param options\n * @returns\n */\nexport const memoizeQuery = <T extends ReactiveEchoObject<any>>(\n spaceOrEcho?: Space | Echo,\n filter?: FilterSource<T>,\n options?: QueryOptions,\n): T[] => {\n const key = JSON.stringify({\n space: isSpace(spaceOrEcho) ? spaceOrEcho.id : undefined,\n filter: Filter.from(filter).toProto(),\n });\n\n const query = memoize(\n () =>\n isSpace(spaceOrEcho)\n ? spaceOrEcho.db.query(filter, options)\n : (spaceOrEcho?.query(filter, options) as Query<T> | undefined),\n key,\n );\n const unsubscribe = memoize(() => query?.subscribe(), key);\n cleanup(() => unsubscribe?.());\n\n return query?.objects ?? EMPTY_ARRAY;\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n navigable,\n collection,\n space,\n resolve,\n}: {\n navigable: boolean;\n collection: CollectionType;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(isEchoObject).map(makeRef);\n },\n onTransferStart: (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(child.data));\n } else {\n collection.objects.push(makeRef(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<ReactiveEchoObject<any>>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<ReactiveEchoObject<any>>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, makeRef(newObject));\n } else {\n collection.objects.push(makeRef(newObject));\n }\n },\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[CollectionType.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && collection instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection, space, resolve, navigable })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n },\n nodes: [\n {\n id: `${space.id}${ATTENDABLE_PATH_SEPARATOR}members`,\n type: `${SPACE_PLUGIN}/members`,\n data: space,\n properties: {\n label: ['members panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disposition: 'hidden',\n },\n },\n {\n id: `${space.id}${ATTENDABLE_PATH_SEPARATOR}settings`,\n type: `${SPACE_PLUGIN}/settings`,\n data: space,\n properties: {\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n disposition: 'hidden',\n },\n },\n ],\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n const locked = space.properties[COMPOSER_SPACE_LOCK];\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Share._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n return;\n }\n await dispatch(createIntent(SpaceAction.Share, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n disabled: locked,\n disposition: 'list-item-primary',\n iconOnly: false,\n variant: 'default',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: locked ? getId(SpaceAction.Unlock._tag) : getId(SpaceAction.Lock._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (locked) {\n await dispatch(createIntent(SpaceAction.Unlock, { space }));\n } else {\n await dispatch(createIntent(SpaceAction.Lock, { space }));\n }\n },\n properties: {\n label: [locked ? 'unlock space label' : 'lock space label', { ns: SPACE_PLUGIN }],\n icon: locked ? 'ph--lock-simple-open--regular' : 'ph--lock-simple--regular',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n {\n id: getId(SpaceAction.OpenSettings._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--gear--regular',\n },\n },\n );\n }\n\n // TODO(wittjosiah): Consider moving close space into the space settings dialog.\n if (state !== SpaceState.SPACE_INACTIVE && !hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Close._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Close, { space }));\n },\n properties: {\n label: ['close space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--x--regular',\n disabled: personal,\n },\n });\n }\n\n if (state === SpaceState.SPACE_INACTIVE) {\n actions.push({\n id: getId(SpaceAction.Open._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Open, { space }));\n },\n properties: {\n label: ['open space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--clock-counter-clockwise--regular',\n disposition: 'list-item-primary',\n },\n });\n }\n\n return actions;\n};\n\nexport const createObjectNode = ({\n object,\n space,\n navigable = false,\n resolve,\n}: {\n object: ReactiveEchoObject<any>;\n space: Space;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\n const partials =\n object instanceof CollectionType\n ? getCollectionGraphNodePartials({ collection: object, space, resolve, navigable })\n : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n ...partials,\n label: metadata.label?.(object) ||\n object.name || ['object name placeholder', { ns: type, default: 'New object' }],\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n },\n };\n};\n\nexport const constructObjectActions = ({\n node,\n dispatch,\n navigable = false,\n}: {\n node: Node<ReactiveEchoObject<any>>;\n dispatch: PromiseIntentDispatcher;\n navigable?: boolean;\n}) => {\n const object = node.data;\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n const actions: NodeArg<ActionData>[] = [\n ...(object instanceof CollectionType\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params.caller }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--pencil-simple-line--regular',\n // TODO(wittjosiah): Doesn't work.\n // keyBinding: 'shift+F6',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const graph = getGraph(node);\n const collection = graph\n .nodes(node, { relation: 'inbound' })\n .find(({ data }) => data instanceof CollectionType)?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: [\n object instanceof CollectionType ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable || !(object instanceof CollectionType)\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated\n */\nexport const getActiveSpace = (graph: Graph, active?: string) => {\n if (!active) {\n return;\n }\n\n const node = graph.findNode(active);\n if (!node || !isReactiveObject(node.data)) {\n return;\n }\n\n return getSpace(node.data);\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: ReactiveEchoObject<any>,\n resolve: (typename: string) => Record<string, any>,\n): Promise<ReactiveEchoObject<any>[]> => {\n const type = getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: ReactiveEchoObject<any>[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Expando> => {\n const schema = getSchema(object);\n const typename = schema ? getTypeAnnotation(schema)?.typename ?? EXPANDO_TYPENAME : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["createIntent", "LayoutAction", "EXPANDO_TYPENAME", "getTypeAnnotation", "getTypename", "invariant", "getSchema", "isReactiveObject", "makeRef", "Migrations", "ATTENDABLE_PATH_SEPARATOR", "ACTION_GROUP_TYPE", "ACTION_TYPE", "cleanup", "getGraph", "memoize", "Filter", "fullyQualifiedId", "getSpace", "isEchoObject", "isSpace", "SpaceState", "SPACES", "SPACE_PLUGIN", "SPACE_TYPE", "COMPOSER_SPACE_LOCK", "SHARED", "EMPTY_ARRAY", "memoizeQuery", "spaceOrEcho", "filter", "options", "key", "JSON", "stringify", "space", "isSpace", "id", "undefined", "Filter", "from", "toProto", "query", "memoize", "db", "unsubscribe", "subscribe", "cleanup", "objects", "getSpaceDisplayName", "personal", "namesCache", "state", "get", "SpaceState", "SPACE_READY", "properties", "name", "length", "ns", "getCollectionGraphNodePartials", "navigable", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "isEchoObject", "map", "makeRef", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "add", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "hasPendingMigration", "CollectionType", "typename", "partials", "type", "cacheable", "label", "description", "hue", "icon", "disabled", "testId", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "locked", "OpenCreateObject", "ACTION_TYPE", "Share", "iconOnly", "variant", "keyBinding", "macos", "windows", "Unlock", "Lock", "Rename", "params", "caller", "OpenSettings", "SPACE_INACTIVE", "Close", "Open", "createObjectNode", "getTypename", "metadata", "Object", "keys", "graphProps", "fullyQualifiedId", "default", "persistenceClass", "persistenceKey", "constructObjectActions", "node", "getSpace", "invariant", "RenameObject", "RemoveObjects", "graph", "getGraph", "relation", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "LayoutAction", "Expose", "part", "subject", "getActiveSpace", "active", "findNode", "isReactiveObject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "getTypeAnnotation", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  CollectionType
3
- } from "./chunk-O7WGQVLQ.mjs";
3
+ } from "./chunk-AYW4IDRT.mjs";
4
4
  import "./chunk-PTKYMZWO.mjs";
5
5
 
6
6
  // packages/plugins/plugin-space/src/capabilities/identity-created.ts
7
7
  import { contributes, Capabilities } from "@dxos/app-framework";
8
- import { live, makeRef } from "@dxos/live-object";
8
+ import { create, makeRef } from "@dxos/live-object";
9
9
  import { Migrations } from "@dxos/migrations";
10
10
  import { ClientCapabilities } from "@dxos/plugin-client";
11
11
  var identity_created_default = async (context) => {
@@ -13,7 +13,7 @@ var identity_created_default = async (context) => {
13
13
  await client.spaces.waitUntilReady();
14
14
  const defaultSpace = client.spaces.default;
15
15
  await defaultSpace.waitUntilReady();
16
- defaultSpace.properties[CollectionType.typename] = makeRef(live(CollectionType, {
16
+ defaultSpace.properties[CollectionType.typename] = makeRef(create(CollectionType, {
17
17
  objects: [],
18
18
  views: {}
19
19
  }));
@@ -25,4 +25,4 @@ var identity_created_default = async (context) => {
25
25
  export {
26
26
  identity_created_default as default
27
27
  };
28
- //# sourceMappingURL=identity-created-NRVE4XLL.mjs.map
28
+ //# sourceMappingURL=identity-created-JR7BNXFH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/identity-created.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext, Capabilities } from '@dxos/app-framework';\nimport { create, makeRef } from '@dxos/live-object';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { CollectionType } from '../types';\n\nexport default async (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n await client.spaces.waitUntilReady();\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n // Create root collection structure.\n defaultSpace.properties[CollectionType.typename] = makeRef(create(CollectionType, { objects: [], views: {} }));\n if (Migrations.versionProperty) {\n defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,aAAkCC,oBAAoB;AAC/D,SAASC,QAAQC,eAAe;AAChC,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AAInC,IAAA,2BAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,eAAeC,QAAQ,IAAIC,QAAQC,OAAOH,gBAAgB;IAAEI,SAAS,CAAA;IAAIC,OAAO,CAAC;EAAE,CAAA,CAAA;AAC3G,MAAIC,WAAWC,iBAAiB;AAC9BV,iBAAaE,WAAWO,WAAWC,eAAe,IAAID,WAAWE;EACnE;AAEA,SAAOC,YAAYC,aAAaC,MAAM,IAAA;AACxC;",
6
+ "names": ["contributes", "Capabilities", "create", "makeRef", "Migrations", "ClientCapabilities", "context", "client", "requestCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "CollectionType", "typename", "makeRef", "create", "objects", "views", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  translations_default
3
- } from "./chunk-DIJ7LMCS.mjs";
3
+ } from "./chunk-5BDV575R.mjs";
4
4
  import {
5
5
  AppGraphBuilder,
6
6
  AppGraphSerializer,
@@ -29,21 +29,24 @@ import {
29
29
  PopoverRenameSpace,
30
30
  ReactRoot,
31
31
  ReactSurface,
32
+ SPACE_SETTINGS_DIALOG,
32
33
  Schema,
33
- SchemaContainer,
34
+ ShareSpaceButton,
35
+ ShareSpaceButtonImpl,
34
36
  SmallPresence,
35
37
  SmallPresenceLive,
36
38
  SpacePluginSettings,
37
39
  SpacePresence,
40
+ SpacePropertiesForm,
38
41
  SpaceSettings,
39
42
  SpaceSettingsContainer,
40
43
  SpaceState,
41
44
  SpacesReady,
42
45
  SyncStatus,
46
+ SyncStatusDetail,
43
47
  SyncStatusIndicator,
44
- Tools,
45
- useQuerySpaceSchemas
46
- } from "./chunk-4226DMDP.mjs";
48
+ Tools
49
+ } from "./chunk-JZXWPMLA.mjs";
47
50
  import {
48
51
  SpaceCapabilities,
49
52
  ThreadCapabilities
@@ -52,6 +55,7 @@ import {
52
55
  COMPOSER_SPACE_LOCK,
53
56
  SHARED,
54
57
  SPACES,
58
+ SPACE_TYPE,
55
59
  cloneObject,
56
60
  constructObjectActions,
57
61
  constructSpaceActions,
@@ -61,12 +65,12 @@ import {
61
65
  getNestedObjects,
62
66
  getSpaceDisplayName,
63
67
  memoizeQuery
64
- } from "./chunk-JS6ZV4GV.mjs";
68
+ } from "./chunk-LO5UL6RU.mjs";
65
69
  import {
66
70
  CollectionAction,
67
71
  CollectionType,
68
72
  defineObjectForm
69
- } from "./chunk-O7WGQVLQ.mjs";
73
+ } from "./chunk-AYW4IDRT.mjs";
70
74
  import {
71
75
  SPACE_PLUGIN,
72
76
  meta
@@ -92,7 +96,7 @@ import { RefArray } from "@dxos/live-object";
92
96
  import { AttentionEvents } from "@dxos/plugin-attention";
93
97
  import { ClientEvents } from "@dxos/plugin-client";
94
98
  import { osTranslations } from "@dxos/shell/react";
95
- var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "spaceInvitationCode", observability = false } = {}) => {
99
+ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "spaceInvitationCode", observability = true } = {}) => {
96
100
  const createInvitationUrl = (invitationCode) => {
97
101
  const baseUrl = new URL(invitationUrl);
98
102
  baseUrl.searchParams.set(invitationParam, invitationCode);
@@ -149,6 +153,20 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
149
153
  getIntent: (props) => createIntent(CollectionAction.Create, props)
150
154
  }))
151
155
  }),
156
+ defineModule({
157
+ id: `${meta.id}/module/space-settings`,
158
+ activatesOn: SpaceEvents.SetupSettingsPanel,
159
+ activate: () => contributes(SpaceCapabilities.SettingsSection, {
160
+ id: "properties",
161
+ label: [
162
+ "space settings properties label",
163
+ {
164
+ ns: SPACE_PLUGIN
165
+ }
166
+ ],
167
+ position: "hoist"
168
+ })
169
+ }),
152
170
  defineModule({
153
171
  id: `${meta.id}/module/schema`,
154
172
  activatesOn: ClientEvents.ClientReady,
@@ -178,7 +196,6 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
178
196
  activatesOn: Events2.SetupIntentResolver,
179
197
  activate: (context) => IntentResolver({
180
198
  context,
181
- createInvitationUrl,
182
199
  observability
183
200
  })
184
201
  }),
@@ -239,7 +256,10 @@ export {
239
256
  SHARED,
240
257
  SPACES,
241
258
  SPACE_PLUGIN,
242
- SchemaContainer,
259
+ SPACE_SETTINGS_DIALOG,
260
+ SPACE_TYPE,
261
+ ShareSpaceButton,
262
+ ShareSpaceButtonImpl,
243
263
  SmallPresence,
244
264
  SmallPresenceLive,
245
265
  SpaceCapabilities,
@@ -247,8 +267,10 @@ export {
247
267
  SpacePlugin,
248
268
  SpacePluginSettings,
249
269
  SpacePresence,
270
+ SpacePropertiesForm,
250
271
  SpaceSettingsContainer,
251
272
  SyncStatus,
273
+ SyncStatusDetail,
252
274
  SyncStatusIndicator,
253
275
  ThreadCapabilities,
254
276
  ThreadEvents,
@@ -261,7 +283,6 @@ export {
261
283
  getNestedObjects,
262
284
  getSpaceDisplayName,
263
285
  memoizeQuery,
264
- meta,
265
- useQuerySpaceSchemas
286
+ meta
266
287
  };
267
288
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/events.ts", "../../../src/SpacePlugin.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent, Events } from '@dxos/app-framework';\n\nimport { SPACE_PLUGIN } from './meta';\n\nexport namespace SpaceEvents {\n export const StateReady = Events.createStateEvent(`${SPACE_PLUGIN}/event/state-ready`);\n export const SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);\n export const DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);\n}\n\n// TODO(wittjosiah): Factor out.\nexport namespace ThreadEvents {\n export const SetupThread = defineEvent(`${SPACE_PLUGIN}/event/setup-thread`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n allOf,\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n oneOf,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { RefArray } from '@dxos/live-object';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { osTranslations } from '@dxos/shell/react';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n Schema,\n Tools,\n SpaceCapabilities,\n SpaceSettings,\n SpacesReady,\n SpaceState,\n} from './capabilities';\nimport { SpaceEvents } from './events';\nimport { meta } from './meta';\nimport translations from './translations';\nimport { CollectionAction, CollectionType, defineObjectForm } from './types';\n\nexport type SpacePluginOptions = {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Whether to send observability events.\n */\n observability?: boolean;\n};\n\nexport const SpacePlugin = ({\n invitationUrl = window.location.origin,\n invitationParam = 'spaceInvitationCode',\n observability = false,\n}: SpacePluginOptions = {}) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationUrl);\n baseUrl.searchParams.set(invitationParam, invitationCode);\n return baseUrl.toString();\n };\n\n return definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),\n activatesAfter: [SpaceEvents.StateReady],\n activate: SpaceState,\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: SpaceSettings,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, osTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: CollectionType.typename,\n metadata: {\n icon: 'ph--cards-three--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: CollectionType) =>\n await RefArray.loadAll([...collection.objects, ...Object.values(collection.views)]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: CollectionType,\n formSchema: S.Struct({ name: S.optional(S.String) }),\n getIntent: (props) => createIntent(CollectionAction.Create, props),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupSchema],\n activate: Schema,\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the settings dialog is loaded when surfaces activation is more granular.\n activatesBefore: [SpaceEvents.SetupSettingsPanel],\n activate: () => ReactSurface({ createInvitationUrl }),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ context, createInvitationUrl, observability }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n // TODO(wittjosiah): This could probably be deferred.\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/identity-created`,\n activatesOn: ClientEvents.IdentityCreated,\n activatesAfter: [SpaceEvents.DefaultSpaceReady],\n activate: IdentityCreated,\n }),\n defineModule({\n id: `${meta.id}/module/spaces-ready`,\n activatesOn: allOf(\n Events.DispatcherReady,\n Events.LayoutReady,\n Events.AppGraphReady,\n AttentionEvents.AttentionReady,\n SpaceEvents.StateReady,\n ClientEvents.SpacesReady,\n ),\n activate: SpacesReady,\n }),\n defineModule({\n id: `${meta.id}/module/tools`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: Tools,\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["defineEvent", "Events", "SpaceEvents", "StateReady", "Events", "createStateEvent", "SPACE_PLUGIN", "SetupSettingsPanel", "defineEvent", "DefaultSpaceReady", "ThreadEvents", "SetupThread", "allOf", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "oneOf", "S", "RefArray", "AttentionEvents", "ClientEvents", "osTranslations", "SpacePlugin", "invitationUrl", "window", "location", "origin", "invitationParam", "observability", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "definePlugin", "meta", "defineModule", "id", "activatesOn", "oneOf", "Events", "SetupSettings", "SetupAppGraph", "activatesAfter", "SpaceEvents", "StateReady", "activate", "SpaceState", "SpaceSettings", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "osTranslations", "SetupMetadata", "Metadata", "CollectionType", "typename", "metadata", "icon", "loadReferences", "collection", "RefArray", "loadAll", "objects", "Object", "values", "views", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "S", "Struct", "name", "optional", "String", "getIntent", "props", "createIntent", "CollectionAction", "Create", "ClientReady", "activatesBefore", "Schema", "Startup", "ReactRoot", "SetupReactSurface", "SetupSettingsPanel", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady", "SetupArtifactDefinition", "Tools"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent, Events } from '@dxos/app-framework';\n\nimport { SPACE_PLUGIN } from './meta';\n\nexport namespace SpaceEvents {\n export const StateReady = Events.createStateEvent(`${SPACE_PLUGIN}/event/state-ready`);\n export const SetupSettingsPanel = defineEvent(`${SPACE_PLUGIN}/event/setup-settings-panel`);\n export const DefaultSpaceReady = defineEvent(`${SPACE_PLUGIN}/event/default-space-ready`);\n}\n\n// TODO(wittjosiah): Factor out.\nexport namespace ThreadEvents {\n export const SetupThread = defineEvent(`${SPACE_PLUGIN}/event/setup-thread`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n allOf,\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n oneOf,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { RefArray } from '@dxos/live-object';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { osTranslations } from '@dxos/shell/react';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n Schema,\n Tools,\n SpaceCapabilities,\n SpaceSettings,\n SpacesReady,\n SpaceState,\n} from './capabilities';\nimport { SpaceEvents } from './events';\nimport { meta, SPACE_PLUGIN } from './meta';\nimport translations from './translations';\nimport { CollectionAction, CollectionType, defineObjectForm } from './types';\n\nexport type SpacePluginOptions = {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Whether to send observability events.\n */\n observability?: boolean;\n};\n\nexport const SpacePlugin = ({\n invitationUrl = window.location.origin,\n invitationParam = 'spaceInvitationCode',\n observability = true,\n}: SpacePluginOptions = {}) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationUrl);\n baseUrl.searchParams.set(invitationParam, invitationCode);\n return baseUrl.toString();\n };\n\n return definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/state`,\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),\n activatesAfter: [SpaceEvents.StateReady],\n activate: SpaceState,\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: SpaceSettings,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, [...translations, osTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () =>\n contributes(Capabilities.Metadata, {\n id: CollectionType.typename,\n metadata: {\n icon: 'ph--cards-three--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: CollectionType) =>\n await RefArray.loadAll([...collection.objects, ...Object.values(collection.views)]),\n },\n }),\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: CollectionType,\n formSchema: S.Struct({ name: S.optional(S.String) }),\n getIntent: (props) => createIntent(CollectionAction.Create, props),\n }),\n ),\n }),\n defineModule({\n id: `${meta.id}/module/space-settings`,\n activatesOn: SpaceEvents.SetupSettingsPanel,\n activate: () =>\n contributes(SpaceCapabilities.SettingsSection, {\n id: 'properties',\n label: ['space settings properties label', { ns: SPACE_PLUGIN }],\n position: 'hoist',\n }),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupSchema],\n activate: Schema,\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the settings dialog is loaded when surfaces activation is more granular.\n activatesBefore: [SpaceEvents.SetupSettingsPanel],\n activate: () => ReactSurface({ createInvitationUrl }),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ context, observability }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n // TODO(wittjosiah): This could probably be deferred.\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/identity-created`,\n activatesOn: ClientEvents.IdentityCreated,\n activatesAfter: [SpaceEvents.DefaultSpaceReady],\n activate: IdentityCreated,\n }),\n defineModule({\n id: `${meta.id}/module/spaces-ready`,\n activatesOn: allOf(\n Events.DispatcherReady,\n Events.LayoutReady,\n Events.AppGraphReady,\n AttentionEvents.AttentionReady,\n SpaceEvents.StateReady,\n ClientEvents.SpacesReady,\n ),\n activate: SpacesReady,\n }),\n defineModule({\n id: `${meta.id}/module/tools`,\n activatesOn: Events.SetupArtifactDefinition,\n activate: Tools,\n }),\n ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["defineEvent", "Events", "SpaceEvents", "StateReady", "Events", "createStateEvent", "SPACE_PLUGIN", "SetupSettingsPanel", "defineEvent", "DefaultSpaceReady", "ThreadEvents", "SetupThread", "allOf", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "oneOf", "S", "RefArray", "AttentionEvents", "ClientEvents", "osTranslations", "SpacePlugin", "invitationUrl", "window", "location", "origin", "invitationParam", "observability", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "definePlugin", "meta", "defineModule", "id", "activatesOn", "oneOf", "Events", "SetupSettings", "SetupAppGraph", "activatesAfter", "SpaceEvents", "StateReady", "activate", "SpaceState", "SpaceSettings", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "osTranslations", "SetupMetadata", "Metadata", "CollectionType", "typename", "metadata", "icon", "loadReferences", "collection", "RefArray", "loadAll", "objects", "Object", "values", "views", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "S", "Struct", "name", "optional", "String", "getIntent", "props", "createIntent", "CollectionAction", "Create", "SetupSettingsPanel", "SettingsSection", "label", "ns", "SPACE_PLUGIN", "position", "ClientReady", "activatesBefore", "Schema", "Startup", "ReactRoot", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady", "SetupArtifactDefinition", "Tools"]
7
7
  }