@dxos/plugin-space 0.8.2-staging.7ac8446 → 0.8.2

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 (341) hide show
  1. package/dist/lib/browser/app-graph-builder-DCWUULKX.mjs +328 -0
  2. package/dist/lib/browser/app-graph-builder-DCWUULKX.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-DSF2U3A5.mjs → app-graph-serializer-MLU7XI2P.mjs} +10 -10
  4. package/dist/lib/browser/app-graph-serializer-MLU7XI2P.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-KVRYWFZU.mjs → chunk-3LN4LJN6.mjs} +3 -8
  6. package/dist/lib/{node-esm/chunk-PIYAWT5N.mjs.map → browser/chunk-3LN4LJN6.mjs.map} +3 -3
  7. package/dist/lib/browser/chunk-7Y4M7GXO.mjs +94 -0
  8. package/dist/lib/browser/chunk-7Y4M7GXO.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-LO5UL6RU.mjs → chunk-N5QMRLKI.mjs} +78 -173
  10. package/dist/lib/browser/chunk-N5QMRLKI.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-Q4BTFH2P.mjs +1900 -0
  12. package/dist/lib/browser/chunk-Q4BTFH2P.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-5BDV575R.mjs → chunk-VEBKN45O.mjs} +21 -10
  14. package/dist/lib/browser/chunk-VEBKN45O.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-W46VVHFM.mjs +288 -0
  16. package/dist/lib/browser/chunk-W46VVHFM.mjs.map +7 -0
  17. package/dist/lib/browser/{identity-created-JR7BNXFH.mjs → identity-created-O63SIYOF.mjs} +5 -5
  18. package/dist/lib/browser/identity-created-O63SIYOF.mjs.map +7 -0
  19. package/dist/lib/browser/index.mjs +34 -54
  20. package/dist/lib/browser/index.mjs.map +3 -3
  21. package/dist/lib/browser/{intent-resolver-RKYILWWQ.mjs → intent-resolver-KBF3YU6I.mjs} +116 -108
  22. package/dist/lib/browser/intent-resolver-KBF3YU6I.mjs.map +7 -0
  23. package/dist/lib/browser/meta.json +1 -1
  24. package/dist/lib/browser/{react-root-6H7NX2M2.mjs → react-root-PVKJE4EZ.mjs} +6 -5
  25. package/dist/lib/browser/{react-surface-7AGLOVMK.mjs → react-surface-252P4NCK.mjs} +121 -54
  26. package/dist/lib/browser/react-surface-252P4NCK.mjs.map +7 -0
  27. package/dist/lib/browser/schema-defs-JMN74RNK.mjs +26 -0
  28. package/dist/lib/browser/schema-defs-JMN74RNK.mjs.map +7 -0
  29. package/dist/lib/browser/{schema-tools-YAXPRIXP.mjs → schema-tools-JIEMHUXV.mjs} +26 -26
  30. package/dist/lib/browser/schema-tools-JIEMHUXV.mjs.map +7 -0
  31. package/dist/lib/browser/{settings-PJPTJUPE.mjs → settings-2IN2WLUK.mjs} +4 -4
  32. package/dist/lib/browser/settings-2IN2WLUK.mjs.map +7 -0
  33. package/dist/lib/browser/{spaces-ready-BSSP7HHG.mjs → spaces-ready-L4QAGTDE.mjs} +20 -19
  34. package/dist/lib/browser/spaces-ready-L4QAGTDE.mjs.map +7 -0
  35. package/dist/lib/browser/{state-X7VLCC6E.mjs → state-6HOSHLIN.mjs} +3 -5
  36. package/dist/lib/browser/state-6HOSHLIN.mjs.map +7 -0
  37. package/dist/lib/browser/types/index.mjs +7 -7
  38. package/dist/lib/node/app-graph-builder-WC445X77.cjs +328 -0
  39. package/dist/lib/node/app-graph-builder-WC445X77.cjs.map +7 -0
  40. package/dist/lib/node/{app-graph-serializer-JELGJUAY.cjs → app-graph-serializer-UPQOQVMJ.cjs} +22 -22
  41. package/dist/lib/node/app-graph-serializer-UPQOQVMJ.cjs.map +7 -0
  42. package/dist/lib/node/chunk-5WLAXYE3.cjs +125 -0
  43. package/dist/lib/node/chunk-5WLAXYE3.cjs.map +7 -0
  44. package/dist/lib/node/{chunk-IKIDS6XF.cjs → chunk-7GQGM4ZF.cjs} +7 -13
  45. package/dist/lib/node/{chunk-IKIDS6XF.cjs.map → chunk-7GQGM4ZF.cjs.map} +3 -3
  46. package/dist/lib/node/{chunk-TUZWEPGX.cjs → chunk-COQYISES.cjs} +100 -198
  47. package/dist/lib/node/chunk-COQYISES.cjs.map +7 -0
  48. package/dist/lib/node/{chunk-PU2EYH4E.cjs → chunk-DXL5TDFP.cjs} +25 -14
  49. package/dist/lib/node/chunk-DXL5TDFP.cjs.map +7 -0
  50. package/dist/lib/node/chunk-FXHI7JNY.cjs +315 -0
  51. package/dist/lib/node/chunk-FXHI7JNY.cjs.map +7 -0
  52. package/dist/lib/node/chunk-Q3YZEYZT.cjs +1904 -0
  53. package/dist/lib/node/chunk-Q3YZEYZT.cjs.map +7 -0
  54. package/dist/lib/node/{identity-created-XU4HFV2T.cjs → identity-created-UXEAUGC7.cjs} +7 -7
  55. package/dist/lib/node/identity-created-UXEAUGC7.cjs.map +7 -0
  56. package/dist/lib/node/index.cjs +83 -105
  57. package/dist/lib/node/index.cjs.map +3 -3
  58. package/dist/lib/node/{intent-resolver-VJ7YV74L.cjs → intent-resolver-SVFJKUH7.cjs} +161 -152
  59. package/dist/lib/node/intent-resolver-SVFJKUH7.cjs.map +7 -0
  60. package/dist/lib/node/meta.json +1 -1
  61. package/dist/lib/node/{react-root-TEL5RW3N.cjs → react-root-DDPDUMCG.cjs} +11 -10
  62. package/dist/lib/node/{react-root-TEL5RW3N.cjs.map → react-root-DDPDUMCG.cjs.map} +1 -1
  63. package/dist/lib/node/{react-surface-2H3S5TY5.cjs → react-surface-JUIU37BX.cjs} +144 -77
  64. package/dist/lib/node/react-surface-JUIU37BX.cjs.map +7 -0
  65. package/dist/lib/node/{schema-PPJ5BZ3A.cjs → schema-defs-XLFBG3XK.cjs} +14 -12
  66. package/dist/lib/node/schema-defs-XLFBG3XK.cjs.map +7 -0
  67. package/dist/lib/node/{schema-tools-BLIMOZYY.cjs → schema-tools-ZG6Z2QRC.cjs} +32 -32
  68. package/dist/lib/node/schema-tools-ZG6Z2QRC.cjs.map +7 -0
  69. package/dist/lib/node/{settings-WVFP2UEP.cjs → settings-FOH7EB5C.cjs} +7 -7
  70. package/dist/lib/node/settings-FOH7EB5C.cjs.map +7 -0
  71. package/dist/lib/node/{spaces-ready-7DNZSUOG.cjs → spaces-ready-VXQYCBII.cjs} +27 -26
  72. package/dist/lib/node/spaces-ready-VXQYCBII.cjs.map +7 -0
  73. package/dist/lib/node/{state-5KX6WBJH.cjs → state-ZT3MTZXB.cjs} +7 -9
  74. package/dist/lib/node/state-ZT3MTZXB.cjs.map +7 -0
  75. package/dist/lib/node/types/index.cjs +15 -15
  76. package/dist/lib/node/types/index.cjs.map +1 -1
  77. package/dist/lib/node-esm/app-graph-builder-E7CCGPQJ.mjs +329 -0
  78. package/dist/lib/node-esm/app-graph-builder-E7CCGPQJ.mjs.map +7 -0
  79. package/dist/lib/node-esm/{app-graph-serializer-FXONFKOE.mjs → app-graph-serializer-UCMSLPIA.mjs} +10 -10
  80. package/dist/lib/node-esm/app-graph-serializer-UCMSLPIA.mjs.map +7 -0
  81. package/dist/lib/node-esm/{chunk-PIYAWT5N.mjs → chunk-4X4Y63ND.mjs} +3 -8
  82. package/dist/lib/{browser/chunk-KVRYWFZU.mjs.map → node-esm/chunk-4X4Y63ND.mjs.map} +3 -3
  83. package/dist/lib/node-esm/chunk-FTELJGEG.mjs +289 -0
  84. package/dist/lib/node-esm/chunk-FTELJGEG.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-GH2FGJXH.mjs +96 -0
  86. package/dist/lib/node-esm/chunk-GH2FGJXH.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-HL2Z2GNW.mjs +1901 -0
  88. package/dist/lib/node-esm/chunk-HL2Z2GNW.mjs.map +7 -0
  89. package/dist/lib/node-esm/{chunk-3ZOUV4DF.mjs → chunk-OSPEGYX3.mjs} +21 -10
  90. package/dist/lib/node-esm/chunk-OSPEGYX3.mjs.map +7 -0
  91. package/dist/lib/node-esm/{chunk-ZGLK25WQ.mjs → chunk-XAZNQ3QN.mjs} +78 -173
  92. package/dist/lib/node-esm/chunk-XAZNQ3QN.mjs.map +7 -0
  93. package/dist/lib/node-esm/{identity-created-WJKAS2PV.mjs → identity-created-ZECO4NH3.mjs} +5 -5
  94. package/dist/lib/node-esm/identity-created-ZECO4NH3.mjs.map +7 -0
  95. package/dist/lib/node-esm/index.mjs +34 -54
  96. package/dist/lib/node-esm/index.mjs.map +3 -3
  97. package/dist/lib/node-esm/{intent-resolver-ZFNSA4CM.mjs → intent-resolver-K2UDBF2R.mjs} +116 -108
  98. package/dist/lib/node-esm/intent-resolver-K2UDBF2R.mjs.map +7 -0
  99. package/dist/lib/node-esm/meta.json +1 -1
  100. package/dist/lib/node-esm/{react-root-PRBJMWLQ.mjs → react-root-6F7B3OVO.mjs} +6 -5
  101. package/dist/lib/{browser/react-root-6H7NX2M2.mjs.map → node-esm/react-root-6F7B3OVO.mjs.map} +1 -1
  102. package/dist/lib/node-esm/{react-surface-RCZG2PNF.mjs → react-surface-NP3Y6BNZ.mjs} +121 -54
  103. package/dist/lib/node-esm/react-surface-NP3Y6BNZ.mjs.map +7 -0
  104. package/dist/lib/node-esm/schema-defs-QZJS6UXN.mjs +27 -0
  105. package/dist/lib/node-esm/schema-defs-QZJS6UXN.mjs.map +7 -0
  106. package/dist/lib/node-esm/{schema-tools-IU7EX5A5.mjs → schema-tools-2Y4D42PD.mjs} +26 -26
  107. package/dist/lib/node-esm/schema-tools-2Y4D42PD.mjs.map +7 -0
  108. package/dist/lib/node-esm/{settings-FJZPC2TV.mjs → settings-Q4XDFSYD.mjs} +4 -4
  109. package/dist/lib/node-esm/settings-Q4XDFSYD.mjs.map +7 -0
  110. package/dist/lib/node-esm/{spaces-ready-7X5PGB2V.mjs → spaces-ready-JHKPD4PH.mjs} +20 -19
  111. package/dist/lib/node-esm/spaces-ready-JHKPD4PH.mjs.map +7 -0
  112. package/dist/lib/node-esm/{state-Z6E2YTNC.mjs → state-4ATRHSKA.mjs} +3 -5
  113. package/dist/lib/node-esm/state-4ATRHSKA.mjs.map +7 -0
  114. package/dist/lib/node-esm/types/index.mjs +7 -7
  115. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  117. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  118. package/dist/types/src/capabilities/app-graph-serializer.d.ts +2 -2
  119. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  120. package/dist/types/src/capabilities/capabilities.d.ts +0 -8
  121. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  122. package/dist/types/src/capabilities/identity-created.d.ts +2 -2
  123. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/index.d.ts +9 -184
  125. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/intent-resolver.d.ts +4 -3
  127. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/schema-defs.d.ts +4 -0
  130. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/schema-tools.d.ts +3 -3
  132. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/spaces-ready.d.ts +2 -2
  134. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/state.d.ts +2 -2
  136. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  137. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  138. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  139. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  140. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  141. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  142. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  143. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  144. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  145. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  146. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  148. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  149. package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/AdvancedObjectSettings.d.ts +2 -2
  150. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -0
  151. package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/BaseObjectSettings.d.ts +2 -2
  152. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -0
  153. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -0
  154. package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/ObjectSettingsContainer.d.ts +2 -2
  155. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -0
  156. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -0
  157. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  158. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  159. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  160. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  161. package/dist/types/src/components/SchemaContainer.d.ts +13 -0
  162. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -0
  163. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  164. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  165. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +0 -2
  167. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  168. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +7 -0
  169. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -0
  170. package/dist/types/src/components/SpaceSettings/index.d.ts +0 -1
  171. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  172. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  173. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -8
  174. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  175. package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
  176. package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
  177. package/dist/types/src/components/index.d.ts +2 -3
  178. package/dist/types/src/components/index.d.ts.map +1 -1
  179. package/dist/types/src/hooks/index.d.ts +2 -0
  180. package/dist/types/src/hooks/index.d.ts.map +1 -1
  181. package/dist/types/src/hooks/useActiveSpace.d.ts +4 -0
  182. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -0
  183. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +14 -0
  184. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -0
  185. package/dist/types/src/hooks/usePath.d.ts +3 -2
  186. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  187. package/dist/types/src/index.d.ts +3 -2
  188. package/dist/types/src/index.d.ts.map +1 -1
  189. package/dist/types/src/translations.d.ts +17 -242
  190. package/dist/types/src/translations.d.ts.map +1 -1
  191. package/dist/types/src/types/collection.d.ts +9 -8
  192. package/dist/types/src/types/collection.d.ts.map +1 -1
  193. package/dist/types/src/types/index.d.ts +0 -1
  194. package/dist/types/src/types/index.d.ts.map +1 -1
  195. package/dist/types/src/types/types.d.ts +173 -146
  196. package/dist/types/src/types/types.d.ts.map +1 -1
  197. package/dist/types/src/util.d.ts +36 -20
  198. package/dist/types/src/util.d.ts.map +1 -1
  199. package/dist/types/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +54 -47
  201. package/src/SpacePlugin.tsx +11 -20
  202. package/src/capabilities/app-graph-builder.ts +377 -230
  203. package/src/capabilities/app-graph-serializer.ts +8 -8
  204. package/src/capabilities/capabilities.ts +0 -9
  205. package/src/capabilities/identity-created.ts +5 -5
  206. package/src/capabilities/index.ts +2 -2
  207. package/src/capabilities/intent-resolver.ts +107 -111
  208. package/src/capabilities/react-surface.tsx +111 -50
  209. package/src/capabilities/schema-defs.ts +30 -0
  210. package/src/capabilities/schema-tool.test.ts +2 -3
  211. package/src/capabilities/schema-tools.ts +29 -29
  212. package/src/capabilities/settings.ts +2 -2
  213. package/src/capabilities/spaces-ready.ts +17 -15
  214. package/src/capabilities/state.ts +3 -5
  215. package/src/components/AwaitingObject.tsx +1 -1
  216. package/src/components/CollectionMain.tsx +2 -5
  217. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +4 -4
  218. package/src/components/CreateDialog/CreateObjectDialog.tsx +4 -4
  219. package/src/components/CreateDialog/CreateObjectPanel.tsx +3 -25
  220. package/src/components/CreateDialog/CreateSpaceDialog.tsx +6 -3
  221. package/src/components/MembersContainer.stories.tsx +1 -5
  222. package/src/components/MembersContainer.tsx +80 -54
  223. package/src/components/MenuFooter.tsx +2 -2
  224. package/src/components/{ObjectSettingsContainer → ObjectSettings}/AdvancedObjectSettings.tsx +4 -4
  225. package/src/components/{ObjectSettingsContainer → ObjectSettings}/BaseObjectSettings.tsx +2 -2
  226. package/src/components/{ObjectSettingsContainer → ObjectSettings}/ObjectSettingsContainer.tsx +4 -4
  227. package/src/components/PersistenceStatus.tsx +11 -14
  228. package/src/components/PopoverRenameObject.tsx +15 -9
  229. package/src/components/PopoverRenameSpace.tsx +9 -1
  230. package/src/components/SchemaContainer.tsx +59 -0
  231. package/src/components/SpacePluginSettings.tsx +27 -2
  232. package/src/components/SpacePresence.stories.tsx +1 -1
  233. package/src/components/SpacePresence.tsx +60 -65
  234. package/src/components/SpaceSettings/{SpacePropertiesForm.stories.tsx → SpaceSettingsContainer.stories.tsx} +6 -6
  235. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +159 -39
  236. package/src/components/SpaceSettings/index.ts +0 -1
  237. package/src/components/SyncStatus/InlineSyncStatus.tsx +15 -24
  238. package/src/components/SyncStatus/SyncStatus.tsx +6 -69
  239. package/src/components/index.ts +2 -3
  240. package/src/hooks/index.ts +2 -0
  241. package/src/hooks/useActiveSpace.ts +20 -0
  242. package/src/hooks/useInputSurfaceLookup.tsx +31 -0
  243. package/src/hooks/usePath.ts +9 -6
  244. package/src/index.ts +3 -2
  245. package/src/translations.ts +19 -7
  246. package/src/types/collection.ts +6 -4
  247. package/src/types/index.ts +0 -1
  248. package/src/types/types.ts +130 -101
  249. package/src/util.tsx +75 -172
  250. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs +0 -315
  251. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +0 -7
  252. package/dist/lib/browser/app-graph-serializer-DSF2U3A5.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-5BDV575R.mjs.map +0 -7
  254. package/dist/lib/browser/chunk-AYW4IDRT.mjs +0 -275
  255. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +0 -7
  256. package/dist/lib/browser/chunk-JZXWPMLA.mjs +0 -2081
  257. package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +0 -7
  258. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +0 -7
  259. package/dist/lib/browser/identity-created-JR7BNXFH.mjs.map +0 -7
  260. package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +0 -7
  261. package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +0 -7
  262. package/dist/lib/browser/schema-FHTA26SW.mjs +0 -24
  263. package/dist/lib/browser/schema-FHTA26SW.mjs.map +0 -7
  264. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +0 -7
  265. package/dist/lib/browser/settings-PJPTJUPE.mjs.map +0 -7
  266. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +0 -7
  267. package/dist/lib/browser/state-X7VLCC6E.mjs.map +0 -7
  268. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs +0 -318
  269. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +0 -7
  270. package/dist/lib/node/app-graph-serializer-JELGJUAY.cjs.map +0 -7
  271. package/dist/lib/node/chunk-3GKCNADA.cjs +0 -2074
  272. package/dist/lib/node/chunk-3GKCNADA.cjs.map +0 -7
  273. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +0 -7
  274. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +0 -7
  275. package/dist/lib/node/chunk-WDEIFDTX.cjs +0 -300
  276. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +0 -7
  277. package/dist/lib/node/identity-created-XU4HFV2T.cjs.map +0 -7
  278. package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +0 -7
  279. package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +0 -7
  280. package/dist/lib/node/schema-PPJ5BZ3A.cjs.map +0 -7
  281. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +0 -7
  282. package/dist/lib/node/settings-WVFP2UEP.cjs.map +0 -7
  283. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +0 -7
  284. package/dist/lib/node/state-5KX6WBJH.cjs.map +0 -7
  285. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs +0 -316
  286. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +0 -7
  287. package/dist/lib/node-esm/app-graph-serializer-FXONFKOE.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs +0 -2082
  290. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs +0 -276
  292. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +0 -7
  294. package/dist/lib/node-esm/identity-created-WJKAS2PV.mjs.map +0 -7
  295. package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +0 -7
  296. package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +0 -7
  297. package/dist/lib/node-esm/schema-OUZKVYM5.mjs +0 -25
  298. package/dist/lib/node-esm/schema-OUZKVYM5.mjs.map +0 -7
  299. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +0 -7
  300. package/dist/lib/node-esm/settings-FJZPC2TV.mjs.map +0 -7
  301. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +0 -7
  302. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +0 -7
  303. package/dist/types/src/capabilities/schema.d.ts +0 -4
  304. package/dist/types/src/capabilities/schema.d.ts.map +0 -1
  305. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +0 -1
  306. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +0 -1
  307. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +0 -1
  308. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +0 -1
  309. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +0 -1
  310. package/dist/types/src/components/PopoverAddSpace.d.ts +0 -4
  311. package/dist/types/src/components/PopoverAddSpace.d.ts.map +0 -1
  312. package/dist/types/src/components/ShareSpaceButton.d.ts +0 -9
  313. package/dist/types/src/components/ShareSpaceButton.d.ts.map +0 -1
  314. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +0 -10
  315. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +0 -1
  316. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +0 -7
  317. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +0 -1
  318. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +0 -7
  319. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +0 -1
  320. package/dist/types/src/components/SyncStatus/Space.d.ts +0 -13
  321. package/dist/types/src/components/SyncStatus/Space.d.ts.map +0 -1
  322. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +0 -9
  323. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +0 -1
  324. package/dist/types/src/components/SyncStatus/sync-state.d.ts +0 -18
  325. package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +0 -1
  326. package/dist/types/src/types/thread.d.ts +0 -128
  327. package/dist/types/src/types/thread.d.ts.map +0 -1
  328. package/src/capabilities/schema.ts +0 -27
  329. package/src/components/PopoverAddSpace.tsx +0 -46
  330. package/src/components/ShareSpaceButton.stories.tsx +0 -27
  331. package/src/components/ShareSpaceButton.tsx +0 -32
  332. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +0 -136
  333. package/src/components/SyncStatus/Space.tsx +0 -133
  334. package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +0 -89
  335. package/src/components/SyncStatus/sync-state.ts +0 -101
  336. package/src/types/thread.ts +0 -24
  337. /package/dist/lib/{node-esm/react-root-PRBJMWLQ.mjs.map → browser/react-root-PVKJE4EZ.mjs.map} +0 -0
  338. /package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/ForeignKeys.d.ts +0 -0
  339. /package/dist/types/src/components/{ObjectSettingsContainer → ObjectSettings}/index.d.ts +0 -0
  340. /package/src/components/{ObjectSettingsContainer → ObjectSettings}/ForeignKeys.tsx +0 -0
  341. /package/src/components/{ObjectSettingsContainer → ObjectSettings}/index.ts +0 -0
