@dxos/plugin-space 0.8.4-main.c1de068 → 0.8.4-main.e098934

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 (218) hide show
  1. package/dist/lib/browser/{ObjectDetailsPanel-YPTDQKMG.mjs → ObjectDetailsPanel-J7KGPJJK.mjs} +7 -5
  2. package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs.map +7 -0
  3. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
  4. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
  5. package/dist/lib/browser/{app-graph-builder-7CZZJS3S.mjs → app-graph-builder-AFC6PNAB.mjs} +57 -19
  6. package/dist/lib/browser/app-graph-builder-AFC6PNAB.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-Q7QG4EKW.mjs} +4 -4
  8. package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-6GRF7NEF.mjs} +100 -104
  9. package/dist/lib/browser/chunk-6GRF7NEF.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-JS3MMC42.mjs → chunk-CBYL62HG.mjs} +2 -2
  11. package/dist/lib/{node-esm/chunk-5HHYE264.mjs.map → browser/chunk-CBYL62HG.mjs.map} +3 -3
  12. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-ELJDGQTO.mjs} +3 -3
  13. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs.map → chunk-ELJDGQTO.mjs.map} +3 -3
  14. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-S33AYKSS.mjs} +68 -16
  15. package/dist/lib/browser/chunk-S33AYKSS.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-CEFHNVU7.mjs → chunk-TUQZO5P4.mjs} +1 -1
  17. package/dist/lib/browser/{chunk-CEFHNVU7.mjs.map → chunk-TUQZO5P4.mjs.map} +2 -2
  18. package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-URST7EEN.mjs} +10 -4
  19. package/dist/lib/{node-esm/chunk-JH6F4C3I.mjs.map → browser/chunk-URST7EEN.mjs.map} +3 -3
  20. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-WZYRDFW7.mjs} +9 -8
  21. package/dist/lib/browser/chunk-WZYRDFW7.mjs.map +7 -0
  22. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-T6ZNVE7S.mjs} +2 -2
  23. package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-T6ZNVE7S.mjs.map} +3 -3
  24. package/dist/lib/browser/index.mjs +14 -32
  25. package/dist/lib/browser/index.mjs.map +3 -3
  26. package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-CO262Q44.mjs} +33 -28
  27. package/dist/lib/browser/intent-resolver-CO262Q44.mjs.map +7 -0
  28. package/dist/lib/browser/meta.json +1 -1
  29. package/dist/lib/browser/{react-root-N2J7TDRX.mjs → react-root-K4IVLFYZ.mjs} +6 -6
  30. package/dist/lib/browser/{react-root-N2J7TDRX.mjs.map → react-root-K4IVLFYZ.mjs.map} +2 -2
  31. package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-TPUOK2LC.mjs} +26 -15
  32. package/dist/lib/browser/react-surface-TPUOK2LC.mjs.map +7 -0
  33. package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-YDPFZELA.mjs} +2 -2
  34. package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +7 -0
  35. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-ZYH2JWNI.mjs} +2 -2
  36. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-3I5LISH4.mjs} +14 -12
  37. package/dist/lib/browser/spaces-ready-3I5LISH4.mjs.map +7 -0
  38. package/dist/lib/browser/{state-QYZAB45H.mjs → state-2RGW7FQG.mjs} +2 -2
  39. package/dist/lib/{node-esm/state-ZVEHQ4BJ.mjs.map → browser/state-2RGW7FQG.mjs.map} +2 -2
  40. package/dist/lib/browser/types/index.mjs +1 -1
  41. package/dist/lib/node-esm/{ObjectDetailsPanel-QKZEDSZK.mjs → ObjectDetailsPanel-7ADOXZ5W.mjs} +7 -5
  42. package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs.map +7 -0
  43. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
  44. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-builder-KGIGWC72.mjs → app-graph-builder-OW2EBYRI.mjs} +57 -19
  46. package/dist/lib/node-esm/app-graph-builder-OW2EBYRI.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-6PGC5WR5.mjs} +4 -4
  48. package/dist/lib/node-esm/{chunk-5HHYE264.mjs → chunk-FJZNSJC4.mjs} +2 -2
  49. package/dist/lib/{browser/chunk-JS3MMC42.mjs.map → node-esm/chunk-FJZNSJC4.mjs.map} +3 -3
  50. package/dist/lib/node-esm/{chunk-5T3ZH23B.mjs → chunk-HC677WUJ.mjs} +1 -1
  51. package/dist/lib/node-esm/{chunk-5T3ZH23B.mjs.map → chunk-HC677WUJ.mjs.map} +2 -2
  52. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-LGNPMOXU.mjs} +9 -8
  53. package/dist/lib/node-esm/chunk-LGNPMOXU.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-NMCD2PSG.mjs} +100 -104
  55. package/dist/lib/node-esm/chunk-NMCD2PSG.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-Q6AAQLQG.mjs} +3 -3
  57. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs.map → chunk-Q6AAQLQG.mjs.map} +3 -3
  58. package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-RXDT5LA5.mjs} +10 -4
  59. package/dist/lib/node-esm/chunk-RXDT5LA5.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-TEUN2E4F.mjs} +68 -16
  61. package/dist/lib/node-esm/chunk-TEUN2E4F.mjs.map +7 -0
  62. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-AL7NNCKH.mjs} +2 -2
  63. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-AL7NNCKH.mjs.map} +3 -3
  64. package/dist/lib/node-esm/index.mjs +14 -32
  65. package/dist/lib/node-esm/index.mjs.map +3 -3
  66. package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-EXPK4B76.mjs} +33 -28
  67. package/dist/lib/node-esm/intent-resolver-EXPK4B76.mjs.map +7 -0
  68. package/dist/lib/node-esm/meta.json +1 -1
  69. package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-4OQ7MPGW.mjs} +6 -6
  70. package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs.map → react-root-4OQ7MPGW.mjs.map} +2 -2
  71. package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-WXEXIDB7.mjs} +26 -15
  72. package/dist/lib/node-esm/react-surface-WXEXIDB7.mjs.map +7 -0
  73. package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-OYBCWKAS.mjs} +2 -2
  74. package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +7 -0
  75. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-2RYFMMTP.mjs} +2 -2
  76. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-JAP22P57.mjs} +14 -12
  77. package/dist/lib/node-esm/spaces-ready-JAP22P57.mjs.map +7 -0
  78. package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-7VBVBGNS.mjs} +2 -2
  79. package/dist/lib/node-esm/state-7VBVBGNS.mjs.map +7 -0
  80. package/dist/lib/node-esm/types/index.mjs +1 -1
  81. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  83. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  85. package/dist/types/src/capabilities/capabilities.d.ts +1 -1
  86. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  88. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/index.d.ts +11 -12
  90. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  92. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  94. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  96. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  98. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/settings.d.ts +1 -1
  100. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  101. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/state.d.ts +1 -1
  103. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  104. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  105. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  106. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -3
  107. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
  109. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  110. package/dist/types/src/components/MembersContainer.d.ts +3 -2
  111. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -4
  113. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -1
  115. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  116. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  117. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -1
  118. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  119. package/dist/types/src/components/RecordMain.d.ts +7 -0
  120. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  121. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  122. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  123. package/dist/types/src/components/SpacePresence.stories.d.ts +1411 -2
  124. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  126. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -3
  127. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  128. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  129. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -4
  130. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ViewEditor.d.ts +1 -1
  132. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  133. package/dist/types/src/components/index.d.ts +8 -2
  134. package/dist/types/src/components/index.d.ts.map +1 -1
  135. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  136. package/dist/types/src/translations.d.ts +1216 -26
  137. package/dist/types/src/translations.d.ts.map +1 -1
  138. package/dist/types/src/types/types.d.ts +25 -45
  139. package/dist/types/src/types/types.d.ts.map +1 -1
  140. package/dist/types/src/util.d.ts +6 -4
  141. package/dist/types/src/util.d.ts.map +1 -1
  142. package/dist/types/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +52 -49
  144. package/src/SpacePlugin.ts +6 -24
  145. package/src/capabilities/app-graph-builder.ts +83 -32
  146. package/src/capabilities/capabilities.ts +3 -2
  147. package/src/capabilities/identity-created.ts +1 -1
  148. package/src/capabilities/index.ts +0 -1
  149. package/src/capabilities/intent-resolver.ts +25 -13
  150. package/src/capabilities/react-root.tsx +2 -1
  151. package/src/capabilities/react-surface.tsx +27 -13
  152. package/src/capabilities/schema-defs.ts +3 -2
  153. package/src/capabilities/spaces-ready.ts +10 -7
  154. package/src/capabilities/state.ts +3 -2
  155. package/src/components/AwaitingObject.tsx +1 -1
  156. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +6 -5
  157. package/src/components/CreateDialog/CreateObjectDialog.tsx +18 -8
  158. package/src/components/CreateDialog/CreateObjectPanel.tsx +18 -7
  159. package/src/components/CreateDialog/CreateSpaceDialog.tsx +1 -1
  160. package/src/components/JoinDialog.tsx +1 -1
  161. package/src/components/MembersContainer.stories.tsx +33 -8
  162. package/src/components/MembersContainer.tsx +7 -8
  163. package/src/components/ObjectDetailsPanel.tsx +4 -2
  164. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -1
  165. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
  166. package/src/components/PopoverRenameObject.tsx +6 -12
  167. package/src/components/PopoverRenameSpace.tsx +1 -1
  168. package/src/components/RecordMain.tsx +43 -0
  169. package/src/components/SchemaContainer.tsx +2 -2
  170. package/src/components/SpacePluginSettings.tsx +6 -7
  171. package/src/components/SpacePresence.stories.tsx +7 -4
  172. package/src/components/SpacePresence.tsx +7 -7
  173. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +8 -5
  174. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +8 -8
  175. package/src/components/SyncStatus/SyncStatus.stories.tsx +5 -4
  176. package/src/components/SyncStatus/SyncStatus.tsx +3 -2
  177. package/src/components/ViewEditor.tsx +13 -18
  178. package/src/components/index.ts +1 -0
  179. package/src/events.ts +1 -1
  180. package/src/hooks/useActiveSpace.ts +2 -2
  181. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  182. package/src/translations.ts +8 -7
  183. package/src/types/types.ts +11 -7
  184. package/src/util.tsx +62 -13
  185. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  186. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  191. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  192. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  193. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  194. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  195. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  196. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  197. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  198. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  199. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  201. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  203. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  204. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  205. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  206. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  207. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  208. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  209. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  210. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  211. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  212. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  213. package/src/capabilities/schema-tool.test.ts +0 -44
  214. package/src/capabilities/schema-tools.ts +0 -125
  215. /package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs.map → app-graph-serializer-Q7QG4EKW.mjs.map} +0 -0
  216. /package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-ZYH2JWNI.mjs.map} +0 -0
  217. /package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs.map → app-graph-serializer-6PGC5WR5.mjs.map} +0 -0
  218. /package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-2RYFMMTP.mjs.map} +0 -0
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  SPACE_TYPE,
4
4
  SpaceAction
