@dxos/plugin-space 0.8.4-main.fd6878d → 0.8.4-main.fffef41

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 (366) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
  6. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-VZW75QPJ.mjs → app-graph-builder-DTM7BJ6D.mjs} +114 -97
  10. package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-YPHYVZAP.mjs → app-graph-serializer-TIKXF43P.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-TIKXF43P.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-AFUOMLX6.mjs +167 -0
  14. package/dist/lib/browser/chunk-AFUOMLX6.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PSIBVBTA.mjs → chunk-CKACGS7T.mjs} +576 -500
  16. package/dist/lib/browser/chunk-CKACGS7T.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
  18. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SMB4DGYO.mjs → chunk-KFUMADZF.mjs} +184 -60
  20. package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WAXS2ZVX.mjs → chunk-VGKOXAPE.mjs} +27 -13
  22. package/dist/lib/browser/chunk-VGKOXAPE.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-WJXU4GKV.mjs +19 -0
  26. package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-3UFG6LQQ.mjs → chunk-ZQMSGD5J.mjs} +44 -22
  28. package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +89 -91
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-TS6CCKST.mjs → intent-resolver-3FNTO3VW.mjs} +103 -85
  34. package/dist/lib/browser/intent-resolver-3FNTO3VW.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-Q7VBWBES.mjs +30 -0
  37. package/dist/lib/browser/react-root-Q7VBWBES.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-V3ARS2BP.mjs → react-surface-TTHS332A.mjs} +75 -109
  39. package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-5LBA43X5.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
  41. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-FLLBP5KI.mjs → settings-45PGPO2V.mjs} +5 -5
  43. package/dist/lib/browser/{settings-FLLBP5KI.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-FXEP6XEW.mjs → spaces-ready-QCND4DVY.mjs} +15 -14
  45. package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
  46. package/dist/lib/browser/{state-K3UBPKYP.mjs → state-Q7YRE5KG.mjs} +7 -7
  47. package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
  52. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-XNVQOJLE.mjs → app-graph-builder-FBJFWI4H.mjs} +114 -97
  58. package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-PKVLWV6V.mjs → app-graph-serializer-BESQZAYU.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-BESQZAYU.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-S7MKRQHY.mjs → chunk-6VEONPNZ.mjs} +44 -22
  62. package/dist/lib/node-esm/chunk-6VEONPNZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs +168 -0
  64. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  66. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
  68. package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-CTQMR7E3.mjs → chunk-OK2L7N2F.mjs} +184 -60
  70. package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-HYIZVPOA.mjs → chunk-QBRPYAEL.mjs} +27 -13
  72. package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-KYUHPPRN.mjs → chunk-XGAMJC5C.mjs} +576 -500
  74. package/dist/lib/node-esm/chunk-XGAMJC5C.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
  76. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +89 -91
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-W6P27SCF.mjs → intent-resolver-6O5FSB7Z.mjs} +103 -85
  82. package/dist/lib/node-esm/intent-resolver-6O5FSB7Z.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-N27KETKT.mjs → react-root-K66W3FMA.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-K66W3FMA.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-TNPAUQCM.mjs → react-surface-Y7FTEIDF.mjs} +75 -109
  87. package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-TPWZPDCR.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
  89. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-WKUWY3P6.mjs → settings-6FO65BA6.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-WKUWY3P6.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-PQLLIO5W.mjs → spaces-ready-P7CKVXBE.mjs} +15 -14
  93. package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-4M5A6OSB.mjs → state-362I5BMK.mjs} +7 -7
  95. package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +2 -2
  97. package/dist/types/src/SpacePlugin.d.ts +1 -1
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts +6 -5
  103. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  105. package/dist/types/src/capabilities/index.d.ts +11 -12
  106. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  108. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  110. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  114. package/dist/types/src/capabilities/settings.d.ts +1 -1
  115. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  116. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/state.d.ts +1 -1
  118. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  119. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  120. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  121. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  122. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  123. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  124. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  125. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1704 -4
  126. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +6 -4
  128. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  129. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  130. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  131. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  132. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  133. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  134. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  135. package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
  136. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  137. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1707 -0
  138. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
  139. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  140. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  141. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  142. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  143. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  144. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  145. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  146. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  147. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  148. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  149. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  150. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  151. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  152. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  153. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1540 -0
  154. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  155. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  156. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  157. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  158. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  159. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  160. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  161. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  162. package/dist/types/src/components/RecordArticle.stories.d.ts +1707 -0
  163. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  164. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  165. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  166. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  167. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  168. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  169. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1537 -0
  170. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  172. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  173. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  174. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  175. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  176. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  177. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  178. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1537 -4
  179. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  180. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  181. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1538 -5
  182. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  183. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  184. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  185. package/dist/types/src/components/index.d.ts +10 -14
  186. package/dist/types/src/components/index.d.ts.map +1 -1
  187. package/dist/types/src/events.d.ts.map +1 -1
  188. package/dist/types/src/helpers/index.d.ts +2 -0
  189. package/dist/types/src/helpers/index.d.ts.map +1 -0
  190. package/dist/types/src/helpers/query.d.ts +8 -0
  191. package/dist/types/src/helpers/query.d.ts.map +1 -0
  192. package/dist/types/src/helpers/query.test.d.ts +2 -0
  193. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  194. package/dist/types/src/hooks/index.d.ts +1 -0
  195. package/dist/types/src/hooks/index.d.ts.map +1 -1
  196. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  197. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  198. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  199. package/dist/types/src/hooks/usePath.d.ts +1 -1
  200. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  202. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  203. package/dist/types/src/index.d.ts +1 -0
  204. package/dist/types/src/index.d.ts.map +1 -1
  205. package/dist/types/src/meta.d.ts +0 -1
  206. package/dist/types/src/meta.d.ts.map +1 -1
  207. package/dist/types/src/translations.d.ts +1332 -22
  208. package/dist/types/src/translations.d.ts.map +1 -1
  209. package/dist/types/src/types/types.d.ts +92 -97
  210. package/dist/types/src/types/types.d.ts.map +1 -1
  211. package/dist/types/src/util.d.ts +12 -8
  212. package/dist/types/src/util.d.ts.map +1 -1
  213. package/dist/types/tsconfig.tsbuildinfo +1 -1
  214. package/package.json +65 -59
  215. package/src/SpacePlugin.ts +228 -218
  216. package/src/capabilities/app-graph-builder.ts +184 -135
  217. package/src/capabilities/app-graph-serializer.ts +12 -12
  218. package/src/capabilities/capabilities.ts +17 -11
  219. package/src/capabilities/identity-created.ts +2 -2
  220. package/src/capabilities/index.ts +0 -1
  221. package/src/capabilities/intent-resolver.ts +89 -62
  222. package/src/capabilities/react-root.tsx +4 -3
  223. package/src/capabilities/react-surface.tsx +69 -145
  224. package/src/capabilities/schema-defs.ts +1 -1
  225. package/src/capabilities/spaces-ready.ts +8 -5
  226. package/src/capabilities/state.ts +2 -2
  227. package/src/components/AwaitingObject.tsx +12 -14
  228. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  229. package/src/components/CollectionSection.tsx +8 -6
  230. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +15 -15
  231. package/src/components/CreateDialog/CreateObjectDialog.tsx +48 -31
  232. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  233. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  234. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  235. package/src/components/JoinDialog/index.ts +5 -0
  236. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  237. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +21 -20
  238. package/src/components/MembersContainer/index.ts +5 -0
  239. package/src/components/MenuFooter.tsx +2 -2
  240. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  241. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  242. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  243. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
  244. package/src/components/ObjectRenamePopover/index.ts +5 -0
  245. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
  246. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  247. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  248. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  249. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
  250. package/src/components/ObjectSettings/index.ts +3 -1
  251. package/src/components/RecordArticle.stories.tsx +115 -0
  252. package/src/components/RecordArticle.tsx +114 -0
  253. package/src/components/SchemaContainer.tsx +23 -26
  254. package/src/components/SpacePluginSettings.tsx +15 -10
  255. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +22 -22
  256. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
  257. package/src/components/SpacePresence/index.ts +5 -0
  258. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  259. package/src/components/SpaceRenamePopover/index.ts +5 -0
  260. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +15 -8
  261. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +45 -24
  262. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  263. package/src/components/SyncStatus/SyncStatus.stories.tsx +7 -8
  264. package/src/components/SyncStatus/SyncStatus.tsx +107 -11
  265. package/src/components/ViewEditor.tsx +51 -23
  266. package/src/components/index.ts +7 -8
  267. package/src/events.ts +6 -6
  268. package/src/helpers/index.ts +5 -0
  269. package/src/helpers/query.test.ts +24 -0
  270. package/src/helpers/query.ts +158 -0
  271. package/src/hooks/index.ts +1 -0
  272. package/src/hooks/useActiveSpace.ts +3 -2
  273. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  274. package/src/hooks/usePath.ts +1 -1
  275. package/src/hooks/useTypeOptions.ts +59 -0
  276. package/src/index.ts +1 -0
  277. package/src/meta.ts +6 -3
  278. package/src/translations.ts +26 -10
  279. package/src/types/types.ts +42 -23
  280. package/src/util.tsx +183 -62
  281. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  282. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +0 -88
  283. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +0 -7
  284. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  285. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  286. package/dist/lib/browser/app-graph-builder-VZW75QPJ.mjs.map +0 -7
  287. package/dist/lib/browser/app-graph-serializer-YPHYVZAP.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-3UFG6LQQ.mjs.map +0 -7
  289. package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
  290. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
  291. package/dist/lib/browser/chunk-DYKFFVN6.mjs +0 -94
  292. package/dist/lib/browser/chunk-DYKFFVN6.mjs.map +0 -7
  293. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  294. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  295. package/dist/lib/browser/chunk-PSIBVBTA.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-Q5EEPP3S.mjs +0 -20
  297. package/dist/lib/browser/chunk-Q5EEPP3S.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-SMB4DGYO.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +0 -7
  300. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
  301. package/dist/lib/browser/intent-resolver-TS6CCKST.mjs.map +0 -7
  302. package/dist/lib/browser/react-root-RQGTZ2ZO.mjs +0 -29
  303. package/dist/lib/browser/react-root-RQGTZ2ZO.mjs.map +0 -7
  304. package/dist/lib/browser/react-surface-V3ARS2BP.mjs.map +0 -7
  305. package/dist/lib/browser/schema-defs-5LBA43X5.mjs.map +0 -7
  306. package/dist/lib/browser/schema-tools-LPL35WOJ.mjs +0 -124
  307. package/dist/lib/browser/schema-tools-LPL35WOJ.mjs.map +0 -7
  308. package/dist/lib/browser/spaces-ready-FXEP6XEW.mjs.map +0 -7
  309. package/dist/lib/browser/state-K3UBPKYP.mjs.map +0 -7
  310. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  311. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +0 -89
  312. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +0 -7
  313. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  314. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  315. package/dist/lib/node-esm/app-graph-builder-XNVQOJLE.mjs.map +0 -7
  316. package/dist/lib/node-esm/app-graph-serializer-PKVLWV6V.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs +0 -21
  318. package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs.map +0 -7
  319. package/dist/lib/node-esm/chunk-CTQMR7E3.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
  321. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  323. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  324. package/dist/lib/node-esm/chunk-HYIZVPOA.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-KLG4Y4GY.mjs +0 -96
  326. package/dist/lib/node-esm/chunk-KLG4Y4GY.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-KYUHPPRN.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-S7MKRQHY.mjs.map +0 -7
  329. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
  330. package/dist/lib/node-esm/intent-resolver-W6P27SCF.mjs.map +0 -7
  331. package/dist/lib/node-esm/react-root-N27KETKT.mjs.map +0 -7
  332. package/dist/lib/node-esm/react-surface-TNPAUQCM.mjs.map +0 -7
  333. package/dist/lib/node-esm/schema-defs-TPWZPDCR.mjs.map +0 -7
  334. package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs +0 -126
  335. package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs.map +0 -7
  336. package/dist/lib/node-esm/spaces-ready-PQLLIO5W.mjs.map +0 -7
  337. package/dist/lib/node-esm/state-4M5A6OSB.mjs.map +0 -7
  338. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  339. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  340. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  341. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  342. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  343. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  344. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  345. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  346. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  347. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  348. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  349. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  350. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  351. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  352. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  353. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  354. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  355. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  356. package/dist/types/src/components/RecordMain.d.ts +0 -7
  357. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  358. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  359. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  360. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  361. package/src/capabilities/schema-tool.test.ts +0 -44
  362. package/src/capabilities/schema-tools.ts +0 -125
  363. package/src/components/MembersContainer.stories.tsx +0 -31
  364. package/src/components/ObjectDetailsPanel.tsx +0 -77
  365. package/src/components/PersistenceStatus.tsx +0 -83
  366. package/src/components/RecordMain.tsx +0 -43
