@dxos/plugin-space 0.8.4-main.a4bbb77 → 0.8.4-main.ae835ea

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/lib/browser/{CollectionMain-AX7KKXWP.mjs → CollectionMain-HTKSZCRR.mjs} +2 -2
  2. package/dist/lib/browser/ObjectDetailsPanel-5B45G744.mjs +145 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-5B45G744.mjs.map +7 -0
  4. package/dist/lib/browser/ObjectSettings-UFTKBP7B.mjs +146 -0
  5. package/dist/lib/browser/ObjectSettings-UFTKBP7B.mjs.map +7 -0
  6. package/dist/lib/browser/RecordMain-BCSXTSEB.mjs +99 -0
  7. package/dist/lib/browser/RecordMain-BCSXTSEB.mjs.map +7 -0
  8. package/dist/lib/browser/{app-graph-builder-W7RVDAUA.mjs → app-graph-builder-QJFO4ANM.mjs} +37 -34
  9. package/dist/lib/browser/app-graph-builder-QJFO4ANM.mjs.map +7 -0
  10. package/dist/lib/browser/{app-graph-serializer-VLHVTDX4.mjs → app-graph-serializer-3R5NVV7U.mjs} +5 -5
  11. package/dist/lib/browser/{chunk-E2I747A7.mjs → chunk-2NS3VPSY.mjs} +2 -2
  12. package/dist/lib/browser/chunk-2NS3VPSY.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-ZIZ2JLW6.mjs → chunk-4V4JNJ33.mjs} +12 -4
  14. package/dist/lib/browser/chunk-4V4JNJ33.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-2BFVC5K6.mjs → chunk-ENBBJSNE.mjs} +230 -254
  16. package/dist/lib/browser/chunk-ENBBJSNE.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-HS2VD6DN.mjs +166 -0
  18. package/dist/lib/browser/chunk-HS2VD6DN.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-PN27K4I7.mjs → chunk-OWNBEI5J.mjs} +23 -14
  20. package/dist/lib/browser/chunk-OWNBEI5J.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-JCHSUOPF.mjs → chunk-SLDQWMQ2.mjs} +12 -7
  22. package/dist/lib/browser/chunk-SLDQWMQ2.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  24. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-EIXZABXD.mjs → chunk-WJXU4GKV.mjs} +2 -2
  26. package/dist/lib/browser/index.mjs +31 -31
  27. package/dist/lib/browser/index.mjs.map +3 -3
  28. package/dist/lib/browser/{intent-resolver-HA7DPAUE.mjs → intent-resolver-MBVOLXFQ.mjs} +30 -23
  29. package/dist/lib/browser/intent-resolver-MBVOLXFQ.mjs.map +7 -0
  30. package/dist/lib/browser/meta.json +1 -1
  31. package/dist/lib/browser/{react-root-YQUJU64P.mjs → react-root-NKEKCEYM.mjs} +7 -7
  32. package/dist/lib/browser/{react-surface-HTXYMRSW.mjs → react-surface-PYSN2MBY.mjs} +15 -46
  33. package/dist/lib/browser/react-surface-PYSN2MBY.mjs.map +7 -0
  34. package/dist/lib/browser/{schema-defs-R56ZDBZ7.mjs → schema-defs-DWYK7TYW.mjs} +3 -3
  35. package/dist/lib/browser/{settings-5XPQMSPO.mjs → settings-ZUCC3ZLB.mjs} +3 -3
  36. package/dist/lib/browser/{spaces-ready-YY77ANIF.mjs → spaces-ready-HTWWJHLR.mjs} +6 -6
  37. package/dist/lib/browser/spaces-ready-HTWWJHLR.mjs.map +7 -0
  38. package/dist/lib/browser/{state-Y4RVCG4A.mjs → state-ISVAKMO7.mjs} +3 -3
  39. package/dist/lib/browser/types/index.mjs +2 -2
  40. package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs → CollectionMain-OUHGG6OC.mjs} +2 -2
  41. package/dist/lib/node-esm/ObjectDetailsPanel-4SDHQVQU.mjs +146 -0
  42. package/dist/lib/node-esm/ObjectDetailsPanel-4SDHQVQU.mjs.map +7 -0
  43. package/dist/lib/node-esm/ObjectSettings-EU6F43RP.mjs +147 -0
  44. package/dist/lib/node-esm/ObjectSettings-EU6F43RP.mjs.map +7 -0
  45. package/dist/lib/node-esm/RecordMain-SD76DGOR.mjs +100 -0
  46. package/dist/lib/node-esm/RecordMain-SD76DGOR.mjs.map +7 -0
  47. package/dist/lib/node-esm/{app-graph-builder-5ZJJUMQI.mjs → app-graph-builder-B23W62HY.mjs} +37 -34
  48. package/dist/lib/node-esm/app-graph-builder-B23W62HY.mjs.map +7 -0
  49. package/dist/lib/node-esm/{app-graph-serializer-EZJSGJUT.mjs → app-graph-serializer-3Z3EXEEF.mjs} +5 -5
  50. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  51. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-5XRYHWL7.mjs → chunk-G4PDWB7G.mjs} +12 -4
  53. package/dist/lib/node-esm/chunk-G4PDWB7G.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs → chunk-H4JILUJK.mjs} +2 -2
  55. package/dist/lib/node-esm/{chunk-BLPXWPLB.mjs → chunk-KKPCCA5O.mjs} +230 -254
  56. package/dist/lib/node-esm/chunk-KKPCCA5O.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-PM4ZIGKC.mjs +167 -0
  58. package/dist/lib/node-esm/chunk-PM4ZIGKC.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-XDQXUZMK.mjs → chunk-XEVIWD3O.mjs} +23 -14
  60. package/dist/lib/node-esm/chunk-XEVIWD3O.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-6WNZW6KT.mjs → chunk-YFQXFQGT.mjs} +12 -7
  62. package/dist/lib/node-esm/chunk-YFQXFQGT.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-IJVBBVCL.mjs → chunk-ZLMFLI7G.mjs} +2 -2
  64. package/dist/lib/node-esm/chunk-ZLMFLI7G.mjs.map +7 -0
  65. package/dist/lib/node-esm/index.mjs +31 -31
  66. package/dist/lib/node-esm/index.mjs.map +3 -3
  67. package/dist/lib/node-esm/{intent-resolver-LQNHMPIX.mjs → intent-resolver-IWI47NTW.mjs} +30 -23
  68. package/dist/lib/node-esm/intent-resolver-IWI47NTW.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-root-UTLJEIKE.mjs → react-root-LX7SIG6M.mjs} +7 -7
  71. package/dist/lib/node-esm/{react-surface-LYDYON3U.mjs → react-surface-6SVGOZNJ.mjs} +15 -46
  72. package/dist/lib/node-esm/react-surface-6SVGOZNJ.mjs.map +7 -0
  73. package/dist/lib/node-esm/{schema-defs-7IMJPIWS.mjs → schema-defs-EOG2UPJU.mjs} +3 -3
  74. package/dist/lib/node-esm/{settings-XBSK5KHH.mjs → settings-ZDJNLFGW.mjs} +3 -3
  75. package/dist/lib/node-esm/{spaces-ready-YX4IHT4P.mjs → spaces-ready-VUGYPF4L.mjs} +6 -6
  76. package/dist/lib/node-esm/spaces-ready-VUGYPF4L.mjs.map +7 -0
  77. package/dist/lib/node-esm/{state-HOHAVPUO.mjs → state-QZ4Q6ZRL.mjs} +3 -3
  78. package/dist/lib/node-esm/types/index.mjs +2 -2
  79. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/capabilities.d.ts +2 -1
  82. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  85. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  86. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +80 -0
  87. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  88. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +1 -1
  89. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  90. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  91. package/dist/types/src/components/MembersContainer.stories.d.ts +80 -0
  92. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  94. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  95. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  96. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  97. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  98. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  99. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  100. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  101. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1500 -0
  102. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  103. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  104. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  105. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  106. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  107. package/dist/types/src/components/RecordMain.d.ts +4 -3
  108. package/dist/types/src/components/RecordMain.d.ts.map +1 -1
  109. package/dist/types/src/components/RecordMain.stories.d.ts +1667 -0
  110. package/dist/types/src/components/RecordMain.stories.d.ts.map +1 -0
  111. package/dist/types/src/components/SpacePresence.stories.d.ts +80 -0
  112. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  114. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +80 -0
  115. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  117. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +81 -1
  118. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  119. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/index.d.ts +4 -6
  121. package/dist/types/src/components/index.d.ts.map +1 -1
  122. package/dist/types/src/hooks/index.d.ts +1 -0
  123. package/dist/types/src/hooks/index.d.ts.map +1 -1
  124. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  125. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  126. package/dist/types/src/hooks/usePath.d.ts +1 -1
  127. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  129. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  130. package/dist/types/src/meta.d.ts.map +1 -1
  131. package/dist/types/src/translations.d.ts +80 -0
  132. package/dist/types/src/translations.d.ts.map +1 -1
  133. package/dist/types/src/types/types.d.ts +6 -4
  134. package/dist/types/src/types/types.d.ts.map +1 -1
  135. package/dist/types/src/util.d.ts +4 -1
  136. package/dist/types/src/util.d.ts.map +1 -1
  137. package/dist/types/tsconfig.tsbuildinfo +1 -1
  138. package/package.json +50 -48
  139. package/src/SpacePlugin.ts +7 -13
  140. package/src/capabilities/app-graph-builder.ts +29 -24
  141. package/src/capabilities/capabilities.ts +7 -2
  142. package/src/capabilities/intent-resolver.ts +13 -8
  143. package/src/capabilities/react-surface.tsx +6 -77
  144. package/src/capabilities/spaces-ready.ts +1 -1
  145. package/src/components/CreateDialog/CreateObjectDialog.tsx +5 -4
  146. package/src/components/CreateDialog/CreateObjectPanel.tsx +2 -2
  147. package/src/components/CreateDialog/CreateSpaceDialog.tsx +2 -1
  148. package/src/components/MembersContainer.tsx +1 -1
  149. package/src/components/{ObjectDetailsPanel.tsx → ObjectDetailsPanel/ObjectDetailsPanel.tsx} +8 -35
  150. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +75 -0
  151. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  152. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +1 -1
  153. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  154. package/src/components/ObjectSettings/BaseObjectSettings.tsx +86 -26
  155. package/src/components/ObjectSettings/ForeignKeys.tsx +1 -1
  156. package/src/components/ObjectSettings/index.ts +3 -1
  157. package/src/components/RecordMain.stories.tsx +116 -0
  158. package/src/components/RecordMain.tsx +69 -29
  159. package/src/components/SchemaContainer.tsx +1 -1
  160. package/src/components/SpacePresence.tsx +1 -1
  161. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +4 -3
  162. package/src/components/SyncStatus/InlineSyncStatus.tsx +5 -5
  163. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  164. package/src/components/SyncStatus/SyncStatus.tsx +93 -3
  165. package/src/components/ViewEditor.tsx +6 -7
  166. package/src/components/index.ts +1 -1
  167. package/src/hooks/index.ts +1 -0
  168. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  169. package/src/hooks/usePath.ts +1 -1
  170. package/src/hooks/useTypeOptions.ts +59 -0
  171. package/src/meta.ts +5 -0
  172. package/src/translations.ts +10 -1
  173. package/src/types/types.ts +9 -5
  174. package/src/util.tsx +22 -8
  175. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs +0 -90
  176. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs.map +0 -7
  177. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  178. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  179. package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +0 -7
  180. package/dist/lib/browser/chunk-2BFVC5K6.mjs.map +0 -7
  181. package/dist/lib/browser/chunk-E2I747A7.mjs.map +0 -7
  182. package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
  183. package/dist/lib/browser/chunk-ELJDGQTO.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  185. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-PN27K4I7.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-ZIZ2JLW6.mjs.map +0 -7
  189. package/dist/lib/browser/intent-resolver-HA7DPAUE.mjs.map +0 -7
  190. package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +0 -7
  191. package/dist/lib/browser/spaces-ready-YY77ANIF.mjs.map +0 -7
  192. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs +0 -91
  193. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs.map +0 -7
  194. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  195. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  196. package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +0 -7
  199. package/dist/lib/node-esm/chunk-BLPXWPLB.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-IJVBBVCL.mjs.map +0 -7
  201. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  202. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
  204. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-XDQXUZMK.mjs.map +0 -7
  206. package/dist/lib/node-esm/intent-resolver-LQNHMPIX.mjs.map +0 -7
  207. package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +0 -7
  208. package/dist/lib/node-esm/spaces-ready-YX4IHT4P.mjs.map +0 -7
  209. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  210. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  211. /package/dist/lib/browser/{CollectionMain-AX7KKXWP.mjs.map → CollectionMain-HTKSZCRR.mjs.map} +0 -0
  212. /package/dist/lib/browser/{app-graph-serializer-VLHVTDX4.mjs.map → app-graph-serializer-3R5NVV7U.mjs.map} +0 -0
  213. /package/dist/lib/browser/{chunk-EIXZABXD.mjs.map → chunk-WJXU4GKV.mjs.map} +0 -0
  214. /package/dist/lib/browser/{react-root-YQUJU64P.mjs.map → react-root-NKEKCEYM.mjs.map} +0 -0
  215. /package/dist/lib/browser/{schema-defs-R56ZDBZ7.mjs.map → schema-defs-DWYK7TYW.mjs.map} +0 -0
  216. /package/dist/lib/browser/{settings-5XPQMSPO.mjs.map → settings-ZUCC3ZLB.mjs.map} +0 -0
  217. /package/dist/lib/browser/{state-Y4RVCG4A.mjs.map → state-ISVAKMO7.mjs.map} +0 -0
  218. /package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs.map → CollectionMain-OUHGG6OC.mjs.map} +0 -0
  219. /package/dist/lib/node-esm/{app-graph-serializer-EZJSGJUT.mjs.map → app-graph-serializer-3Z3EXEEF.mjs.map} +0 -0
  220. /package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs.map → chunk-H4JILUJK.mjs.map} +0 -0
  221. /package/dist/lib/node-esm/{react-root-UTLJEIKE.mjs.map → react-root-LX7SIG6M.mjs.map} +0 -0
  222. /package/dist/lib/node-esm/{schema-defs-7IMJPIWS.mjs.map → schema-defs-EOG2UPJU.mjs.map} +0 -0
  223. /package/dist/lib/node-esm/{settings-XBSK5KHH.mjs.map → settings-ZDJNLFGW.mjs.map} +0 -0
  224. /package/dist/lib/node-esm/{state-HOHAVPUO.mjs.map → state-QZ4Q6ZRL.mjs.map} +0 -0