@@ -2,19 +2,19 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Capabilities, contributes, createIntent, type PluginsContext } from '@dxos/app-framework';
5
+ import { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';
6
6
  import { isSpace } from '@dxos/client/echo';
7
- import { create } from '@dxos/live-object';
7
+ import { live } from '@dxos/live-object';
8
8
 
9
9
  import { SPACE_PLUGIN } from '../meta';
10
10
  import translations from '../translations';
11
- import { CollectionType, SpaceAction } from '../types';
12
- import { SPACES, SPACE_TYPE } from '../util';
11
+ import { CollectionType, SpaceAction, SPACE_TYPE } from '../types';
12
+ import { SPACES } from '../util';
13
13
 
14
14
  // https://stackoverflow.com/a/19016910
15
15
  const DIRECTORY_TYPE = 'text/directory';
16
16
 
17
- export default (context: PluginsContext) =>
17
+ export default (context: PluginContext) =>
18
18
  contributes(Capabilities.AppGraphSerializer, [
19
19
  {
20
20
  inputType: SPACES,
@@ -37,7 +37,7 @@ export default (context: PluginsContext) =>
37
37
  type: DIRECTORY_TYPE,
38
38
  }),
39
39
  deserialize: async (data) => {
40
- const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
40
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
41
41
  const result = await dispatch(createIntent(SpaceAction.Create, { name: data.name, edgeReplication: true }));
42
42
  return result.data?.space;
43
43
  },
@@ -59,11 +59,11 @@ export default (context: PluginsContext) =>
59
59
  return;
60
60
  }
61
61
 
62
- const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
62
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
63
63
  const result = await dispatch(
64
64
  createIntent(SpaceAction.AddObject, {
65
65
  target: collection,
66
- object: create(CollectionType, { name: data.name, objects: [], views: {} }),
66
+ object: live(CollectionType, { name: data.name, objects: [], views: {} }),
67
67
  }),
68
68
  );
69
69
 
@@ -17,12 +17,3 @@ export namespace SpaceCapabilities {
17
17
 
18
18
  export const ObjectForm = defineCapability<ObjectForm<any>>(`${SPACE_PLUGIN}/capability/object-form`);
19
19
  }
20
-
21
- // TODO(wittjosiah): Factor out.
22
- export namespace ThreadCapabilities {
23
- type ThreadCapability<T = any> = {
24
- predicate: (obj: any) => obj is T;
25
- createSort: (obj: T) => (anchorA: string | undefined, anchorB: string | undefined) => number;
26
- };
27
- export const Thread = defineCapability<ThreadCapability>(`${SPACE_PLUGIN}/capability/thread`);
28
- }
@@ -2,22 +2,22 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { contributes, type PluginsContext, Capabilities } from '@dxos/app-framework';
6
- import { create, makeRef } from '@dxos/live-object';
5
+ import { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';
6
+ import { live, makeRef } from '@dxos/live-object';
7
7
  import { Migrations } from '@dxos/migrations';
8
8
  import { ClientCapabilities } from '@dxos/plugin-client';
9
9
 
10
10
  import { CollectionType } from '../types';
11
11
 
12
- export default async (context: PluginsContext) => {
13
- const client = context.requestCapability(ClientCapabilities.Client);
12
+ export default async (context: PluginContext) => {
13
+ const client = context.getCapability(ClientCapabilities.Client);
14
14
  await client.spaces.waitUntilReady();
15
15
 
16
16
  const defaultSpace = client.spaces.default;
17
17
  await defaultSpace.waitUntilReady();
18
18
 
19
19
  // Create root collection structure.
20
- defaultSpace.properties[CollectionType.typename] = makeRef(create(CollectionType, { objects: [], views: {} }));
20
+ defaultSpace.properties[CollectionType.typename] = makeRef(live(CollectionType, { objects: [], views: {} }));
21
21
  if (Migrations.versionProperty) {
22
22
  defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;
23
23
  }
@@ -10,8 +10,8 @@ export const IdentityCreated = lazy(() => import('./identity-created'));
10
10
  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
- export const Schema = lazy(() => import('./schema'));
14
- export const Tools = lazy(() => import('./schema-tools'));
13
+ export const SchemaDefs = lazy(() => import('./schema-defs'));
14
+ export const SchemaTools = lazy(() => import('./schema-tools'));
15
15
  export const SpaceSettings = lazy(() => import('./settings'));
16
16
  export const SpaceState = lazy(() => import('./state'));
17
17
  export const SpacesReady = lazy(() => import('./spaces-ready'));
@@ -2,26 +2,26 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { pipe } from 'effect';
5
+ import { Effect } from 'effect';
6
6
 
7
7
  import {
8
8
  Capabilities,
9
- chain,
10
9
  contributes,
11
10
  createIntent,
12
11
  createResolver,
13
12
  LayoutAction,
14
- type PluginsContext,
13
+ type PluginContext,
15
14
  } from '@dxos/app-framework';
16
- import { type Expando, getTypename, type HasId } from '@dxos/echo-schema';
15
+ import { type Expando, getTypename, type HasId, RelationSourceId, RelationTargetId } from '@dxos/echo-schema';
17
16
  import { invariant } from '@dxos/invariant';
18
- import { create, makeRef, type ReactiveObject } from '@dxos/live-object';
17
+ import { live, makeRef, type Live } from '@dxos/live-object';
19
18
  import { Migrations } from '@dxos/migrations';
20
19
  import { ClientCapabilities } from '@dxos/plugin-client';
21
- import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';
22
20
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
23
21
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
24
- import { isSpace, getSpace, SpaceState, type Space, fullyQualifiedId, isEchoObject } from '@dxos/react-client/echo';
22
+ import { isSpace, getSpace, SpaceState, fullyQualifiedId, isEchoObject } from '@dxos/react-client/echo';
23
+ import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
24
+ import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
25
25
 
26
26
  import { SpaceCapabilities } from './capabilities';
27
27
  import {
@@ -32,7 +32,6 @@ import {
32
32
  CREATE_OBJECT_DIALOG,
33
33
  type CreateObjectDialogProps,
34
34
  POPOVER_RENAME_OBJECT,
35
- POPOVER_ADD_SPACE,
36
35
  } from '../components';
37
36
  import { SPACE_PLUGIN } from '../meta';
38
37
  import { CollectionAction, CollectionType, SpaceAction } from '../types';
@@ -42,13 +41,14 @@ import { cloneObject, COMPOSER_SPACE_LOCK, getNestedObjects } from '../util';
42
41
  const SPACE_MAX_OBJECTS = 500;
43
42
 
44
43
  type IntentResolverOptions = {
45
- context: PluginsContext;
44
+ context: PluginContext;
45
+ createInvitationUrl: (invitationCode: string) => string;
46
46
  observability?: boolean;
47
47
  };
48
48
 
49
- export default ({ context, observability }: IntentResolverOptions) => {
49
+ export default ({ context, observability, createInvitationUrl }: IntentResolverOptions) => {
50
50
  const resolve = (typename: string) =>
51
- context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
51
+ context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
52
52
 
53
53
  return contributes(Capabilities.IntentResolver, [
54
54
  createResolver({
@@ -67,14 +67,14 @@ export default ({ context, observability }: IntentResolverOptions) => {
67
67
  }),
68
68
  createResolver({
69
69
  intent: SpaceAction.Create,
70
- resolve: async ({ name, edgeReplication }) => {
71
- const client = context.requestCapability(ClientCapabilities.Client);
72
- const space = await client.spaces.create({ name });
70
+ resolve: async ({ name, hue, icon, edgeReplication }) => {
71
+ const client = context.getCapability(ClientCapabilities.Client);
72
+ const space = await client.spaces.create({ name, hue, icon });
73
73
  if (edgeReplication) {
74
74
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
75
75
  }
76
76
  await space.waitUntilReady();
77
- const collection = create(CollectionType, { objects: [], views: {} });
77
+ const collection = live(CollectionType, { objects: [], views: {} });
78
78
  space.properties[CollectionType.typename] = makeRef(collection);
79
79
 
80
80
  if (Migrations.versionProperty) {
@@ -120,52 +120,74 @@ export default ({ context, observability }: IntentResolverOptions) => {
120
120
  ],
121
121
  }),
122
122
  }),
123
+ createResolver({
124
+ intent: SpaceAction.OpenMembers,
125
+ resolve: ({ space }) => ({
126
+ intents: [
127
+ createIntent(LayoutAction.Open, {
128
+ part: 'main',
129
+ subject: [`members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`],
130
+ options: {
131
+ workspace: space.id,
132
+ },
133
+ }),
134
+ ],
135
+ }),
136
+ }),
123
137
  createResolver({
124
138
  intent: SpaceAction.Share,
125
- filter: (data): data is { space: Space } => !data.space.properties[COMPOSER_SPACE_LOCK],
126
- resolve: ({ space }) => {
127
- const layout = context.requestCapability(Capabilities.Layout);
128
- const id = `${space.id}${ATTENDABLE_PATH_SEPARATOR}members`;
129
- if (layout.active.includes(id)) {
130
- return {
131
- intents: [
132
- createIntent(LayoutAction.ScrollIntoView, {
133
- part: 'current',
134
- subject: id,
135
- }),
136
- ],
137
- };
138
- }
139
-
139
+ resolve: ({ space, type, authMethod, multiUse, target }) => {
140
+ const invitation = space.share({ type, authMethod, multiUse, target });
140
141
  return {
141
- intents: [
142
- pipe(
143
- createIntent(LayoutAction.SwitchWorkspace, {
144
- part: 'workspace',
145
- subject: space.id,
146
- }),
147
- chain(LayoutAction.Open, {
148
- part: 'main',
149
- subject: [space.id],
150
- options: {
151
- variant: 'members',
152
- },
153
- }),
154
- ),
155
- ...(observability
156
- ? [
157
- createIntent(ObservabilityAction.SendEvent, {
158
- name: 'space.share',
159
- properties: {
160
- spaceId: space.id,
161
- },
162
- }),
163
- ]
164
- : []),
165
- ],
142
+ data: invitation,
143
+ intents: observability
144
+ ? [
145
+ createIntent(ObservabilityAction.SendEvent, {
146
+ name: 'space.share',
147
+ properties: {
148
+ spaceId: space.id,
149
+ },
150
+ }),
151
+ ]
152
+ : [],
166
153
  };
167
154
  },
168
155
  }),
156
+ createResolver({
157
+ intent: SpaceAction.GetShareLink,
158
+ resolve: ({ space, target, copyToClipboard }) =>
159
+ Effect.gen(function* () {
160
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
161
+ const invitation = yield* dispatch(
162
+ createIntent(SpaceAction.Share, {
163
+ space,
164
+ type: Invitation.Type.DELEGATED,
165
+ authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
166
+ multiUse: true,
167
+ target,
168
+ }),
169
+ );
170
+
171
+ // TODO(wittjosiah): Better api to for this.
172
+ // NOTE: Delegated invitations are invalid until the connecting state when keys are filled in.
173
+ const invitationCode = yield* Effect.tryPromise(
174
+ () =>
175
+ new Promise<string>((resolve) => {
176
+ invitation.subscribe((invitation) => {
177
+ if (invitation.state === Invitation.State.CONNECTING) {
178
+ resolve(InvitationEncoder.encode(invitation));
179
+ }
180
+ });
181
+ }),
182
+ );
183
+ const url = createInvitationUrl(invitationCode);
184
+ if (copyToClipboard) {
185
+ yield* Effect.tryPromise(() => navigator.clipboard.writeText(url));
186
+ }
187
+
188
+ return { data: url };
189
+ }),
190
+ }),
169
191
  createResolver({
170
192
  intent: SpaceAction.Lock,
171
193
  resolve: ({ space }) => {
@@ -223,57 +245,19 @@ export default ({ context, observability }: IntentResolverOptions) => {
223
245
  };
224
246
  },
225
247
  }),
226
- createResolver({
227
- intent: SpaceAction.AddSpace,
228
- resolve: () => {
229
- return {
230
- intents: [
231
- createIntent(LayoutAction.UpdatePopover, {
232
- part: 'popover',
233
- subject: POPOVER_ADD_SPACE,
234
- options: {
235
- anchorId: SpaceAction.AddSpace._tag,
236
- side: 'right',
237
- },
238
- }),
239
- ],
240
- };
241
- },
242
- }),
243
248
  createResolver({
244
249
  intent: SpaceAction.OpenSettings,
245
- resolve: ({ space }) => {
246
- const layout = context.requestCapability(Capabilities.Layout);
247
- const id = `${space.id}${ATTENDABLE_PATH_SEPARATOR}settings`;
248
- if (layout.active.includes(id)) {
249
- return {
250
- intents: [
251
- createIntent(LayoutAction.ScrollIntoView, {
252
- part: 'current',
253
- subject: id,
254
- }),
255
- ],
256
- };
257
- }
258
-
259
- return {
260
- intents: [
261
- pipe(
262
- createIntent(LayoutAction.SwitchWorkspace, {
263
- part: 'workspace',
264
- subject: space.id,
265
- }),
266
- chain(LayoutAction.Open, {
267
- part: 'main',
268
- subject: [space.id],
269
- options: {
270
- variant: 'settings',
271
- },
272
- }),
273
- ),
274
- ],
275
- };
276
- },
250
+ resolve: ({ space }) => ({
251
+ intents: [
252
+ createIntent(LayoutAction.Open, {
253
+ part: 'main',
254
+ subject: [`properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`],
255
+ options: {
256
+ workspace: space.id,
257
+ },
258
+ }),
259
+ ],
260
+ }),
277
261
  }),
278
262
  createResolver({
279
263
  intent: SpaceAction.Open,
@@ -290,7 +274,7 @@ export default ({ context, observability }: IntentResolverOptions) => {
290
274
  createResolver({
291
275
  intent: SpaceAction.Migrate,
292
276
  resolve: async ({ space, version: targetVersion }) => {
293
- const state = context.requestCapability(SpaceCapabilities.MutableState);
277
+ const state = context.getCapability(SpaceCapabilities.MutableState);
294
278
 
295
279
  if (space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {
296
280
  state.sdkMigrationRunning[space.id] = true;
@@ -321,7 +305,7 @@ export default ({ context, observability }: IntentResolverOptions) => {
321
305
  createResolver({
322
306
  intent: SpaceAction.OpenCreateObject,
323
307
  resolve: ({ target, navigable = true }) => {
324
- const state = context.requestCapability(SpaceCapabilities.State);
308
+ const state = context.getCapability(SpaceCapabilities.State);
325
309
 
326
310
  return {
327
311
  intents: [
@@ -333,7 +317,7 @@ export default ({ context, observability }: IntentResolverOptions) => {
333
317
  props: {
334
318
  target,
335
319
  shouldNavigate: navigable
336
- ? (object: ReactiveObject<any>) => !(object instanceof CollectionType) || state.navigableCollections
320
+ ? (object: Live<any>) => !(object instanceof CollectionType) || state.navigableCollections
337
321
  : () => false,
338
322
  } satisfies Partial<CreateObjectDialogProps>,
339
323
  },
@@ -390,7 +374,7 @@ export default ({ context, observability }: IntentResolverOptions) => {
390
374
  collection.objects.push(makeRef(object as HasId));
391
375
  } else {
392
376
  // TODO(wittjosiah): Can't add non-echo objects by including in a collection because of types.
393
- const collection = create(CollectionType, { objects: [makeRef(object as HasId)], views: {} });
377
+ const collection = live(CollectionType, { objects: [makeRef(object as HasId)], views: {} });
394
378
  space.properties[CollectionType.typename] = makeRef(collection);
395
379
  }
396
380
  }
@@ -418,10 +402,22 @@ export default ({ context, observability }: IntentResolverOptions) => {
418
402
  };
419
403
  },
420
404
  }),
405
+ createResolver({
406
+ intent: SpaceAction.AddRelation,
407
+ resolve: ({ space, schema, source, target, fields }) => {
408
+ const relation = live(schema, { [RelationSourceId]: source, [RelationTargetId]: target, ...fields });
409
+ space.db.add(relation);
410
+ return {
411
+ data: {
412
+ relation,
413
+ },
414
+ };
415
+ },
416
+ }),
421
417
  createResolver({
422
418
  intent: SpaceAction.RemoveObjects,
423
419
  resolve: async ({ objects, target, deletionData }, undo) => {
424
- const layout = context.requestCapability(Capabilities.Layout);
420
+ const layout = context.getCapability(Capabilities.Layout);
425
421
 
426
422
  // All objects must be a member of the same space.
427
423
  const space = getSpace(objects[0]);
@@ -550,14 +546,14 @@ export default ({ context, observability }: IntentResolverOptions) => {
550
546
  createResolver({
551
547
  intent: SpaceAction.WaitForObject,
552
548
  resolve: async ({ id }) => {
553
- const state = context.requestCapability(SpaceCapabilities.MutableState);
549
+ const state = context.getCapability(SpaceCapabilities.MutableState);
554
550
  state.awaiting = id;
555
551
  },
556
552
  }),
557
553
  createResolver({
558
554
  intent: CollectionAction.Create,
559
555
  resolve: async ({ name }) => ({
560
- data: { object: create(CollectionType, { name, objects: [], views: {} }) },
556
+ data: { object: live(CollectionType, { name, objects: [], views: {} }) },
561
557
  }),
562
558
  }),
563
559
  ]);