@dxos/plugin-space 0.8.3-main.7f5a14c → 0.8.3-staging.0fa589b

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 (206) hide show
  1. package/dist/lib/browser/{app-graph-builder-UNXUTH53.mjs → app-graph-builder-M2RH72VL.mjs} +43 -9
  2. package/dist/lib/browser/app-graph-builder-M2RH72VL.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-KPKPMC4M.mjs → app-graph-serializer-F7ISRRBV.mjs} +13 -13
  4. package/dist/lib/browser/app-graph-serializer-F7ISRRBV.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-TQPBDRXV.mjs → chunk-4ZKSFDXM.mjs} +29 -17
  6. package/dist/lib/browser/chunk-4ZKSFDXM.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-3LN4LJN6.mjs → chunk-BXNL6SDI.mjs} +2 -1
  8. package/dist/lib/browser/chunk-BXNL6SDI.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-CF4FBDGP.mjs → chunk-NFUKCRGE.mjs} +148 -134
  10. package/dist/lib/browser/chunk-NFUKCRGE.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-TW7O2EPP.mjs +284 -0
  12. package/dist/lib/browser/chunk-TW7O2EPP.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-RRJIDXPY.mjs → chunk-V24VASAJ.mjs} +100 -31
  14. package/dist/lib/browser/chunk-V24VASAJ.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-YMCZR6EZ.mjs +18 -0
  16. package/dist/lib/browser/chunk-YMCZR6EZ.mjs.map +7 -0
  17. package/dist/lib/browser/{identity-created-EM6GZDNF.mjs → identity-created-PI7TKANR.mjs} +5 -10
  18. package/dist/lib/browser/identity-created-PI7TKANR.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +61 -51
  20. package/dist/lib/browser/index.mjs.map +4 -4
  21. package/dist/lib/browser/{intent-resolver-K3ULKQ6V.mjs → intent-resolver-RWU6ZE4H.mjs} +56 -32
  22. package/dist/lib/browser/intent-resolver-RWU6ZE4H.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-root-ECO7G77L.mjs → react-root-QIKHSNT2.mjs} +5 -5
  25. package/dist/lib/browser/{react-surface-Y5AZBYA7.mjs → react-surface-W56UD53I.mjs} +74 -14
  26. package/dist/lib/browser/react-surface-W56UD53I.mjs.map +7 -0
  27. package/dist/lib/browser/{schema-defs-JMN74RNK.mjs → schema-defs-WREJNMIC.mjs} +2 -2
  28. package/dist/lib/browser/{settings-MU7O6JDD.mjs → settings-K54STC5A.mjs} +2 -2
  29. package/dist/lib/browser/{spaces-ready-NXZAWHGI.mjs → spaces-ready-3PDRDHPC.mjs} +7 -7
  30. package/dist/lib/browser/spaces-ready-3PDRDHPC.mjs.map +7 -0
  31. package/dist/lib/browser/{state-6HOSHLIN.mjs → state-HRZ4VRXU.mjs} +2 -2
  32. package/dist/lib/browser/types/index.mjs +1 -3
  33. package/dist/lib/node/{app-graph-builder-6QDQEYHS.cjs → app-graph-builder-6LK5HLLE.cjs} +73 -38
  34. package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs.map +7 -0
  35. package/dist/lib/node/{app-graph-serializer-6SWKHDE2.cjs → app-graph-serializer-HKHBNHA3.cjs} +23 -22
  36. package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs.map +7 -0
  37. package/dist/lib/node/chunk-3X4EA4XL.cjs +37 -0
  38. package/dist/lib/node/chunk-3X4EA4XL.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-SF3NU7EW.cjs → chunk-DOC5XEZ4.cjs} +32 -18
  40. package/dist/lib/node/chunk-DOC5XEZ4.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-QCANR24R.cjs → chunk-NCHF433F.cjs} +201 -186
  42. package/dist/lib/node/chunk-NCHF433F.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-7GQGM4ZF.cjs → chunk-NL5Y4EDX.cjs} +5 -4
  44. package/dist/lib/node/chunk-NL5Y4EDX.cjs.map +7 -0
  45. package/dist/lib/node/chunk-ULJZPATP.cjs +312 -0
  46. package/dist/lib/node/chunk-ULJZPATP.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-KDBPQ6L3.cjs → chunk-XHWVT7LW.cjs} +113 -43
  48. package/dist/lib/node/chunk-XHWVT7LW.cjs.map +7 -0
  49. package/dist/lib/node/{identity-created-KCJAOFZC.cjs → identity-created-FF4WZ2WY.cjs} +7 -9
  50. package/dist/lib/node/identity-created-FF4WZ2WY.cjs.map +7 -0
  51. package/dist/lib/node/index.cjs +129 -118
  52. package/dist/lib/node/index.cjs.map +4 -4
  53. package/dist/lib/node/{intent-resolver-XR4S7LME.cjs → intent-resolver-AV4CMM3Z.cjs} +91 -68
  54. package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs.map +7 -0
  55. package/dist/lib/node/meta.json +1 -1
  56. package/dist/lib/node/{react-root-Z2YM6JYC.cjs → react-root-RQUU3A45.cjs} +10 -10
  57. package/dist/lib/node/{react-surface-H6XNU6DS.cjs → react-surface-AZFJLE72.cjs} +104 -43
  58. package/dist/lib/node/react-surface-AZFJLE72.cjs.map +7 -0
  59. package/dist/lib/node/{schema-defs-XLFBG3XK.cjs → schema-defs-OB2X2HBH.cjs} +6 -6
  60. package/dist/lib/node/{settings-XRAT3YMN.cjs → settings-P2EQ7VKQ.cjs} +6 -6
  61. package/dist/lib/node/{spaces-ready-KKFEN2MM.cjs → spaces-ready-DXPOHYV7.cjs} +16 -16
  62. package/dist/lib/node/spaces-ready-DXPOHYV7.cjs.map +7 -0
  63. package/dist/lib/node/{state-ZT3MTZXB.cjs → state-M35DK75Z.cjs} +6 -6
  64. package/dist/lib/node/types/index.cjs +11 -13
  65. package/dist/lib/node/types/index.cjs.map +2 -2
  66. package/dist/lib/node-esm/{app-graph-builder-5EAV4CDH.mjs → app-graph-builder-BCHVZ4OM.mjs} +43 -9
  67. package/dist/lib/node-esm/app-graph-builder-BCHVZ4OM.mjs.map +7 -0
  68. package/dist/lib/node-esm/{app-graph-serializer-BRLVJW6I.mjs → app-graph-serializer-TXRGGNP2.mjs} +13 -13
  69. package/dist/lib/node-esm/app-graph-serializer-TXRGGNP2.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-3CP67AYY.mjs +19 -0
  71. package/dist/lib/node-esm/chunk-3CP67AYY.mjs.map +7 -0
  72. package/dist/lib/node-esm/{chunk-4X4Y63ND.mjs → chunk-BSLREHIX.mjs} +2 -1
  73. package/dist/lib/node-esm/chunk-BSLREHIX.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-D4QMPPS7.mjs +285 -0
  75. package/dist/lib/node-esm/chunk-D4QMPPS7.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-FTL5AMXF.mjs → chunk-HO7AIKQS.mjs} +100 -31
  77. package/dist/lib/node-esm/chunk-HO7AIKQS.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-55OOAFBS.mjs → chunk-JBQKU4K5.mjs} +29 -17
  79. package/dist/lib/node-esm/chunk-JBQKU4K5.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-AVONUBZO.mjs → chunk-LA6AVVH6.mjs} +148 -134
  81. package/dist/lib/node-esm/chunk-LA6AVVH6.mjs.map +7 -0
  82. package/dist/lib/node-esm/{identity-created-FOFH2WPI.mjs → identity-created-35CTAQWI.mjs} +5 -9
  83. package/dist/lib/node-esm/identity-created-35CTAQWI.mjs.map +7 -0
  84. package/dist/lib/node-esm/index.mjs +61 -51
  85. package/dist/lib/node-esm/index.mjs.map +4 -4
  86. package/dist/lib/node-esm/{intent-resolver-72KTB4S2.mjs → intent-resolver-JO6L2VXC.mjs} +56 -32
  87. package/dist/lib/node-esm/intent-resolver-JO6L2VXC.mjs.map +7 -0
  88. package/dist/lib/node-esm/meta.json +1 -1
  89. package/dist/lib/node-esm/{react-root-FU2I5U2M.mjs → react-root-YFGL3B4J.mjs} +5 -5
  90. package/dist/lib/node-esm/{react-surface-L4SMKRYF.mjs → react-surface-CVAPDLEZ.mjs} +74 -14
  91. package/dist/lib/node-esm/react-surface-CVAPDLEZ.mjs.map +7 -0
  92. package/dist/lib/node-esm/{schema-defs-QZJS6UXN.mjs → schema-defs-4MEJETVX.mjs} +2 -2
  93. package/dist/lib/node-esm/{settings-C7GQAEDU.mjs → settings-TD76LTQS.mjs} +2 -2
  94. package/dist/lib/node-esm/{spaces-ready-WTISHKEH.mjs → spaces-ready-FJMGPAVV.mjs} +7 -7
  95. package/dist/lib/node-esm/spaces-ready-FJMGPAVV.mjs.map +7 -0
  96. package/dist/lib/node-esm/{state-4ATRHSKA.mjs → state-XQNDCN37.mjs} +2 -2
  97. package/dist/lib/node-esm/types/index.mjs +1 -3
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/capabilities.d.ts +8 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  106. package/dist/types/src/components/CollectionMain.d.ts +2 -2
  107. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  108. package/dist/types/src/components/CollectionSection.d.ts +2 -2
  109. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  110. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +8 -7
  114. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  115. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  116. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  117. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  118. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  119. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  120. package/dist/types/src/events.d.ts +1 -3
  121. package/dist/types/src/events.d.ts.map +1 -1
  122. package/dist/types/src/translations.d.ts +275 -2
  123. package/dist/types/src/translations.d.ts.map +1 -1
  124. package/dist/types/src/types/index.d.ts +0 -1
  125. package/dist/types/src/types/index.d.ts.map +1 -1
  126. package/dist/types/src/types/types.d.ts +80 -12
  127. package/dist/types/src/types/types.d.ts.map +1 -1
  128. package/dist/types/src/util.d.ts +8 -3
  129. package/dist/types/src/util.d.ts.map +1 -1
  130. package/package.json +45 -45
  131. package/src/{SpacePlugin.tsx → SpacePlugin.ts} +28 -8
  132. package/src/capabilities/app-graph-builder.ts +67 -4
  133. package/src/capabilities/app-graph-serializer.ts +11 -8
  134. package/src/capabilities/capabilities.ts +6 -1
  135. package/src/capabilities/identity-created.ts +5 -4
  136. package/src/capabilities/intent-resolver.ts +38 -18
  137. package/src/capabilities/react-surface.tsx +98 -10
  138. package/src/capabilities/spaces-ready.ts +3 -3
  139. package/src/components/CollectionMain.tsx +3 -3
  140. package/src/components/CollectionSection.tsx +2 -2
  141. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +6 -6
  142. package/src/components/CreateDialog/CreateObjectDialog.tsx +25 -12
  143. package/src/components/CreateDialog/CreateObjectPanel.tsx +43 -51
  144. package/src/components/CreateDialog/CreateSpaceDialog.tsx +6 -5
  145. package/src/components/MembersContainer.tsx +4 -2
  146. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +9 -1
  147. package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -3
  148. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +2 -2
  149. package/src/components/SpacePluginSettings.tsx +24 -19
  150. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +2 -2
  151. package/src/events.ts +1 -5
  152. package/src/translations.ts +30 -14
  153. package/src/types/index.ts +0 -1
  154. package/src/types/types.ts +29 -9
  155. package/src/util.tsx +111 -23
  156. package/dist/lib/browser/app-graph-builder-UNXUTH53.mjs.map +0 -7
  157. package/dist/lib/browser/app-graph-serializer-KPKPMC4M.mjs.map +0 -7
  158. package/dist/lib/browser/chunk-3LN4LJN6.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-CF4FBDGP.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-LGEIVEYC.mjs +0 -289
  161. package/dist/lib/browser/chunk-LGEIVEYC.mjs.map +0 -7
  162. package/dist/lib/browser/chunk-RRJIDXPY.mjs.map +0 -7
  163. package/dist/lib/browser/chunk-TQPBDRXV.mjs.map +0 -7
  164. package/dist/lib/browser/identity-created-EM6GZDNF.mjs.map +0 -7
  165. package/dist/lib/browser/intent-resolver-K3ULKQ6V.mjs.map +0 -7
  166. package/dist/lib/browser/react-surface-Y5AZBYA7.mjs.map +0 -7
  167. package/dist/lib/browser/spaces-ready-NXZAWHGI.mjs.map +0 -7
  168. package/dist/lib/node/app-graph-builder-6QDQEYHS.cjs.map +0 -7
  169. package/dist/lib/node/app-graph-serializer-6SWKHDE2.cjs.map +0 -7
  170. package/dist/lib/node/chunk-7GQGM4ZF.cjs.map +0 -7
  171. package/dist/lib/node/chunk-KDBPQ6L3.cjs.map +0 -7
  172. package/dist/lib/node/chunk-QCANR24R.cjs.map +0 -7
  173. package/dist/lib/node/chunk-SF3NU7EW.cjs.map +0 -7
  174. package/dist/lib/node/chunk-UUBPYP7E.cjs +0 -316
  175. package/dist/lib/node/chunk-UUBPYP7E.cjs.map +0 -7
  176. package/dist/lib/node/identity-created-KCJAOFZC.cjs.map +0 -7
  177. package/dist/lib/node/intent-resolver-XR4S7LME.cjs.map +0 -7
  178. package/dist/lib/node/react-surface-H6XNU6DS.cjs.map +0 -7
  179. package/dist/lib/node/spaces-ready-KKFEN2MM.cjs.map +0 -7
  180. package/dist/lib/node-esm/app-graph-builder-5EAV4CDH.mjs.map +0 -7
  181. package/dist/lib/node-esm/app-graph-serializer-BRLVJW6I.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-226REPOB.mjs +0 -290
  183. package/dist/lib/node-esm/chunk-226REPOB.mjs.map +0 -7
  184. package/dist/lib/node-esm/chunk-4X4Y63ND.mjs.map +0 -7
  185. package/dist/lib/node-esm/chunk-55OOAFBS.mjs.map +0 -7
  186. package/dist/lib/node-esm/chunk-AVONUBZO.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-FTL5AMXF.mjs.map +0 -7
  188. package/dist/lib/node-esm/identity-created-FOFH2WPI.mjs.map +0 -7
  189. package/dist/lib/node-esm/intent-resolver-72KTB4S2.mjs.map +0 -7
  190. package/dist/lib/node-esm/react-surface-L4SMKRYF.mjs.map +0 -7
  191. package/dist/lib/node-esm/spaces-ready-WTISHKEH.mjs.map +0 -7
  192. package/dist/types/src/types/collection.d.ts +0 -15
  193. package/dist/types/src/types/collection.d.ts.map +0 -1
  194. package/src/types/collection.ts +0 -27
  195. /package/dist/lib/browser/{react-root-ECO7G77L.mjs.map → react-root-QIKHSNT2.mjs.map} +0 -0
  196. /package/dist/lib/browser/{schema-defs-JMN74RNK.mjs.map → schema-defs-WREJNMIC.mjs.map} +0 -0
  197. /package/dist/lib/browser/{settings-MU7O6JDD.mjs.map → settings-K54STC5A.mjs.map} +0 -0
  198. /package/dist/lib/browser/{state-6HOSHLIN.mjs.map → state-HRZ4VRXU.mjs.map} +0 -0
  199. /package/dist/lib/node/{react-root-Z2YM6JYC.cjs.map → react-root-RQUU3A45.cjs.map} +0 -0
  200. /package/dist/lib/node/{schema-defs-XLFBG3XK.cjs.map → schema-defs-OB2X2HBH.cjs.map} +0 -0
  201. /package/dist/lib/node/{settings-XRAT3YMN.cjs.map → settings-P2EQ7VKQ.cjs.map} +0 -0
  202. /package/dist/lib/node/{state-ZT3MTZXB.cjs.map → state-M35DK75Z.cjs.map} +0 -0
  203. /package/dist/lib/node-esm/{react-root-FU2I5U2M.mjs.map → react-root-YFGL3B4J.mjs.map} +0 -0
  204. /package/dist/lib/node-esm/{schema-defs-QZJS6UXN.mjs.map → schema-defs-4MEJETVX.mjs.map} +0 -0
  205. /package/dist/lib/node-esm/{settings-C7GQAEDU.mjs.map → settings-TD76LTQS.mjs.map} +0 -0
  206. /package/dist/lib/node-esm/{state-4ATRHSKA.mjs.map → state-XQNDCN37.mjs.map} +0 -0
