@dxos/plugin-space 0.8.4-main.67995b8 → 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 (263) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionMain-AX7KKXWP.mjs} +4 -4
  2. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
  3. package/dist/lib/browser/{ObjectDetailsPanel-YPTDQKMG.mjs → ObjectDetailsPanel-ETI5YBTH.mjs} +10 -8
  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-V3MP3CDK.mjs → app-graph-builder-W7RVDAUA.mjs} +80 -43
  8. package/dist/lib/browser/app-graph-builder-W7RVDAUA.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.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-FBJEXW54.mjs → chunk-2BFVC5K6.mjs} +139 -150
  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-SGTQ52SU.mjs → chunk-JCHSUOPF.mjs} +14 -8
  22. package/dist/lib/browser/chunk-JCHSUOPF.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-PN27K4I7.mjs} +93 -41
  24. package/dist/lib/browser/chunk-PN27K4I7.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-ZIZ2JLW6.mjs} +10 -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 +19 -39
  30. package/dist/lib/browser/index.mjs.map +3 -3
  31. package/dist/lib/browser/{intent-resolver-XHGD73WZ.mjs → intent-resolver-HA7DPAUE.mjs} +46 -41
  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-CMWOGJG5.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-YWZZQF7H.mjs → react-surface-HTXYMRSW.mjs} +50 -40
  37. package/dist/lib/browser/react-surface-HTXYMRSW.mjs.map +7 -0
  38. package/dist/lib/browser/{schema-defs-Z6FC4AHC.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-4IMP5RYT.mjs → settings-5XPQMSPO.mjs} +5 -5
  41. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-5XPQMSPO.mjs.map} +1 -1
  42. package/dist/lib/browser/{spaces-ready-TOPG6IV4.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-QYZAB45H.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-ZJIFCWKZ.mjs → CollectionMain-EU57SRYK.mjs} +4 -4
  48. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
  49. package/dist/lib/node-esm/{ObjectDetailsPanel-QKZEDSZK.mjs → ObjectDetailsPanel-TQ5GN4QJ.mjs} +10 -8
  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-SG4VECBB.mjs → app-graph-builder-5ZJJUMQI.mjs} +80 -43
  54. package/dist/lib/node-esm/app-graph-builder-5ZJJUMQI.mjs.map +7 -0
  55. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.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-P442DOQ3.mjs → chunk-5XRYHWL7.mjs} +10 -9
  58. package/dist/lib/node-esm/chunk-5XRYHWL7.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-6WNZW6KT.mjs} +14 -8
  60. package/dist/lib/node-esm/chunk-6WNZW6KT.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-2A3VBXBP.mjs → chunk-BLPXWPLB.mjs} +139 -150
  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-4AOMYKDE.mjs → chunk-XDQXUZMK.mjs} +93 -41
  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 +19 -39
  76. package/dist/lib/node-esm/index.mjs.map +3 -3
  77. package/dist/lib/node-esm/{intent-resolver-LEANKSKZ.mjs → intent-resolver-LQNHMPIX.mjs} +46 -41
  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-5Y7LJRX6.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-YQFNIKYT.mjs → react-surface-LYDYON3U.mjs} +50 -40
  83. package/dist/lib/node-esm/react-surface-LYDYON3U.mjs.map +7 -0
  84. package/dist/lib/node-esm/{schema-defs-WHJM7UZE.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-SAOBPND3.mjs → settings-XBSK5KHH.mjs} +5 -5
  87. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-XBSK5KHH.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.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-ZVEHQ4BJ.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 +3 -3
  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/CreateDialog/CreateObjectDialog.d.ts +3 -3
  118. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1584 -4
  120. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
  122. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  123. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  124. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  125. package/dist/types/src/components/JoinDialog.d.ts +1 -1
  126. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  127. package/dist/types/src/components/MembersContainer.d.ts +3 -2
  128. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  129. package/dist/types/src/components/MembersContainer.stories.d.ts +1584 -5
  130. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -1
  132. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  134. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  135. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  136. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
  137. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  138. package/dist/types/src/components/RecordMain.d.ts +7 -0
  139. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  140. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  141. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  142. package/dist/types/src/components/SpacePresence.stories.d.ts +1412 -4
  143. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1417 -4
  146. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  148. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1418 -5
  149. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/ViewEditor.d.ts +1 -1
  151. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  152. package/dist/types/src/components/index.d.ts +8 -2
  153. package/dist/types/src/components/index.d.ts.map +1 -1
  154. package/dist/types/src/events.d.ts.map +1 -1
  155. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  156. package/dist/types/src/meta.d.ts +0 -1
  157. package/dist/types/src/meta.d.ts.map +1 -1
  158. package/dist/types/src/translations.d.ts +1216 -26
  159. package/dist/types/src/translations.d.ts.map +1 -1
  160. package/dist/types/src/types/types.d.ts +73 -93
  161. package/dist/types/src/types/types.d.ts.map +1 -1
  162. package/dist/types/src/util.d.ts +8 -6
  163. package/dist/types/src/util.d.ts.map +1 -1
  164. package/dist/types/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +63 -62
  166. package/src/SpacePlugin.ts +203 -218
  167. package/src/capabilities/app-graph-builder.ts +100 -53
  168. package/src/capabilities/app-graph-serializer.ts +7 -7
  169. package/src/capabilities/capabilities.ts +11 -10
  170. package/src/capabilities/identity-created.ts +1 -1
  171. package/src/capabilities/index.ts +0 -1
  172. package/src/capabilities/intent-resolver.ts +36 -24
  173. package/src/capabilities/react-root.tsx +4 -3
  174. package/src/capabilities/react-surface.tsx +45 -36
  175. package/src/capabilities/schema-defs.ts +3 -2
  176. package/src/capabilities/spaces-ready.ts +10 -7
  177. package/src/capabilities/state.ts +5 -4
  178. package/src/components/AwaitingObject.tsx +3 -3
  179. package/src/components/CollectionMain.tsx +2 -2
  180. package/src/components/CollectionSection.tsx +2 -2
  181. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
  182. package/src/components/CreateDialog/CreateObjectDialog.tsx +21 -11
  183. package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
  184. package/src/components/CreateDialog/CreateSpaceDialog.tsx +4 -4
  185. package/src/components/JoinDialog.tsx +7 -7
  186. package/src/components/MembersContainer.stories.tsx +36 -10
  187. package/src/components/MembersContainer.tsx +12 -13
  188. package/src/components/MenuFooter.tsx +2 -2
  189. package/src/components/ObjectDetailsPanel.tsx +6 -4
  190. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -2
  191. package/src/components/ObjectSettings/ForeignKeys.tsx +2 -2
  192. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
  193. package/src/components/PersistenceStatus.tsx +2 -2
  194. package/src/components/PopoverRenameObject.tsx +9 -15
  195. package/src/components/PopoverRenameSpace.tsx +4 -4
  196. package/src/components/RecordMain.tsx +43 -0
  197. package/src/components/SchemaContainer.tsx +4 -4
  198. package/src/components/SpacePluginSettings.tsx +8 -9
  199. package/src/components/SpacePresence.stories.tsx +23 -22
  200. package/src/components/SpacePresence.tsx +9 -9
  201. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  202. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +17 -17
  203. package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
  204. package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
  205. package/src/components/SyncStatus/SyncStatus.tsx +4 -3
  206. package/src/components/ViewEditor.tsx +13 -18
  207. package/src/components/index.ts +1 -0
  208. package/src/events.ts +7 -7
  209. package/src/hooks/useActiveSpace.ts +2 -2
  210. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  211. package/src/meta.ts +1 -3
  212. package/src/translations.ts +8 -7
  213. package/src/types/types.ts +15 -10
  214. package/src/util.tsx +86 -37
  215. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  216. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  217. package/dist/lib/browser/app-graph-builder-V3MP3CDK.mjs.map +0 -7
  218. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  219. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  220. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  222. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-FBJEXW54.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  225. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  227. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  229. package/dist/lib/browser/intent-resolver-XHGD73WZ.mjs.map +0 -7
  230. package/dist/lib/browser/react-root-CMWOGJG5.mjs.map +0 -7
  231. package/dist/lib/browser/react-surface-YWZZQF7H.mjs.map +0 -7
  232. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  233. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  234. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  235. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  236. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  237. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  238. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  239. package/dist/lib/node-esm/app-graph-builder-SG4VECBB.mjs.map +0 -7
  240. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-2A3VBXBP.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  243. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  244. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  245. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  246. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  247. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  250. package/dist/lib/node-esm/intent-resolver-LEANKSKZ.mjs.map +0 -7
  251. package/dist/lib/node-esm/react-root-5Y7LJRX6.mjs.map +0 -7
  252. package/dist/lib/node-esm/react-surface-YQFNIKYT.mjs.map +0 -7
  253. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  254. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  255. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  256. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  257. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  258. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  259. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  260. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  261. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  262. package/src/capabilities/schema-tool.test.ts +0 -44
  263. package/src/capabilities/schema-tools.ts +0 -125