5
- } from "./chunk-JH6F4C3I.mjs";
5
+ } from "./chunk-RXDT5LA5.mjs";
6
6
  import {
7
7
  SPACE_PLUGIN
8
8
  } from "./chunk-HWNG4MEU.mjs";
@@ -10,15 +10,15 @@ import {
10
10
  // src/util.tsx
11
11
  import { Rx } from "@effect-rx/rx-react";
12
12
  import { pipe } from "effect";
13
- import { chain, createIntent, LayoutAction } from "@dxos/app-framework";
13
+ import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
14
14
  import { Obj, Ref, Type } from "@dxos/echo";
15
15
  import { EXPANDO_TYPENAME } from "@dxos/echo-schema";
16
16
  import { invariant } from "@dxos/invariant";
17
17
  import { Migrations } from "@dxos/migrations";
18
18
  import { ACTION_GROUP_TYPE, ACTION_TYPE, isGraphNode } from "@dxos/plugin-graph";
19
- import { fullyQualifiedId, getSpace, SpaceState, isSpace } from "@dxos/react-client/echo";
19
+ import { SpaceState, fullyQualifiedId, getSpace, isSpace } from "@dxos/react-client/echo";
20
20
  import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
21
- import { DataType } from "@dxos/schema";
21
+ import { DataType, typenameFromQuery } from "@dxos/schema";
22
22
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
23
23
  var SPACES = `${SPACE_PLUGIN}-spaces`;
24
24
  var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
@@ -84,8 +84,9 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
84
84
  };