@@ -2,23 +2,23 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  SPACE_TYPE,
4
4
  SpaceAction
5
- } from "./chunk-6WNZW6KT.mjs";
5
+ } from "./chunk-YFQXFQGT.mjs";
6
6
  import {
7
7
  meta
8
- } from "./chunk-MWNATOXL.mjs";
8
+ } from "./chunk-BDEFTL6K.mjs";
9
9
 
10
10
  // src/util.tsx
11
11
  import { Rx } from "@effect-rx/rx-react";
12
- import { pipe } from "effect";
12
+ import * as Function from "effect/Function";
13
13
  import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
14
14
  import { Obj, Ref, Type } from "@dxos/echo";
15
- import { EXPANDO_TYPENAME } from "@dxos/echo-schema";
15
+ import { EXPANDO_TYPENAME } from "@dxos/echo/internal";
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
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, typenameFromQuery } from "@dxos/schema";
21
+ import { DataType, getTypenameFromQuery } from "@dxos/schema";
22
22
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
23
23
  var SPACES = `${meta.id}-spaces`;
24
24
  var COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
@@ -84,9 +84,11 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
84
84
  };
85
85
  };
86
86
  var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
87
- const typename = typenameFromQuery(collection.query);
87
+ const typename = getTypenameFromQuery(collection.query);
88
+ const metadata = typename ? resolve(typename) : {};
88
89
  return {
89
- icon: typename && resolve(typename)?.icon,
90
+ icon: metadata.icon,
91
+ iconHue: metadata.iconHue,
90
92
  acceptPersistenceClass: /* @__PURE__ */ new Set([
91
93
  "echo"
92
94
  ]),
@@ -122,6 +124,7 @@ var getViewGraphNodePartials = ({ view, resolve }) => {
122
124
  }
123
125
  ],
