@dxos/plugin-space 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77

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 (269) hide show
  1. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs +31 -0
  2. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs +90 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-ETI5YBTH.mjs.map +7 -0
  5. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
  6. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-PMDF6PJV.mjs → app-graph-builder-W7RVDAUA.mjs} +202 -48
  8. package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.mjs → app-graph-serializer-VLHVTDX4.mjs} +14 -14
  10. package/dist/lib/browser/app-graph-serializer-VLHVTDX4.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-GVTXQCIW.mjs → chunk-2BFVC5K6.mjs} +431 -373
  12. package/dist/lib/browser/chunk-2BFVC5K6.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-E2I747A7.mjs +20 -0
  14. package/dist/lib/browser/chunk-E2I747A7.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
  16. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-ELJDGQTO.mjs} +3 -3
  18. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs.map → chunk-ELJDGQTO.mjs.map} +3 -3
  19. package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
  20. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-S6NY637J.mjs → chunk-JCHSUOPF.mjs} +70 -10
  22. package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-WBSEOLEM.mjs → chunk-PN27K4I7.mjs} +209 -54
  24. package/dist/lib/browser/chunk-PN27K4I7.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-6VLSHG4A.mjs → chunk-ZIZ2JLW6.mjs} +71 -9
  26. package/dist/lib/browser/chunk-ZIZ2JLW6.mjs.map +7 -0
  27. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
  28. package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
  29. package/dist/lib/browser/index.mjs +95 -26
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/{intent-resolver-WK5WYFH3.mjs → intent-resolver-HA7DPAUE.mjs} +185 -30
  32. package/dist/lib/browser/intent-resolver-HA7DPAUE.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/{react-root-7S6FIC5G.mjs → react-root-YQUJU64P.mjs} +11 -11
  35. package/dist/lib/browser/react-root-YQUJU64P.mjs.map +7 -0
  36. package/dist/lib/browser/{react-surface-6C3YJNDK.mjs → react-surface-HTXYMRSW.mjs} +78 -46
  37. package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +7 -0
  38. package/dist/lib/browser/{schema-defs-K3B3OAH4.mjs → schema-defs-R56ZDBZ7.mjs} +5 -5
  39. package/dist/lib/browser/schema-defs-R56ZDBZ7.mjs.map +7 -0
  40. package/dist/lib/browser/{settings-XNWYRWNM.mjs → settings-5XPQMSPO.mjs} +5 -5
  41. package/dist/lib/browser/{settings-XNWYRWNM.mjs.map → settings-5XPQMSPO.mjs.map} +1 -1
  42. package/dist/lib/browser/{spaces-ready-K7NSNBHM.mjs → spaces-ready-YY77ANIF.mjs} +17 -15
  43. package/dist/lib/browser/spaces-ready-YY77ANIF.mjs.map +7 -0
  44. package/dist/lib/browser/{state-522XTUR4.mjs → state-Y4RVCG4A.mjs} +7 -7
  45. package/dist/lib/browser/state-Y4RVCG4A.mjs.map +7 -0
  46. package/dist/lib/browser/types/index.mjs +2 -2
  47. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs +32 -0
  48. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
  49. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs +91 -0
  50. package/dist/lib/node-esm/ObjectDetailsPanel-TQ5GN4QJ.mjs.map +7 -0
  51. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
  52. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-TO72W6MI.mjs → app-graph-builder-5ZJJUMQI.mjs} +202 -48
  54. package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +7 -0
  55. package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.mjs → app-graph-serializer-EZJSGJUT.mjs} +14 -14
  56. package/dist/lib/node-esm/app-graph-serializer-EZJSGJUT.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-SXD6T2N4.mjs → chunk-5XRYHWL7.mjs} +71 -9
  58. package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-2THX6G4C.mjs → chunk-6WNZW6KT.mjs} +70 -10
  60. package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-OUBADVJE.mjs → chunk-BLPXWPLB.mjs} +431 -373
  62. package/dist/lib/node-esm/chunk-BLPXWPLB.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-IJVBBVCL.mjs +21 -0
  64. package/dist/lib/node-esm/chunk-IJVBBVCL.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
  66. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-Q6AAQLQG.mjs} +3 -3
  68. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs.map → chunk-Q6AAQLQG.mjs.map} +3 -3
  69. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
  70. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-HJJHLWKY.mjs → chunk-XDQXUZMK.mjs} +209 -54
  72. package/dist/lib/node-esm/chunk-XDQXUZMK.mjs.map +7 -0
  73. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
  74. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
  75. package/dist/lib/node-esm/index.mjs +95 -26
  76. package/dist/lib/node-esm/index.mjs.map +3 -3
  77. package/dist/lib/node-esm/{intent-resolver-HSR27ME4.mjs → intent-resolver-LQNHMPIX.mjs} +185 -30
  78. package/dist/lib/node-esm/intent-resolver-LQNHMPIX.mjs.map +7 -0
  79. package/dist/lib/node-esm/meta.json +1 -1
  80. package/dist/lib/node-esm/{react-root-HUK3ANLV.mjs → react-root-UTLJEIKE.mjs} +11 -11
  81. package/dist/lib/node-esm/react-root-UTLJEIKE.mjs.map +7 -0
  82. package/dist/lib/node-esm/{react-surface-AGAWX7DD.mjs → react-surface-LYDYON3U.mjs} +78 -46
  83. package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +7 -0
  84. package/dist/lib/node-esm/{schema-defs-4MCDG4DV.mjs → schema-defs-7IMJPIWS.mjs} +5 -5
  85. package/dist/lib/node-esm/schema-defs-7IMJPIWS.mjs.map +7 -0
  86. package/dist/lib/node-esm/{settings-YGKHGFPH.mjs → settings-XBSK5KHH.mjs} +5 -5
  87. package/dist/lib/node-esm/{settings-YGKHGFPH.mjs.map → settings-XBSK5KHH.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{spaces-ready-UM2P3DCR.mjs → spaces-ready-YX4IHT4P.mjs} +17 -15
  89. package/dist/lib/node-esm/spaces-ready-YX4IHT4P.mjs.map +7 -0
  90. package/dist/lib/node-esm/{state-C4IOXPZP.mjs → state-HOHAVPUO.mjs} +7 -7
  91. package/dist/lib/node-esm/state-HOHAVPUO.mjs.map +7 -0
  92. package/dist/lib/node-esm/types/index.mjs +2 -2
  93. package/dist/types/src/SpacePlugin.d.ts +1 -1
  94. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  96. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  98. package/dist/types/src/capabilities/capabilities.d.ts +11 -5
  99. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  101. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/index.d.ts +11 -12
  103. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  105. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  107. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  109. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  111. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/settings.d.ts +1 -1
  113. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  114. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/state.d.ts +1 -1
  116. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  117. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  118. package/dist/types/src/components/CollectionMain.d.ts +1 -0
  119. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  120. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +5 -4
  121. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  122. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -4
  123. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
  125. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  126. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  127. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  128. package/dist/types/src/components/JoinDialog.d.ts +1 -1
  129. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  130. package/dist/types/src/components/MembersContainer.d.ts +3 -2
  131. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  132. package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -5
  133. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  134. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  135. package/dist/types/src/components/ObjectDetailsPanel.d.ts +9 -0
  136. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -0
  137. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  138. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  139. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  140. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  141. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  142. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
  143. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  144. package/dist/types/src/components/RecordMain.d.ts +7 -0
  145. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  146. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  147. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  148. package/dist/types/src/components/SpacePresence.stories.d.ts +1412 -4
  149. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  151. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -4
  152. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  153. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
  154. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  155. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -5
  156. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  157. package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
  158. package/dist/types/src/components/ViewEditor.d.ts +8 -0
  159. package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
  160. package/dist/types/src/components/index.d.ts +14 -1
  161. package/dist/types/src/components/index.d.ts.map +1 -1
  162. package/dist/types/src/events.d.ts +1 -0
  163. package/dist/types/src/events.d.ts.map +1 -1
  164. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  165. package/dist/types/src/meta.d.ts +0 -1
  166. package/dist/types/src/meta.d.ts.map +1 -1
  167. package/dist/types/src/translations.d.ts +1262 -11
  168. package/dist/types/src/translations.d.ts.map +1 -1
  169. package/dist/types/src/types/types.d.ts +124 -64
  170. package/dist/types/src/types/types.d.ts.map +1 -1
  171. package/dist/types/src/util.d.ts +34 -7
  172. package/dist/types/src/util.d.ts.map +1 -1
  173. package/dist/types/tsconfig.tsbuildinfo +1 -1
  174. package/package.json +61 -60
  175. package/src/SpacePlugin.ts +205 -137
  176. package/src/capabilities/app-graph-builder.ts +249 -36
  177. package/src/capabilities/app-graph-serializer.ts +7 -7
  178. package/src/capabilities/capabilities.ts +15 -9
  179. package/src/capabilities/identity-created.ts +1 -1
  180. package/src/capabilities/index.ts +0 -1
  181. package/src/capabilities/intent-resolver.ts +140 -19
  182. package/src/capabilities/react-root.tsx +4 -3
  183. package/src/capabilities/react-surface.tsx +93 -42
  184. package/src/capabilities/schema-defs.ts +3 -2
  185. package/src/capabilities/spaces-ready.ts +10 -7
  186. package/src/capabilities/state.ts +5 -4
  187. package/src/components/AwaitingObject.tsx +7 -9
  188. package/src/components/CollectionMain.tsx +4 -2
  189. package/src/components/CollectionSection.tsx +2 -2
  190. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
  191. package/src/components/CreateDialog/CreateObjectDialog.tsx +50 -36
  192. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  193. package/src/components/CreateDialog/CreateSpaceDialog.tsx +4 -4
  194. package/src/components/JoinDialog.tsx +7 -7
  195. package/src/components/MembersContainer.stories.tsx +36 -10
  196. package/src/components/MembersContainer.tsx +17 -16
  197. package/src/components/MenuFooter.tsx +4 -5
  198. package/src/components/ObjectDetailsPanel.tsx +79 -0
  199. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -2
  200. package/src/components/ObjectSettings/ForeignKeys.tsx +2 -2
  201. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
  202. package/src/components/PersistenceStatus.tsx +7 -8
  203. package/src/components/PopoverRenameObject.tsx +10 -16
  204. package/src/components/PopoverRenameSpace.tsx +4 -4
  205. package/src/components/RecordMain.tsx +43 -0
  206. package/src/components/SchemaContainer.tsx +4 -4
  207. package/src/components/SpacePluginSettings.tsx +8 -9
  208. package/src/components/SpacePresence.stories.tsx +23 -22
  209. package/src/components/SpacePresence.tsx +9 -9
  210. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  211. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +17 -17
  212. package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
  213. package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
  214. package/src/components/SyncStatus/SyncStatus.tsx +5 -4
  215. package/src/components/SyncStatus/status.ts +4 -4
  216. package/src/components/ViewEditor.tsx +59 -0
  217. package/src/components/index.ts +7 -1
  218. package/src/events.ts +7 -6
  219. package/src/hooks/useActiveSpace.ts +2 -2
  220. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  221. package/src/meta.ts +1 -3
  222. package/src/translations.ts +68 -5
  223. package/src/types/types.ts +70 -12
  224. package/src/util.tsx +199 -55
  225. package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs.map +0 -7
  226. package/dist/lib/browser/app-graph-serializer-UKYMBX4O.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-C7KGJTAL.mjs +0 -18
  229. package/dist/lib/browser/chunk-C7KGJTAL.mjs.map +0 -7
  230. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  231. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-GVTXQCIW.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-S6NY637J.mjs.map +0 -7
  234. package/dist/lib/browser/chunk-WBSEOLEM.mjs.map +0 -7
  235. package/dist/lib/browser/chunk-XXIPJLJF.mjs +0 -19
  236. package/dist/lib/browser/chunk-XXIPJLJF.mjs.map +0 -7
  237. package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +0 -7
  238. package/dist/lib/browser/react-root-7S6FIC5G.mjs.map +0 -7
  239. package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +0 -7
  240. package/dist/lib/browser/schema-defs-K3B3OAH4.mjs.map +0 -7
  241. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  242. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  243. package/dist/lib/browser/spaces-ready-K7NSNBHM.mjs.map +0 -7
  244. package/dist/lib/browser/state-522XTUR4.mjs.map +0 -7
  245. package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs.map +0 -7
  246. package/dist/lib/node-esm/app-graph-serializer-LA3IZDXJ.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-2THX6G4C.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-72QMMRKC.mjs +0 -19
  249. package/dist/lib/node-esm/chunk-72QMMRKC.mjs.map +0 -7
  250. package/dist/lib/node-esm/chunk-AT7LGFER.mjs +0 -20
  251. package/dist/lib/node-esm/chunk-AT7LGFER.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-HJJHLWKY.mjs.map +0 -7
  253. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-OUBADVJE.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-SXD6T2N4.mjs.map +0 -7
  256. package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +0 -7
  257. package/dist/lib/node-esm/react-root-HUK3ANLV.mjs.map +0 -7
  258. package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +0 -7
  259. package/dist/lib/node-esm/schema-defs-4MCDG4DV.mjs.map +0 -7
  260. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  261. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  262. package/dist/lib/node-esm/spaces-ready-UM2P3DCR.mjs.map +0 -7
  263. package/dist/lib/node-esm/state-C4IOXPZP.mjs.map +0 -7
  264. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  265. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  266. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  267. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  268. package/src/capabilities/schema-tool.test.ts +0 -44
  269. package/src/capabilities/schema-tools.ts +0 -125
@@ -3,32 +3,35 @@
3
3
  //
4
4
 
5
5
  import { Rx } from '@effect-rx/rx-react';
6
- import { Array, Option, pipe } from 'effect';
6
+ import { Array, Option, Schema, pipe } from 'effect';
7
7
 
8
- import { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';
9
- import { getSpace, SpaceState, type Space, isSpace, type QueryResult } from '@dxos/client/echo';
8
+ import { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
9
+ import { type QueryResult, type Space, SpaceState, getSpace, isSpace, parseId } from '@dxos/client/echo';
10
10
  import { Filter, Obj, Query, Type } from '@dxos/echo';
11
11
  import { log } from '@dxos/log';
12
12
  import { ClientCapabilities } from '@dxos/plugin-client';
13
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';
14
- import { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';
15
- import { DataType } from '@dxos/schema';
13
+ import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
14
+ import { ROOT_ID, createExtension, rxFromObservable, rxFromSignal } from '@dxos/plugin-graph';
15
+ import { DataType, typenameFromQuery } from '@dxos/schema';
16
16
  import { isNonNullable } from '@dxos/util';
17
17
 
18
- import { SpaceCapabilities } from './capabilities';
19
18
  import { getActiveSpace } from '../hooks';
20
- import { SPACE_PLUGIN } from '../meta';
19
+ import { meta } from '../meta';
21
20
  import { SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';
22
21
  import {
22
+ SHARED,
23
+ SPACES,
23
24
  constructObjectActions,
24
25
  constructSpaceActions,
25
26
  constructSpaceNode,
26
27
  createObjectNode,
28
+ createStaticSchemaActions,
29
+ createStaticSchemaNode,
27
30
  rxFromQuery,
28
- SHARED,
29
- SPACES,
30
31
  } from '../util';
31
32
 
33
+ import { SpaceCapabilities } from './capabilities';
34
+
32
35
  export default (context: PluginContext) => {
33
36
  // TODO(wittjosiah): Make reactive.
34
37
  const resolve = (typename: string) =>
@@ -39,7 +42,7 @@ export default (context: PluginContext) => {
39
42
  type: SPACES,
40
43
  cacheable: ['label', 'role'],
41
44
  properties: {
42
- label: ['spaces label', { ns: SPACE_PLUGIN }],
45
+ label: ['spaces label', { ns: meta.id }],
43
46
  icon: 'ph--planet--regular',
44
47
  testId: 'spacePlugin.spaces',
45
48
  role: 'branch',
@@ -74,7 +77,7 @@ export default (context: PluginContext) => {
74
77
  return contributes(Capabilities.AppGraphBuilder, [
75
78
  // Primary actions.
76
79
  createExtension({
77
- id: `${SPACE_PLUGIN}/primary-actions`,
80
+ id: `${meta.id}/primary-actions`,
78
81
  position: 'hoist',
79
82
  actions: (node) =>
80
83
  Rx.make((get) =>
@@ -89,7 +92,7 @@ export default (context: PluginContext) => {
89
92
  await dispatch(createIntent(SpaceAction.OpenCreateSpace));
90
93
  },
91
94
  properties: {
92
- label: ['create space label', { ns: SPACE_PLUGIN }],
95
+ label: ['create space label', { ns: meta.id }],
93
96
  icon: 'ph--plus--regular',
94
97
  testId: 'spacePlugin.createSpace',
95
98
  disposition: 'menu',
@@ -102,7 +105,7 @@ export default (context: PluginContext) => {
102
105
  await dispatch(createIntent(SpaceAction.Join));
103
106
  },
104
107
  properties: {
105
- label: ['join space label', { ns: SPACE_PLUGIN }],
108
+ label: ['join space label', { ns: meta.id }],
106
109
  icon: 'ph--sign-in--regular',
107
110
  testId: 'spacePlugin.joinSpace',
108
111
  disposition: 'menu',
@@ -117,7 +120,7 @@ export default (context: PluginContext) => {
117
120
  await dispatch(createIntent(SpaceAction.OpenMembers, { space }));
118
121
  },
119
122
  properties: {
120
- label: ['share space label', { ns: SPACE_PLUGIN }],
123
+ label: ['share space label', { ns: meta.id }],
121
124
  icon: 'ph--users--regular',
122
125
  testId: 'spacePlugin.shareSpace',
123
126
  keyBinding: {
@@ -135,7 +138,7 @@ export default (context: PluginContext) => {
135
138
  await dispatch(createIntent(SpaceAction.OpenSettings, { space }));
136
139
  },
137
140
  properties: {
138
- label: ['open current space settings label', { ns: SPACE_PLUGIN }],
141
+ label: ['open current space settings label', { ns: meta.id }],
139
142
  icon: 'ph--faders--regular',
140
143
  keyBinding: {
141
144
  macos: 'meta+shift+,',
@@ -151,7 +154,7 @@ export default (context: PluginContext) => {
151
154
 
152
155
  // Create spaces group node.
153
156
  createExtension({
154
- id: `${SPACE_PLUGIN}/root`,
157
+ id: `${meta.id}/root`,
155
158
  position: 'hoist',
156
159
  connector: (node) =>
157
160
  Rx.make((get) =>
@@ -188,7 +191,7 @@ export default (context: PluginContext) => {
188
191
  }
189
192
 
190
193
  const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(
191
- SPACE_PLUGIN,
194
+ meta.id,
192
195
  )?.value;
193
196
 
194
197
  // TODO(wittjosiah): During client reset, accessing default space throws.
@@ -273,7 +276,7 @@ export default (context: PluginContext) => {
273
276
 
274
277
  // Create space actions.
275
278
  createExtension({
276
- id: `${SPACE_PLUGIN}/actions`,
279
+ id: `${meta.id}/actions`,
277
280
  actions: (node) =>
278
281
  Rx.make((get) =>
279
282
  pipe(
@@ -305,7 +308,7 @@ export default (context: PluginContext) => {
305
308
 
306
309
  // Create nodes for objects in the root collection of a space.
307
310
  createExtension({
308
- id: `${SPACE_PLUGIN}/root-collection`,
311
+ id: `${meta.id}/root-collection`,
309
312
  connector: (node) =>
310
313
  Rx.make((get) =>
311
314
  pipe(
@@ -355,7 +358,7 @@ export default (context: PluginContext) => {
355
358
 
356
359
  // Create nodes for objects in a collection or by its fully qualified id.
357
360
  createExtension({
358
- id: `${SPACE_PLUGIN}/objects`,
361
+ id: `${meta.id}/objects`,
359
362
  connector: (node) =>
360
363
  Rx.make((get) =>
361
364
  pipe(
@@ -426,7 +429,7 @@ export default (context: PluginContext) => {
426
429
 
427
430
  // Create nodes for objects in a query collection.
428
431
  createExtension({
429
- id: `${SPACE_PLUGIN}/query-collection-objects`,
432
+ id: `${meta.id}/query-collection-objects`,
430
433
  connector: (node) => {
431
434
  let query: QueryResult<Type.Expando> | undefined;
432
435
  return Rx.make((get) =>
@@ -437,9 +440,8 @@ export default (context: PluginContext) => {
437
440
  ),
438
441
  Option.flatMap((collection) => {
439
442
  const space = getSpace(collection);
440
- return collection.query.typename && space
441
- ? Option.some({ typename: collection.query.typename, space })
442
- : Option.none();
443
+ const typename = typenameFromQuery(collection.query);
444
+ return typename && space ? Option.some({ typename, space }) : Option.none();
443
445
  }),
444
446
  Option.map(({ typename, space }) => {
445
447
  const state = context.getCapability(SpaceCapabilities.State);
@@ -456,16 +458,144 @@ export default (context: PluginContext) => {
456
458
  ),
457
459
  );
458
460
  }
461
+ return (
462
+ get(rxFromQuery(query))
463
+ // TODO(wittjosiah): This should be the default sort order.
464
+ .toSorted((a, b) => a.id.localeCompare(b.id))
465
+ .map((object) =>
466
+ get(
467
+ rxFromSignal(() =>
468
+ createObjectNode({
469
+ object,
470
+ space,
471
+ resolve,
472
+ droppable: false, // Cannot rearrange query collections.
473
+ navigable: state.navigableCollections,
474
+ }),
475
+ ),
476
+ ),
477
+ )
478
+ .filter(isNonNullable)
479
+ );
480
+ }),
481
+ Option.getOrElse(() => []),
482
+ ),
483
+ );
484
+ },
485
+ }),
486
+
487
+ // Static schema records.
488
+ createExtension({
489
+ id: `${meta.id}/static-schemas`,
490
+ connector: (node) => {
491
+ const client = context.getCapability(ClientCapabilities.Client);
492
+ return Rx.make((get) =>
493
+ pipe(
494
+ get(node),
495
+ Option.flatMap((node) =>
496
+ Obj.instanceOf(DataType.QueryCollection, node.data) &&
497
+ typenameFromQuery(node.data.query) === DataType.StoredSchema.typename
498
+ ? Option.some(node.data)
499
+ : Option.none(),
500
+ ),
501
+ Option.flatMap((collection) => {
502
+ const space = getSpace(collection);
503
+ return space?.properties.staticRecords ? Option.some(space) : Option.none();
504
+ }),
505
+ Option.map((space) => {
506
+ return get(rxFromSignal(() => (space.properties.staticRecords ?? []) as string[]))
507
+ .map((typename) =>
508
+ client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename),
509
+ )
510
+ .filter(isNonNullable)
511
+ .map((schema) => createStaticSchemaNode({ schema, space }));
512
+ }),
513
+ Option.getOrElse(() => []),
514
+ ),
515
+ );
516
+ },
517
+ }),
518
+
519
+ // Create static schema actions.
520
+ createExtension({
521
+ id: `${meta.id}/static-schema-actions`,
522
+ actions: (node) => {
523
+ let query: QueryResult<DataType.View> | undefined;
524
+ return Rx.make((get) =>
525
+ pipe(
526
+ get(node),
527
+ Option.flatMap((node) => {
528
+ const space = isSpace(node.properties.space) ? node.properties.space : undefined;
529
+ return space && Schema.isSchema(node.data) ? Option.some({ space, schema: node.data }) : Option.none();
530
+ }),
531
+ Option.map(({ space, schema }) => {
532
+ if (!query) {
533
+ // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).
534
+ query = space.db.query(Filter.type(DataType.View));
535
+ }
536
+
537
+ const views = get(rxFromQuery(query));
538
+ const filteredViews = get(
539
+ rxFromSignal(() =>
540
+ // TODO(wittjosiah): Remove cast.
541
+ views.filter(
542
+ (view) => typenameFromQuery(view.query.ast) === Type.getTypename(schema as Type.Obj.Any),
543
+ ),
544
+ ),
545
+ );
546
+ const deletable = filteredViews.length === 0;
547
+
548
+ const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
549
+ if (!dispatcher) {
550
+ return [];
551
+ }
552
+
553
+ // TODO(wittjosiah): Remove cast.
554
+ return createStaticSchemaActions({
555
+ schema: schema as Type.Obj.Any,
556
+ space,
557
+ dispatch: dispatcher.dispatchPromise,
558
+ deletable,
559
+ });
560
+ }),
561
+ Option.getOrElse(() => []),
562
+ ),
563
+ );
564
+ },
565
+ }),
566
+
567
+ // Create nodes for schema views.
568
+ createExtension({
569
+ id: `${meta.id}/schema-views`,
570
+ connector: (node) => {
571
+ let query: QueryResult<DataType.View> | undefined;
572
+ return Rx.make((get) =>
573
+ pipe(
574
+ get(node),
575
+ Option.flatMap((node) => {
576
+ const space = getSpace(node.data) ?? (isSpace(node.properties.space) ? node.properties.space : undefined);
577
+ return space && (Obj.instanceOf(DataType.StoredSchema, node.data) || Schema.isSchema(node.data))
578
+ ? Option.some({ space, schema: node.data })
579
+ : Option.none();
580
+ }),
581
+ Option.map(({ space, schema }) => {
582
+ if (!query) {
583
+ // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).
584
+ query = space.db.query(Filter.type(DataType.View));
585
+ }
586
+
587
+ // TODO(wittjosiah): Remove cast.
588
+ const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;
459
589
  return get(rxFromQuery(query))
460
- .map((object) =>
590
+ .filter((view) => typenameFromQuery(view.query.ast) === typename)
591
+ .map((view) =>
461
592
  get(
462
593
  rxFromSignal(() =>
463
594
  createObjectNode({
464
- object,
595
+ object: view,
465
596
  space,
466
597
  resolve,
467
- droppable: false, // Cannot rearrange query collections.
468
- navigable: state.navigableCollections,
598
+ droppable: false,
469
599
  }),
470
600
  ),
471
601
  ),
@@ -478,15 +608,71 @@ export default (context: PluginContext) => {
478
608
  },
479
609
  }),
480
610
 
611
+ // Create record nodes.
612
+ createExtension({
613
+ id: `${meta.id}/records`,
614
+ resolver: (id) => {
615
+ let query: QueryResult<Type.Expando> | undefined;
616
+ return Rx.make((get) => {
617
+ const client = context.getCapability(ClientCapabilities.Client);
618
+ const { spaceId, objectId } = parseId(id);
619
+ if (!spaceId || !objectId) {
620
+ return null;
621
+ }
622
+
623
+ const space = client.spaces.get(spaceId);
624
+ if (!space) {
625
+ return null;
626
+ }
627
+
628
+ if (!query) {
629
+ query = space.db.query(Filter.ids(objectId));
630
+ }
631
+
632
+ const object = get(rxFromQuery(query)).at(0);
633
+ if (!object) {
634
+ return null;
635
+ }
636
+
637
+ return createObjectNode({ object, space, resolve, disposition: 'hidden' });
638
+ });
639
+ },
640
+ }),
641
+
481
642
  // Create collection actions and action groups.
482
643
  createExtension({
483
- id: `${SPACE_PLUGIN}/object-actions`,
484
- actions: (node) =>
485
- Rx.make((get) =>
644
+ id: `${meta.id}/object-actions`,
645
+ actions: (node) => {
646
+ let query: QueryResult<DataType.View> | undefined;
647
+ return Rx.make((get) =>
486
648
  pipe(
487
649
  get(node),
488
- Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node.data) : Option.none())),
489
- Option.flatMap((object) => {
650
+ Option.flatMap((node) => {
651
+ const space = getSpace(node.data);
652
+ return space && Obj.isObject(node.data) ? Option.some({ space, object: node.data }) : Option.none();
653
+ }),
654
+ Option.flatMap(({ space, object }) => {
655
+ const isSchema = Obj.instanceOf(DataType.StoredSchema, object);
656
+ if (!query && isSchema) {
657
+ // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).
658
+ query = space.db.query(Filter.type(DataType.View));
659
+ }
660
+
661
+ let deletable =
662
+ !isSchema &&
663
+ // Don't allow the Records smart collection to be deleted.
664
+ !(
665
+ Obj.instanceOf(DataType.QueryCollection, object) &&
666
+ typenameFromQuery(object.query) === DataType.StoredSchema.typename
667
+ );
668
+ if (isSchema && query) {
669
+ const views = get(rxFromQuery(query));
670
+ const filteredViews = get(
671
+ rxFromSignal(() => views.filter((view) => typenameFromQuery(view.query.ast) === object.typename)),
672
+ );
673
+ deletable = filteredViews.length === 0;
674
+ }
675
+
490
676
  const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
491
677
  const [appGraph] = get(context.capabilities(Capabilities.AppGraph));
492
678
  const [state] = get(context.capabilities(SpaceCapabilities.State));
@@ -500,6 +686,7 @@ export default (context: PluginContext) => {
500
686
  graph: appGraph.graph,
501
687
  dispatch: dispatcher.dispatchPromise,
502
688
  objectForms,
689
+ deletable,
503
690
  navigable: get(rxFromSignal(() => state.navigableCollections)),
504
691
  });
505
692
  }
@@ -507,12 +694,38 @@ export default (context: PluginContext) => {
507
694
  Option.map((params) => constructObjectActions(params)),
508
695
  Option.getOrElse(() => []),
509
696
  ),
697
+ );
698
+ },
699
+ }),
700
+
701
+ // View selected objects.
702
+ createExtension({
703
+ id: `${meta.id}/selected-objects`,
704
+ connector: (node) =>
705
+ Rx.make((get) =>
706
+ pipe(
707
+ get(node),
708
+ Option.flatMap((node) => (Obj.instanceOf(DataType.View, node.data) ? Option.some(node) : Option.none())),
709
+ Option.map((node) => [
710
+ {
711
+ id: [node.id, 'selected-objects'].join(ATTENDABLE_PATH_SEPARATOR),
712
+ type: PLANK_COMPANION_TYPE,
713
+ data: 'selected-objects',
714
+ properties: {
715
+ label: ['companion selected objects label', { ns: meta.id }],
716
+ icon: 'ph--tree-view--regular',
717
+ disposition: 'hidden',
718
+ },
719
+ },
720
+ ]),
721
+ Option.getOrElse(() => []),
722
+ ),
510
723
  ),
511
724
  }),
512
725
 
513
726
  // Object settings plank companion.
514
727
  createExtension({
515
- id: `${SPACE_PLUGIN}/settings`,
728
+ id: `${meta.id}/settings`,
516
729
  connector: (node) =>
517
730
  Rx.make((get) =>
518
731
  pipe(
@@ -524,7 +737,7 @@ export default (context: PluginContext) => {
524
737
  type: PLANK_COMPANION_TYPE,
525
738
  data: 'settings',
526
739
  properties: {
527
- label: ['object settings label', { ns: SPACE_PLUGIN }],
740
+ label: ['object settings label', { ns: meta.id }],
528
741
  icon: 'ph--sliders--regular',
529
742
  disposition: 'hidden',
530
743
  position: 'fallback',
@@ -7,7 +7,7 @@ import { isSpace } from '@dxos/client/echo';
7
7
  import { Obj, Type } from '@dxos/echo';
8
8
  import { DataType } 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';
@@ -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,8 +49,8 @@ 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) => {
@@ -2,23 +2,29 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { defineCapability, type Label } from '@dxos/app-framework';
5
+ import { type Schema } from 'effect';
6
+
7
+ import { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';
6
8
  import { type Space } from '@dxos/react-client/echo';
7
9
  import { type DataType } from '@dxos/schema';
8
- import { type Position, type DeepReadonly, type MaybePromise } from '@dxos/util';
10
+ import { type DeepReadonly, type Position } from '@dxos/util';
9
11
 
10
- import { SPACE_PLUGIN } from '../meta';
12
+ import { meta } from '../meta';
11
13
  import { type ObjectForm, type PluginState } from '../types';
12
14
 
13
15
  export namespace SpaceCapabilities {
14
- export const State = defineCapability<DeepReadonly<PluginState>>(`${SPACE_PLUGIN}/capability/state`);
15
- 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`);
16
18
 
17
19
  export type SettingsSection = { id: string; label: Label; position?: Position };
18
- export const SettingsSection = defineCapability<SettingsSection>(`${SPACE_PLUGIN}/capability/settings-section`);
20
+ export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);
21
+
22
+ export type onCreateSpace = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;
23
+ export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);
19
24
 
20
- export type OnSpaceCreated = (params: { space: Space; rootCollection: DataType.Collection }) => MaybePromise<void>;
21
- export const OnSpaceCreated = defineCapability<OnSpaceCreated>(`${SPACE_PLUGIN}/capability/on-space-created`);
25
+ export type OnSchemaAdded = (params: { space: Space; schema: Schema.Schema.AnyNoContext }) => AnyIntentChain;
26
+ export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
22
27
 
23
- export const ObjectForm = defineCapability<ObjectForm<any>>(`${SPACE_PLUGIN}/capability/object-form`);
28
+ // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).
29
+ export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);
24
30
  }
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';
5
+ import { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';
6
6
  import { Obj, Ref } from '@dxos/echo';
7
7
  import { Migrations } from '@dxos/migrations';
8
8
  import { ClientCapabilities } from '@dxos/plugin-client';
@@ -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'));