@dxos/plugin-space 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549

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 (187) hide show
  1. package/dist/lib/browser/{ObjectDetailsPanel-2BRUBHP6.mjs → ObjectDetailsPanel-ACGHWPDX.mjs} +2 -2
  2. package/dist/lib/browser/{ObjectDetailsPanel-2BRUBHP6.mjs.map → ObjectDetailsPanel-ACGHWPDX.mjs.map} +3 -3
  3. package/dist/lib/browser/{ObjectSettings-5LLWCVEK.mjs → ObjectSettings-U3IH7BMV.mjs} +2 -2
  4. package/dist/lib/browser/{ObjectSettings-5LLWCVEK.mjs.map → ObjectSettings-U3IH7BMV.mjs.map} +3 -3
  5. package/dist/lib/browser/{RecordArticle-SXDRWTTU.mjs → RecordArticle-2PFEBPXY.mjs} +1 -1
  6. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-VQAB3GCQ.mjs → app-graph-builder-HABMCWAI.mjs} +140 -151
  8. package/dist/lib/browser/app-graph-builder-HABMCWAI.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-KSLKMEPP.mjs → app-graph-serializer-G3VFEGTN.mjs} +4 -4
  10. package/dist/lib/browser/chunk-6A3NWBB6.mjs +392 -0
  11. package/dist/lib/browser/chunk-6A3NWBB6.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-K5J7ZB5P.mjs → chunk-C6DAPIFF.mjs} +3 -3
  13. package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-ERQMHU7L.mjs → chunk-GJOZILGC.mjs} +163 -105
  15. package/dist/lib/browser/chunk-GJOZILGC.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-J2BUK5E6.mjs → chunk-KCZ527AM.mjs} +169 -101
  17. package/dist/lib/browser/chunk-KCZ527AM.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-PU5IOFMG.mjs → chunk-P25R3AOK.mjs} +4 -47
  19. package/dist/lib/browser/{chunk-PU5IOFMG.mjs.map → chunk-P25R3AOK.mjs.map} +4 -4
  20. package/dist/lib/browser/{chunk-OLBBSOVI.mjs → chunk-POFUXISV.mjs} +53 -59
  21. package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
  22. package/dist/lib/browser/index.mjs +47 -94
  23. package/dist/lib/browser/index.mjs.map +3 -3
  24. package/dist/lib/browser/{intent-resolver-Q2XWHAVA.mjs → intent-resolver-RZEWNJ2K.mjs} +51 -40
  25. package/dist/lib/browser/intent-resolver-RZEWNJ2K.mjs.map +7 -0
  26. package/dist/lib/browser/meta.json +1 -1
  27. package/dist/lib/browser/{react-root-MM4HADPE.mjs → react-root-JCRD74GI.mjs} +6 -6
  28. package/dist/lib/browser/{react-surface-SGZC3Y4U.mjs → react-surface-VOETEAG3.mjs} +28 -14
  29. package/dist/lib/browser/react-surface-VOETEAG3.mjs.map +7 -0
  30. package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
  31. package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
  32. package/dist/lib/browser/{settings-WKLGKUHQ.mjs → settings-TRLI52I5.mjs} +2 -2
  33. package/dist/lib/browser/{spaces-ready-C5QC2UFL.mjs → spaces-ready-OHGCWZHQ.mjs} +13 -7
  34. package/dist/lib/browser/{spaces-ready-C5QC2UFL.mjs.map → spaces-ready-OHGCWZHQ.mjs.map} +2 -2
  35. package/dist/lib/browser/{state-Q7YRE5KG.mjs → state-C7N6EDDZ.mjs} +2 -2
  36. package/dist/lib/browser/types/index.mjs +9 -3
  37. package/dist/lib/node-esm/{ObjectDetailsPanel-6PZQIQG3.mjs → ObjectDetailsPanel-6OFTT3GG.mjs} +2 -2
  38. package/dist/lib/node-esm/{ObjectDetailsPanel-6PZQIQG3.mjs.map → ObjectDetailsPanel-6OFTT3GG.mjs.map} +3 -3
  39. package/dist/lib/node-esm/{ObjectSettings-OQSBOH7K.mjs → ObjectSettings-YXPJQMJ5.mjs} +2 -2
  40. package/dist/lib/node-esm/{ObjectSettings-OQSBOH7K.mjs.map → ObjectSettings-YXPJQMJ5.mjs.map} +3 -3
  41. package/dist/lib/node-esm/{RecordArticle-NACBH42P.mjs → RecordArticle-SSJ7PULS.mjs} +1 -1
  42. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
  43. package/dist/lib/node-esm/{app-graph-builder-24JCLJPX.mjs → app-graph-builder-T6VJKIOA.mjs} +140 -151
  44. package/dist/lib/node-esm/app-graph-builder-T6VJKIOA.mjs.map +7 -0
  45. package/dist/lib/node-esm/{app-graph-serializer-R723K764.mjs → app-graph-serializer-2NLWWFUB.mjs} +4 -4
  46. package/dist/lib/node-esm/{chunk-TJPQDQNI.mjs → chunk-7EV4SN47.mjs} +4 -47
  47. package/dist/lib/node-esm/{chunk-TJPQDQNI.mjs.map → chunk-7EV4SN47.mjs.map} +4 -4
  48. package/dist/lib/node-esm/{chunk-WC4VBFMA.mjs → chunk-AX3UGL5D.mjs} +53 -59
  49. package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-VH2EBZEV.mjs → chunk-I6FZP42D.mjs} +163 -105
  51. package/dist/lib/node-esm/chunk-I6FZP42D.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-ITQFSFQ3.mjs → chunk-JAMGJUFU.mjs} +169 -101
  53. package/dist/lib/node-esm/chunk-JAMGJUFU.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-Z7BB6HC2.mjs → chunk-WWGV5FJM.mjs} +3 -3
  55. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-X34VDVMY.mjs +393 -0
  57. package/dist/lib/node-esm/chunk-X34VDVMY.mjs.map +7 -0
  58. package/dist/lib/node-esm/index.mjs +47 -94
  59. package/dist/lib/node-esm/index.mjs.map +3 -3
  60. package/dist/lib/node-esm/{intent-resolver-YK4ESSET.mjs → intent-resolver-4PHJWDXW.mjs} +51 -40
  61. package/dist/lib/node-esm/intent-resolver-4PHJWDXW.mjs.map +7 -0
  62. package/dist/lib/node-esm/meta.json +1 -1
  63. package/dist/lib/node-esm/{react-root-5ANDLQMX.mjs → react-root-O5I5CDJ7.mjs} +6 -6
  64. package/dist/lib/node-esm/{react-surface-V7J2QB44.mjs → react-surface-J3XDMU2D.mjs} +28 -14
  65. package/dist/lib/node-esm/react-surface-J3XDMU2D.mjs.map +7 -0
  66. package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
  67. package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
  68. package/dist/lib/node-esm/{settings-RBB5633M.mjs → settings-MNQTKHL7.mjs} +2 -2
  69. package/dist/lib/node-esm/{spaces-ready-SJCXV6YH.mjs → spaces-ready-ZPU24DA2.mjs} +13 -7
  70. package/dist/lib/node-esm/{spaces-ready-SJCXV6YH.mjs.map → spaces-ready-ZPU24DA2.mjs.map} +2 -2
  71. package/dist/lib/node-esm/{state-362I5BMK.mjs → state-45TXZQJ6.mjs} +2 -2
  72. package/dist/lib/node-esm/types/index.mjs +9 -3
  73. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/capabilities.d.ts +9 -4
  76. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/index.d.ts +1 -1
  78. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/repair.d.ts +4 -0
  82. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  84. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  85. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +147 -253
  86. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +14 -7
  88. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  89. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +147 -253
  90. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  92. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +147 -253
  93. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -1
  94. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +3 -3
  95. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  96. package/dist/types/src/components/RecordArticle.stories.d.ts +147 -253
  97. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -1
  98. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  99. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  100. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts +2 -2
  101. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -1
  102. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +147 -253
  103. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +147 -253
  106. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  107. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +147 -253
  108. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  110. package/dist/types/src/components/index.d.ts +2 -2
  111. package/dist/types/src/helpers/query.d.ts +1 -1
  112. package/dist/types/src/helpers/query.d.ts.map +1 -1
  113. package/dist/types/src/hooks/useTypeOptions.d.ts +2 -2
  114. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
  115. package/dist/types/src/translations.d.ts +147 -253
  116. package/dist/types/src/translations.d.ts.map +1 -1
  117. package/dist/types/src/types/form.d.ts +24 -0
  118. package/dist/types/src/types/form.d.ts.map +1 -0
  119. package/dist/types/src/types/index.d.ts +1 -0
  120. package/dist/types/src/types/index.d.ts.map +1 -1
  121. package/dist/types/src/types/types.d.ts +29 -72
  122. package/dist/types/src/types/types.d.ts.map +1 -1
  123. package/dist/types/src/util.d.ts +16 -32
  124. package/dist/types/src/util.d.ts.map +1 -1
  125. package/dist/types/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +54 -50
  127. package/src/SpacePlugin.ts +34 -84
  128. package/src/capabilities/app-graph-builder.ts +130 -227
  129. package/src/capabilities/capabilities.ts +10 -5
  130. package/src/capabilities/index.ts +1 -1
  131. package/src/capabilities/intent-resolver.ts +31 -35
  132. package/src/capabilities/react-surface.tsx +34 -8
  133. package/src/capabilities/repair.ts +57 -0
  134. package/src/capabilities/spaces-ready.ts +7 -1
  135. package/src/components/CreateDialog/CreateObjectDialog.tsx +33 -23
  136. package/src/components/CreateDialog/CreateObjectPanel.tsx +32 -25
  137. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +1 -1
  138. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -5
  139. package/src/components/ObjectSettings/BaseObjectSettings.tsx +1 -1
  140. package/src/components/ObjectSettings/ForeignKeys.tsx +5 -5
  141. package/src/components/RecordArticle.tsx +6 -6
  142. package/src/components/SchemaContainer.tsx +2 -2
  143. package/src/components/SpacePresence/SpacePresence.tsx +2 -2
  144. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +25 -6
  145. package/src/components/ViewEditor.tsx +9 -3
  146. package/src/helpers/query.ts +1 -1
  147. package/src/hooks/useTypeOptions.ts +3 -35
  148. package/src/translations.ts +52 -57
  149. package/src/types/form.ts +75 -0
  150. package/src/types/index.ts +1 -0
  151. package/src/types/types.ts +26 -36
  152. package/src/util.tsx +165 -107
  153. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +0 -7
  154. package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +0 -7
  155. package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-J2BUK5E6.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +0 -7
  158. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs +0 -349
  159. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +0 -7
  160. package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +0 -7
  161. package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +0 -7
  162. package/dist/lib/browser/react-surface-SGZC3Y4U.mjs.map +0 -7
  163. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs +0 -26
  164. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +0 -7
  165. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +0 -7
  166. package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +0 -7
  167. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs +0 -350
  168. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs.map +0 -7
  169. package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +0 -7
  170. package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +0 -7
  171. package/dist/lib/node-esm/chunk-WC4VBFMA.mjs.map +0 -7
  172. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +0 -7
  173. package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +0 -7
  174. package/dist/lib/node-esm/react-surface-V7J2QB44.mjs.map +0 -7
  175. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs +0 -27
  176. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +0 -7
  177. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  178. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  179. package/src/capabilities/schema-defs.ts +0 -31
  180. /package/dist/lib/browser/{app-graph-serializer-KSLKMEPP.mjs.map → app-graph-serializer-G3VFEGTN.mjs.map} +0 -0
  181. /package/dist/lib/browser/{react-root-MM4HADPE.mjs.map → react-root-JCRD74GI.mjs.map} +0 -0
  182. /package/dist/lib/browser/{settings-WKLGKUHQ.mjs.map → settings-TRLI52I5.mjs.map} +0 -0
  183. /package/dist/lib/browser/{state-Q7YRE5KG.mjs.map → state-C7N6EDDZ.mjs.map} +0 -0
  184. /package/dist/lib/node-esm/{app-graph-serializer-R723K764.mjs.map → app-graph-serializer-2NLWWFUB.mjs.map} +0 -0
  185. /package/dist/lib/node-esm/{react-root-5ANDLQMX.mjs.map → react-root-O5I5CDJ7.mjs.map} +0 -0
  186. /package/dist/lib/node-esm/{settings-RBB5633M.mjs.map → settings-MNQTKHL7.mjs.map} +0 -0
  187. /package/dist/lib/node-esm/{state-362I5BMK.mjs.map → state-45TXZQJ6.mjs.map} +0 -0