124
126
  icon: metadata.icon,
127
+ iconHue: metadata.iconHue,
125
128
  canDrop: () => false
126
129
  };
127
130
  };
@@ -154,6 +157,7 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
154
157
  description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,
155
158
  hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,
156
159
  icon: space.state.get() === SpaceState.SPACE_READY && space.properties.icon ? `ph--${space.properties.icon}--regular` : void 0,
160
+ iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
157
161
  disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
158
162
  testId: "spacePlugin.space",
159
163
  canDrop: (source) => {
@@ -312,7 +316,9 @@ var createStaticSchemaNode = ({ schema, space }) => {
312
316
  }
313
317
  ],
314
318
  icon: "ph--database--regular",
319
+ iconHue: "green",
315
320
  role: "branch",
321
+ selectable: false,
316
322
  canDrop: () => false,
317
323
  space
318
324
  }
@@ -415,6 +421,7 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
415
421
  default: "New item"
416
422
  }
417
423
  ];
424
+ const selectable = !Obj.instanceOf(DataType.StoredSchema, object) && !Obj.instanceOf(DataType.QueryCollection, object) && !Obj.instanceOf(DataType.Collection, object) || navigable && Obj.instanceOf(DataType.Collection, object);
418
425
  return {
419
426
  id: fullyQualifiedId(object),
420
427
  type,
@@ -427,10 +434,12 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
427
434
  properties: {
428
435
  label,
429
436
  icon: metadata.icon ?? "ph--placeholder--regular",
437
+ iconHue: metadata.iconHue,
430
438
  disposition,
431
439
  testId: "spacePlugin.object",
432
440
  persistenceClass: "echo",
433
441
  persistenceKey: space?.id,
442
+ selectable,
434
443
  canDrop: (source) => {
435
444
  return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
436
445
  },
@@ -442,7 +451,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
442
451
  const space = getSpace(object);
443
452
  invariant(space, "Space not found", {
444
453
  F: __dxlog_file,
445
- L: 518,
454
+ L: 532,
446
455
  S: void 0,
447
456
  A: [
448
457
  "space",
@@ -452,7 +461,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
452
461
  const typename = Obj.getTypename(object);
453
462
  invariant(typename, "Object has no typename", {
454
463
  F: __dxlog_file,
455
- L: 520,
464
+ L: 534,
456
465
  S: void 0,
457
466
  A: [
458
467
  "typename",
@@ -461,7 +470,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
461
470
  });
462
471
  const getId = (id) => `${id}/${fullyQualifiedId(object)}`;
463
472
  const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : void 0;
464
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === typenameFromQuery(queryCollection.query)) : void 0;
473
+ const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query)) : void 0;
465
474
  const actions = [
466
475
  ...Obj.instanceOf(DataType.Collection, object) ? [
467
476
  {
@@ -519,10 +528,10 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
519
528
  if (matchingObjectForm.formSchema) {
520
529
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
521
530
  target: space,
522
- typename: queryCollection ? typenameFromQuery(queryCollection.query) : void 0
531
+ typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : void 0
523
532
  }));
524
533
  } else {
525
- await dispatch(pipe(matchingObjectForm.getIntent({}, {
534
+ await dispatch(Function.pipe(matchingObjectForm.getIntent({}, {
526
535
  space
527
536
  }), chain(SpaceAction.AddObject, {
528
537
  target: space,
@@ -667,7 +676,7 @@ var cloneObject = async (object, resolve, newSpace) => {
667
676
  const serializer = metadata.serializer;
668
677
  invariant(serializer, `No serializer for type: ${typename}`, {
669
678
  F: __dxlog_file,
670
- L: 714,
679
+ L: 728,
671
680
  S: void 0,
672
681
  A: [
673
682
  "serializer",
@@ -699,4 +708,4 @@ export {
699
708
  getNestedObjects,
700
709
  cloneObject
701
710
  };
702
- //# sourceMappingURL=chunk-XDQXUZMK.mjs.map
711
+ //# sourceMappingURL=chunk-XEVIWD3O.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 * as Function from 'effect/Function';\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/internal';\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, getTypenameFromQuery } from '@dxos/schema';\n\nimport { meta } from './meta';\nimport { type ObjectForm, SPACE_TYPE, SpaceAction } from './types';\n\nexport const SPACES = `${meta.id}-spaces`;\nexport const COMPOSER_SPACE_LOCK = `${meta.id}/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: meta.id }]\n : ['unnamed space label', { ns: meta.id }];\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 = getTypenameFromQuery(collection.query);\n const metadata = typename ? resolve(typename) : {};\n return {\n icon: metadata.icon,\n iconHue: metadata.iconHue,\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 iconHue: metadata.iconHue,\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 iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,\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: `${meta.id}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: meta.id }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/properties`,\n data: `${meta.id}/properties`,\n properties: {\n label: ['space settings properties label', { ns: meta.id }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/members`,\n data: `${meta.id}/members`,\n properties: {\n label: ['members panel label', { ns: meta.id }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${meta.id}/schema`,\n data: `${meta.id}/schema`,\n properties: {\n label: ['space settings schema label', { ns: meta.id }],\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: meta.id }],\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: meta.id }],\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: meta.id }],\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: `${meta.id}/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 iconHue: 'green',\n role: 'branch',\n selectable: false,\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 const selectable =\n (!Obj.instanceOf(DataType.StoredSchema, object) &&\n !Obj.instanceOf(DataType.QueryCollection, object) &&\n !Obj.instanceOf(DataType.Collection, object)) ||\n (navigable && Obj.instanceOf(DataType.Collection, object));\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 iconHue: metadata.iconHue,\n disposition,\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n selectable,\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) === getTypenameFromQuery(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: meta.id }],\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 ? getTypenameFromQuery(queryCollection.query) : undefined,\n }),\n );\n } else {\n await dispatch(\n Function.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: meta.id }],\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: meta.id }],\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: meta.id }],\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", "Function", "LayoutAction", "chain", "createIntent", "Obj", "Ref", "Type", "EXPANDO_TYPENAME", "invariant", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "isGraphNode", "SpaceState", "fullyQualifiedId", "getSpace", "isSpace", "ATTENDABLE_PATH_SEPARATOR", "DataType", "getTypenameFromQuery", "SPACES", "meta", "id", "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", "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", "getTypenameFromQuery", "metadata", "icon", "iconHue", "canDrop", "source", "isGraphNode", "item", "getTypename", "getSchemaGraphNodePartials", "getViewGraphNodePartials", "view", "presentation", "undefined", "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", "selectable", "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,12 +1,12 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  meta
4
- } from "./chunk-MWNATOXL.mjs";
4
+ } from "./chunk-BDEFTL6K.mjs";
5
5
 
6
6
  // src/types/types.ts
7
- import { Schema } from "effect";
7
+ import * as Schema from "effect/Schema";
8
8
  import { Type } from "@dxos/echo";
9
- import { EchoSchema, StoredSchema } from "@dxos/echo-schema";
9
+ import { EchoSchema, StoredSchema } from "@dxos/echo/internal";
10
10
  import { EchoObjectSchema, ReactiveObjectSchema, SpaceSchema } from "@dxos/react-client/echo";
11
11
  import { CancellableInvitationObservable, Invitation } from "@dxos/react-client/invitations";
12
12
  import { DataType, FieldSchema, TypenameAnnotationId } from "@dxos/schema";
@@ -164,7 +164,9 @@ var SPACE_ACTION = `${meta.id}/action`;
164
164
  class UseStaticSchema extends Schema.TaggedClass()(`${SPACE_ACTION}/use-static-schema`, {
165
165
  input: Schema.Struct({
166
166
  space: SpaceSchema,
167
- typename: Schema.String
167
+ typename: Schema.String,
168
+ // TODO(wittjosiah): This is leaky.
169
+ show: Schema.optional(Schema.Boolean)
168
170
  }),
169
171
  output: Schema.Struct({})
170
172
  }) {
@@ -178,7 +180,9 @@ var SPACE_ACTION = `${meta.id}/action`;
178
180
  // TODO(wittjosiah): Semantic version format.
179
181
  version: Schema.optional(Schema.String),
180
182
  // TODO(wittjosiah): Schema for schema?
181
- schema: Schema.Any
183
+ schema: Schema.Any,
184
+ // TODO(wittjosiah): This is leaky.
185
+ show: Schema.optional(Schema.Boolean)
182
186
  }),
183
187
  output: Schema.Struct({
184
188
  // TODO(wittjosiah): ObjectId.
@@ -263,7 +267,8 @@ var SPACE_ACTION = `${meta.id}/action`;
263
267
  });
264
268
  class RemoveObjects extends Schema.TaggedClass()(`${SPACE_ACTION}/remove-objects`, {
265
269
  input: Schema.Struct({
266
- objects: Schema.Array(EchoObjectSchema),
270
+ // TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).
271
+ objects: Schema.Array(ReactiveObjectSchema),
267
272
  target: Schema.optional(DataType.Collection),
268
273
  deletionData: Schema.optional(SpaceAction2.DeletionData)
269
274
  }),
@@ -342,4 +347,4 @@ export {
342
347
  SpaceAction,
343
348
  CollectionAction
344
349
  };
345
- //# sourceMappingURL=chunk-6WNZW6KT.mjs.map
350
+ //# sourceMappingURL=chunk-YFQXFQGT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { type AnyIntentChain } from '@dxos/app-framework';\nimport { type Obj, Type } from '@dxos/echo';\nimport { type BaseObject, EchoSchema, StoredSchema } from '@dxos/echo/internal';\nimport { type PublicKey } from '@dxos/react-client';\n// TODO(wittjosiah): This pulls in full client.\nimport { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';\nimport { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';\nimport { DataType, FieldSchema, TypenameAnnotationId } from '@dxos/schema';\nimport { type ComplexMap } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nexport const SPACE_DIRECTORY_HANDLE = `${meta.id}/directory`;\n\nexport const SPACE_TYPE = 'dxos.org/type/Space';\n\nexport type ObjectViewerProps = {\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type ObjectId = string;\n\nexport type PluginState = {\n /**\n * Which objects are currently being viewed by which peers.\n */\n viewersByObject: Record<ObjectId, ComplexMap<PublicKey, ObjectViewerProps>>;\n\n /**\n * Which peers are currently viewing which objects.\n */\n viewersByIdentity: ComplexMap<PublicKey, Set<ObjectId>>;\n\n /**\n * Object that was linked to directly but not found and is being awaited.\n */\n awaiting: string | undefined;\n\n /**\n * Cached space names, used when spaces are closed or loading.\n */\n spaceNames: Record<string, string>;\n\n /**\n * Which spaces have an SDK migration running currently.\n */\n // TODO(wittjosiah): Factor out to sdk. Migration running should probably be a space state.\n sdkMigrationRunning: Record<string, boolean>;\n\n /**\n * Whether or not the user can navigate to collections in the graph.\n * Determined by whether or not there is an available plugin that can render a collection.\n */\n navigableCollections: boolean;\n\n /**\n * Tracks whether setting edge replication as default has been run on spaces.\n */\n // TODO(wittjosiah): Systematic way to handle migrations of state outside of spaces.\n enabledEdgeReplication: boolean;\n};\n\nexport const SpaceSettingsSchema = Schema.mutable(\n Schema.Struct({\n /**\n * Show closed spaces.\n */\n showHidden: Schema.Boolean,\n }),\n);\n\nexport type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;\n\n// TODO(wittjosiah): Reconcile with graph export serializers.\n\nexport type SerializerMap = Record<string, TypedObjectSerializer>;\n\nexport interface TypedObjectSerializer<T extends Obj.Any = Type.Expando> {\n serialize(params: { object: T }): Promise<string>;\n\n /**\n * @param params.content\n * @param params.space Space to use for deserializing schema references.\n * @param params.newId Generate new ID for deserialized object.\n */\n deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;\n}\n\n// TODO(burdon): Move to FormatEnum or SDK.\nexport const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');\nexport const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');\n\nexport const SpaceForm = Schema.Struct({\n name: Schema.optional(Schema.String.annotations({ title: 'Name' })),\n icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),\n hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),\n // TODO(wittjosiah): Make optional with default value.\n edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),\n});\n\nexport type ObjectForm<T extends BaseObject = BaseObject> = {\n objectSchema: Schema.Schema.AnyNoContext;\n formSchema?: Schema.Schema<T, any>;\n hidden?: boolean;\n getIntent: (props: T, options: { space: Space }) => AnyIntentChain;\n};\n\nexport const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;\n\nexport const SPACE_ACTION = `${meta.id}/action`;\n\nexport namespace SpaceAction {\n export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {\n input: Schema.Void,\n output: Schema.Void,\n }) {}\n\n export class Create extends Schema.TaggedClass<Create>()(`${SPACE_ACTION}/create`, {\n input: SpaceForm,\n output: Schema.Struct({\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n space: SpaceSchema,\n }),\n }) {}\n\n export class Join extends Schema.TaggedClass<Join>()(`${SPACE_ACTION}/join`, {\n input: Schema.Struct({\n invitationCode: Schema.optional(Schema.String),\n onDone: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n }) {}\n\n export class OpenMembers extends Schema.TaggedClass<OpenMembers>()(`${SPACE_ACTION}/open-members`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Share extends Schema.TaggedClass<Share>()(`${SPACE_ACTION}/share`, {\n input: Schema.Struct({\n space: SpaceSchema,\n type: Schema.Enums(Invitation.Type),\n authMethod: Schema.Enums(Invitation.AuthMethod),\n multiUse: Schema.Boolean,\n target: Schema.optional(Schema.String),\n }),\n output: Schema.instanceOf(CancellableInvitationObservable),\n }) {}\n\n export class GetShareLink extends Schema.TaggedClass<GetShareLink>()(`${SPACE_ACTION}/get-share-link`, {\n input: Schema.Struct({\n space: SpaceSchema,\n target: Schema.optional(Schema.String),\n copyToClipboard: Schema.optional(Schema.Boolean),\n }),\n output: Schema.String,\n }) {}\n\n export class Lock extends Schema.TaggedClass<Lock>()(`${SPACE_ACTION}/lock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Unlock extends Schema.TaggedClass<Unlock>()(`${SPACE_ACTION}/unlock`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Rename extends Schema.TaggedClass<Rename>()(`${SPACE_ACTION}/rename`, {\n input: Schema.Struct({\n space: SpaceSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n // TODO(wittjosiah): Handle scrolling to section.\n // This maybe motivates making the space settings its own deck?\n export class OpenSettings extends Schema.TaggedClass<OpenSettings>()(`${SPACE_ACTION}/open-settings`, {\n input: Schema.Struct({ space: SpaceSchema }),\n output: Schema.Void,\n }) {}\n\n export class Open extends Schema.TaggedClass<Open>()(`${SPACE_ACTION}/open`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Close extends Schema.TaggedClass<Close>()(`${SPACE_ACTION}/close`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }),\n output: Schema.Void,\n }) {}\n\n export class Migrate extends Schema.TaggedClass<Migrate>()(`${SPACE_ACTION}/migrate`, {\n input: Schema.Struct({\n space: SpaceSchema,\n version: Schema.optional(Schema.String),\n }),\n output: Schema.Boolean,\n }) {}\n\n export const StoredSchemaForm = Schema.Struct({\n name: Schema.optional(Schema.String),\n typename: Schema.optional(\n Schema.String.annotations({\n [TypenameAnnotationId]: ['unused-static'],\n }),\n ),\n });\n\n export class UseStaticSchema extends Schema.TaggedClass<UseStaticSchema>()(`${SPACE_ACTION}/use-static-schema`, {\n input: Schema.Struct({\n space: SpaceSchema,\n typename: Schema.String,\n // TODO(wittjosiah): This is leaky.\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({}),\n }) {}\n\n export class AddSchema extends Schema.TaggedClass<AddSchema>()(`${SPACE_ACTION}/add-schema`, {\n input: Schema.Struct({\n space: SpaceSchema,\n name: Schema.optional(Schema.String),\n typename: Schema.optional(Schema.String),\n // TODO(wittjosiah): Semantic version format.\n version: Schema.optional(Schema.String),\n // TODO(wittjosiah): Schema for schema?\n schema: Schema.Any,\n // TODO(wittjosiah): This is leaky.\n show: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n // TODO(wittjosiah): ObjectId.\n id: Schema.String,\n object: StoredSchema,\n schema: Schema.instanceOf(EchoSchema),\n }),\n }) {}\n\n export class DeleteField extends Schema.TaggedClass<DeleteField>()(`${SPACE_ACTION}/delete-field`, {\n input: Schema.Struct({\n view: DataType.View,\n fieldId: Schema.String,\n // TODO(wittjosiah): Separate fields for undo data?\n deletionData: Schema.optional(\n Schema.Struct({\n field: FieldSchema,\n // TODO(wittjosiah): This creates a type error.\n // props: PropertySchema,\n props: Schema.Any,\n index: Schema.Number,\n }),\n ),\n }),\n output: Schema.Void,\n }) {}\n\n export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {\n input: Schema.Struct({\n target: Schema.Union(SpaceSchema, DataType.Collection),\n views: Schema.optional(Schema.Boolean),\n typename: Schema.optional(Schema.String),\n initialFormValues: Schema.optional(Schema.Any),\n navigable: Schema.optional(Schema.Boolean),\n // TODO(wittjosiah): This is a function, is there a better way to handle this?\n onCreateObject: Schema.optional(Schema.Any),\n }),\n output: Schema.Void,\n }) {}\n\n export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {\n input: Schema.Struct({\n object: ReactiveObjectSchema,\n target: Schema.Union(SpaceSchema, DataType.Collection),\n hidden: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n // TODO(wittjosiah): ObjectId.\n id: Schema.String,\n subject: Schema.Array(Schema.String),\n object: EchoObjectSchema,\n }),\n }) {}\n\n export class AddRelation extends Schema.TaggedClass<AddRelation>()(`${SPACE_ACTION}/add-relation`, {\n input: Schema.Struct({\n space: SpaceSchema,\n // TODO(wittjosiah): Relation schema.\n schema: Schema.Any,\n source: Type.Expando,\n target: Type.Expando,\n // TODO(wittjosiah): Type based on relation schema.\n fields: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Struct({\n relation: Schema.Any,\n }),\n }) {}\n\n export const DeletionData = Schema.Struct({\n objects: Schema.Array(EchoObjectSchema),\n parentCollection: DataType.Collection,\n indices: Schema.Array(Schema.Number),\n nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),\n wasActive: Schema.Array(Schema.String),\n });\n\n export type DeletionData = Schema.Schema.Type<typeof DeletionData>;\n\n export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {\n input: Schema.Struct({\n // TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).\n objects: Schema.Array(ReactiveObjectSchema),\n target: Schema.optional(DataType.Collection),\n deletionData: Schema.optional(DeletionData),\n }),\n output: Schema.Void,\n }) {}\n\n export class RenameObject extends Schema.TaggedClass<RenameObject>()(`${SPACE_ACTION}/rename-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n caller: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n\n export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {\n input: Schema.Struct({\n object: EchoObjectSchema,\n target: Schema.Union(SpaceSchema, DataType.Collection),\n }),\n output: Schema.Void,\n }) {}\n\n export class WaitForObject extends Schema.TaggedClass<WaitForObject>()(`${SPACE_ACTION}/wait-for-object`, {\n input: Schema.Struct({\n id: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n }) {}\n}\n\nexport namespace CollectionAction {\n export class Create extends Schema.TaggedClass<Create>()('dxos.org/plugin/collection/action/create', {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: DataType.Collection,\n }),\n }) {}\n\n export const QueryCollectionForm = Schema.Struct({\n name: Schema.optional(Schema.String),\n typename: Schema.String.annotations({\n [TypenameAnnotationId]: ['object-form'],\n }),\n });\n\n export class CreateQueryCollection extends Schema.TaggedClass<CreateQueryCollection>()(\n 'dxos.org/plugin/collection/action/create-query-collection',\n {\n input: QueryCollectionForm,\n output: Schema.Struct({\n // TODO(wittjosiah): Remove cast.\n object: EchoObjectSchema, // DataType.QueryCollection,\n }),\n },\n ) {}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Type", "EchoSchema", "StoredSchema", "EchoObjectSchema", "ReactiveObjectSchema", "SpaceSchema", "CancellableInvitationObservable", "Invitation", "DataType", "FieldSchema", "TypenameAnnotationId", "SPACE_DIRECTORY_HANDLE", "meta", "id", "SPACE_TYPE", "SpaceSettingsSchema", "mutable", "Struct", "showHidden", "Boolean", "IconAnnotationId", "Symbol", "for", "HueAnnotationId", "SpaceForm", "name", "optional", "String", "annotations", "title", "icon", "hue", "edgeReplication", "defineObjectForm", "form", "SPACE_ACTION", "SpaceAction", "OpenCreateSpace", "TaggedClass", "input", "Void", "output", "Create", "subject", "Array", "space", "SpaceSchema", "Join", "invitationCode", "onDone", "Any", "OpenMembers", "Share", "type", "Enums", "Invitation", "Type", "authMethod", "AuthMethod", "multiUse", "target", "instanceOf", "CancellableInvitationObservable", "GetShareLink", "copyToClipboard", "Lock", "Unlock", "Rename", "caller", "OpenSettings", "Open", "Close", "Migrate", "version", "StoredSchemaForm", "typename", "TypenameAnnotationId", "UseStaticSchema", "show", "AddSchema", "schema", "object", "StoredSchema", "EchoSchema", "DeleteField", "view", "DataType", "View", "fieldId", "deletionData", "field", "FieldSchema", "props", "index", "Number", "OpenCreateObject", "Union", "Collection", "views", "initialFormValues", "navigable", "onCreateObject", "AddObject", "ReactiveObjectSchema", "hidden", "EchoObjectSchema", "AddRelation", "source", "Expando", "fields", "Record", "key", "value", "relation", "DeletionData", "objects", "parentCollection", "indices", "nestedObjectsList", "wasActive", "RemoveObjects", "RenameObject", "DuplicateObject", "WaitForObject", "CollectionAction", "QueryCollectionForm", "CreateQueryCollection"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  meta
4
- } from "./chunk-MWNATOXL.mjs";
4
+ } from "./chunk-BDEFTL6K.mjs";
5
5
 
6
6
  // src/capabilities/capabilities.ts
7
7
  import { defineCapability } from "@dxos/app-framework";
@@ -18,4 +18,4 @@ var SpaceCapabilities;
18
18
  export {
19
19
  SpaceCapabilities
20
20
  };
21
- //# sourceMappingURL=chunk-IJVBBVCL.mjs.map
21
+ //# sourceMappingURL=chunk-ZLMFLI7G.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/capabilities.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\n\nimport { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';\nimport { type Space } from '@dxos/react-client/echo';\nimport { type DataType } from '@dxos/schema';\nimport { type DeepReadonly, type Position } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { type ObjectForm, type PluginState } from '../types';\n\nexport namespace SpaceCapabilities {\n export const State = defineCapability<DeepReadonly<PluginState>>(`${meta.id}/capability/state`);\n export const MutableState = defineCapability<PluginState>(`${meta.id}/capability/state`);\n\n export type SettingsSection = { id: string; label: Label; position?: Position };\n export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);\n\n export type onCreateSpace = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;\n export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);\n\n export type OnSchemaAdded = (params: {\n space: Space;\n schema: Schema.Schema.AnyNoContext;\n // TODO(wittjosiah): This is leaky.\n show?: boolean;\n }) => AnyIntentChain;\n export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);\n\n // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).\n export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);\n}\n"],
5
+ "mappings": ";;;;;;AAMA,SAA0CA,wBAAwB;UAQjDC,oBAAAA;qBACFC,QAAQC,iBAA4C,GAAGC,KAAKC,EAAE,mBAAmB;qBACjFC,eAAeH,iBAA8B,GAAGC,KAAKC,EAAE,mBAAmB;qBAG1EE,kBAAkBJ,iBAAkC,GAAGC,KAAKC,EAAE,8BAA8B;qBAG5FG,gBAAgBL,iBAAgC,GAAGC,KAAKC,EAAE,8BAA8B;qBAQxFI,gBAAgBN,iBAAgC,GAAGC,KAAKC,EAAE,6BAA6B;qBAGvFK,aAAaP,iBAAkC,GAAGC,KAAKC,EAAE,yBAAyB;AACjG,GApBiBJ,sBAAAA,oBAAAA,CAAAA,EAAAA;;",
6
+ "names": ["defineCapability", "SpaceCapabilities", "State", "defineCapability", "meta", "id", "MutableState", "SettingsSection", "onCreateSpace", "OnSchemaAdded", "ObjectForm"]
7
+ }
@@ -1,10 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  SpaceEvents
4
- } from "./chunk-SVFKU7EW.mjs";
4
+ } from "./chunk-H4JILUJK.mjs";
5
5
  import {
6
- AppGraphBuilder,
7
- AppGraphSerializer,
8
6
  AwaitingObject,
9
7
  CREATE_OBJECT_DIALOG,
10
8
  CREATE_SPACE_DIALOG,
@@ -13,9 +11,7 @@ import {
13
11
  CreateObjectDialog,
14
12
  CreateSpaceDialog,
15
13
  FullPresence,
16
- IdentityCreated,
17
14
  InlineSyncStatus,
18
- IntentResolver,
19
15
  JOIN_DIALOG,
20
16
  JoinDialog,
21
17
  MembersContainer,
@@ -27,36 +23,41 @@ import {
27
23
  PersistenceStatus,
28
24
  PopoverRenameObject,
29
25
  PopoverRenameSpace,
30
- ReactRoot,
31
- ReactSurface,
32
26
  RecordMain,
33
27
  SchemaContainer,
34
- SchemaDefs,
35
28
  SmallPresence,
36
29
  SmallPresenceLive,
37
30
  SpacePluginSettings,
38
31
  SpacePresence,
39
- SpaceSettings,
40
32
  SpaceSettingsContainer,
41
- SpaceState,
42
- SpacesReady,
43
33
  SyncStatus,
44
34
  SyncStatusIndicator,
45
35
  ViewEditor,
46
36
  useQuerySpaceSchemas
47
- } from "./chunk-BLPXWPLB.mjs";
37
+ } from "./chunk-KKPCCA5O.mjs";
48
38
  import {
39
+ AppGraphBuilder,
40
+ AppGraphSerializer,
41
+ IdentityCreated,
42
+ IntentResolver,
43
+ ReactRoot,
44
+ ReactSurface,
45
+ SchemaDefs,
46
+ SpaceSettings,
47
+ SpaceState,
48
+ SpacesReady,
49
49
  getActiveSpace,
50
50
  useActiveSpace,
51
51
  useInputSurfaceLookup,
52
- usePath
53
- } from "./chunk-Q6AAQLQG.mjs";
52
+ usePath,
53
+ useTypeOptions
54
+ } from "./chunk-PM4ZIGKC.mjs";
54
55
  import {
55
56
  SpaceCapabilities
56
- } from "./chunk-IJVBBVCL.mjs";
57
+ } from "./chunk-ZLMFLI7G.mjs";
57
58
  import {
58
59
  translations
59
- } from "./chunk-5XRYHWL7.mjs";
60
+ } from "./chunk-G4PDWB7G.mjs";
60
61
  import {
61
62
  COMPOSER_SPACE_LOCK,
62
63
  SHARED,
@@ -71,23 +72,23 @@ import {
71
72
  getNestedObjects,
72
73
  getSpaceDisplayName,
73
74
  rxFromQuery
74
- } from "./chunk-XDQXUZMK.mjs";
75
+ } from "./chunk-XEVIWD3O.mjs";
75
76
  import {
76
77
  CollectionAction,
77
78
  SpaceAction,
78
79
  defineObjectForm
79
- } from "./chunk-6WNZW6KT.mjs";
80
+ } from "./chunk-YFQXFQGT.mjs";
80
81
  import {
81
82
  meta
82
- } from "./chunk-MWNATOXL.mjs";
83
+ } from "./chunk-BDEFTL6K.mjs";
83
84
 
84
85
  // src/SpacePlugin.ts
85
- import { Schema } from "effect";
86
+ import * as Schema from "effect/Schema";
86
87
  import { Capabilities, Events, allOf, contributes, createIntent, defineModule, definePlugin, oneOf } from "@dxos/app-framework";
87
- import { Ref, Type } from "@dxos/echo";
88
+ import { Ref, Tag, Type } from "@dxos/echo";
88
89
  import { AttentionEvents } from "@dxos/plugin-attention";
89
90
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
90
- import { DataType, createDefaultSchema, typenameFromQuery } from "@dxos/schema";
91
+ import { DataType, DataTypes, createDefaultSchema, getTypenameFromQuery } from "@dxos/schema";
91
92
  import { translations as shellTranslations } from "@dxos/shell/react";
92
93
  var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin, invitationParam = "spaceInvitationCode", observability = false }) => {
93
94
  const createInvitationUrl = (invitationCode) => {
@@ -128,6 +129,7 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
128
129
  id: Type.getTypename(DataType.Collection),
129
130
  metadata: {
130
131
  icon: "ph--cards-three--regular",
132
+ iconHue: "neutral",
131
133
  // TODO(wittjosiah): Move out of metadata.
132
134
  loadReferences: async (collection) => await Ref.Array.loadAll(collection.objects)
133
135
  }
@@ -138,7 +140,7 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
138
140
  label: (object) => [
139
141
  "typename label",
140
142
  {
141
- ns: typenameFromQuery(object.query),
143
+ ns: getTypenameFromQuery(object.query),
142
144
  count: 2,
143
145
  defaultValue: "New smart collection"
144
146
  }
@@ -149,7 +151,8 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
149
151
  contributes(Capabilities.Metadata, {
150
152
  id: Type.getTypename(DataType.StoredSchema),
151
153
  metadata: {
152
- icon: "ph--database--regular"
154
+ icon: "ph--database--regular",
155
+ iconHue: "green"
153
156
  }
154
157
  }),
155
158
  contributes(Capabilities.Metadata, {
@@ -221,12 +224,8 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
221
224
  id: `${meta.id}/module/schema`,
222
225
  activatesOn: ClientEvents.SetupSchema,
223
226
  activate: () => contributes(ClientCapabilities.Schema, [
224
- DataType.View,
225
- DataType.Event,
226
- DataType.Organization,
227
- DataType.Person,
228
- DataType.Project,
229
- DataType.Task
227
+ Tag.Tag,
228
+ ...DataTypes
230
229
  ])
231
230
  }),
232
231
  defineModule({
@@ -343,6 +342,7 @@ export {
343
342
  useActiveSpace,
344
343
  useInputSurfaceLookup,
345
344
  usePath,
346
- useQuerySpaceSchemas
345
+ useQuerySpaceSchemas,
346
+ useTypeOptions
347
347
  };
348
348
  //# sourceMappingURL=index.mjs.map
@@ -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 { 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 = definePlugin<SpacePluginOptions>(\n meta,\n ({ invitationUrl = window.location.origin, invitationParam = 'spaceInvitationCode', observability = false }) => {\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 [\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 {\n ns: typenameFromQuery(object.query),\n count: 2,\n defaultValue: 'New smart collection',\n },\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);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAc;AAEvB,SACEC,cACAC,QACAC,OACAC,aACAC,cACAC,cACAC,cACAC,aACK;AACP,SAASC,KAAKC,YAAY;AAC1B,SAASC,uBAAuB;AAChC,SAASC,oBAAoBC,oBAAoB;AACjD,SAASC,UAAUC,qBAAqBC,yBAAyB;AACjE,SAASC,gBAAgBC,yBAAyB;AAqC3C,IAAMC,cAAcC,aACzBC,MACA,CAAC,EAAEC,gBAAgBC,OAAOC,SAASC,QAAQC,kBAAkB,uBAAuBC,gBAAgB,MAAK,MAAE;AACzG,QAAMC,sBAAsB,CAACC,mBAAAA;AAC3B,UAAMC,UAAU,IAAIC,IAAIT,aAAAA;AACxBQ,YAAQE,aAAaC,IAAIP,iBAAiBG,cAAAA;AAC1C,WAAOC,QAAQI,SAAQ;EACzB;AAEA,SAAO;IACLC,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;;;;MAIdC,aAAaC,MAAMC,OAAOC,eAAeD,OAAOE,aAAa;MAC7DC,gBAAgB;QAACC,YAAYC;;MAC7BC,UAAUC;IACZ,CAAA;IACAX,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAOC;MACpBK,UAAUE;IACZ,CAAA;IACAZ,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAOS;MACpBH,UAAU,MAAMI,YAAYC,aAAaC,cAAc;WAAIC;WAAiBC;OAAkB;IAChG,CAAA;IACAlB,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAOe;MACpBT,UAAU,MAAM;QACdI,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASC,UAAU;UACxCC,UAAU;YACRC,MAAM;;YAENC,gBAAgB,OAAOC,eAAoC,MAAMC,IAAIC,MAAMC,QAAQH,WAAWI,OAAO;UACvG;QACF,CAAA;QACAlB,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASU,eAAe;UAC7CR,UAAU;YACRS,OAAO,CAACC,WAAqC;cAC3C;cACA;gBACEC,IAAIC,kBAAkBF,OAAOG,KAAK;gBAClCC,OAAO;gBACPC,cAAc;cAChB;;YAEFd,MAAM;UACR;QACF,CAAA;QACAZ,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASkB,YAAY;UAC1ChB,UAAU;YACRC,MAAM;UACR;QACF,CAAA;QACAZ,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASmB,KAAK;UACnCjB,UAAU;YACRC,MAAM;UACR;QACF,CAAA;QACAZ,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASoB,YAAY;UAC1ClB,UAAU;YACRC,MAAM;UACR;QACF,CAAA;QACAZ,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASqB,MAAM;UACpCnB,UAAU;YACRC,MAAM;UACR;QACF,CAAA;QACAZ,YAAYC,aAAaK,UAAU;UACjCnB,IAAIoB,KAAKC,YAAYC,SAASsB,IAAI;UAClCpB,UAAU;YACRC,MAAM;UACR;QACF,CAAA;;IAEJ,CAAA;IACA1B,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAa4C,aAAaC;MAC1BrC,UAAU,MAAM;QACdI,YACEkC,kBAAkBC,YAClBC,iBAAiB;UACfC,cAAc5B,SAASC;UACvB4B,YAAYC,OAAOC,OAAO;YAAEC,MAAMF,OAAOG,SAASH,OAAOI,MAAM;UAAE,CAAA;UACjEC,WAAW,CAACC,UAAUC,aAAaC,iBAAiBC,QAAQH,KAAAA;QAC9D,CAAA,CAAA;QAEF7C,YACEkC,kBAAkBC,YAClBC,iBAAiB;;UAEfC,cAAc5B,SAASU;UACvBmB,YAAYS,iBAAiBE;UAC7BL,WAAW,CAACC,UAAUC,aAAaC,iBAAiBG,uBAAuBL,KAAAA;QAC7E,CAAA,CAAA;QAEF7C,YACEkC,kBAAkBC,YAClBC,iBAAiB;UACfC,cAAc5B,SAASkB;UACvBW,YAAYa,YAAYC;UACxBR,WAAW,CAACC,OAAOQ,YACjBR,MAAMS,WACFR,aAAaK,YAAYI,iBAAiB;YAAEC,OAAOH,QAAQG;YAAOF,UAAUT,MAAMS;UAAS,CAAA,IAC3FR,aAAaK,YAAYM,WAAW;YAClCD,OAAOH,QAAQG;YACff,MAAMI,MAAMJ;YACZiB,QAAQC,oBAAAA;UACV,CAAA;QACR,CAAA,CAAA;;IAGN,CAAA;IACAzE,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAa4C,aAAa4B;MAC1BC,iBAAiB;QAAC7B,aAAaC;;MAC/BrC,UAAUkE;IACZ,CAAA;IACA5E,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAa4C,aAAaC;MAC1BrC,UAAU,MACRI,YAAY+D,mBAAmBxB,QAAQ;QACrC9B,SAASuD;QACTvD,SAASmB;QACTnB,SAASoB;QACTpB,SAASqB;QACTrB,SAASwD;QACTxD,SAASsB;OACV;IACL,CAAA;IACA7C,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAa4C,aAAaC;MAC1BrC,UAAU,MACRI,YAAY+D,mBAAmBG,iBAAiB;QAC9CzD,SAASmB;QACTnB,SAASoB;QACTpB,SAASqB;QACTrB,SAASwD;QACTxD,SAASsB;OACV;IACL,CAAA;IACA7C,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAO6E;MACpBvE,UAAUwE;IACZ,CAAA;IACAlF,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAO+E;;MAEpBR,iBAAiB;QAACnE,YAAY4E;;MAC9B1E,UAAU,MAAM2E,aAAa;QAAE5F;MAAoB,CAAA;IACrD,CAAA;IACAO,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAOkF;MACpB5E,UAAU,CAAC6E,YAAYC,eAAe;QAAED;QAAS9F;QAAqBD;MAAc,CAAA;IACtF,CAAA;IACAQ,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAOE;MACpBI,UAAU+E;IACZ,CAAA;;IAEAzF,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAaE,OAAOsF;MACpBhF,UAAUiF;IACZ,CAAA;IACA3F,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAa4C,aAAa8C;MAC1BrF,gBAAgB;QAACC,YAAYqF;;MAC7BnF,UAAUkF;IACZ,CAAA;IACA5F,aAAa;MACXC,IAAI,GAAGf,KAAKe,EAAE;MACdC,aAAa4F,MACX1F,OAAO2F,iBACP3F,OAAO4F,aACP5F,OAAOsF,eACPO,gBAAgBC,gBAChB1F,YAAYC,YACZqC,aAAaqD,WAAW;MAE1BzF,UAAUyF;IACZ,CAAA;;AAEJ,CAAA;",
6
- "names": ["Schema", "Capabilities", "Events", "allOf", "contributes", "createIntent", "defineModule", "definePlugin", "oneOf", "Ref", "Type", "AttentionEvents", "ClientCapabilities", "ClientEvents", "DataType", "createDefaultSchema", "typenameFromQuery", "translations", "shellTranslations", "SpacePlugin", "definePlugin", "meta", "invitationUrl", "window", "location", "origin", "invitationParam", "observability", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "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"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\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, Tag, Type } from '@dxos/echo';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DataType, DataTypes, createDefaultSchema, getTypenameFromQuery } 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 = definePlugin<SpacePluginOptions>(\n meta,\n ({ invitationUrl = window.location.origin, invitationParam = 'spaceInvitationCode', observability = false }) => {\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 [\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 iconHue: 'neutral',\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 {\n ns: getTypenameFromQuery(object.query),\n count: 2,\n defaultValue: 'New smart collection',\n },\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 iconHue: 'green',\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: () => contributes(ClientCapabilities.Schema, [Tag.Tag, ...DataTypes]),\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);\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "Capabilities", "Events", "allOf", "contributes", "createIntent", "defineModule", "definePlugin", "oneOf", "Ref", "Tag", "Type", "AttentionEvents", "ClientCapabilities", "ClientEvents", "DataType", "DataTypes", "createDefaultSchema", "getTypenameFromQuery", "translations", "shellTranslations", "SpacePlugin", "definePlugin", "meta", "invitationUrl", "window", "location", "origin", "invitationParam", "observability", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "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", "iconHue", "loadReferences", "collection", "Ref", "Array", "loadAll", "objects", "QueryCollection", "label", "object", "ns", "getTypenameFromQuery", "query", "count", "defaultValue", "StoredSchema", "Event", "Organization", "Person", "Task", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "formSchema", "Struct", "name", "optional", "String", "getIntent", "props", "createIntent", "CollectionAction", "Create", "QueryCollectionForm", "CreateQueryCollection", "SpaceAction", "StoredSchemaForm", "options", "typename", "UseStaticSchema", "space", "AddSchema", "schema", "createDefaultSchema", "ClientReady", "activatesBefore", "SchemaDefs", "ClientCapabilities", "Schema", "Tag", "DataTypes", "SchemaWhiteList", "Project", "Startup", "ReactRoot", "SetupReactSurface", "SetupSettingsPanel", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady"]
7
7
  }