85
85
  };
86
86
  var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
87
+ const typename = typenameFromQuery(collection.query);
87
88
  return {
88
- icon: collection.query.typename && resolve(collection.query.typename)?.icon,
89
+ icon: typename && resolve(typename)?.icon,
89
90
  acceptPersistenceClass: /* @__PURE__ */ new Set([
90
91
  "echo"
91
92
  ]),
@@ -94,7 +95,7 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
94
95
  ]),
95
96
  role: "branch",
96
97
  canDrop: (source) => {
97
- return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === collection.query.typename;
98
+ return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename;
98
99
  },
99
100
  onTransferStart: (child, index) => {
100
101
  },
@@ -317,9 +318,33 @@ var createStaticSchemaNode = ({ schema, space }) => {
317
318
  }
318
319
  };
319
320
  };
320
- var createStaticSchemaActions = ({ schema, space, deletable }) => {
321
+ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
321
322
  const getId = (id) => `${space.id}/${Type.getTypename(schema)}/${id}`;
322
323
  const actions = [
324
+ {
325
+ id: getId(SpaceAction.AddObject._tag),
326
+ type: ACTION_TYPE,
327
+ data: async () => {
328
+ await dispatch(createIntent(SpaceAction.OpenCreateObject, {
329
+ target: space,
330
+ views: true,
331
+ initialFormValues: {
332
+ typename: Type.getTypename(schema)
333
+ }
334
+ }));
335
+ },
336
+ properties: {
337
+ label: [
338
+ "add view to schema label",
339
+ {
340
+ ns: Type.getTypename(DataType.StoredSchema)
341
+ }
342
+ ],
343
+ icon: "ph--plus--regular",
344
+ disposition: "list-item-primary",
345
+ testId: "spacePlugin.addViewToSchema"
346
+ }
347
+ },
323
348
  {
324
349
  id: getId(SpaceAction.RenameObject._tag),
325
350
  type: ACTION_TYPE,
@@ -364,10 +389,10 @@ var createStaticSchemaActions = ({ schema, space, deletable }) => {
364
389
  ];
365
390
  return actions;
366
391
  };
367
- var createObjectNode = ({ space, object, droppable = true, navigable = false, resolve }) => {
392
+ var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, resolve }) => {
368
393
  const type = Obj.getTypename(object);
369
394
  if (!type) {
370
- return void 0;
395
+ return null;
371
396
  }
372
397
  const metadata = resolve(type);
373
398
  const partials = Obj.instanceOf(DataType.Collection, object) ? getCollectionGraphNodePartials({
@@ -382,7 +407,7 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
382
407
  view: object,
383
408
  resolve
384
409
  }) : metadata.graphProps;
385
- const label = Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
410
+ const label = object.name || Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
386
411
  metadata.label?.(object) || [
387
412
  "object name placeholder",
388
413
  {
@@ -402,6 +427,7 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
402
427
  properties: {
403
428
  label,
404
429
  icon: metadata.icon ?? "ph--placeholder--regular",
430
+ disposition,
405
431
  testId: "spacePlugin.object",
406
432
  persistenceClass: "echo",
407
433
  persistenceKey: space?.id,
@@ -416,7 +442,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
416
442
  const space = getSpace(object);
417
443
  invariant(space, "Space not found", {
418
444
  F: __dxlog_file,
419
- L: 492,
445
+ L: 518,
420
446
  S: void 0,
421
447
  A: [
422
448
  "space",
@@ -426,7 +452,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
426
452
  const typename = Obj.getTypename(object);
427
453
  invariant(typename, "Object has no typename", {
428
454
  F: __dxlog_file,
429
- L: 494,
455
+ L: 520,
430
456
  S: void 0,
431
457
  A: [
432
458
  "typename",
@@ -435,7 +461,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
435
461
  });
436
462
  const getId = (id) => `${id}/${fullyQualifiedId(object)}`;
437
463
  const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : void 0;
438
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename) : void 0;
464
+ const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === typenameFromQuery(queryCollection.query)) : void 0;
439
465
  const actions = [
440
466
  ...Obj.instanceOf(DataType.Collection, object) ? [
441
467
  {
@@ -459,6 +485,32 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
459
485
  }
460
486
  }
461
487
  ] : [],
488
+ ...Obj.instanceOf(DataType.StoredSchema, object) ? [
489
+ {
490
+ id: getId(SpaceAction.AddObject._tag),
491
+ type: ACTION_TYPE,
492
+ data: async () => {
493
+ await dispatch(createIntent(SpaceAction.OpenCreateObject, {
494
+ target: space,
495
+ views: true,
496
+ initialFormValues: {
497
+ typename: object.typename
498
+ }
499
+ }));
500
+ },
501
+ properties: {
502
+ label: [
503
+ "add view to schema label",
504
+ {
505
+ ns: Type.getTypename(DataType.StoredSchema)
506
+ }
507
+ ],
508
+ icon: "ph--plus--regular",
509
+ disposition: "list-item-primary",
510
+ testId: "spacePlugin.addViewToSchema"
511
+ }
512
+ }
513
+ ] : [],
462
514
  ...matchingObjectForm ? [
463
515
  {
464
516
  id: getId(SpaceAction.OpenCreateObject._tag),
@@ -467,7 +519,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
467
519
  if (matchingObjectForm.formSchema) {
468
520
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
469
521
  target: space,
470
- typename: queryCollection?.query.typename
522
+ typename: queryCollection ? typenameFromQuery(queryCollection.query) : void 0
471
523
  }));
472
524
  } else {
473
525
  await dispatch(pipe(matchingObjectForm.getIntent({}, {
@@ -615,7 +667,7 @@ var cloneObject = async (object, resolve, newSpace) => {
615
667
  const serializer = metadata.serializer;
616
668
  invariant(serializer, `No serializer for type: ${typename}`, {
617
669
  F: __dxlog_file,
618
- L: 665,
670
+ L: 714,
619
671
  S: void 0,
620
672
  A: [
621
673
  "serializer",
@@ -647,4 +699,4 @@ export {
647
699
  getNestedObjects,
648
700
  cloneObject
649
701
  };
650
- //# sourceMappingURL=chunk-4AOMYKDE.mjs.map
702
+ //# sourceMappingURL=chunk-TEUN2E4F.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 { Rx } from '@effect-rx/rx-react';\nimport { pipe } from 'effect';\n\nimport { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n type ReadableGraph,\n isGraphNode,\n} from '@dxos/plugin-graph';\nimport { type QueryResult, type Space, SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\nimport { type TreeData } from '@dxos/react-ui-list';\nimport { DataType, typenameFromQuery } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { type ObjectForm, SPACE_TYPE, SpaceAction } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\n/**\n * Convert a query result to an Rx value of the objects.\n */\nexport const rxFromQuery = <T extends AnyEchoObject>(query: QueryResult<T>): Rx.Rx<T[]> => {\n return Rx.make((get) => {\n const unsubscribe = query.subscribe((result) => {\n get.setSelf(result.objects);\n });\n\n get.addFinalizer(() => unsubscribe());\n return query.objects;\n });\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 collection,\n space,\n resolve,\n}: {\n collection: DataType.Collection;\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(Obj.isObject).map(Ref.make);\n },\n onTransferStart: (child: Node<Obj.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, Ref.make(child.data));\n } else {\n collection.objects.push(Ref.make(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<Obj.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<Obj.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, Ref.make(newObject));\n } else {\n collection.objects.push(Ref.make(newObject));\n }\n },\n };\n};\n\nconst getQueryCollectionNodePartials = ({\n collection,\n space,\n resolve,\n}: {\n collection: DataType.QueryCollection;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const typename = typenameFromQuery(collection.query);\n return {\n icon: typename && resolve(typename)?.icon,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n canDrop: (source: TreeData) => {\n return (\n isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename\n );\n },\n onTransferStart: (child: Node<Obj.Any>, index?: number) => {\n // No-op. Objects are moved into query collections by being removed from their original collection.\n },\n onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {\n // No-op. Objects are moved out of query collections by being added to another collection.\n },\n };\n};\n\nconst getSchemaGraphNodePartials = () => {\n return {\n role: 'branch',\n canDrop: () => false,\n };\n};\n\nconst getViewGraphNodePartials = ({\n view,\n resolve,\n}: {\n view: DataType.View;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const presentation = view.presentation.target;\n const typename = presentation ? Obj.getTypename(presentation) : undefined;\n const metadata = typename ? resolve(typename) : {};\n\n return {\n label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],\n icon: metadata.icon,\n canDrop: () => false,\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 =\n space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection)\n ? getCollectionGraphNodePartials({ collection, space, resolve })\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 canDrop: (source: TreeData) => {\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n return Obj.isObject(source.item.data) || isSpace(source.item.data);\n },\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/properties`,\n data: `${SPACE_PLUGIN}/properties`,\n properties: {\n label: ['space settings properties label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/members`,\n data: `${SPACE_PLUGIN}/members`,\n properties: {\n label: ['members panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/schema`,\n data: `${SPACE_PLUGIN}/schema`,\n properties: {\n label: ['space settings schema label', { ns: SPACE_PLUGIN }],\n icon: 'ph--shapes--regular',\n },\n },\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 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.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 }\n\n return actions;\n};\n\nexport const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {\n return {\n id: `${space.id}/${Type.getTypename(schema)}`,\n type: `${SPACE_PLUGIN}/static-schema`,\n data: schema,\n properties: {\n label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],\n icon: 'ph--database--regular',\n role: 'branch',\n canDrop: () => false,\n space,\n },\n };\n};\n\nexport const createStaticSchemaActions = ({\n schema,\n space,\n dispatch,\n deletable,\n}: {\n schema: Type.Obj.Any;\n space: Space;\n dispatch: PromiseIntentDispatcher;\n deletable: boolean;\n}) => {\n const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;\n\n const actions: NodeArg<ActionData>[] = [\n {\n id: getId(SpaceAction.AddObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n views: true,\n initialFormValues: { typename: Type.getTypename(schema) },\n }),\n );\n },\n properties: {\n label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n throw new Error('Not implemented');\n },\n properties: {\n label: ['rename object label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--pencil-simple-line--regular',\n disabled: true,\n disposition: 'list-item',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const index = space.properties.staticRecords.findIndex(\n (typename: string) => typename === Type.getTypename(schema),\n );\n if (index > -1) {\n space.properties.staticRecords.splice(index, 1);\n }\n },\n properties: {\n label: ['delete object label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n testId: 'spacePlugin.deleteObject',\n },\n },\n ];\n\n return actions;\n};\n\nexport const createObjectNode = ({\n space,\n object,\n disposition,\n droppable = true,\n navigable = false,\n resolve,\n}: {\n space: Space;\n object: Obj.Any;\n disposition?: string;\n droppable?: boolean;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = Obj.getTypename(object);\n if (!type) {\n return null;\n }\n\n const metadata = resolve(type);\n const partials = Obj.instanceOf(DataType.Collection, object)\n ? getCollectionGraphNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(DataType.QueryCollection, object)\n ? getQueryCollectionNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(DataType.StoredSchema, object)\n ? getSchemaGraphNodePartials()\n : Obj.instanceOf(DataType.View, object)\n ? getViewGraphNodePartials({ view: object, resolve })\n : metadata.graphProps;\n\n // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.\n // e.g., create new collection with no name and rename it.\n const label = (object as any).name ||\n Obj.getLabel(object) ||\n // TODO(wittjosiah): Remove metadata labels.\n metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n label,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n disposition,\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n canDrop: (source: TreeData) => {\n return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);\n },\n ...partials,\n },\n };\n};\n\nexport const constructObjectActions = ({\n object,\n graph,\n dispatch,\n objectForms,\n deletable = true,\n navigable = false,\n}: {\n object: Obj.Any;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n objectForms: ObjectForm<any>[];\n deletable?: boolean;\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const typename = Obj.getTypename(object);\n invariant(typename, 'Object has no typename');\n\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n\n const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : undefined;\n const matchingObjectForm = queryCollection\n ? objectForms.find((form) => Type.getTypename(form.objectSchema) === typenameFromQuery(queryCollection.query))\n : undefined;\n\n const actions: NodeArg<ActionData>[] = [\n ...(Obj.instanceOf(DataType.Collection, object)\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 ...(Obj.instanceOf(DataType.StoredSchema, object)\n ? [\n {\n id: getId(SpaceAction.AddObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n views: true,\n initialFormValues: { typename: object.typename },\n }),\n );\n },\n properties: {\n label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.addViewToSchema',\n },\n },\n ]\n : []),\n ...(matchingObjectForm\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (matchingObjectForm.formSchema) {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n typename: queryCollection ? typenameFromQuery(queryCollection.query) : undefined,\n }),\n );\n } else {\n await dispatch(\n pipe(\n matchingObjectForm.getIntent({}, { space }),\n chain(SpaceAction.AddObject, { target: space, hidden: true }),\n chain(LayoutAction.Open, { part: 'main' }),\n ),\n );\n }\n },\n properties: {\n label: ['create object in smart 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: ['rename object label', { ns: typename }],\n icon: 'ph--pencil-simple-line--regular',\n disposition: 'list-item',\n // TODO(wittjosiah): Not working.\n // keyBinding: {\n // macos: 'shift+F6',\n // },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const collection = graph\n .getConnections(fullyQualifiedId(object), 'inbound')\n .find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: ['delete object label', { ns: typename }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n // TODO(wittjosiah): This is a browser shortcut.\n // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable ||\n (!Obj.instanceOf(DataType.Collection, object) &&\n !Obj.instanceOf(DataType.QueryCollection, object) &&\n !Obj.instanceOf(DataType.StoredSchema, object))\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 disposition: 'list-item',\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 disposition: 'heading-list-item',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: Obj.Any,\n resolve: (typename: string) => Record<string, any>,\n): Promise<Obj.Any[]> => {\n const type = Obj.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: Obj.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: Type.Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Type.Expando> => {\n const schema = Obj.getSchema(object);\n const typename = schema ? (Type.getTypename(schema) ?? 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": ["Rx", "pipe", "LayoutAction", "chain", "createIntent", "Obj", "Ref", "Type", "EXPANDO_TYPENAME", "invariant", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "isGraphNode", "SpaceState", "fullyQualifiedId", "getSpace", "isSpace", "ATTENDABLE_PATH_SEPARATOR", "DataType", "typenameFromQuery", "SPACES", "SPACE_PLUGIN", "COMPOSER_SPACE_LOCK", "SHARED", "rxFromQuery", "query", "Rx", "make", "get", "unsubscribe", "subscribe", "result", "setSelf", "objects", "addFinalizer", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "SpaceState", "SPACE_READY", "properties", "name", "length", "id", "ns", "getCollectionGraphNodePartials", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "filter", "Obj", "isObject", "map", "Ref", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "db", "add", "getQueryCollectionNodePartials", "typename", "typenameFromQuery", "icon", "canDrop", "source", "isGraphNode", "item", "getTypename", "getSchemaGraphNodePartials", "getViewGraphNodePartials", "view", "presentation", "undefined", "metadata", "label", "default", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "navigable", "hasPendingMigration", "DataType", "Collection", "partials", "instanceOf", "type", "SPACE_TYPE", "cacheable", "description", "hue", "disabled", "testId", "isSpace", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "position", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "OpenCreateObject", "ACTION_TYPE", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createStaticSchemaNode", "schema", "Type", "createStaticSchemaActions", "deletable", "AddObject", "views", "initialFormValues", "StoredSchema", "RenameObject", "Error", "RemoveObjects", "staticRecords", "createObjectNode", "droppable", "QueryCollection", "View", "graphProps", "getLabel", "fullyQualifiedId", "persistenceClass", "persistenceKey", "constructObjectActions", "graph", "objectForms", "getSpace", "invariant", "queryCollection", "matchingObjectForm", "form", "objectSchema", "formSchema", "pipe", "getIntent", "chain", "hidden", "LayoutAction", "Open", "part", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "Expose", "subject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "getSchema", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/capabilities/identity-created.ts
4
- import { contributes, Capabilities } from "@dxos/app-framework";
4
+ import { Capabilities, contributes } from "@dxos/app-framework";
5
5
  import { Obj, Ref } from "@dxos/echo";
6
6
  import { Migrations } from "@dxos/migrations";
7
7
  import { ClientCapabilities } from "@dxos/plugin-client";
@@ -22,4 +22,4 @@ var identity_created_default = async (context) => {
22
22
  export {
23
23
  identity_created_default as default
24
24
  };
25
- //# sourceMappingURL=identity-created-IJQO6GCR.mjs.map
25
+ //# sourceMappingURL=identity-created-AL7NNCKH.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/identity-created.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DataType } from '@dxos/schema';\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(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[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, { objects: [] }));\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,aAAiCC,oBAAoB;AAC9D,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAEzB,IAAA,2BAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,SAASC,WAAWC,QAAQ,IAAIC,IAAIC,KAAKC,IAAID,KAAKJ,SAASC,YAAY;IAAEK,SAAS,CAAA;EAAG,CAAA,CAAA;AAC7G,MAAIC,WAAWC,iBAAiB;AAC9BX,iBAAaE,WAAWQ,WAAWC,eAAe,IAAID,WAAWE;EACnE;AAEA,SAAOC,YAAYC,aAAaC,MAAM,IAAA;AACxC;",
6
- "names": ["contributes", "Capabilities", "Obj", "Ref", "Migrations", "ClientCapabilities", "DataType", "context", "client", "getCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "DataType", "Collection", "typename", "Ref", "make", "Obj", "objects", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DataType } from '@dxos/schema';\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(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[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, { objects: [] }));\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,cAAkCC,mBAAmB;AAC9D,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAEzB,IAAA,2BAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,SAASC,WAAWC,QAAQ,IAAIC,IAAIC,KAAKC,IAAID,KAAKJ,SAASC,YAAY;IAAEK,SAAS,CAAA;EAAG,CAAA,CAAA;AAC7G,MAAIC,WAAWC,iBAAiB;AAC9BX,iBAAaE,WAAWQ,WAAWC,eAAe,IAAID,WAAWE;EACnE;AAEA,SAAOC,YAAYC,aAAaC,MAAM,IAAA;AACxC;",
6
+ "names": ["Capabilities", "contributes", "Obj", "Ref", "Migrations", "ClientCapabilities", "DataType", "context", "client", "getCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "DataType", "Collection", "typename", "Ref", "make", "Obj", "objects", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
7
7
  }
@@ -1,10 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- translations
4
- } from "./chunk-P442DOQ3.mjs";
5
2
  import {
6
3
  SpaceEvents
7
- } from "./chunk-5HHYE264.mjs";
4
+ } from "./chunk-FJZNSJC4.mjs";
8
5
  import {
9
6
  AppGraphBuilder,
10
7
  AppGraphSerializer,
@@ -32,9 +29,9 @@ import {
32
29
  PopoverRenameSpace,
33
30
  ReactRoot,
34
31
  ReactSurface,
32
+ RecordMain,
35
33
  SchemaContainer,
36
34
  SchemaDefs,
37
- SchemaTools,
38
35
  SmallPresence,
39
36
  SmallPresenceLive,
40
37
  SpacePluginSettings,
@@ -47,16 +44,19 @@ import {
47
44
  SyncStatusIndicator,
48
45
  ViewEditor,
49
46
  useQuerySpaceSchemas
50
- } from "./chunk-6X5DLJM5.mjs";
47
+ } from "./chunk-NMCD2PSG.mjs";
51
48
  import {
52
49
  getActiveSpace,
53
50
  useActiveSpace,
54
51
  useInputSurfaceLookup,
55
52
  usePath
56
- } from "./chunk-SSLBYZEY.mjs";
53
+ } from "./chunk-Q6AAQLQG.mjs";
57
54
  import {
58
55
  SpaceCapabilities
59
- } from "./chunk-5T3ZH23B.mjs";
56
+ } from "./chunk-HC677WUJ.mjs";
57
+ import {
58
+ translations
59
+ } from "./chunk-LGNPMOXU.mjs";
60
60
  import {
61
61
  COMPOSER_SPACE_LOCK,
62
62
  SHARED,
@@ -71,12 +71,12 @@ import {
71
71
  getNestedObjects,
72
72
  getSpaceDisplayName,
73
73
  rxFromQuery
74
- } from "./chunk-4AOMYKDE.mjs";
74
+ } from "./chunk-TEUN2E4F.mjs";
75
75
  import {
76
76
  CollectionAction,
77
77
  SpaceAction,
78
78
  defineObjectForm
79
- } from "./chunk-JH6F4C3I.mjs";
79
+ } from "./chunk-RXDT5LA5.mjs";
80
80
  import {
81
81
  SPACE_PLUGIN,
82
82
  meta
@@ -88,7 +88,7 @@ import { Capabilities, Events, allOf, contributes, createIntent, defineModule, d
88
88
  import { Ref, Type } from "@dxos/echo";
89
89
  import { AttentionEvents } from "@dxos/plugin-attention";
90
90
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
91
- import { createDefaultSchema, DataType, ViewTypeV1, ViewTypeV1ToV2, ViewTypeV2 } from "@dxos/schema";
91
+ import { DataType, createDefaultSchema, typenameFromQuery } from "@dxos/schema";
92
92
  import { translations as shellTranslations } from "@dxos/shell/react";
93
93
  var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "spaceInvitationCode", observability = false } = {}) => {
94
94
  const createInvitationUrl = (invitationCode) => {
@@ -139,7 +139,7 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
139
139
  label: (object) => [
140
140
  "typename label",
141
141
  {
142
- ns: object.query.typename,
142
+ ns: typenameFromQuery(object.query),
143
143
  count: 2,
144
144
  defaultValue: "New smart collection"
145
145
  }
@@ -171,12 +171,6 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
171
171
  icon: "ph--user--regular"
172
172
  }
173
173
  }),
174
- contributes(Capabilities.Metadata, {
175
- id: Type.getTypename(DataType.Project),
176
- metadata: {
177
- icon: "ph--check-square-offset--regular"
178
- }
179
- }),
180
174
  contributes(Capabilities.Metadata, {
181
175
  id: Type.getTypename(DataType.Task),
182
176
  metadata: {
@@ -197,6 +191,7 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
197
191
  getIntent: (props) => createIntent(CollectionAction.Create, props)
198
192
  })),
199
193
  contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
194
+ // TODO(wittjosiah): Remove cast.
200
195
  objectSchema: DataType.QueryCollection,
201
196
  formSchema: CollectionAction.QueryCollectionForm,
202
197
  getIntent: (props) => createIntent(CollectionAction.CreateQueryCollection, props)
@@ -228,8 +223,6 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
228
223
  activatesOn: ClientEvents.SetupSchema,
229
224
  activate: () => contributes(ClientCapabilities.Schema, [
230
225
  DataType.View,
231
- ViewTypeV1,
232
- ViewTypeV2,
233
226
  DataType.Event,
234
227
  DataType.Organization,
235
228
  DataType.Person,
@@ -237,13 +230,6 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
237
230
  DataType.Task
238
231
  ])
239
232
  }),
240
- defineModule({
241
- id: `${meta.id}/module/migration`,
242
- activatesOn: ClientEvents.SetupMigration,
243
- activate: () => contributes(ClientCapabilities.Migration, [
244
- ViewTypeV1ToV2
245
- ])
246
- }),
247
233
  defineModule({
248
234
  id: `${meta.id}/module/whitelist-schema`,
249
235
  activatesOn: ClientEvents.SetupSchema,
@@ -303,11 +289,6 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
303
289
  id: `${meta.id}/module/spaces-ready`,
304
290
  activatesOn: allOf(Events.DispatcherReady, Events.LayoutReady, Events.AppGraphReady, AttentionEvents.AttentionReady, SpaceEvents.StateReady, ClientEvents.SpacesReady),
305
291
  activate: SpacesReady
306
- }),
307
- defineModule({
308
- id: `${meta.id}/module/tools`,
309
- activatesOn: Events.SetupArtifactDefinition,
310
- activate: SchemaTools
311
292
  })
312
293
  ]);
313
294
  };
@@ -333,6 +314,7 @@ export {
333
314
  PersistenceStatus,
334
315
  PopoverRenameObject,
335
316
  PopoverRenameSpace,
317
+ RecordMain,
336
318
  SHARED,
337
319
  SPACES,
338
320
  SPACE_PLUGIN,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/SpacePlugin.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport {\n Capabilities,\n Events,\n allOf,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n oneOf,\n} from '@dxos/app-framework';\nimport { Ref, Type } from '@dxos/echo';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { createDefaultSchema, DataType, ViewTypeV1, ViewTypeV1ToV2, ViewTypeV2 } from '@dxos/schema';\nimport { translations as shellTranslations } from '@dxos/shell/react';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n SchemaDefs,\n SchemaTools,\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, defineObjectForm, SpaceAction } 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, ...shellTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Collection),\n metadata: {\n icon: 'ph--cards-three--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: DataType.Collection) => await Ref.Array.loadAll(collection.objects),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.QueryCollection),\n metadata: {\n label: (object: DataType.QueryCollection) => [\n 'typename label',\n { ns: object.query.typename, count: 2, defaultValue: 'New smart collection' },\n ],\n icon: 'ph--funnel-simple--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.StoredSchema),\n metadata: {\n icon: 'ph--database--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Event),\n metadata: {\n icon: 'ph--calendar-dot--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Organization),\n metadata: {\n icon: 'ph--building-office--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Person),\n metadata: {\n icon: 'ph--user--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Project),\n metadata: {\n icon: 'ph--check-square-offset--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Task),\n metadata: {\n icon: 'ph--check-circle--regular',\n },\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: DataType.Collection,\n formSchema: Schema.Struct({ name: Schema.optional(Schema.String) }),\n getIntent: (props) => createIntent(CollectionAction.Create, props),\n }),\n ),\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: DataType.QueryCollection,\n formSchema: CollectionAction.QueryCollectionForm,\n getIntent: (props) => createIntent(CollectionAction.CreateQueryCollection, props),\n }),\n ),\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: DataType.StoredSchema,\n formSchema: SpaceAction.StoredSchemaForm,\n getIntent: (props, options) =>\n props.typename\n ? createIntent(SpaceAction.UseStaticSchema, { space: options.space, typename: props.typename })\n : createIntent(SpaceAction.AddSchema, {\n space: options.space,\n name: props.name,\n schema: createDefaultSchema(),\n }),\n }),\n ),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema-defs`,\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupSchema],\n activate: SchemaDefs,\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.Schema, [\n DataType.View,\n ViewTypeV1,\n ViewTypeV2,\n DataType.Event,\n DataType.Organization,\n DataType.Person,\n DataType.Project,\n DataType.Task,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/migration`,\n activatesOn: ClientEvents.SetupMigration,\n activate: () => contributes(ClientCapabilities.Migration, [ViewTypeV1ToV2]),\n }),\n defineModule({\n id: `${meta.id}/module/whitelist-schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.SchemaWhiteList, [\n DataType.Event,\n DataType.Organization,\n DataType.Person,\n DataType.Project,\n DataType.Task,\n ]),\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: SchemaTools,\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "Capabilities", "Events", "allOf", "contributes", "createIntent", "defineModule", "definePlugin", "oneOf", "Ref", "Type", "AttentionEvents", "ClientCapabilities", "ClientEvents", "createDefaultSchema", "DataType", "ViewTypeV1", "ViewTypeV1ToV2", "ViewTypeV2", "translations", "shellTranslations", "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", "shellTranslations", "SetupMetadata", "Metadata", "Type", "getTypename", "DataType", "Collection", "metadata", "icon", "loadReferences", "collection", "Ref", "Array", "loadAll", "objects", "QueryCollection", "label", "object", "ns", "query", "typename", "count", "defaultValue", "StoredSchema", "Event", "Organization", "Person", "Project", "Task", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "Schema", "Struct", "name", "optional", "String", "getIntent", "props", "createIntent", "CollectionAction", "Create", "QueryCollectionForm", "CreateQueryCollection", "SpaceAction", "StoredSchemaForm", "options", "UseStaticSchema", "space", "AddSchema", "schema", "createDefaultSchema", "ClientReady", "activatesBefore", "SchemaDefs", "ClientCapabilities", "View", "ViewTypeV1", "ViewTypeV2", "SetupMigration", "Migration", "ViewTypeV1ToV2", "SchemaWhiteList", "Startup", "ReactRoot", "SetupReactSurface", "SetupSettingsPanel", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady", "SetupArtifactDefinition", "SchemaTools"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport {\n Capabilities,\n Events,\n allOf,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n oneOf,\n} from '@dxos/app-framework';\nimport { Ref, Type } from '@dxos/echo';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DataType, createDefaultSchema, typenameFromQuery } from '@dxos/schema';\nimport { translations as shellTranslations } from '@dxos/shell/react';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n SchemaDefs,\n SpaceCapabilities,\n SpaceSettings,\n SpaceState,\n SpacesReady,\n} from './capabilities';\nimport { SpaceEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { CollectionAction, SpaceAction, 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, ...shellTranslations]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Collection),\n metadata: {\n icon: 'ph--cards-three--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: DataType.Collection) => await Ref.Array.loadAll(collection.objects),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.QueryCollection),\n metadata: {\n label: (object: DataType.QueryCollection) => [\n 'typename label',\n { ns: typenameFromQuery(object.query), count: 2, defaultValue: 'New smart collection' },\n ],\n icon: 'ph--funnel-simple--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.StoredSchema),\n metadata: {\n icon: 'ph--database--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Event),\n metadata: {\n icon: 'ph--calendar-dot--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Organization),\n metadata: {\n icon: 'ph--building-office--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Person),\n metadata: {\n icon: 'ph--user--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(DataType.Task),\n metadata: {\n icon: 'ph--check-circle--regular',\n },\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: DataType.Collection,\n formSchema: Schema.Struct({ name: Schema.optional(Schema.String) }),\n getIntent: (props) => createIntent(CollectionAction.Create, props),\n }),\n ),\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n // TODO(wittjosiah): Remove cast.\n objectSchema: DataType.QueryCollection as any,\n formSchema: CollectionAction.QueryCollectionForm,\n getIntent: (props) => createIntent(CollectionAction.CreateQueryCollection, props),\n }),\n ),\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: DataType.StoredSchema,\n formSchema: SpaceAction.StoredSchemaForm,\n getIntent: (props, options) =>\n props.typename\n ? createIntent(SpaceAction.UseStaticSchema, { space: options.space, typename: props.typename })\n : createIntent(SpaceAction.AddSchema, {\n space: options.space,\n name: props.name,\n schema: createDefaultSchema(),\n }),\n }),\n ),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema-defs`,\n activatesOn: ClientEvents.ClientReady,\n activatesBefore: [ClientEvents.SetupSchema],\n activate: SchemaDefs,\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.Schema, [\n DataType.View,\n DataType.Event,\n DataType.Organization,\n DataType.Person,\n DataType.Project,\n DataType.Task,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/whitelist-schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.SchemaWhiteList, [\n DataType.Event,\n DataType.Organization,\n DataType.Person,\n DataType.Project,\n DataType.Task,\n ]),\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 ]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Capabilities", "Events", "allOf", "contributes", "createIntent", "defineModule", "definePlugin", "oneOf", "Ref", "Type", "AttentionEvents", "ClientCapabilities", "ClientEvents", "DataType", "createDefaultSchema", "typenameFromQuery", "translations", "shellTranslations", "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", "shellTranslations", "SetupMetadata", "Metadata", "Type", "getTypename", "DataType", "Collection", "metadata", "icon", "loadReferences", "collection", "Ref", "Array", "loadAll", "objects", "QueryCollection", "label", "object", "ns", "typenameFromQuery", "query", "count", "defaultValue", "StoredSchema", "Event", "Organization", "Person", "Task", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "Schema", "Struct", "name", "optional", "String", "getIntent", "props", "createIntent", "CollectionAction", "Create", "QueryCollectionForm", "CreateQueryCollection", "SpaceAction", "StoredSchemaForm", "options", "typename", "UseStaticSchema", "space", "AddSchema", "schema", "createDefaultSchema", "ClientReady", "activatesBefore", "SchemaDefs", "ClientCapabilities", "View", "Project", "SchemaWhiteList", "Startup", "ReactRoot", "SetupReactSurface", "SetupSettingsPanel", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady"]
7
7
  }