@@ -4,15 +4,15 @@
4
4
 
5
5
  import { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
6
6
  import { isSpace } from '@dxos/client/echo';
7
- import { Obj, Type } from '@dxos/echo';
8
- import { DataType } from '@dxos/schema';
7
+ import { Obj } from '@dxos/echo';
8
+ import { Collection } from '@dxos/schema';
9
9
 
10
- import { SPACE_PLUGIN } from '../meta';
10
+ import { meta } from '../meta';
11
11
  import { translations } from '../translations';
12
12
  import { SPACE_TYPE, SpaceAction } from '../types';
13
13
  import { SPACES } from '../util';
14
14
 
15
- const COLLECTION_TYPE = Type.getTypename(DataType.Collection);
15
+ const COLLECTION_TYPE = Collection.Collection.typename;
16
16
 
17
17
  // https://stackoverflow.com/a/19016910
18
18
  const DIRECTORY_TYPE = 'text/directory';
@@ -23,8 +23,8 @@ export default (context: PluginContext) =>
23
23
  inputType: SPACES,
24
24
  outputType: DIRECTORY_TYPE,
25
25
  serialize: (node) => ({
26
- name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',
27
- data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',
26
+ name: translations[0]['en-US'][meta.id]['spaces label'] ?? 'Spaces',
27
+ data: translations[0]['en-US'][meta.id]['spaces label'] ?? 'Spaces',
28
28
  type: DIRECTORY_TYPE,
29
29
  }),
30
30
  deserialize: () => {
@@ -35,8 +35,8 @@ export default (context: PluginContext) =>
35
35
  inputType: SPACE_TYPE,
36
36
  outputType: DIRECTORY_TYPE,
37
37
  serialize: (node) => ({
38
- name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],
39
- data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],
38
+ name: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed space label'],
39
+ data: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed space label'],
40
40
  type: DIRECTORY_TYPE,
41
41
  }),