@@ -3,6 +3,8 @@ import {
3
3
  SpaceEvents
4
4
  } from "./chunk-H4JILUJK.mjs";
5
5
  import {
6
+ AppGraphBuilder,
7
+ AppGraphSerializer,
6
8
  AwaitingObject,
7
9
  CREATE_OBJECT_DIALOG,
8
10
  CREATE_SPACE_DIALOG,
@@ -11,7 +13,9 @@ import {
11
13
  CreateObjectDialog,
12
14
  CreateSpaceDialog,
13
15
  FullPresence,
16
+ IdentityCreated,
14
17
  InlineSyncStatus,
18
+ IntentResolver,
15
19
  JOIN_DIALOG,
16
20
  JoinDialog,
17
21
  MembersContainer,
@@ -20,7 +24,10 @@ import {
20
24
  ObjectDetailsPanel,
21
25
  ObjectRenamePopover,
22
26
  ObjectSettingsContainer,
27
+ ReactRoot,
28
+ ReactSurface,
23
29
  RecordArticle,
30
+ Repair,
24
31
  SPACE_RENAME_POPOVER,
25
32
  SchemaContainer,
26
33
  SmallPresence,
@@ -28,7 +35,10 @@ import {
28
35
  SpacePluginSettings,
29
36
  SpacePresence,
30
37
  SpaceRenamePopover,
38
+ SpaceSettings,
31
39
  SpaceSettingsContainer,
40
+ SpaceState,
41
+ SpacesReady,
32
42
  SyncStatus,
33
43
  SyncStatusIndicator,
34
44
  ViewEditor,
@@ -36,30 +46,20 @@ import {
36
46
  getQueryTarget,
37
47
  resolveSchemaWithClientAndSpace,
38
48
  useQuerySpaceSchemas
39
- } from "./chunk-ITQFSFQ3.mjs";
49
+ } from "./chunk-JAMGJUFU.mjs";
40
50
  import {
41
- AppGraphBuilder,
42
- AppGraphSerializer,
43
- IdentityCreated,
44
- IntentResolver,
45
- ReactRoot,
46
- ReactSurface,
47
- SchemaDefs,
48
- SpaceSettings,
49
- SpaceState,
50
- SpacesReady,
51
51
  getActiveSpace,
52
52
  useActiveSpace,
53
53
  useInputSurfaceLookup,
54
54
  usePath,
55
55
  useTypeOptions
56
- } from "./chunk-TJPQDQNI.mjs";
56
+ } from "./chunk-7EV4SN47.mjs";
57
57
  import {
58
58
  SpaceCapabilities
59
- } from "./chunk-Z7BB6HC2.mjs";
59
+ } from "./chunk-WWGV5FJM.mjs";
60
60
  import {
61
61
  translations
62
- } from "./chunk-WC4VBFMA.mjs";
62
+ } from "./chunk-AX3UGL5D.mjs";
63
63
  import {
64
64
  COMPOSER_SPACE_LOCK,
65
65
  SHARED,
@@ -74,12 +74,11 @@ import {
74
74
  createStaticSchemaNode,
75
75
  getNestedObjects,
76
76
  getSpaceDisplayName
77
- } from "./chunk-VH2EBZEV.mjs";
77
+ } from "./chunk-I6FZP42D.mjs";
78
78
  import {
79
79
  CollectionAction,
80
- SpaceAction,
81
- defineObjectForm
82
- } from "./chunk-2PN7QNGV.mjs";
80
+ SpaceAction
81
+ } from "./chunk-X34VDVMY.mjs";
83
82
  import {
84
83
  meta
85
84
  } from "./chunk-BDEFTL6K.mjs";