@@ -3,23 +3,24 @@
3
3
  //
4
4
 
5
5
  import { Rx } from '@effect-rx/rx-react';
6
- import { Array, Option, pipe, Schema } 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,
@@ -27,10 +28,10 @@ import {
27
28
  createStaticSchemaActions,
28
29
  createStaticSchemaNode,
29
30
  rxFromQuery,
30
- SHARED,
31
- SPACES,
32
31
  } from '../util';
33
32
 
33
+ import { SpaceCapabilities } from './capabilities';
34
+
34
35
  export default (context: PluginContext) => {
35
36
  // TODO(wittjosiah): Make reactive.
36
37
  const resolve = (typename: string) =>
@@ -41,7 +42,7 @@ export default (context: PluginContext) => {
41
42
  type: SPACES,
42
43
  cacheable: ['label', 'role'],
43
44
  properties: {
44
- label: ['spaces label', { ns: SPACE_PLUGIN }],
45
+ label: ['spaces label', { ns: meta.id }],
45
46
  icon: 'ph--planet--regular',
46
47
  testId: 'spacePlugin.spaces',
47
48
  role: 'branch',
@@ -76,7 +77,7 @@ export default (context: PluginContext) => {
76
77
  return contributes(Capabilities.AppGraphBuilder, [
77
78
  // Primary actions.
78
79
  createExtension({
79
- id: `${SPACE_PLUGIN}/primary-actions`,
80
+ id: `${meta.id}/primary-actions`,
80
81
  position: 'hoist',
81
82
  actions: (node) =>
82
83
  Rx.make((get) =>
@@ -91,7 +92,7 @@ export default (context: PluginContext) => {
91
92
  await dispatch(createIntent(SpaceAction.OpenCreateSpace));
92
93
  },
93
94
  properties: {
94
- label: ['create space label', { ns: SPACE_PLUGIN }],
95
+ label: ['create space label', { ns: meta.id }],
95
96
  icon: 'ph--plus--regular',
96
97
  testId: 'spacePlugin.createSpace',
97
98
  disposition: 'menu',
@@ -104,7 +105,7 @@ export default (context: PluginContext) => {
104
105
  await dispatch(createIntent(SpaceAction.Join));
105
106
  },
106
107
  properties: {
107
- label: ['join space label', { ns: SPACE_PLUGIN }],
108
+ label: ['join space label', { ns: meta.id }],
108
109
  icon: 'ph--sign-in--regular',
109
110
  testId: 'spacePlugin.joinSpace',
110
111
  disposition: 'menu',
@@ -119,7 +120,7 @@ export default (context: PluginContext) => {
119
120
  await dispatch(createIntent(SpaceAction.OpenMembers, { space }));
120
121
  },
121
122
  properties: {
122
- label: ['share space label', { ns: SPACE_PLUGIN }],
123
+ label: ['share space label', { ns: meta.id }],
123
124
  icon: 'ph--users--regular',
124
125
  testId: 'spacePlugin.shareSpace',
125
126
  keyBinding: {
@@ -137,7 +138,7 @@ export default (context: PluginContext) => {
137
138
  await dispatch(createIntent(SpaceAction.OpenSettings, { space }));
138
139
  },
139
140
  properties: {
140
- label: ['open current space settings label', { ns: SPACE_PLUGIN }],
141
+ label: ['open current space settings label', { ns: meta.id }],
141
142
  icon: 'ph--faders--regular',
142
143
  keyBinding: {
143
144
  macos: 'meta+shift+,',
@@ -153,7 +154,7 @@ export default (context: PluginContext) => {
153
154
 
154
155
  // Create spaces group node.
155
156
  createExtension({
156
- id: `${SPACE_PLUGIN}/root`,
157
+ id: `${meta.id}/root`,
157
158
  position: 'hoist',
158
159
  connector: (node) =>
159
160
  Rx.make((get) =>
@@ -190,7 +191,7 @@ export default (context: PluginContext) => {
190
191
  }
191
192
 
192
193
  const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(
193
- SPACE_PLUGIN,
194
+ meta.id,
194
195
  )?.value;
195
196
 
196
197
  // TODO(wittjosiah): During client reset, accessing default space throws.
@@ -275,7 +276,7 @@ export default (context: PluginContext) => {
275
276
 
276
277
  // Create space actions.
277
278
  createExtension({
278
- id: `${SPACE_PLUGIN}/actions`,
279
+ id: `${meta.id}/actions`,
279
280
  actions: (node) =>
280
281
  Rx.make((get) =>
281
282
  pipe(
@@ -307,7 +308,7 @@ export default (context: PluginContext) => {
307
308
 
308
309
  // Create nodes for objects in the root collection of a space.
309
310
  createExtension({
310
- id: `${SPACE_PLUGIN}/root-collection`,
311
+ id: `${meta.id}/root-collection`,
311
312
  connector: (node) =>
312
313
  Rx.make((get) =>
313
314
  pipe(
@@ -357,7 +358,7 @@ export default (context: PluginContext) => {
357
358
 
358
359
  // Create nodes for objects in a collection or by its fully qualified id.
359
360
  createExtension({
360
- id: `${SPACE_PLUGIN}/objects`,
361
+ id: `${meta.id}/objects`,
361
362
  connector: (node) =>
362
363
  Rx.make((get) =>
363
364
  pipe(
@@ -428,7 +429,7 @@ export default (context: PluginContext) => {
428
429
 
429
430
  // Create nodes for objects in a query collection.
430
431
  createExtension({
431
- id: `${SPACE_PLUGIN}/query-collection-objects`,
432
+ id: `${meta.id}/query-collection-objects`,
432
433
  connector: (node) => {
433
434
  let query: QueryResult<Type.Expando> | undefined;
434
435
  return Rx.make((get) =>
@@ -439,9 +440,8 @@ export default (context: PluginContext) => {
439
440
  ),
440
441
  Option.flatMap((collection) => {
441
442
  const space = getSpace(collection);
442
- return collection.query.typename && space
443
- ? Option.some({ typename: collection.query.typename, space })
444
- : Option.none();
443
+ const typename = typenameFromQuery(collection.query);
444
+ return typename && space ? Option.some({ typename, space }) : Option.none();
445
445
  }),
446
446
  Option.map(({ typename, space }) => {
447
447
  const state = context.getCapability(SpaceCapabilities.State);
@@ -458,21 +458,25 @@ export default (context: PluginContext) => {
458
458
  ),
459
459
  );
460
460
  }
461
- return get(rxFromQuery(query))
462
- .map((object) =>
463
- get(
464
- rxFromSignal(() =>
465
- createObjectNode({
466
- object,
467
- space,
468
- resolve,
469
- droppable: false, // Cannot rearrange query collections.
470
- navigable: state.navigableCollections,
471
- }),
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
+ ),
472
476
  ),
473
- ),
474
- )
475
- .filter(isNonNullable);
477
+ )
478
+ .filter(isNonNullable)
479
+ );
476
480
  }),
477
481
  Option.getOrElse(() => []),
478
482
  ),
@@ -482,7 +486,7 @@ export default (context: PluginContext) => {
482
486
 
483
487
  // Static schema records.
484
488
  createExtension({
485
- id: `${SPACE_PLUGIN}/static-schemas`,
489
+ id: `${meta.id}/static-schemas`,
486
490
  connector: (node) => {
487
491
  const client = context.getCapability(ClientCapabilities.Client);
488
492
  return Rx.make((get) =>
@@ -490,7 +494,7 @@ export default (context: PluginContext) => {
490
494
  get(node),
491
495
  Option.flatMap((node) =>
492
496
  Obj.instanceOf(DataType.QueryCollection, node.data) &&
493
- node.data.query.typename === DataType.StoredSchema.typename
497
+ typenameFromQuery(node.data.query) === DataType.StoredSchema.typename
494
498
  ? Option.some(node.data)
495
499
  : Option.none(),
496
500
  ),
@@ -514,7 +518,7 @@ export default (context: PluginContext) => {
514
518
 
515
519
  // Create static schema actions.
516
520
  createExtension({
517
- id: `${SPACE_PLUGIN}/static-schema-actions`,
521
+ id: `${meta.id}/static-schema-actions`,
518
522
  actions: (node) => {
519
523
  let query: QueryResult<DataType.View> | undefined;
520
524
  return Rx.make((get) =>
@@ -534,13 +538,25 @@ export default (context: PluginContext) => {
534
538
  const filteredViews = get(
535
539
  rxFromSignal(() =>
536
540
  // TODO(wittjosiah): Remove cast.
537
- views.filter((view) => view.query.typename === Type.getTypename(schema as Type.Obj.Any)),
541
+ views.filter(
542
+ (view) => typenameFromQuery(view.query.ast) === Type.getTypename(schema as Type.Obj.Any),
543
+ ),
538
544
  ),
539
545
  );
540
546
  const deletable = filteredViews.length === 0;
541
547
 
548
+ const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
549
+ if (!dispatcher) {
550
+ return [];
551
+ }
552
+
542
553
  // TODO(wittjosiah): Remove cast.
543
- return createStaticSchemaActions({ schema: schema as Type.Obj.Any, space, deletable });
554
+ return createStaticSchemaActions({
555
+ schema: schema as Type.Obj.Any,
556
+ space,
557
+ dispatch: dispatcher.dispatchPromise,
558
+ deletable,
559
+ });
544
560
  }),
545
561
  Option.getOrElse(() => []),
546
562
  ),
@@ -550,7 +566,7 @@ export default (context: PluginContext) => {
550
566
 
551
567
  // Create nodes for schema views.
552
568
  createExtension({
553
- id: `${SPACE_PLUGIN}/schema-views`,
569
+ id: `${meta.id}/schema-views`,
554
570
  connector: (node) => {
555
571
  let query: QueryResult<DataType.View> | undefined;
556
572
  return Rx.make((get) =>
@@ -571,7 +587,7 @@ export default (context: PluginContext) => {
571
587
  // TODO(wittjosiah): Remove cast.
572
588
  const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;
573
589
  return get(rxFromQuery(query))
574
- .filter((view) => view.query.typename === typename)
590
+ .filter((view) => typenameFromQuery(view.query.ast) === typename)
575
591
  .map((view) =>
576
592
  get(
577
593
  rxFromSignal(() =>
@@ -592,9 +608,40 @@ export default (context: PluginContext) => {
592
608
  },
593
609
  }),
594
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
+
595
642
  // Create collection actions and action groups.
596
643
  createExtension({
597
- id: `${SPACE_PLUGIN}/object-actions`,
644
+ id: `${meta.id}/object-actions`,
598
645
  actions: (node) => {
599
646
  let query: QueryResult<DataType.View> | undefined;
600
647
  return Rx.make((get) =>
@@ -616,12 +663,12 @@ export default (context: PluginContext) => {
616
663
  // Don't allow the Records smart collection to be deleted.
617
664
  !(
618
665
  Obj.instanceOf(DataType.QueryCollection, object) &&
619
- object.query.typename === DataType.StoredSchema.typename
666
+ typenameFromQuery(object.query) === DataType.StoredSchema.typename
620
667
  );
621
668
  if (isSchema && query) {
622
669
  const views = get(rxFromQuery(query));
623
670
  const filteredViews = get(
624
- rxFromSignal(() => views.filter((view) => view.query.typename === object.typename)),
671
+ rxFromSignal(() => views.filter((view) => typenameFromQuery(view.query.ast) === object.typename)),
625
672
  );
626
673
  deletable = filteredViews.length === 0;
627
674
  }
@@ -653,7 +700,7 @@ export default (context: PluginContext) => {
653
700
 
654
701
  // View selected objects.
655
702
  createExtension({
656
- id: `${SPACE_PLUGIN}/selected-objects`,
703
+ id: `${meta.id}/selected-objects`,
657
704
  connector: (node) =>
658
705
  Rx.make((get) =>
659
706
  pipe(
@@ -665,7 +712,7 @@ export default (context: PluginContext) => {
665
712
  type: PLANK_COMPANION_TYPE,
666
713
  data: 'selected-objects',
667
714
  properties: {
668
- label: ['companion selected objects label', { ns: SPACE_PLUGIN }],
715
+ label: ['companion selected objects label', { ns: meta.id }],
669
716
  icon: 'ph--tree-view--regular',
670
717
  disposition: 'hidden',
671
718
  },
@@ -678,7 +725,7 @@ export default (context: PluginContext) => {
678
725
 
679
726
  // Object settings plank companion.
680
727
  createExtension({
681
- id: `${SPACE_PLUGIN}/settings`,
728
+ id: `${meta.id}/settings`,
682
729
  connector: (node) =>
683
730
  Rx.make((get) =>
684
731
  pipe(
@@ -690,7 +737,7 @@ export default (context: PluginContext) => {
690
737
  type: PLANK_COMPANION_TYPE,
691
738
  data: 'settings',
692
739
  properties: {
693
- label: ['object settings label', { ns: SPACE_PLUGIN }],
740
+ label: ['object settings label', { ns: meta.id }],
694
741
  icon: 'ph--sliders--regular',
695
742
  disposition: 'hidden',
696
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) => {
@@ -4,26 +4,27 @@
4
4
 
5
5
  import { type Schema } from 'effect';
6
6
 
7
- import { type AnyIntentChain, defineCapability, type Label } from '@dxos/app-framework';
7
+ import { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';
8
8
  import { type Space } from '@dxos/react-client/echo';
9
9
  import { type DataType } from '@dxos/schema';
10
- import { type Position, type DeepReadonly } from '@dxos/util';
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: DataType.Collection }) => AnyIntentChain;
23
+ export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);
24
24
 
25
25
  export type OnSchemaAdded = (params: { space: Space; schema: Schema.Schema.AnyNoContext }) => AnyIntentChain;
26
- export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${SPACE_PLUGIN}/capability/on-schema-added`);
26
+ export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
27
27
 
28
- 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`);
29
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'));
@@ -12,31 +12,32 @@ 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
16
  import { invariant } from '@dxos/invariant';
17
17
  import { Migrations } from '@dxos/migrations';
18
18
  import { ClientCapabilities } from '@dxos/plugin-client';
19
19
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
20
20
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
21
- import { isSpace, getSpace, SpaceState, fullyQualifiedId } from '@dxos/react-client/echo';
21
+ import { SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
22
22
  import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
23
23
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
24
- import { DataType, ProjectionModel } from '@dxos/schema';
24
+ import { DataType, ProjectionModel, typenameFromQuery } from '@dxos/schema';
25
25
 
26
- import { SpaceCapabilities } from './capabilities';
27
26
  import {
28
27
  CREATE_OBJECT_DIALOG,
29
28
  CREATE_SPACE_DIALOG,
29
+ type CreateObjectDialogProps,
30
30
  JOIN_DIALOG,
31
+ type JoinDialogProps,
31
32
  POPOVER_RENAME_OBJECT,
32
33
  POPOVER_RENAME_SPACE,
33
- type CreateObjectDialogProps,
34
- type JoinDialogProps,
35
34
  } from '../components';
36
35
  import { SpaceEvents } from '../events';
37
- import { SPACE_PLUGIN } from '../meta';
36
+ import { meta } from '../meta';
38
37
  import { CollectionAction, SpaceAction } from '../types';
39
- import { cloneObject, COMPOSER_SPACE_LOCK, getNestedObjects } from '../util';
38
+ import { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../util';
39
+
40
+ import { SpaceCapabilities } from './capabilities';
40
41
 
41
42
  // TODO(wittjosiah): Remove.
42
43
  const SPACE_MAX_OBJECTS = 500;
@@ -87,15 +88,15 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
87
88
 
88
89
  // Create records smart collection.
89
90
  const records = Obj.make(DataType.QueryCollection, {
90
- query: { typename: DataType.StoredSchema.typename },
91
+ query: Query.select(Filter.typename(DataType.StoredSchema.typename)).ast,
91
92
  });
92
93
  collection.objects.push(Ref.make(records));
93
94
 
94
95
  // Allow other plugins to add default content.
95
96
  await context.activatePromise(SpaceEvents.SpaceCreated);
96
- const onSpaceCreatedCallbacks = context.getCapabilities(SpaceCapabilities.OnSpaceCreated);
97
- const spaceCreatedIntents = onSpaceCreatedCallbacks.map((onSpaceCreated) =>
98
- onSpaceCreated({ space, rootCollection: collection }),
97
+ const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.onCreateSpace);
98
+ const spaceCreatedIntents = onCreateSpaceCallbacks.map((onCreateSpace) =>
99
+ onCreateSpace({ space, rootCollection: collection }),
99
100
  );
100
101
 
101
102
  return {
@@ -360,11 +361,17 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
360
361
  }),
361
362
  createResolver({
362
363
  intent: SpaceAction.AddSchema,
363
- resolve: async ({ space, name, schema: schemaInput }) => {
364
+ resolve: async ({ space, name, typename, version, schema: schemaInput }) => {
364
365
  const [schema] = await space.db.schemaRegistry.register([schemaInput]);
365
366
  if (name) {
366
367
  schema.storedSchema.name = name;
367
368
  }
369
+ if (typename) {
370
+ schema.storedSchema.typename = typename;
371
+ }
372
+ if (version) {
373
+ schema.storedSchema.version = version;
374
+ }
368
375
 
369
376
  await context.activatePromise(SpaceEvents.SchemaAdded);
370
377
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
@@ -399,15 +406,16 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
399
406
  resolve: async ({ view, fieldId, deletionData }, undo) => {
400
407
  const space = getSpace(view);
401
408
  invariant(space);
402
- invariant(view.query.typename);
403
- const schema = await space.db.schemaRegistry.query({ typename: view.query.typename }).firstOrUndefined();
409
+ const typename = typenameFromQuery(view.query.ast);
410
+ invariant(typename);
411
+ const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();
404
412
  invariant(schema);
405
413
  const projection = new ProjectionModel(schema.jsonSchema, view.projection);
406
414
  if (!undo) {
407
415
  const { deleted, index } = projection.deleteFieldProjection(fieldId);
408
416
  return {
409
417
  undoable: {
410
- message: ['field deleted label', { ns: SPACE_PLUGIN }],
418
+ message: ['field deleted label', { ns: meta.id }],
411
419
  data: { deletionData: { ...deleted, index } },
412
420
  },
413
421
  };
@@ -419,7 +427,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
419
427
  }),
420
428
  createResolver({
421
429
  intent: SpaceAction.OpenCreateObject,
422
- resolve: ({ target, typename, navigable = true, onCreateObject }) => {
430
+ resolve: ({ target, views, typename, initialFormValues, navigable = true, onCreateObject }) => {
423
431
  const state = context.getCapability(SpaceCapabilities.State);
424
432
 
425
433
  return {
@@ -431,7 +439,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
431
439
  blockAlign: 'start',
432
440
  props: {
433
441
  target,
442
+ views,
434
443
  typename,
444
+ initialFormValues,
435
445
  onCreateObject,
436
446
  shouldNavigate: navigable
437
447
  ? (object: Obj.Any) => {
@@ -460,13 +470,13 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
460
470
  createIntent(LayoutAction.AddToast, {
461
471
  part: 'toast',
462
472
  subject: {
463
- id: `${SPACE_PLUGIN}/space-limit`,
464
- title: ['space limit label', { ns: SPACE_PLUGIN }],
465
- description: ['space limit description', { ns: SPACE_PLUGIN }],
473
+ id: `${meta.id}/space-limit`,
474
+ title: ['space limit label', { ns: meta.id }],
475
+ description: ['space limit description', { ns: meta.id }],
466
476
  duration: 5_000,
467
477
  icon: 'ph--warning--regular',
468
- actionLabel: ['remove deleted objects label', { ns: SPACE_PLUGIN }],
469
- actionAlt: ['remove deleted objects alt', { ns: SPACE_PLUGIN }],
478
+ actionLabel: ['remove deleted objects label', { ns: meta.id }],
479
+ actionAlt: ['remove deleted objects alt', { ns: meta.id }],
470
480
  closeLabel: ['close label', { ns: 'os' }],
471
481
  onAction: () => space.db.coreDatabase.unlinkDeletedObjects(),
472
482
  },
@@ -595,7 +605,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
595
605
  return {
596
606
  undoable: {
597
607
  // TODO(ZaymonFC): Pluralize if more than one object.
598
- message: [undoMessageKey, { ns: SPACE_PLUGIN }],
608
+ message: [undoMessageKey, { ns: meta.id }],
599
609
  data: { deletionData },
600
610
  },
601
611
  intents:
@@ -687,7 +697,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
687
697
  createResolver({
688
698
  intent: CollectionAction.CreateQueryCollection,
689
699
  resolve: async ({ name, typename }) => ({
690
- data: { object: Obj.make(DataType.QueryCollection, { name, query: { typename } }) },
700
+ data: {
701
+ object: Obj.make(DataType.QueryCollection, { name, query: Query.select(Filter.typename(typename)).ast }),
702
+ },
691
703
  }),
692
704
  }),
693
705
  ]);
@@ -6,13 +6,14 @@ import React from 'react';
6
6
 
7
7
  import { Capabilities, contributes, useCapability } from '@dxos/app-framework';
8
8
 
9
- import { SpaceCapabilities } from './capabilities';
10
9
  import { AwaitingObject } from '../components';
11
- import { SPACE_PLUGIN } from '../meta';
10
+ import { meta } from '../meta';
11
+
12
+ import { SpaceCapabilities } from './capabilities';
12
13
 
13
14
  export default () =>
14
15
  contributes(Capabilities.ReactRoot, {
15
- id: SPACE_PLUGIN,
16
+ id: meta.id,
16
17
  root: () => {
17
18
  const state = useCapability(SpaceCapabilities.State);
18
19
  return state.awaiting ? <AwaitingObject id={state.awaiting} /> : null;