42
42
  deserialize: async (data) => {
@@ -49,14 +49,14 @@ export default (context: PluginContext) =>
49
49
  inputType: COLLECTION_TYPE,
50
50
  outputType: DIRECTORY_TYPE,
51
51
  serialize: (node) => ({
52
- name: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],
53
- data: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],
52
+ name: node.data.name ?? translations[0]['en-US'][meta.id]['object name placeholder'],
53
+ data: node.data.name ?? translations[0]['en-US'][meta.id]['object name placeholder'],
54
54
  type: DIRECTORY_TYPE,
55
55
  }),
56
56
  deserialize: async (data, ancestors) => {
57
57
  const space = ancestors.find(isSpace);
58
58
  const collection =
59
- ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ??
59
+ ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??
60
60
  space?.properties[COLLECTION_TYPE]?.target;
61
61
  if (!space || !collection) {
62
62
  return;
@@ -66,7 +66,7 @@ export default (context: PluginContext) =>
66
66
  const result = await dispatch(
67
67
  createIntent(SpaceAction.AddObject, {
68
68
  target: collection,
69
- object: Obj.make(DataType.Collection, { name: data.name, objects: [] }),
69
+ object: Obj.make(Collection.Collection, { name: data.name, objects: [] }),
70
70
  }),
71
71
  );
72
72
 
@@ -2,28 +2,34 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema } from 'effect';
5
+ import type * as Schema from 'effect/Schema';
6
6
 
7
7
  import { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';
8
8
  import { type Space } from '@dxos/react-client/echo';
9
- import { type DataType } from '@dxos/schema';
9
+ import { type Collection } from '@dxos/schema';
10
10
  import { type DeepReadonly, type Position } from '@dxos/util';
11
11
 
12
- import { SPACE_PLUGIN } from '../meta';
12
+ import { meta } from '../meta';
13
13
  import { type ObjectForm, type PluginState } from '../types';
14
14
 
15
15
  export namespace SpaceCapabilities {
16
- export const State = defineCapability<DeepReadonly<PluginState>>(`${SPACE_PLUGIN}/capability/state`);
17
- export const MutableState = defineCapability<PluginState>(`${SPACE_PLUGIN}/capability/state`);
16
+ export const State = defineCapability<DeepReadonly<PluginState>>(`${meta.id}/capability/state`);
17
+ export const MutableState = defineCapability<PluginState>(`${meta.id}/capability/state`);
18
18
 
19
19
  export type SettingsSection = { id: string; label: Label; position?: Position };
20
- export const SettingsSection = defineCapability<SettingsSection>(`${SPACE_PLUGIN}/capability/settings-section`);
20
+ export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);
21
21
 
22
- export type OnSpaceCreated = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;
23
- export const OnSpaceCreated = defineCapability<OnSpaceCreated>(`${SPACE_PLUGIN}/capability/on-space-created`);
22
+ export type onCreateSpace = (params: { space: Space; rootCollection: Collection.Collection }) => AnyIntentChain;
23
+ export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);
24
24
 
25
- export type OnSchemaAdded = (params: { space: Space; schema: Schema.Schema.AnyNoContext }) => AnyIntentChain;
26
- export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${SPACE_PLUGIN}/capability/on-schema-added`);
25
+ export type OnSchemaAdded = (params: {
26
+ space: Space;
27
+ schema: Schema.Schema.AnyNoContext;
28
+ // TODO(wittjosiah): This is leaky.
29
+ show?: boolean;
30
+ }) => AnyIntentChain;
31
+ export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
27
32
 
28
- export const ObjectForm = defineCapability<ObjectForm<any>>(`${SPACE_PLUGIN}/capability/object-form`);
33
+ // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).
34
+ export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);
29
35
  }
@@ -6,7 +6,7 @@ import { Capabilities, type PluginContext, contributes } from '@dxos/app-framewo
6
6
  import { Obj, Ref } from '@dxos/echo';
7
7
  import { Migrations } from '@dxos/migrations';
8
8
  import { ClientCapabilities } from '@dxos/plugin-client';
9
- import { DataType } from '@dxos/schema';
9
+ import { Collection } from '@dxos/schema';
10
10
 
11
11
  export default async (context: PluginContext) => {
12
12
  const client = context.getCapability(ClientCapabilities.Client);
@@ -16,7 +16,7 @@ export default async (context: PluginContext) => {
16
16
  await defaultSpace.waitUntilReady();
17
17
 
18
18
  // Create root collection structure.
19
- defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, { objects: [] }));
19
+ defaultSpace.properties[Collection.Collection.typename] = Ref.make(Obj.make(Collection.Collection, { objects: [] }));
20
20
  if (Migrations.versionProperty) {
21
21
  defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;
22
22
  }
@@ -11,7 +11,6 @@ export const IntentResolver = lazy(() => import('./intent-resolver'));
11
11
  export const ReactRoot = lazy(() => import('./react-root'));
12
12
  export const ReactSurface = lazy(() => import('./react-surface'));
13
13
  export const SchemaDefs = lazy(() => import('./schema-defs'));
14
- export const SchemaTools = lazy(() => import('./schema-tools'));
15
14
  export const SpaceSettings = lazy(() => import('./settings'));
16
15
  export const SpaceState = lazy(() => import('./state'));
17
16
  export const SpacesReady = lazy(() => import('./spaces-ready'));
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Effect } from 'effect';
5
+ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import {
8
8
  Capabilities,
@@ -12,16 +12,20 @@ import {
12
12
  createIntent,
13
13
  createResolver,
14
14
  } from '@dxos/app-framework';
15
- import { Obj, Ref, Relation, Type } from '@dxos/echo';
15
+ import { Filter, Obj, Query, Ref, Relation, Type } from '@dxos/echo';
16
+ import { Serializer } from '@dxos/echo-db';
17
+ import { DatabaseService } from '@dxos/functions';
16
18
  import { invariant } from '@dxos/invariant';
17
19
  import { Migrations } from '@dxos/migrations';
18
20
  import { ClientCapabilities } from '@dxos/plugin-client';
19
21
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
20
22
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
21
- import { SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
23
+ import { SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';
22
24
  import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
23
25
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
24
- import { DataType, ProjectionModel } from '@dxos/schema';
26
+ import { iconValues } from '@dxos/react-ui-pickers';
27
+ import { hues } from '@dxos/react-ui-theme';
28
+ import { Collection, ProjectionModel, StoredSchema, getTypenameFromQuery } from '@dxos/schema';
25
29
 
26
30
  import {
27
31
  CREATE_OBJECT_DIALOG,
@@ -29,11 +33,11 @@ import {
29
33
  type CreateObjectDialogProps,
30
34
  JOIN_DIALOG,
31
35
  type JoinDialogProps,
32
- POPOVER_RENAME_OBJECT,
33
- POPOVER_RENAME_SPACE,
36
+ OBJECT_RENAME_POPOVER,
37
+ SPACE_RENAME_POPOVER,
34
38
  } from '../components';
35
39
  import { SpaceEvents } from '../events';
36
- import { SPACE_PLUGIN } from '../meta';
40
+ import { meta } from '../meta';
37
41
  import { CollectionAction, SpaceAction } from '../types';
38
42
  import { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../util';
39
43
 
@@ -69,8 +73,10 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
69
73
  }),
70
74
  createResolver({
71
75
  intent: SpaceAction.Create,
72
- resolve: async ({ name, hue, icon, edgeReplication }) => {
76
+ resolve: async ({ name, hue: hue_, icon: icon_, edgeReplication }) => {
73
77
  const client = context.getCapability(ClientCapabilities.Client);
78
+ const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];
79
+ const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];
74
80
  const space = await client.spaces.create({ name, hue, icon });
75
81
  if (edgeReplication) {
76
82
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
@@ -78,8 +84,8 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
78
84
  await space.waitUntilReady();
79
85
 
80
86
  // Create root collection.
81
- const collection = Obj.make(DataType.Collection, { objects: [] });
82
- space.properties[DataType.Collection.typename] = Ref.make(collection);
87
+ const collection = Obj.make(Collection.Collection, { objects: [] });
88
+ space.properties[Collection.Collection.typename] = Ref.make(collection);
83
89
 
84
90
  // Set current migration version.
85
91
  if (Migrations.versionProperty) {
@@ -87,16 +93,20 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
87
93
  }
88
94
 
89
95
  // Create records smart collection.
90
- const records = Obj.make(DataType.QueryCollection, {
91
- query: { typename: DataType.StoredSchema.typename },
92
- });
93
- collection.objects.push(Ref.make(records));
96
+ collection.objects.push(
97
+ Ref.make(
98
+ Obj.make(Collection.QueryCollection, {
99
+ // NOTE: This is specifically Filter.typename due to current limitations in query collection parsing.
100
+ query: Query.select(Filter.typename(StoredSchema.typename)).ast,
101
+ }),
102
+ ),
103
+ );
94
104
 
95
105
  // Allow other plugins to add default content.
96
106
  await context.activatePromise(SpaceEvents.SpaceCreated);
97
- const onSpaceCreatedCallbacks = context.getCapabilities(SpaceCapabilities.OnSpaceCreated);
98
- const spaceCreatedIntents = onSpaceCreatedCallbacks.map((onSpaceCreated) =>
99
- onSpaceCreated({ space, rootCollection: collection }),
107
+ const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.onCreateSpace);
108
+ const spaceCreatedIntents = onCreateSpaceCallbacks.map((onCreateSpace) =>
109
+ onCreateSpace({ space, rootCollection: collection }),
100
110
  );
101
111
 
102
112
  return {
@@ -254,7 +264,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
254
264
  intents: [
255
265
  createIntent(LayoutAction.UpdatePopover, {
256
266
  part: 'popover',
257
- subject: POPOVER_RENAME_SPACE,
267
+ subject: SPACE_RENAME_POPOVER,
258
268
  options: {
259
269
  anchorId: `dxos.org/ui/${caller}/${space.id}`,
260
270
  props: space,
@@ -321,9 +331,20 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
321
331
  };
322
332
  },
323
333
  }),
334
+ createResolver({
335
+ intent: SpaceAction.Snapshot,
336
+ resolve: async ({ space, query }) => {
337
+ const backup = await new Serializer().export(space.db, query && Query.fromAst(query));
338
+ return {
339
+ data: {
340
+ snapshot: new Blob([JSON.stringify(backup, null, 2)], { type: 'application/json' }),
341
+ },
342
+ };
343
+ },
344
+ }),
324
345
  createResolver({
325
346
  intent: SpaceAction.UseStaticSchema,
326
- resolve: async ({ space, typename }) => {
347
+ resolve: async ({ space, typename, show }) => {
327
348
  const client = context.getCapability(ClientCapabilities.Client);
328
349
  const schema = client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);
329
350
  invariant(schema, `Schema not found: ${typename}`);
@@ -338,7 +359,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
338
359
 
339
360
  await context.activatePromise(SpaceEvents.SchemaAdded);
340
361
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
341
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
362
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
342
363
 
343
364
  return {
344
365
  data: {},
@@ -361,15 +382,21 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
361
382
  }),
362
383
  createResolver({
363
384
  intent: SpaceAction.AddSchema,
364
- resolve: async ({ space, name, schema: schemaInput }) => {
385
+ resolve: async ({ space, name, typename, version, schema: schemaInput, show }) => {
365
386
  const [schema] = await space.db.schemaRegistry.register([schemaInput]);
366
387
  if (name) {
367
388
  schema.storedSchema.name = name;
368
389
  }
390
+ if (typename) {
391
+ schema.storedSchema.typename = typename;
392
+ }
393
+ if (version) {
394
+ schema.storedSchema.version = version;
395
+ }
369
396
 
370
397
  await context.activatePromise(SpaceEvents.SchemaAdded);
371
398
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
372
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
399
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
373
400
 
374
401
  return {
375
402
  data: {
@@ -400,15 +427,16 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
400
427
  resolve: async ({ view, fieldId, deletionData }, undo) => {
401
428
  const space = getSpace(view);
402
429
  invariant(space);
403
- invariant(view.query.typename);
404
- const schema = await space.db.schemaRegistry.query({ typename: view.query.typename }).firstOrUndefined();
430
+ const typename = getTypenameFromQuery(view.query.ast);
431
+ invariant(typename);
432
+ const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();
405
433
  invariant(schema);
406
434
  const projection = new ProjectionModel(schema.jsonSchema, view.projection);
407
435
  if (!undo) {
408
436
  const { deleted, index } = projection.deleteFieldProjection(fieldId);
409
437
  return {
410
438
  undoable: {
411
- message: ['field deleted label', { ns: SPACE_PLUGIN }],
439
+ message: ['field deleted label', { ns: meta.id }],
412
440
  data: { deletionData: { ...deleted, index } },
413
441
  },
414
442
  };
@@ -420,7 +448,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
420
448
  }),
421
449
  createResolver({
422
450
  intent: SpaceAction.OpenCreateObject,
423
- resolve: ({ target, typename, navigable = true, onCreateObject }) => {
451
+ resolve: ({ target, views, typename, initialFormValues, navigable = true, onCreateObject }) => {
424
452
  const state = context.getCapability(SpaceCapabilities.State);
425
453
 
426
454
  return {
@@ -432,12 +460,14 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
432
460
  blockAlign: 'start',
433
461
  props: {
434
462
  target,
463
+ views,
435
464
  typename,
465
+ initialFormValues,
436
466
  onCreateObject,
437
467
  shouldNavigate: navigable
438
468
  ? (object: Obj.Any) => {
439
- const isCollection = Obj.instanceOf(DataType.Collection, object);
440
- const isQueryCollection = Obj.instanceOf(DataType.QueryCollection, object);
469
+ const isCollection = Obj.instanceOf(Collection.Collection, object);
470
+ const isQueryCollection = Obj.instanceOf(Collection.QueryCollection, object);
441
471
  return (!isCollection && !isQueryCollection) || state.navigableCollections;
442
472
  }
443
473
  : () => false,
@@ -461,13 +491,13 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
461
491
  createIntent(LayoutAction.AddToast, {
462
492
  part: 'toast',
463
493
  subject: {
464
- id: `${SPACE_PLUGIN}/space-limit`,
465
- title: ['space limit label', { ns: SPACE_PLUGIN }],
466
- description: ['space limit description', { ns: SPACE_PLUGIN }],
494
+ id: `${meta.id}/space-limit`,
495
+ title: ['space limit label', { ns: meta.id }],
496
+ description: ['space limit description', { ns: meta.id }],
467
497
  duration: 5_000,
468
498
  icon: 'ph--warning--regular',
469
- actionLabel: ['remove deleted objects label', { ns: SPACE_PLUGIN }],
470
- actionAlt: ['remove deleted objects alt', { ns: SPACE_PLUGIN }],
499
+ actionLabel: ['remove deleted objects label', { ns: meta.id }],
500
+ actionAlt: ['remove deleted objects alt', { ns: meta.id }],
471
501
  closeLabel: ['close label', { ns: 'os' }],
472
502
  onAction: () => space.db.coreDatabase.unlinkDeletedObjects(),
473
503
  },
@@ -486,25 +516,18 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
486
516
  };
487
517
  }
488
518
 
489
- if (Obj.instanceOf(DataType.Collection, target)) {
490
- target.objects.push(Ref.make(object));
491
- } else if (isSpace(target) && hidden) {
492
- space.db.add(object);
493
- } else if (isSpace(target)) {
494
- const collection = space.properties[DataType.Collection.typename]?.target;
495
- if (Obj.instanceOf(DataType.Collection, collection)) {
496
- collection.objects.push(Ref.make(object));
497
- } else {
498
- // TODO(wittjosiah): Can't add non-echo objects by including in a collection because of types.
499
- const collection = Obj.make(DataType.Collection, { objects: [Ref.make(object)] });
500
- space.properties[DataType.Collection.typename] = Ref.make(collection);
501
- }
502
- }
519
+ await Effect.gen(function* () {
520
+ yield* Collection.add({
521
+ object,
522
+ target: isSpace(target) ? undefined : target,
523
+ hidden,
524
+ });
525
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.runPromise);
503
526
 
504
527
  return {
505
528
  data: {
506
- id: fullyQualifiedId(object),
507
- subject: [fullyQualifiedId(object)],
529
+ id: Obj.getDXN(object).toString(),
530
+ subject: [Obj.getDXN(object).toString()],
508
531
  object,
509
532
  },
510
533
  intents: [
@@ -553,26 +576,26 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
553
576
  const openObjectIds = new Set<string>(layout.active);
554
577
 
555
578
  if (!undo) {
556
- const parentCollection: DataType.Collection =
557
- target ?? space.properties[DataType.Collection.typename]?.target;
579
+ const parentCollection: Collection.Collection =
580
+ target ?? space.properties[Collection.Collection.typename]?.target;
558
581
  const nestedObjectsList = await Promise.all(objects.map((obj) => getNestedObjects(obj, resolve)));
559
582
 
560
583
  const deletionData = {
561
584
  objects,
562
585
  parentCollection,
563
586
  indices: objects.map((obj) =>
564
- Obj.instanceOf(DataType.Collection, parentCollection)
587
+ Obj.instanceOf(Collection.Collection, parentCollection)
565
588
  ? parentCollection.objects.findIndex((object) => object.target === obj)
566
589
  : -1,
567
590
  ),
568
591
  nestedObjectsList,
569
592
  wasActive: objects
570
593
  .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])
571
- .map((obj) => fullyQualifiedId(obj))
594
+ .map((obj) => Obj.getDXN(obj).toString())
572
595
  .filter((id) => openObjectIds.has(id)),
573
596
  } satisfies SpaceAction.DeletionData;
574
597
 
575
- if (Obj.instanceOf(DataType.Collection, deletionData.parentCollection)) {
598
+ if (Obj.instanceOf(Collection.Collection, deletionData.parentCollection)) {
576
599
  [...deletionData.indices]
577
600
  .sort((a, b) => b - a)
578
601
  .forEach((index: number) => {
@@ -587,7 +610,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
587
610
  });
588
611
  objects.forEach((obj) => space.db.remove(obj));
589
612
 
590
- const undoMessageKey = objects.some((obj) => Obj.instanceOf(DataType.Collection, obj))
613
+ const undoMessageKey = objects.some((obj) => Obj.instanceOf(Collection.Collection, obj))
591
614
  ? 'collection deleted label'
592
615
  : objects.length > 1
593
616
  ? 'objects deleted label'
@@ -596,7 +619,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
596
619
  return {
597
620
  undoable: {
598
621
  // TODO(ZaymonFC): Pluralize if more than one object.
599
- message: [undoMessageKey, { ns: SPACE_PLUGIN }],
622
+ message: [undoMessageKey, { ns: meta.id }],
600
623
  data: { deletionData },
601
624
  },
602
625
  intents:
@@ -614,7 +637,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
614
637
  if (
615
638
  deletionData?.objects?.length &&
616
639
  deletionData.objects.every(Obj.isObject) &&
617
- Obj.instanceOf(DataType.Collection, deletionData.parentCollection)
640
+ Obj.instanceOf(Collection.Collection, deletionData.parentCollection)
618
641
  ) {
619
642
  // Restore the object to the space.
620
643
  const restoredObjects = deletionData.objects.map((obj: Type.Expando) => space.db.add(obj));
@@ -651,9 +674,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
651
674
  intents: [
652
675
  createIntent(LayoutAction.UpdatePopover, {
653
676
  part: 'popover',
654
- subject: POPOVER_RENAME_OBJECT,
677
+ subject: OBJECT_RENAME_POPOVER,
655
678
  options: {
656
- anchorId: `dxos.org/ui/${caller}/${fullyQualifiedId(object)}`,
679
+ anchorId: `dxos.org/ui/${caller}/${Obj.getDXN(object).toString()}`,
657
680
  props: object,
658
681
  },
659
682
  }),
@@ -665,7 +688,6 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
665
688
  resolve: async ({ object, target }) => {
666
689
  const space = isSpace(target) ? target : getSpace(target);
667
690
  invariant(space, 'Space not found.');
668
-
669
691
  const newObject = await cloneObject(object, resolve, space);
670
692
  return {
671
693
  intents: [createIntent(SpaceAction.AddObject, { object: newObject, target })],
@@ -682,13 +704,18 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
682
704
  createResolver({
683
705
  intent: CollectionAction.Create,
684
706
  resolve: async ({ name }) => ({
685
- data: { object: Obj.make(DataType.Collection, { name, objects: [] }) },
707
+ data: { object: Obj.make(Collection.Collection, { name, objects: [] }) },
686
708
  }),
687
709
  }),
688
710
  createResolver({
689
711
  intent: CollectionAction.CreateQueryCollection,
690
712
  resolve: async ({ name, typename }) => ({
691
- data: { object: Obj.make(DataType.QueryCollection, { name, query: { typename } }) },
713
+ data: {
714
+ object: Obj.make(Collection.QueryCollection, {
715
+ name,
716
+ query: Query.select(Filter.typename(typename)).ast,
717
+ }),
718
+ },
692
719
  }),
693
720
  }),
694
721
  ]);
@@ -4,16 +4,17 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { Capabilities, contributes, useCapability } from '@dxos/app-framework';
7
+ import { Capabilities, contributes } from '@dxos/app-framework';
8
+ import { useCapability } from '@dxos/app-framework/react';
8
9
 
9
10
  import { AwaitingObject } from '../components';
10
- import { SPACE_PLUGIN } from '../meta';
11
+ import { meta } from '../meta';
11
12
 
12
13
  import { SpaceCapabilities } from './capabilities';
13
14
 
14
15
  export default () =>
15
16
  contributes(Capabilities.ReactRoot, {
16
- id: SPACE_PLUGIN,
17
+ id: meta.id,
17
18
  root: () => {
18
19
  const state = useCapability(SpaceCapabilities.State);
19
20
  return state.awaiting ? <AwaitingObject id={state.awaiting} /> : null;