@@ -90,7 +89,9 @@ import { Capabilities, Events, allOf, contributes, createIntent, defineModule, d
90
89
  import { Ref, Tag, Type } from "@dxos/echo";
91
90
  import { AttentionEvents } from "@dxos/plugin-attention";
92
91
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
93
- import { Collection, DataTypes, StoredSchema, getTypenameFromQuery } from "@dxos/schema";
92
+ import { translations as componentsTranslations } from "@dxos/react-ui-components";
93
+ import { translations as formTranslations } from "@dxos/react-ui-form";
94
+ import { Collection, DataTypes, createDefaultSchema } from "@dxos/schema";
94
95
  import { translations as shellTranslations } from "@dxos/shell/react";
95
96
  import { AnchoredTo, Employer, Event, HasConnection, HasRelationship, HasSubject, Organization, Person, Project, Task } from "@dxos/types";
96
97
  var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin, invitationParam = "spaceInvitationCode", observability = false }) => {
@@ -121,6 +122,8 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
121
122
  activatesOn: Events.SetupTranslations,
122
123
  activate: () => contributes(Capabilities.Translations, [
123
124
  ...translations,
125
+ ...componentsTranslations,
126
+ ...formTranslations,
124
127
  ...shellTranslations
125
128
  ])
126
129
  }),