@@ -16,8 +16,8 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_KDBPQ6L3_exports = {};
20
- __export(chunk_KDBPQ6L3_exports, {
19
+ var chunk_XHWVT7LW_exports = {};
20
+ __export(chunk_XHWVT7LW_exports, {
21
21
  COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
22
22
  SHARED: () => SHARED,
23
23
  SPACES: () => SPACES,
@@ -30,10 +30,11 @@ __export(chunk_KDBPQ6L3_exports, {
30
30
  getSpaceDisplayName: () => getSpaceDisplayName,
31
31
  rxFromQuery: () => rxFromQuery
32
32
  });
33
- module.exports = __toCommonJS(chunk_KDBPQ6L3_exports);
34
- var import_chunk_UUBPYP7E = require("./chunk-UUBPYP7E.cjs");
33
+ module.exports = __toCommonJS(chunk_XHWVT7LW_exports);
34
+ var import_chunk_ULJZPATP = require("./chunk-ULJZPATP.cjs");
35
35
  var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
36
36
  var import_rx_react = require("@effect-rx/rx-react");
37
+ var import_effect = require("effect");
37
38
  var import_app_framework = require("@dxos/app-framework");
38
39
  var import_echo = require("@dxos/echo");
39
40
  var import_echo_schema = require("@dxos/echo-schema");
@@ -42,6 +43,7 @@ var import_migrations = require("@dxos/migrations");
42
43
  var import_plugin_graph = require("@dxos/plugin-graph");
43
44
  var import_echo2 = require("@dxos/react-client/echo");
44
45
  var import_react_ui_attention = require("@dxos/react-ui-attention");
46
+ var import_schema = require("@dxos/schema");
45
47
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
46
48
  var SPACES = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}-spaces`;
47
49
  var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
@@ -68,7 +70,7 @@ var getSpaceDisplayName = (space, { personal, namesCache = {} } = {}) => {
68
70
  }
69
71
  ];
70
72
  };
71
- var getCollectionGraphNodePartials = ({ navigable, collection, space, resolve }) => {
73
+ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
72
74
  return {
73
75
  acceptPersistenceClass: /* @__PURE__ */ new Set([
74
76
  "echo"
@@ -106,21 +108,39 @@ var getCollectionGraphNodePartials = ({ navigable, collection, space, resolve })
106
108
  }
107
109
  };
108
110
  };
111
+ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
112
+ return {
113
+ icon: collection.query.typename && resolve(collection.query.typename)?.icon,
114
+ acceptPersistenceClass: /* @__PURE__ */ new Set([
115
+ "echo"
116
+ ]),
117
+ acceptPersistenceKey: /* @__PURE__ */ new Set([
118
+ space.id
119
+ ]),
120
+ role: "branch",
121
+ canDrop: (source) => {
122
+ return (0, import_plugin_graph.isGraphNode)(source.item) && import_echo.Obj.isObject(source.item.data) && import_echo.Obj.getTypename(source.item.data) === collection.query.typename;
123
+ },
124
+ onTransferStart: (child, index) => {
125
+ },
126
+ onTransferEnd: (child, destination) => {
127
+ }
128
+ };
129
+ };
109
130
  var checkPendingMigration = (space) => {
110
131
  return space.state.get() === import_echo2.SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === import_echo2.SpaceState.SPACE_READY && !!import_migrations.Migrations.versionProperty && space.properties[import_migrations.Migrations.versionProperty] !== import_migrations.Migrations.targetVersion;
111
132
  };
112
133
  var constructSpaceNode = ({ space, navigable = false, personal, namesCache, resolve }) => {
113
134
  const hasPendingMigration = checkPendingMigration(space);
114
- const collection = space.state.get() === import_echo2.SpaceState.SPACE_READY && space.properties[import_chunk_UUBPYP7E.CollectionType.typename]?.target;
115
- const partials = space.state.get() === import_echo2.SpaceState.SPACE_READY && collection instanceof import_chunk_UUBPYP7E.CollectionType ? getCollectionGraphNodePartials({
135
+ const collection = space.state.get() === import_echo2.SpaceState.SPACE_READY && space.properties[import_echo.Type.getTypename(import_schema.DataType.Collection)]?.target;
136
+ const partials = space.state.get() === import_echo2.SpaceState.SPACE_READY && import_echo.Obj.instanceOf(import_schema.DataType.Collection, collection) ? getCollectionGraphNodePartials({
116
137
  collection,
117
138
  space,
118
- resolve,
119
- navigable
139
+ resolve
120
140
  }) : {};
121
141
  return {
122
142
  id: space.id,
123
- type: import_chunk_UUBPYP7E.SPACE_TYPE,
143
+ type: import_chunk_ULJZPATP.SPACE_TYPE,
124
144
  cacheable: [
125
145
  "label",
126
146
  "icon",
@@ -137,7 +157,10 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
137
157
  hue: space.state.get() === import_echo2.SpaceState.SPACE_READY && space.properties.hue,
138
158
  icon: space.state.get() === import_echo2.SpaceState.SPACE_READY && space.properties.icon ? `ph--${space.properties.icon}--regular` : void 0,
139
159
  disabled: !navigable || space.state.get() !== import_echo2.SpaceState.SPACE_READY || hasPendingMigration,
140
- testId: "spacePlugin.space"
160
+ testId: "spacePlugin.space",
161
+ canDrop: (source) => {
162
+ return import_echo.Obj.isObject(source.item.data) || (0, import_echo2.isSpace)(source.item.data);
163
+ }
141
164
  },
142
165
  nodes: [
143
166
  {
@@ -211,10 +234,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
211
234
  const actions = [];
212
235
  if (hasPendingMigration) {
213
236
  actions.push({
214
- id: getId(import_chunk_UUBPYP7E.SpaceAction.Migrate._tag),
237
+ id: getId(import_chunk_ULJZPATP.SpaceAction.Migrate._tag),
215
238
  type: import_plugin_graph.ACTION_GROUP_TYPE,
216
239
  data: async () => {
217
- await dispatch((0, import_app_framework.createIntent)(import_chunk_UUBPYP7E.SpaceAction.Migrate, {
240
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.Migrate, {
218
241
  space
219
242
  }));
220
243
  },
@@ -233,10 +256,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
233
256
  }
234
257
  if (state === import_echo2.SpaceState.SPACE_READY && !hasPendingMigration) {
235
258
  actions.push({
236
- id: getId(import_chunk_UUBPYP7E.SpaceAction.OpenCreateObject._tag),
259
+ id: getId(import_chunk_ULJZPATP.SpaceAction.OpenCreateObject._tag),
237
260
  type: import_plugin_graph.ACTION_TYPE,
238
261
  data: async () => {
239
- await dispatch((0, import_app_framework.createIntent)(import_chunk_UUBPYP7E.SpaceAction.OpenCreateObject, {
262
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.OpenCreateObject, {
240
263
  target: space
241
264
  }));
242
265
  },
@@ -252,10 +275,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
252
275
  testId: "spacePlugin.createObject"
253
276
  }
254
277
  }, {
255
- id: getId(import_chunk_UUBPYP7E.SpaceAction.Rename._tag),
278
+ id: getId(import_chunk_ULJZPATP.SpaceAction.Rename._tag),
256
279
  type: import_plugin_graph.ACTION_TYPE,
257
280
  data: async (params) => {
258
- await dispatch((0, import_app_framework.createIntent)(import_chunk_UUBPYP7E.SpaceAction.Rename, {
281
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.Rename, {
259
282
  space,
260
283
  caller: params?.caller
261
284
  }));
@@ -277,7 +300,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
277
300
  }
278
301
  return actions;
279
302
  };
280
- var createObjectNode = ({ space, object, navigable = false, resolve }) => {
303
+ var createObjectNode = ({ space, object, droppable = true, navigable = false, resolve }) => {
281
304
  const type = import_echo.Obj.getTypename(object);
282
305
  if (!type) {
283
306
  return void 0;
@@ -286,11 +309,14 @@ var createObjectNode = ({ space, object, navigable = false, resolve }) => {
286
309
  if (Object.keys(metadata).length === 0) {
287
310
  return void 0;
288
311
  }
289
- const partials = object instanceof import_chunk_UUBPYP7E.CollectionType ? getCollectionGraphNodePartials({
312
+ const partials = import_echo.Obj.instanceOf(import_schema.DataType.Collection, object) ? getCollectionGraphNodePartials({
313
+ collection: object,
314
+ space,
315
+ resolve
316
+ }) : import_echo.Obj.instanceOf(import_schema.DataType.QueryCollection, object) ? getQueryCollectionNodePartials({
290
317
  collection: object,
291
318
  space,
292
- resolve,
293
- navigable
319
+ resolve
294
320
  }) : metadata.graphProps;
295
321
  return {
296
322
  id: (0, import_echo2.fullyQualifiedId)(object),
@@ -302,7 +328,6 @@ var createObjectNode = ({ space, object, navigable = false, resolve }) => {
302
328
  ],
303
329
  data: object,
304
330
  properties: {
305
- ...partials,
306
331
  // TODO(burdon): Use annotation to get the name field.
307
332
  label: metadata.label?.(object) || object.name || [
308
333
  "object name placeholder",
@@ -314,15 +339,19 @@ var createObjectNode = ({ space, object, navigable = false, resolve }) => {
314
339
  icon: metadata.icon ?? "ph--placeholder--regular",
315
340
  testId: "spacePlugin.object",
316
341
  persistenceClass: "echo",
317
- persistenceKey: space?.id
342
+ persistenceKey: space?.id,
343
+ canDrop: (source) => {
344
+ return droppable && (0, import_plugin_graph.isGraphNode)(source.item) && import_echo.Obj.isObject(source.item.data);
345
+ },
346
+ ...partials
318
347
  }
319
348
  };
320
349
  };
321
- var constructObjectActions = ({ object, graph, dispatch, navigable = false }) => {
350
+ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable = false }) => {
322
351
  const space = (0, import_echo2.getSpace)(object);
323
352
  (0, import_invariant.invariant)(space, "Space not found", {
324
353
  F: __dxlog_file,
325
- L: 353,
354
+ L: 398,
326
355
  S: void 0,
327
356
  A: [
328
357
  "space",
@@ -330,13 +359,15 @@ var constructObjectActions = ({ object, graph, dispatch, navigable = false }) =>
330
359
  ]
331
360
  });
332
361
  const getId = (id) => `${id}/${(0, import_echo2.fullyQualifiedId)(object)}`;
362
+ const queryCollection = import_echo.Obj.instanceOf(import_schema.DataType.QueryCollection, object) ? object : void 0;
363
+ const matchingObjectForm = queryCollection ? objectForms.find((form) => import_echo.Type.getTypename(form.objectSchema) === queryCollection.query.typename) : void 0;
333
364
  const actions = [
334
- ...object instanceof import_chunk_UUBPYP7E.CollectionType ? [
365
+ ...import_echo.Obj.instanceOf(import_schema.DataType.Collection, object) ? [
335
366
  {
336
- id: getId(import_chunk_UUBPYP7E.SpaceAction.OpenCreateObject._tag),
367
+ id: getId(import_chunk_ULJZPATP.SpaceAction.OpenCreateObject._tag),
337
368
  type: import_plugin_graph.ACTION_TYPE,
338
369
  data: async () => {
339
- await dispatch((0, import_app_framework.createIntent)(import_chunk_UUBPYP7E.SpaceAction.OpenCreateObject, {
370
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.OpenCreateObject, {
340
371
  target: object
341
372
  }));
342
373
  },
@@ -353,36 +384,71 @@ var constructObjectActions = ({ object, graph, dispatch, navigable = false }) =>
353
384
  }
354
385
  }
355
386
  ] : [],
387
+ ...matchingObjectForm ? [
388
+ {
389
+ id: getId(import_chunk_ULJZPATP.SpaceAction.OpenCreateObject._tag),
390
+ type: import_plugin_graph.ACTION_TYPE,
391
+ data: async () => {
392
+ if (matchingObjectForm.formSchema) {
393
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.OpenCreateObject, {
394
+ target: space,
395
+ typename: queryCollection?.query.typename
396
+ }));
397
+ } else {
398
+ await dispatch((0, import_effect.pipe)(matchingObjectForm.getIntent({}, {
399
+ space
400
+ }), (0, import_app_framework.chain)(import_chunk_ULJZPATP.SpaceAction.AddObject, {
401
+ target: space,
402
+ hidden: true
403
+ }), (0, import_app_framework.chain)(import_app_framework.LayoutAction.Open, {
404
+ part: "main"
405
+ })));
406
+ }
407
+ },
408
+ properties: {
409
+ label: [
410
+ "create object in smart collection label",
411
+ {
412
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
413
+ }
414
+ ],
415
+ icon: "ph--plus--regular",
416
+ disposition: "list-item-primary",
417
+ testId: "spacePlugin.createObject"
418
+ }
419
+ }
420
+ ] : [],
356
421
  {
357
- id: getId(import_chunk_UUBPYP7E.SpaceAction.RenameObject._tag),
422
+ id: getId(import_chunk_ULJZPATP.SpaceAction.RenameObject._tag),
358
423
  type: import_plugin_graph.ACTION_TYPE,
359
424
  data: async (params) => {
360
- await dispatch((0, import_app_framework.createIntent)(import_chunk_UUBPYP7E.SpaceAction.RenameObject, {
425
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.RenameObject, {
361
426
  object,
362
427
  caller: params?.caller
363
428
  }));
364
429
  },
365
430
  properties: {
366
431
  label: [
367
- object instanceof import_chunk_UUBPYP7E.CollectionType ? "rename collection label" : "rename object label",
432
+ import_echo.Obj.instanceOf(import_schema.DataType.Collection, object) ? "rename collection label" : "rename object label",
368
433
  {
369
434
  ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
370
435
  }
371
436
  ],
372
437
  icon: "ph--pencil-simple-line--regular",
373
- // TODO(wittjosiah): Need's focus.
374
- keyBinding: {
375
- macos: "shift+F6"
376
- },
438
+ disposition: "list-item",
439
+ // TODO(wittjosiah): Not working.
440
+ // keyBinding: {
441
+ // macos: 'shift+F6',
442
+ // },
377
443
  testId: "spacePlugin.renameObject"
378
444
  }
379
445
  },
380
446
  {
381
- id: getId(import_chunk_UUBPYP7E.SpaceAction.RemoveObjects._tag),
447
+ id: getId(import_chunk_ULJZPATP.SpaceAction.RemoveObjects._tag),
382
448
  type: import_plugin_graph.ACTION_TYPE,
383
449
  data: async () => {
384
- const collection = graph.getConnections((0, import_echo2.fullyQualifiedId)(object), "inbound").find(({ data }) => data instanceof import_chunk_UUBPYP7E.CollectionType)?.data;
385
- await dispatch((0, import_app_framework.createIntent)(import_chunk_UUBPYP7E.SpaceAction.RemoveObjects, {
450
+ const collection = graph.getConnections((0, import_echo2.fullyQualifiedId)(object), "inbound").find(({ data }) => import_echo.Obj.instanceOf(import_schema.DataType.Collection, data))?.data;
451
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_ULJZPATP.SpaceAction.RemoveObjects, {
386
452
  objects: [
387
453
  object
388
454
  ],
@@ -391,17 +457,19 @@ var constructObjectActions = ({ object, graph, dispatch, navigable = false }) =>
391
457
  },
392
458
  properties: {
393
459
  label: [
394
- object instanceof import_chunk_UUBPYP7E.CollectionType ? "delete collection label" : "delete object label",
460
+ import_echo.Obj.instanceOf(import_schema.DataType.Collection, object) ? "delete collection label" : "delete object label",
395
461
  {
396
462
  ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
397
463
  }
398
464
  ],
399
465
  icon: "ph--trash--regular",
400
- keyBinding: object instanceof import_chunk_UUBPYP7E.CollectionType ? void 0 : "shift+meta+Backspace",
466
+ disposition: "list-item",
467
+ // TODO(wittjosiah): This is a browser shortcut.
468
+ // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
401
469
  testId: "spacePlugin.deleteObject"
402
470
  }
403
471
  },
404
- ...navigable || !(object instanceof import_chunk_UUBPYP7E.CollectionType) ? [
472
+ ...navigable || !import_echo.Obj.instanceOf(import_schema.DataType.Collection, object) && !import_echo.Obj.instanceOf(import_schema.DataType.QueryCollection, object) ? [
405
473
  {
406
474
  id: getId("copy-link"),
407
475
  type: import_plugin_graph.ACTION_TYPE,
@@ -417,6 +485,7 @@ var constructObjectActions = ({ object, graph, dispatch, navigable = false }) =>
417
485
  }
418
486
  ],
419
487
  icon: "ph--link--regular",
488
+ disposition: "list-item",
420
489
  testId: "spacePlugin.copyLink"
421
490
  }
422
491
  }
@@ -439,6 +508,7 @@ var constructObjectActions = ({ object, graph, dispatch, navigable = false }) =>
439
508
  }
440
509
  ],
441
510
  icon: "ph--eye--regular",
511
+ disposition: "heading-list-item",
442
512
  testId: "spacePlugin.exposeObject"
443
513
  }
444
514
  }
@@ -469,7 +539,7 @@ var cloneObject = async (object, resolve, newSpace) => {
469
539
  const serializer = metadata.serializer;
470
540
  (0, import_invariant.invariant)(serializer, `No serializer for type: ${typename}`, {
471
541
  F: __dxlog_file,
472
- L: 482,
542
+ L: 570,
473
543
  S: void 0,
474
544
  A: [
475
545
  "serializer",
@@ -499,4 +569,4 @@ var cloneObject = async (object, resolve, newSpace) => {
499
569
  getSpaceDisplayName,
500
570
  rxFromQuery
501
571
  });
502
- //# sourceMappingURL=chunk-KDBPQ6L3.cjs.map
572
+ //# sourceMappingURL=chunk-XHWVT7LW.cjs.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 { chain, createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { 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 ReadableGraph,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n isGraphNode,\n} from '@dxos/plugin-graph';\nimport { fullyQualifiedId, getSpace, type QueryResult, SpaceState, type Space, 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 } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { SpaceAction, SPACE_TYPE, type ObjectForm } 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 Obj.Any>(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 return {\n icon: collection.query.typename && resolve(collection.query.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) &&\n Obj.isObject(source.item.data) &&\n Obj.getTypename(source.item.data) === collection.query.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 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[Type.getTypename(DataType.Collection)]?.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 createObjectNode = ({\n space,\n object,\n droppable = true,\n navigable = false,\n resolve,\n}: {\n space: Space;\n object: Obj.Any;\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 undefined;\n }\n\n const metadata = resolve(type);\n if (Object.keys(metadata).length === 0) {\n return undefined;\n }\n\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 : metadata.graphProps;\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n // TODO(burdon): Use annotation to get the name field.\n label: metadata.label?.(object) ||\n (object as any).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 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 navigable = false,\n}: {\n object: Obj.Any;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n objectForms: ObjectForm<any>[];\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\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) === queryCollection.query.typename)\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 ...(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?.query.typename,\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: [\n Obj.instanceOf(DataType.Collection, object) ? 'rename collection label' : 'rename object label',\n { ns: SPACE_PLUGIN },\n ],\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: [\n Obj.instanceOf(DataType.Collection, object) ? 'delete collection label' : 'delete object label',\n { ns: SPACE_PLUGIN },\n ],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\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 || (!Obj.instanceOf(DataType.Collection, object) && !Obj.instanceOf(DataType.QueryCollection, 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": ["import_echo", "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", "icon", "typename", "canDrop", "source", "isGraphNode", "item", "getTypename", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "navigable", "hasPendingMigration", "Type", "DataType", "Collection", "partials", "instanceOf", "type", "SPACE_TYPE", "cacheable", "label", "description", "hue", "undefined", "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", "createObjectNode", "droppable", "metadata", "Object", "keys", "QueryCollection", "graphProps", "fullyQualifiedId", "default", "persistenceClass", "persistenceKey", "constructObjectActions", "graph", "objectForms", "getSpace", "invariant", "queryCollection", "matchingObjectForm", "form", "objectSchema", "formSchema", "pipe", "getIntent", "chain", "AddObject", "hidden", "LayoutAction", "Open", "part", "RenameObject", "RemoveObjects", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "Expose", "subject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "schema", "getSchema", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
7
+ }
@@ -16,29 +16,27 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var identity_created_KCJAOFZC_exports = {};
20
- __export(identity_created_KCJAOFZC_exports, {
19
+ var identity_created_FF4WZ2WY_exports = {};
20
+ __export(identity_created_FF4WZ2WY_exports, {
21
21
  default: () => identity_created_default
22
22
  });
23
- module.exports = __toCommonJS(identity_created_KCJAOFZC_exports);
24
- var import_chunk_UUBPYP7E = require("./chunk-UUBPYP7E.cjs");
25
- var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
23
+ module.exports = __toCommonJS(identity_created_FF4WZ2WY_exports);
26
24
  var import_app_framework = require("@dxos/app-framework");
27
25
  var import_echo = require("@dxos/echo");
28
26
  var import_migrations = require("@dxos/migrations");
29
27
  var import_plugin_client = require("@dxos/plugin-client");
28
+ var import_schema = require("@dxos/schema");
30
29
  var identity_created_default = async (context) => {
31
30
  const client = context.getCapability(import_plugin_client.ClientCapabilities.Client);
32
31
  await client.spaces.waitUntilReady();
33
32
  const defaultSpace = client.spaces.default;
34
33
  await defaultSpace.waitUntilReady();
35
- defaultSpace.properties[import_chunk_UUBPYP7E.CollectionType.typename] = import_echo.Ref.make(import_echo.Obj.make(import_chunk_UUBPYP7E.CollectionType, {
36
- objects: [],
37
- views: {}
34
+ defaultSpace.properties[import_echo.Type.getTypename(import_schema.DataType.Collection)] = import_echo.Ref.make(import_echo.Obj.make(import_schema.DataType.Collection, {
35
+ objects: []
38
36
  }));
39
37
  if (import_migrations.Migrations.versionProperty) {
40
38
  defaultSpace.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
41
39
  }
42
40
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Null, null);
43
41
  };
44
- //# sourceMappingURL=identity-created-KCJAOFZC.cjs.map
42
+ //# sourceMappingURL=identity-created-FF4WZ2WY.cjs.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 PluginContext, Capabilities } from '@dxos/app-framework';\nimport { Obj, Ref, Type } 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[Type.getTypename(DataType.Collection)] = Ref.make(\n Obj.make(DataType.Collection, { objects: [] }),\n );\n if (Migrations.versionProperty) {\n defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAA8D;AAC9D,kBAA+B;AAC/B,wBAA2B;AAC3B,2BAAmC;AACnC,oBAAyB;AAEzB,IAAA,2BAAe,OAAOA,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,wCAAmBC,MAAM;AAC9D,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,iBAAKC,YAAYC,uBAASC,UAAU,CAAA,IAAKC,gBAAIC,KACnEC,gBAAID,KAAKH,uBAASC,YAAY;IAAEI,SAAS,CAAA;EAAG,CAAA,CAAA;AAE9C,MAAIC,6BAAWC,iBAAiB;AAC9BZ,iBAAaE,WAAWS,6BAAWC,eAAe,IAAID,6BAAWE;EACnE;AAEA,aAAOC,kCAAYC,kCAAaC,MAAM,IAAA;AACxC;",
6
+ "names": ["context", "client", "getCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "Type", "getTypename", "DataType", "Collection", "Ref", "make", "Obj", "objects", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
7
+ }