@@ -134,28 +137,28 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
134
137
  icon: "ph--cards-three--regular",
135
138
  iconHue: "neutral",
136
139
  // TODO(wittjosiah): Move out of metadata.
137
- loadReferences: async (collection) => await Ref.Array.loadAll(collection.objects)
140
+ loadReferences: async (collection) => await Ref.Array.loadAll(collection.objects),
141
+ inputSchema: Schema.Struct({
142
+ name: Schema.optional(Schema.String)
143
+ }),
144
+ createObjectIntent: (props) => createIntent(CollectionAction.Create, props),
145
+ addToCollectionOnCreate: true
138
146
  }
139
147
  }),
140
148
  contributes(Capabilities.Metadata, {
141
- id: Type.getTypename(Collection.QueryCollection),
142
- metadata: {
143
- label: (object) => [
144
- "typename label",
145
- {
146
- ns: getTypenameFromQuery(object.query),
147
- count: 2,
148
- defaultValue: "New smart collection"
149
- }
150
- ],
151
- icon: "ph--funnel-simple--regular"
152
- }
153
- }),
154
- contributes(Capabilities.Metadata, {
155
- id: Type.getTypename(StoredSchema),
149
+ id: Type.getTypename(Type.PersistentType),
156
150
  metadata: {
157
151
  icon: "ph--database--regular",
158
- iconHue: "green"
152
+ iconHue: "green",
153
+ inputSchema: SpaceAction.StoredSchemaForm,
154
+ createObjectIntent: (props, options) => props.typename ? createIntent(SpaceAction.UseStaticSchema, {
155
+ space: options.space,
156
+ typename: props.typename
157
+ }) : createIntent(SpaceAction.AddSchema, {
158
+ space: options.space,
159
+ name: props.name,
160
+ schema: createDefaultSchema()
161
+ })
159
162
  }
160
163
  }),
161
164
  contributes(Capabilities.Metadata, {
@@ -184,76 +187,21 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
184
187
  })
185
188
  ]
186
189
  }),
187
- defineModule({
188
- id: `${meta.id}/module/object-form`,
189
- activatesOn: ClientEvents.SetupSchema,
190
- activate: () => [
191
- contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
192
- objectSchema: Collection.Collection,
193
- formSchema: Schema.Struct({
194
- name: Schema.optional(Schema.String)
195
- }),
196
- getIntent: (props) => createIntent(CollectionAction.Create, props)
197
- })),
198
- contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
199
- // TODO(wittjosiah): Remove cast.
200
- objectSchema: Collection.QueryCollection,
201
- formSchema: CollectionAction.QueryCollectionForm,
202
- getIntent: (props) => createIntent(CollectionAction.CreateQueryCollection, props)
203
- })),
204
- contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
205
- objectSchema: StoredSchema,
206
- formSchema: SpaceAction.StoredSchemaForm,
207
- getIntent: (props, options) => props.typename ? createIntent(SpaceAction.UseStaticSchema, {
208
- space: options.space,
209
- typename: props.typename
210
- }) : createIntent(SpaceAction.AddSchema, {
211
- space: options.space,
212
- name: props.name,
213
- // TODO(burdon): Import createDefaultSchema when it's exported from @dxos/schema
214
- schema: Schema.Struct({
215
- title: Schema.optional(Schema.String),
216
- status: Schema.optional(Schema.Literal("todo", "in-progress", "done")),
217
- description: Schema.optional(Schema.String)
218
- })
219
- })
220
- }))
221
- ]
222
- }),
223
- defineModule({
224
- id: `${meta.id}/module/schema-defs`,
225
- activatesOn: ClientEvents.ClientReady,
226
- activatesBefore: [
227
- ClientEvents.SetupSchema
228
- ],
229
- activate: SchemaDefs
230
- }),
231
190
  defineModule({
232
191
  id: `${meta.id}/module/schema`,
233
192
  activatesOn: ClientEvents.SetupSchema,
234
193
  activate: () => contributes(ClientCapabilities.Schema, [
235
- Tag.Tag,
236
- Event.Event,
237
- Organization.Organization,
238
- Person.Person,
239
- Project.Project,
240
- Task.Task,
194
+ ...DataTypes,
241
195
  AnchoredTo.AnchoredTo,
242
196
  Employer.Employer,
197
+ Event.Event,
243
198
  HasConnection.HasConnection,
244
199
  HasRelationship.HasRelationship,
245
200
  HasSubject.HasSubject,
246
- ...DataTypes
247
- ])
248
- }),
249
- defineModule({
250
- id: `${meta.id}/module/whitelist-schema`,
251
- activatesOn: ClientEvents.SetupSchema,
252
- activate: () => contributes(ClientCapabilities.SchemaWhiteList, [
253
- Event.Event,
254
201
  Organization.Organization,
255
202
  Person.Person,
256
203
  Project.Project,
204
+ Tag.Tag,
257
205
  Task.Task
258
206
  ])
259
207
  }),
@@ -305,6 +253,11 @@ var SpacePlugin = definePlugin(meta, ({ invitationUrl = window.location.origin,
305
253
  id: `${meta.id}/module/spaces-ready`,
306
254
  activatesOn: allOf(Events.DispatcherReady, Events.LayoutReady, Events.AppGraphReady, AttentionEvents.AttentionReady, SpaceEvents.StateReady, ClientEvents.SpacesReady),
307
255
  activate: SpacesReady
256
+ }),
257
+ defineModule({
258
+ id: `${meta.id}/module/repair`,
259
+ activatesOn: ClientEvents.SpacesReady,
260
+ activate: Repair
308
261
  })
309
262
  ];
310
263
  });
@@ -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 * 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 { Collection, DataTypes, StoredSchema, getTypenameFromQuery } from '@dxos/schema';\nimport { translations as shellTranslations } from '@dxos/shell/react';\nimport {\n AnchoredTo,\n Employer,\n Event,\n HasConnection,\n HasRelationship,\n HasSubject,\n Organization,\n Person,\n Project,\n Task,\n} from '@dxos/types';\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: Collection.Collection.typename,\n metadata: {\n icon: 'ph--cards-three--regular',\n iconHue: 'neutral',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: Collection.Collection) => await Ref.Array.loadAll(collection.objects),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(Collection.QueryCollection),\n metadata: {\n label: (object: Collection.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(StoredSchema),\n metadata: {\n icon: 'ph--database--regular',\n iconHue: 'green',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Event.Event.typename,\n metadata: {\n icon: 'ph--calendar-dot--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Organization.Organization.typename,\n metadata: {\n icon: 'ph--building-office--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Person.Person.typename,\n metadata: {\n icon: 'ph--user--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Task.Task.typename,\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: Collection.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: Collection.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: 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 // TODO(burdon): Import createDefaultSchema when it's exported from @dxos/schema\n schema: Schema.Struct({\n title: Schema.optional(Schema.String),\n status: Schema.optional(Schema.Literal('todo', 'in-progress', 'done')),\n description: Schema.optional(Schema.String),\n }),\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 Tag.Tag,\n Event.Event,\n Organization.Organization,\n Person.Person,\n Project.Project,\n Task.Task,\n AnchoredTo.AnchoredTo,\n Employer.Employer,\n HasConnection.HasConnection,\n HasRelationship.HasRelationship,\n HasSubject.HasSubject,\n ...DataTypes,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/whitelist-schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.SchemaWhiteList, [\n Event.Event,\n Organization.Organization,\n Person.Person,\n Project.Project,\n Task.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", "Collection", "DataTypes", "StoredSchema", "getTypenameFromQuery", "translations", "shellTranslations", "AnchoredTo", "Employer", "Event", "HasConnection", "HasRelationship", "HasSubject", "Organization", "Person", "Project", "Task", "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", "Collection", "typename", "metadata", "icon", "iconHue", "loadReferences", "collection", "Ref", "Array", "loadAll", "objects", "Type", "getTypename", "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", "UseStaticSchema", "space", "AddSchema", "schema", "title", "status", "Literal", "description", "ClientReady", "activatesBefore", "SchemaDefs", "ClientCapabilities", "Schema", "Tag", "Project", "AnchoredTo", "Employer", "HasConnection", "HasRelationship", "HasSubject", "DataTypes", "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 { translations as componentsTranslations } from '@dxos/react-ui-components';\nimport { translations as formTranslations } from '@dxos/react-ui-form';\nimport { Collection, DataTypes, createDefaultSchema } from '@dxos/schema';\nimport { translations as shellTranslations } from '@dxos/shell/react';\nimport {\n AnchoredTo,\n Employer,\n Event,\n HasConnection,\n HasRelationship,\n HasSubject,\n Organization,\n Person,\n Project,\n Task,\n} from '@dxos/types';\n\nimport {\n AppGraphBuilder,\n AppGraphSerializer,\n IdentityCreated,\n IntentResolver,\n ReactRoot,\n ReactSurface,\n Repair,\n SpaceSettings,\n SpaceState,\n SpacesReady,\n} from './capabilities';\nimport { SpaceEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\nimport { CollectionAction, type CreateObjectIntent, SpaceAction } from './types';\n\nexport type SpacePluginOptions = {\n /**\n * Base URL for the invitation link.\n */\n invitationUrl?: string;\n\n /**\n * Query parameter for the invitation code.\n */\n invitationParam?: string;\n\n /**\n * Whether to send observability events.\n */\n observability?: boolean;\n};\n\nexport const SpacePlugin = 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: () =>\n contributes(Capabilities.Translations, [\n ...translations,\n ...componentsTranslations,\n ...formTranslations,\n ...shellTranslations,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: Collection.Collection.typename,\n metadata: {\n icon: 'ph--cards-three--regular',\n iconHue: 'neutral',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (collection: Collection.Collection) => await Ref.Array.loadAll(collection.objects),\n inputSchema: Schema.Struct({ name: Schema.optional(Schema.String) }),\n createObjectIntent: ((props) =>\n createIntent(CollectionAction.Create, props)) satisfies CreateObjectIntent,\n addToCollectionOnCreate: true,\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Type.getTypename(Type.PersistentType),\n metadata: {\n icon: 'ph--database--regular',\n iconHue: 'green',\n inputSchema: SpaceAction.StoredSchemaForm,\n createObjectIntent: ((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 })) satisfies CreateObjectIntent,\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Event.Event.typename,\n metadata: {\n icon: 'ph--calendar-dot--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Organization.Organization.typename,\n metadata: {\n icon: 'ph--building-office--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Person.Person.typename,\n metadata: {\n icon: 'ph--user--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: Task.Task.typename,\n metadata: {\n icon: 'ph--check-circle--regular',\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () =>\n contributes(ClientCapabilities.Schema, [\n ...DataTypes,\n AnchoredTo.AnchoredTo,\n Employer.Employer,\n Event.Event,\n HasConnection.HasConnection,\n HasRelationship.HasRelationship,\n HasSubject.HasSubject,\n Organization.Organization,\n Person.Person,\n Project.Project,\n Tag.Tag,\n Task.Task,\n ]),\n }),\n defineModule({\n id: `${meta.id}/module/react-root`,\n activatesOn: Events.Startup,\n activate: ReactRoot,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the settings dialog is loaded when surfaces activation is more granular.\n activatesBefore: [SpaceEvents.SetupSettingsPanel],\n activate: () => ReactSurface({ createInvitationUrl }),\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: (context) => IntentResolver({ context, createInvitationUrl, observability }),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n // TODO(wittjosiah): This could probably be deferred.\n defineModule({\n id: `${meta.id}/module/app-graph-serializer`,\n activatesOn: Events.AppGraphReady,\n activate: AppGraphSerializer,\n }),\n defineModule({\n id: `${meta.id}/module/identity-created`,\n activatesOn: ClientEvents.IdentityCreated,\n activatesAfter: [SpaceEvents.DefaultSpaceReady],\n activate: IdentityCreated,\n }),\n defineModule({\n id: `${meta.id}/module/spaces-ready`,\n activatesOn: allOf(\n Events.DispatcherReady,\n Events.LayoutReady,\n Events.AppGraphReady,\n AttentionEvents.AttentionReady,\n SpaceEvents.StateReady,\n ClientEvents.SpacesReady,\n ),\n activate: SpacesReady,\n }),\n defineModule({\n id: `${meta.id}/module/repair`,\n activatesOn: ClientEvents.SpacesReady,\n activate: Repair,\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", "translations", "componentsTranslations", "formTranslations", "Collection", "DataTypes", "createDefaultSchema", "shellTranslations", "AnchoredTo", "Employer", "Event", "HasConnection", "HasRelationship", "HasSubject", "Organization", "Person", "Project", "Task", "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", "componentsTranslations", "formTranslations", "shellTranslations", "SetupMetadata", "Metadata", "Collection", "typename", "metadata", "icon", "iconHue", "loadReferences", "collection", "Ref", "Array", "loadAll", "objects", "inputSchema", "Struct", "name", "optional", "String", "createObjectIntent", "props", "createIntent", "CollectionAction", "Create", "addToCollectionOnCreate", "Type", "getTypename", "PersistentType", "SpaceAction", "StoredSchemaForm", "options", "UseStaticSchema", "space", "AddSchema", "schema", "createDefaultSchema", "Event", "Organization", "Person", "Task", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "DataTypes", "AnchoredTo", "Employer", "HasConnection", "HasRelationship", "HasSubject", "Project", "Tag", "Startup", "ReactRoot", "SetupReactSurface", "activatesBefore", "SetupSettingsPanel", "ReactSurface", "SetupIntentResolver", "context", "IntentResolver", "AppGraphBuilder", "AppGraphReady", "AppGraphSerializer", "IdentityCreated", "DefaultSpaceReady", "allOf", "DispatcherReady", "LayoutReady", "AttentionEvents", "AttentionReady", "SpacesReady", "Repair"]
7
7
  }
@@ -8,20 +8,20 @@ import {
8
8
  JOIN_DIALOG,
9
9
  OBJECT_RENAME_POPOVER,
10
10
  SPACE_RENAME_POPOVER
11
- } from "./chunk-ITQFSFQ3.mjs";
12
- import "./chunk-TJPQDQNI.mjs";
11
+ } from "./chunk-JAMGJUFU.mjs";
12
+ import "./chunk-7EV4SN47.mjs";
13
13
  import {
14
14
  SpaceCapabilities
15
- } from "./chunk-Z7BB6HC2.mjs";
15
+ } from "./chunk-WWGV5FJM.mjs";
16
16
  import {
17
17
  COMPOSER_SPACE_LOCK,
18
18
  cloneObject,
19
19
  getNestedObjects
20
- } from "./chunk-VH2EBZEV.mjs";
20
+ } from "./chunk-I6FZP42D.mjs";
21
21
  import {
22
22
  CollectionAction,
23
23
  SpaceAction
24
- } from "./chunk-2PN7QNGV.mjs";
24
+ } from "./chunk-X34VDVMY.mjs";
25
25
  import {
26
26
  meta
27
27
  } from "./chunk-BDEFTL6K.mjs";
@@ -29,7 +29,8 @@ import {
29
29
  // src/capabilities/intent-resolver.ts
30
30
  import * as Effect from "effect/Effect";
31
31
  import { Capabilities, LayoutAction, contributes, createIntent, createResolver } from "@dxos/app-framework";
32
- import { Filter, Obj, Query, Ref, Relation, Type } from "@dxos/echo";
32
+ import { Obj, Query, Ref, Relation, Type } from "@dxos/echo";
33
+ import { Serializer } from "@dxos/echo-db";
33
34
  import { DatabaseService } from "@dxos/functions";
34
35
  import { invariant } from "@dxos/invariant";
35
36
  import { Migrations } from "@dxos/migrations";
@@ -41,9 +42,9 @@ import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
41
42
  import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
42
43
  import { iconValues } from "@dxos/react-ui-pickers";
43
44
  import { hues } from "@dxos/react-ui-theme";
44
- import { Collection, ProjectionModel, StoredSchema, getTypenameFromQuery } from "@dxos/schema";
45
+ import { Collection, ProjectionModel, getTypenameFromQuery } from "@dxos/schema";
45
46
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/intent-resolver.ts";
46
- var SPACE_MAX_OBJECTS = 500;
47
+ var SPACE_MAX_OBJECTS = 750;
47
48
  var intent_resolver_default = (({ context, observability, createInvitationUrl }) => {
48
49
  const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
49
50
  return contributes(Capabilities.IntentResolver, [
@@ -83,14 +84,14 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
83
84
  if (Migrations.versionProperty) {
84
85
  space.properties[Migrations.versionProperty] = Migrations.targetVersion;
85
86
  }
86
- collection.objects.push(Ref.make(Obj.make(Collection.QueryCollection, {
87
- // NOTE: This is specifically Filter.typename due to current limitations in query collection parsing.
88
- query: Query.select(Filter.typename(StoredSchema.typename)).ast
87
+ collection.objects.push(Ref.make(Collection.makeManaged({
88
+ key: Type.getTypename(Type.PersistentType)
89
89
  })));
90
90
  await context.activatePromise(SpaceEvents.SpaceCreated);
91
- const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.onCreateSpace);
91
+ const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.OnCreateSpace);
92
92
  const spaceCreatedIntents = onCreateSpaceCallbacks.map((onCreateSpace) => onCreateSpace({
93
93
  space,
94
+ isDefault: false,
94
95
  rootCollection: collection
95
96
  }));
96
97
  return {
@@ -307,6 +308,21 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
307
308
  };
308
309
  }
309
310
  }),
311
+ createResolver({
312
+ intent: SpaceAction.Snapshot,
313
+ resolve: async ({ space, query }) => {
314
+ const backup = await new Serializer().export(space.db, query && Query.fromAst(query));
315
+ return {
316
+ data: {
317
+ snapshot: new Blob([
318
+ JSON.stringify(backup, null, 2)
319
+ ], {
320
+ type: "application/json"
321
+ })
322
+ }
323
+ };
324
+ }
325
+ }),
310
326
  createResolver({
311
327
  intent: SpaceAction.UseStaticSchema,
312
328
  resolve: async ({ space, typename, show }) => {
@@ -314,7 +330,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
314
330
  const schema = client.graph.schemaRegistry.schemas.find((schema2) => Type.getTypename(schema2) === typename);
315
331
  invariant(schema, `Schema not found: ${typename}`, {
316
332
  F: __dxlog_file,
317
- L: 338,
333
+ L: 344,
318
334
  S: void 0,
319
335
  A: [
320
336
  "schema",
@@ -401,7 +417,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
401
417
  const space = getSpace(view);
402
418
  invariant(space, void 0, {
403
419
  F: __dxlog_file,
404
- L: 417,
420
+ L: 423,
405
421
  S: void 0,
406
422
  A: [
407
423
  "space",
@@ -411,7 +427,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
411
427
  const typename = getTypenameFromQuery(view.query.ast);
412
428
  invariant(typename, void 0, {
413
429
  F: __dxlog_file,
414
- L: 419,
430
+ L: 425,
415
431
  S: void 0,
416
432
  A: [
417
433
  "typename",
@@ -423,7 +439,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
423
439
  }).firstOrUndefined();
424
440
  invariant(schema, void 0, {
425
441
  F: __dxlog_file,
426
- L: 421,
442
+ L: 427,
427
443
  S: void 0,
428
444
  A: [
429
445
  "schema",
@@ -477,8 +493,8 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
477
493
  onCreateObject,
478
494
  shouldNavigate: navigable ? (object) => {
479
495
  const isCollection = Obj.instanceOf(Collection.Collection, object);
480
- const isQueryCollection = Obj.instanceOf(Collection.QueryCollection, object);
481
- return !isCollection && !isQueryCollection || state.navigableCollections;
496
+ const isSystemCollection = Obj.instanceOf(Collection.Managed, object);
497
+ return !isCollection && !isSystemCollection || state.navigableCollections;
482
498
  } : () => false
483
499
  }
484
500
  }
@@ -493,7 +509,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
493
509
  const space = isSpace(target) ? target : getSpace(target);
494
510
  invariant(space, "Space not found.", {
495
511
  F: __dxlog_file,
496
- L: 473,
512
+ L: 479,
497
513
  S: void 0,
498
514
  A: [
499
515
  "space",
@@ -606,7 +622,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
606
622
  const space = getSpace(objects[0]);
607
623
  invariant(space && objects.every((obj) => Obj.isObject(obj) && getSpace(obj) === space), void 0, {
608
624
  F: __dxlog_file,
609
- L: 563,
625
+ L: 569,
610
626
  S: void 0,
611
627
  A: [
612
628
  "space && objects.every((obj) => Obj.isObject(obj) && getSpace(obj) === space)",
@@ -640,16 +656,22 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
640
656
  space.db.remove(obj);
641
657
  });
642
658
  objects.forEach((obj) => space.db.remove(obj));
643
- const undoMessageKey = objects.some((obj) => Obj.instanceOf(Collection.Collection, obj)) ? "collection deleted label" : objects.length > 1 ? "objects deleted label" : "object deleted label";
659
+ const undoMessageLabel = objects.length === 1 ? [
660
+ "object deleted label",
661
+ {
662
+ ns: Obj.getTypename(objects[0]) ?? meta.id,
663
+ defaultValue: "Object deleted"
664
+ }
665
+ ] : [
666
+ "objects deleted label",
667
+ {
668
+ ns: meta.id
669
+ }
670
+ ];
644
671
  return {
645
672
  undoable: {
646
673
  // TODO(ZaymonFC): Pluralize if more than one object.
647
- message: [
648
- undoMessageKey,
649
- {
650
- ns: meta.id
651
- }
652
- ],
674
+ message: undoMessageLabel,
653
675
  data: {
654
676
  deletionData: deletionData2
655
677
  }
@@ -708,7 +730,7 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
708
730
  const space = isSpace(target) ? target : getSpace(target);
709
731
  invariant(space, "Space not found.", {
710
732
  F: __dxlog_file,
711
- L: 678,
733
+ L: 685,
712
734
  S: void 0,
713
735
  A: [
714
736
  "space",
@@ -743,21 +765,10 @@ var intent_resolver_default = (({ context, observability, createInvitationUrl })
743
765
  })
744
766
  }
745
767
  })
746
- }),
747
- createResolver({
748
- intent: CollectionAction.CreateQueryCollection,
749
- resolve: async ({ name, typename }) => ({
750
- data: {
751
- object: Obj.make(Collection.QueryCollection, {
752
- name,
753
- query: Query.select(Filter.typename(typename)).ast
754
- })
755
- }
756
- })
757
768
  })
758
769
  ]);
759
770
  });
760
771
  export {
761
772
  intent_resolver_default as default
762
773
  };
763
- //# sourceMappingURL=intent-resolver-YK4ESSET.mjs.map
774
+ //# sourceMappingURL=intent-resolver-4PHJWDXW.mjs.map