@dxos/plugin-space 0.8.2-main.f11618f → 0.8.2-main.fbd8ed0

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 (273) hide show
  1. package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs +328 -0
  2. package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-UUJH7JRN.mjs → app-graph-serializer-VRU57AEZ.mjs} +6 -6
  4. package/dist/lib/browser/app-graph-serializer-VRU57AEZ.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-4226DMDP.mjs → chunk-43UQWMD3.mjs} +298 -504
  6. package/dist/lib/browser/chunk-43UQWMD3.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-AR5R2F6B.mjs +88 -0
  8. package/dist/lib/browser/chunk-AR5R2F6B.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-CY35NLWL.mjs +296 -0
  10. package/dist/lib/browser/chunk-CY35NLWL.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-JS6ZV4GV.mjs → chunk-IQFFOAWD.mjs} +24 -38
  12. package/dist/lib/browser/chunk-IQFFOAWD.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-DIJ7LMCS.mjs → chunk-UBSVH2NQ.mjs} +3 -4
  14. package/dist/lib/browser/chunk-UBSVH2NQ.mjs.map +7 -0
  15. package/dist/lib/browser/{identity-created-NRVE4XLL.mjs → identity-created-ANRJHNMQ.mjs} +3 -3
  16. package/dist/lib/browser/identity-created-ANRJHNMQ.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +23 -19
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-NP55M7C7.mjs → intent-resolver-KRINV5QI.mjs} +15 -33
  20. package/dist/lib/browser/intent-resolver-KRINV5QI.mjs.map +7 -0
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-root-XKAUZ3X2.mjs → react-root-J3SP2HVW.mjs} +5 -4
  23. package/dist/lib/browser/{react-surface-2DW2UDRX.mjs → react-surface-J7T2IMH4.mjs} +5 -12
  24. package/dist/lib/browser/react-surface-J7T2IMH4.mjs.map +7 -0
  25. package/dist/lib/browser/schema-defs-OCBY7APN.mjs +26 -0
  26. package/dist/lib/browser/schema-defs-OCBY7APN.mjs.map +7 -0
  27. package/dist/lib/browser/{schema-tools-YAXPRIXP.mjs → schema-tools-MYC4LTQD.mjs} +22 -22
  28. package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-MVT32NP6.mjs → settings-G24447B7.mjs} +2 -2
  30. package/dist/lib/browser/{spaces-ready-ERNSICUW.mjs → spaces-ready-5I3RKYTT.mjs} +16 -15
  31. package/dist/lib/browser/spaces-ready-5I3RKYTT.mjs.map +7 -0
  32. package/dist/lib/browser/{state-CYV6QCTN.mjs → state-SI4B5GHC.mjs} +2 -2
  33. package/dist/lib/browser/state-SI4B5GHC.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +1 -1
  35. package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs +328 -0
  36. package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-serializer-M6Z2OPA4.cjs → app-graph-serializer-VLBCR3IX.cjs} +22 -22
  38. package/dist/lib/node/app-graph-serializer-VLBCR3IX.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-UOCR4G2D.cjs → chunk-5YHUQJVB.cjs} +7 -8
  40. package/dist/lib/node/chunk-5YHUQJVB.cjs.map +7 -0
  41. package/dist/lib/node/chunk-DQN4ZQDW.cjs +119 -0
  42. package/dist/lib/node/chunk-DQN4ZQDW.cjs.map +7 -0
  43. package/dist/lib/node/chunk-K6ZO4WDJ.cjs +324 -0
  44. package/dist/lib/node/chunk-K6ZO4WDJ.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-ZMQO74LX.cjs → chunk-MXBE2VET.cjs} +338 -535
  46. package/dist/lib/node/chunk-MXBE2VET.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-XADZLQAJ.cjs → chunk-SCATWJKX.cjs} +46 -61
  48. package/dist/lib/node/chunk-SCATWJKX.cjs.map +7 -0
  49. package/dist/lib/node/{identity-created-YDTRMOMX.cjs → identity-created-NIPYGVG3.cjs} +7 -7
  50. package/dist/lib/node/identity-created-NIPYGVG3.cjs.map +7 -0
  51. package/dist/lib/node/index.cjs +73 -70
  52. package/dist/lib/node/index.cjs.map +3 -3
  53. package/dist/lib/node/{intent-resolver-3J52ARFL.cjs → intent-resolver-MJVRY6YE.cjs} +63 -80
  54. package/dist/lib/node/intent-resolver-MJVRY6YE.cjs.map +7 -0
  55. package/dist/lib/node/meta.json +1 -1
  56. package/dist/lib/node/{react-root-XUE2J7HT.cjs → react-root-M4BZ6VXB.cjs} +9 -8
  57. package/dist/lib/node/{react-root-XUE2J7HT.cjs.map → react-root-M4BZ6VXB.cjs.map} +1 -1
  58. package/dist/lib/node/{react-surface-IWSTOZ2E.cjs → react-surface-RYKSYYKM.cjs} +42 -47
  59. package/dist/lib/node/react-surface-RYKSYYKM.cjs.map +7 -0
  60. package/dist/lib/node/{schema-PPJ5BZ3A.cjs → schema-defs-2HJLXSNK.cjs} +13 -11
  61. package/dist/lib/node/schema-defs-2HJLXSNK.cjs.map +7 -0
  62. package/dist/lib/node/{schema-tools-BLIMOZYY.cjs → schema-tools-OE3MFYYH.cjs} +24 -24
  63. package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +7 -0
  64. package/dist/lib/node/{settings-JLV7YT6Q.cjs → settings-AFWO4AWK.cjs} +6 -6
  65. package/dist/lib/node/{spaces-ready-6EBR4SM4.cjs → spaces-ready-BMPXSFHF.cjs} +24 -23
  66. package/dist/lib/node/spaces-ready-BMPXSFHF.cjs.map +7 -0
  67. package/dist/lib/node/{state-JLN7TGRR.cjs → state-L2ZSDKLS.cjs} +5 -5
  68. package/dist/lib/node/state-L2ZSDKLS.cjs.map +7 -0
  69. package/dist/lib/node/types/index.cjs +15 -15
  70. package/dist/lib/node/types/index.cjs.map +1 -1
  71. package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs +329 -0
  72. package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs.map +7 -0
  73. package/dist/lib/node-esm/{app-graph-serializer-J3B4WSXU.mjs → app-graph-serializer-GEUYYXKD.mjs} +6 -6
  74. package/dist/lib/node-esm/app-graph-serializer-GEUYYXKD.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-OLISVDCF.mjs → chunk-5NIBYPVF.mjs} +3 -4
  76. package/dist/lib/node-esm/chunk-5NIBYPVF.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-CLRCW6PU.mjs +297 -0
  78. package/dist/lib/node-esm/chunk-CLRCW6PU.mjs.map +7 -0
  79. package/dist/lib/node-esm/{chunk-PQI4D4SH.mjs → chunk-FI3WV22Y.mjs} +298 -504
  80. package/dist/lib/node-esm/chunk-FI3WV22Y.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-HNKAG5CX.mjs +90 -0
  82. package/dist/lib/node-esm/chunk-HNKAG5CX.mjs.map +7 -0
  83. package/dist/lib/node-esm/{chunk-ABTVMAG5.mjs → chunk-S2W6HS4A.mjs} +24 -38
  84. package/dist/lib/node-esm/chunk-S2W6HS4A.mjs.map +7 -0
  85. package/dist/lib/node-esm/{identity-created-EC6SVYB5.mjs → identity-created-O5X2FFWU.mjs} +3 -3
  86. package/dist/lib/node-esm/identity-created-O5X2FFWU.mjs.map +7 -0
  87. package/dist/lib/node-esm/index.mjs +23 -19
  88. package/dist/lib/node-esm/index.mjs.map +3 -3
  89. package/dist/lib/node-esm/{intent-resolver-MXQIFIRC.mjs → intent-resolver-JT6EB47M.mjs} +15 -33
  90. package/dist/lib/node-esm/intent-resolver-JT6EB47M.mjs.map +7 -0
  91. package/dist/lib/node-esm/meta.json +1 -1
  92. package/dist/lib/node-esm/{react-root-ZBCJCEFS.mjs → react-root-S2LW4FS7.mjs} +5 -4
  93. package/dist/lib/{browser/react-root-XKAUZ3X2.mjs.map → node-esm/react-root-S2LW4FS7.mjs.map} +1 -1
  94. package/dist/lib/node-esm/{react-surface-JCHDAPGM.mjs → react-surface-ZNNMO7QQ.mjs} +5 -12
  95. package/dist/lib/node-esm/react-surface-ZNNMO7QQ.mjs.map +7 -0
  96. package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs +27 -0
  97. package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs.map +7 -0
  98. package/dist/lib/node-esm/{schema-tools-IU7EX5A5.mjs → schema-tools-YTJLA3NQ.mjs} +22 -22
  99. package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +7 -0
  100. package/dist/lib/node-esm/{settings-AILIMHTE.mjs → settings-MJVSCOI4.mjs} +2 -2
  101. package/dist/lib/node-esm/{spaces-ready-5PXESKHX.mjs → spaces-ready-XKG57SL5.mjs} +16 -15
  102. package/dist/lib/node-esm/spaces-ready-XKG57SL5.mjs.map +7 -0
  103. package/dist/lib/node-esm/{state-YZPY5T5A.mjs → state-QUDYGEU6.mjs} +2 -2
  104. package/dist/lib/node-esm/state-QUDYGEU6.mjs.map +7 -0
  105. package/dist/lib/node-esm/types/index.mjs +1 -1
  106. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  108. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/app-graph-serializer.d.ts +2 -2
  110. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/identity-created.d.ts +2 -2
  112. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/index.d.ts +8 -184
  114. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  116. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  118. package/dist/types/src/capabilities/schema-defs.d.ts +4 -0
  119. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
  121. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  122. package/dist/types/src/capabilities/spaces-ready.d.ts +2 -2
  123. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  124. package/dist/types/src/capabilities/state.d.ts +2 -2
  125. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  126. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  127. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  128. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  129. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  130. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  131. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  132. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  133. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  134. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  135. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  136. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  137. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +2 -2
  138. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  139. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  140. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  141. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  142. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +2 -2
  143. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  144. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  145. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  146. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  147. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  148. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  149. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  150. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  151. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  152. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  153. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  154. package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
  155. package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
  156. package/dist/types/src/components/index.d.ts +0 -1
  157. package/dist/types/src/components/index.d.ts.map +1 -1
  158. package/dist/types/src/hooks/index.d.ts +1 -0
  159. package/dist/types/src/hooks/index.d.ts.map +1 -1
  160. package/dist/types/src/hooks/useActiveSpace.d.ts +4 -0
  161. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -0
  162. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -2
  163. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  164. package/dist/types/src/hooks/usePath.d.ts +3 -2
  165. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  166. package/dist/types/src/index.d.ts +1 -0
  167. package/dist/types/src/index.d.ts.map +1 -1
  168. package/dist/types/src/translations.d.ts +2 -263
  169. package/dist/types/src/translations.d.ts.map +1 -1
  170. package/dist/types/src/types/collection.d.ts +9 -8
  171. package/dist/types/src/types/collection.d.ts.map +1 -1
  172. package/dist/types/src/types/thread.d.ts +113 -242
  173. package/dist/types/src/types/thread.d.ts.map +1 -1
  174. package/dist/types/src/types/types.d.ts +145 -160
  175. package/dist/types/src/types/types.d.ts.map +1 -1
  176. package/dist/types/src/util.d.ts +10 -16
  177. package/dist/types/src/util.d.ts.map +1 -1
  178. package/dist/types/tsconfig.tsbuildinfo +1 -1
  179. package/package.json +51 -45
  180. package/src/SpacePlugin.tsx +8 -7
  181. package/src/capabilities/app-graph-builder.ts +376 -268
  182. package/src/capabilities/app-graph-serializer.ts +4 -4
  183. package/src/capabilities/identity-created.ts +3 -3
  184. package/src/capabilities/index.ts +2 -2
  185. package/src/capabilities/intent-resolver.ts +9 -28
  186. package/src/capabilities/react-surface.tsx +15 -23
  187. package/src/capabilities/schema-defs.ts +30 -0
  188. package/src/capabilities/schema-tool.test.ts +2 -3
  189. package/src/capabilities/schema-tools.ts +25 -25
  190. package/src/capabilities/spaces-ready.ts +14 -12
  191. package/src/capabilities/state.ts +3 -3
  192. package/src/components/AwaitingObject.tsx +1 -1
  193. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +2 -2
  194. package/src/components/CreateDialog/CreateObjectDialog.tsx +1 -1
  195. package/src/components/CreateDialog/CreateSpaceDialog.tsx +2 -3
  196. package/src/components/MembersContainer.stories.tsx +1 -5
  197. package/src/components/MenuFooter.tsx +2 -2
  198. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -2
  199. package/src/components/ObjectSettings/BaseObjectSettings.tsx +2 -2
  200. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -4
  201. package/src/components/PersistenceStatus.tsx +11 -14
  202. package/src/components/SpacePresence.stories.tsx +1 -1
  203. package/src/components/SpacePresence.tsx +34 -43
  204. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +5 -3
  205. package/src/components/SyncStatus/InlineSyncStatus.tsx +10 -17
  206. package/src/components/index.ts +0 -1
  207. package/src/hooks/index.ts +1 -0
  208. package/src/hooks/useActiveSpace.ts +20 -0
  209. package/src/hooks/useInputSurfaceLookup.tsx +2 -2
  210. package/src/hooks/usePath.ts +9 -6
  211. package/src/index.ts +1 -0
  212. package/src/translations.ts +1 -2
  213. package/src/types/collection.ts +6 -4
  214. package/src/types/thread.ts +14 -8
  215. package/src/types/types.ts +104 -112
  216. package/src/util.tsx +36 -73
  217. package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs +0 -369
  218. package/dist/lib/browser/app-graph-builder-ZWNOWRAX.mjs.map +0 -7
  219. package/dist/lib/browser/app-graph-serializer-UUJH7JRN.mjs.map +0 -7
  220. package/dist/lib/browser/chunk-4226DMDP.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-DIJ7LMCS.mjs.map +0 -7
  222. package/dist/lib/browser/chunk-JS6ZV4GV.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-O7WGQVLQ.mjs +0 -306
  224. package/dist/lib/browser/chunk-O7WGQVLQ.mjs.map +0 -7
  225. package/dist/lib/browser/identity-created-NRVE4XLL.mjs.map +0 -7
  226. package/dist/lib/browser/intent-resolver-NP55M7C7.mjs.map +0 -7
  227. package/dist/lib/browser/react-surface-2DW2UDRX.mjs.map +0 -7
  228. package/dist/lib/browser/schema-FHTA26SW.mjs +0 -24
  229. package/dist/lib/browser/schema-FHTA26SW.mjs.map +0 -7
  230. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +0 -7
  231. package/dist/lib/browser/spaces-ready-ERNSICUW.mjs.map +0 -7
  232. package/dist/lib/browser/state-CYV6QCTN.mjs.map +0 -7
  233. package/dist/lib/node/app-graph-builder-LLIV422L.cjs +0 -371
  234. package/dist/lib/node/app-graph-builder-LLIV422L.cjs.map +0 -7
  235. package/dist/lib/node/app-graph-serializer-M6Z2OPA4.cjs.map +0 -7
  236. package/dist/lib/node/chunk-EQ5BPSQ7.cjs +0 -334
  237. package/dist/lib/node/chunk-EQ5BPSQ7.cjs.map +0 -7
  238. package/dist/lib/node/chunk-UOCR4G2D.cjs.map +0 -7
  239. package/dist/lib/node/chunk-XADZLQAJ.cjs.map +0 -7
  240. package/dist/lib/node/chunk-ZMQO74LX.cjs.map +0 -7
  241. package/dist/lib/node/identity-created-YDTRMOMX.cjs.map +0 -7
  242. package/dist/lib/node/intent-resolver-3J52ARFL.cjs.map +0 -7
  243. package/dist/lib/node/react-surface-IWSTOZ2E.cjs.map +0 -7
  244. package/dist/lib/node/schema-PPJ5BZ3A.cjs.map +0 -7
  245. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +0 -7
  246. package/dist/lib/node/spaces-ready-6EBR4SM4.cjs.map +0 -7
  247. package/dist/lib/node/state-JLN7TGRR.cjs.map +0 -7
  248. package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs +0 -370
  249. package/dist/lib/node-esm/app-graph-builder-HSGLCS76.mjs.map +0 -7
  250. package/dist/lib/node-esm/app-graph-serializer-J3B4WSXU.mjs.map +0 -7
  251. package/dist/lib/node-esm/chunk-ABTVMAG5.mjs.map +0 -7
  252. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs +0 -307
  253. package/dist/lib/node-esm/chunk-FJPCLEKN.mjs.map +0 -7
  254. package/dist/lib/node-esm/chunk-OLISVDCF.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-PQI4D4SH.mjs.map +0 -7
  256. package/dist/lib/node-esm/identity-created-EC6SVYB5.mjs.map +0 -7
  257. package/dist/lib/node-esm/intent-resolver-MXQIFIRC.mjs.map +0 -7
  258. package/dist/lib/node-esm/react-surface-JCHDAPGM.mjs.map +0 -7
  259. package/dist/lib/node-esm/schema-OUZKVYM5.mjs +0 -25
  260. package/dist/lib/node-esm/schema-OUZKVYM5.mjs.map +0 -7
  261. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +0 -7
  262. package/dist/lib/node-esm/spaces-ready-5PXESKHX.mjs.map +0 -7
  263. package/dist/lib/node-esm/state-YZPY5T5A.mjs.map +0 -7
  264. package/dist/types/src/capabilities/schema.d.ts +0 -4
  265. package/dist/types/src/capabilities/schema.d.ts.map +0 -1
  266. package/dist/types/src/components/PopoverAddSpace.d.ts +0 -4
  267. package/dist/types/src/components/PopoverAddSpace.d.ts.map +0 -1
  268. package/src/capabilities/schema.ts +0 -27
  269. package/src/components/PopoverAddSpace.tsx +0 -52
  270. /package/dist/lib/{node-esm/react-root-ZBCJCEFS.mjs.map → browser/react-root-J3SP2HVW.mjs.map} +0 -0
  271. /package/dist/lib/browser/{settings-MVT32NP6.mjs.map → settings-G24447B7.mjs.map} +0 -0
  272. /package/dist/lib/node/{settings-JLV7YT6Q.cjs.map → settings-AFWO4AWK.cjs.map} +0 -0
  273. /package/dist/lib/node-esm/{settings-AILIMHTE.mjs.map → settings-MJVSCOI4.mjs.map} +0 -0
@@ -2,7 +2,7 @@
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
7
  import { live } from '@dxos/live-object';
8
8
 
@@ -14,7 +14,7 @@ import { SPACES } from '../util';
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,7 +59,7 @@ 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,
@@ -2,15 +2,15 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { contributes, type PluginsContext, Capabilities } from '@dxos/app-framework';
5
+ import { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';
6
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;
@@ -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'));
@@ -10,7 +10,7 @@ import {
10
10
  createIntent,
11
11
  createResolver,
12
12
  LayoutAction,
13
- type PluginsContext,
13
+ type PluginContext,
14
14
  } from '@dxos/app-framework';
15
15
  import { type Expando, getTypename, type HasId } from '@dxos/echo-schema';
16
16
  import { invariant } from '@dxos/invariant';
@@ -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,14 +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;
46
45
  createInvitationUrl: (invitationCode: string) => string;
47
46
  observability?: boolean;
48
47
  };
49
48
 
50
49
  export default ({ context, observability, createInvitationUrl }: IntentResolverOptions) => {
51
50
  const resolve = (typename: string) =>
52
- context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
51
+ context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
53
52
 
54
53
  return contributes(Capabilities.IntentResolver, [
55
54
  createResolver({
@@ -69,7 +68,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
69
68
  createResolver({
70
69
  intent: SpaceAction.Create,
71
70
  resolve: async ({ name, hue, icon, edgeReplication }) => {
72
- const client = context.requestCapability(ClientCapabilities.Client);
71
+ const client = context.getCapability(ClientCapabilities.Client);
73
72
  const space = await client.spaces.create({ name, hue, icon });
74
73
  if (edgeReplication) {
75
74
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
@@ -158,7 +157,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
158
157
  intent: SpaceAction.GetShareLink,
159
158
  resolve: ({ space, target, copyToClipboard }) =>
160
159
  Effect.gen(function* () {
161
- const { dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
160
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
162
161
  const invitation = yield* dispatch(
163
162
  createIntent(SpaceAction.Share, {
164
163
  space,
@@ -246,24 +245,6 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
246
245
  };
247
246
  },
248
247
  }),
249
- createResolver({
250
- intent: SpaceAction.AddSpace,
251
- resolve: () => {
252
- return {
253
- intents: [
254
- createIntent(LayoutAction.UpdatePopover, {
255
- part: 'popover',
256
- subject: POPOVER_ADD_SPACE,
257
- options: {
258
- variant: 'react',
259
- anchorId: SpaceAction.AddSpace._tag,
260
- side: 'right',
261
- },
262
- }),
263
- ],
264
- };
265
- },
266
- }),
267
248
  createResolver({
268
249
  intent: SpaceAction.OpenSettings,
269
250
  resolve: ({ space }) => ({
@@ -293,7 +274,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
293
274
  createResolver({
294
275
  intent: SpaceAction.Migrate,
295
276
  resolve: async ({ space, version: targetVersion }) => {
296
- const state = context.requestCapability(SpaceCapabilities.MutableState);
277
+ const state = context.getCapability(SpaceCapabilities.MutableState);
297
278
 
298
279
  if (space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {
299
280
  state.sdkMigrationRunning[space.id] = true;
@@ -324,7 +305,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
324
305
  createResolver({
325
306
  intent: SpaceAction.OpenCreateObject,
326
307
  resolve: ({ target, navigable = true }) => {
327
- const state = context.requestCapability(SpaceCapabilities.State);
308
+ const state = context.getCapability(SpaceCapabilities.State);
328
309
 
329
310
  return {
330
311
  intents: [
@@ -424,7 +405,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
424
405
  createResolver({
425
406
  intent: SpaceAction.RemoveObjects,
426
407
  resolve: async ({ objects, target, deletionData }, undo) => {
427
- const layout = context.requestCapability(Capabilities.Layout);
408
+ const layout = context.getCapability(Capabilities.Layout);
428
409
 
429
410
  // All objects must be a member of the same space.
430
411
  const space = getSpace(objects[0]);
@@ -553,7 +534,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
553
534
  createResolver({
554
535
  intent: SpaceAction.WaitForObject,
555
536
  resolve: async ({ id }) => {
556
- const state = context.requestCapability(SpaceCapabilities.MutableState);
537
+ const state = context.getCapability(SpaceCapabilities.MutableState);
557
538
  state.awaiting = id;
558
539
  },
559
540
  }),
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema as S } from 'effect';
5
+ import { type Schema } from 'effect';
6
6
  import React, { useCallback } from 'react';
7
7
 
8
8
  import { Capabilities, contributes, createSurface, Surface, useCapability, useLayout } from '@dxos/app-framework';
@@ -17,7 +17,7 @@ import {
17
17
  parseId,
18
18
  SpaceState,
19
19
  useSpace,
20
- type ReactiveEchoObject,
20
+ type AnyLiveObject,
21
21
  type Space,
22
22
  } from '@dxos/react-client/echo';
23
23
  import { Input } from '@dxos/react-ui';
@@ -36,22 +36,20 @@ import {
36
36
  InlineSyncStatus,
37
37
  JOIN_DIALOG,
38
38
  JoinDialog,
39
+ MembersContainer,
39
40
  MenuFooter,
41
+ ObjectSettingsContainer,
40
42
  POPOVER_RENAME_OBJECT,
41
43
  POPOVER_RENAME_SPACE,
42
44
  PopoverRenameObject,
43
45
  PopoverRenameSpace,
46
+ SchemaContainer,
44
47
  SmallPresenceLive,
45
48
  SpacePluginSettings,
46
49
  SpacePresence,
50
+ SpaceSettingsContainer,
47
51
  SyncStatus,
48
52
  type CreateObjectDialogProps,
49
- POPOVER_ADD_SPACE,
50
- PopoverAddSpace,
51
- MembersContainer,
52
- ObjectSettingsContainer,
53
- SpaceSettingsContainer,
54
- SchemaContainer,
55
53
  } from '../components';
56
54
  import { SPACE_PLUGIN } from '../meta';
57
55
  import { CollectionType, HueAnnotationId, IconAnnotationId, type SpaceSettingsProps } from '../types';
@@ -93,7 +91,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
93
91
  createSurface({
94
92
  id: `${SPACE_PLUGIN}/companion/object-settings`,
95
93
  role: 'article',
96
- filter: (data): data is { companionTo: ReactiveEchoObject<any> } =>
94
+ filter: (data): data is { companionTo: AnyLiveObject<any> } =>
97
95
  isEchoObject(data.companionTo) && data.subject === 'settings',
98
96
  component: ({ data, role }) => <ObjectSettingsContainer object={data.companionTo} role={role} />,
99
97
  }),
@@ -164,8 +162,8 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
164
162
  createSurface({
165
163
  id: `${SPACE_PLUGIN}/create-initial-space-form-[hue]`,
166
164
  role: 'form-input',
167
- filter: (data): data is { prop: string; schema: S.Schema<any> } => {
168
- const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, HueAnnotationId);
165
+ filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {
166
+ const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);
169
167
  return !!annotation;
170
168
  },
171
169
  component: ({ data: _, ...inputProps }) => {
@@ -183,8 +181,8 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
183
181
  createSurface({
184
182
  id: `${SPACE_PLUGIN}/create-initial-space-form-[icon]`,
185
183
  role: 'form-input',
186
- filter: (data): data is { prop: string; schema: S.Schema<any> } => {
187
- const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, IconAnnotationId);
184
+ filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {
185
+ const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);
188
186
  return !!annotation;
189
187
  },
190
188
  component: ({ data: _, ...inputProps }) => {
@@ -208,26 +206,20 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
208
206
  createSurface({
209
207
  id: POPOVER_RENAME_OBJECT,
210
208
  role: 'popover',
211
- filter: (data): data is { props: ReactiveEchoObject<any> } =>
209
+ filter: (data): data is { props: AnyLiveObject<any> } =>
212
210
  data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),
213
211
  component: ({ data }) => <PopoverRenameObject object={data.props} />,
214
212
  }),
215
- createSurface({
216
- id: POPOVER_ADD_SPACE,
217
- role: 'popover',
218
- filter: (data): data is any => data.component === POPOVER_ADD_SPACE,
219
- component: () => <PopoverAddSpace />,
220
- }),
221
213
  createSurface({
222
214
  id: `${SPACE_PLUGIN}/menu-footer`,
223
215
  role: 'menu-footer',
224
- filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),
216
+ filter: (data): data is { subject: AnyLiveObject<any> } => isEchoObject(data.subject),
225
217
  component: ({ data }) => <MenuFooter object={data.subject} />,
226
218
  }),
227
219
  createSurface({
228
220
  id: `${SPACE_PLUGIN}/navtree-presence`,
229
221
  role: 'navtree-item-end',
230
- filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>
222
+ filter: (data): data is { id: string; subject: AnyLiveObject<any>; open?: boolean } =>
231
223
  typeof data.id === 'string' && isEchoObject(data.subject),
232
224
  component: ({ data }) => {
233
225
  // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.
@@ -254,7 +246,7 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
254
246
  id: `${SPACE_PLUGIN}/navbar-presence`,
255
247
  role: 'navbar-end',
256
248
  position: 'hoist',
257
- filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>
249
+ filter: (data): data is { subject: Space | AnyLiveObject<any> } =>
258
250
  isSpace(data.subject) || isEchoObject(data.subject),
259
251
  component: ({ data }) => {
260
252
  const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
6
+ import { ClientCapabilities } from '@dxos/plugin-client';
7
+
8
+ import { SpaceCapabilities } from './capabilities';
9
+ import { type ObjectForm } from '../types';
10
+
11
+ export default (context: PluginContext) => {
12
+ const registry = context.getCapability(Capabilities.RxRegistry);
13
+ const client = context.getCapability(ClientCapabilities.Client);
14
+
15
+ // TODO(wittjosiah): Unregister schemas when they are disabled.
16
+ let previous: ObjectForm[] = [];
17
+ const cancel = registry.subscribe(
18
+ context.capabilities(SpaceCapabilities.ObjectForm),
19
+ (_forms) => {
20
+ const forms = Array.from(new Set(_forms));
21
+ // TODO(wittjosiah): Filter out schemas which the client has already registered.
22
+ const newSchemas = forms.filter((form) => !previous.includes(form)).map((form) => form.objectSchema);
23
+ previous = forms;
24
+ client.addTypes(newSchemas);
25
+ },
26
+ { immediate: true },
27
+ );
28
+
29
+ return contributes(Capabilities.Null, null, () => cancel());
30
+ };
@@ -2,10 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { Schema } from 'effect';
5
6
  import { describe, it, expect } from 'vitest';
6
7
 
7
- import { S } from '@dxos/echo-schema';
8
-
9
8
  import { TypeNameSchema } from './schema-tools';
10
9
 
11
10
  describe('TypeNameSchema format', () => {
@@ -29,7 +28,7 @@ describe('TypeNameSchema format', () => {
29
28
  '.org/Type', // Must have domain
30
29
  ];
31
30
 
32
- const validate = S.validateSync(TypeNameSchema);
31
+ const validate = Schema.validateSync(TypeNameSchema);
33
32
 
34
33
  valid.forEach((typename) => {
35
34
  it(`should accept valid typename: ${typename}`, () => {
@@ -2,12 +2,12 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from 'effect/SchemaAST';
5
+ import { Schema, SchemaAST } from 'effect';
6
6
 
7
7
  import { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';
8
8
  import { defineTool, ToolResult } from '@dxos/artifact';
9
9
  import { type Space } from '@dxos/client/echo';
10
- import { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';
10
+ import { FormatEnum, FormatEnums, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';
11
11
  import { invariant } from '@dxos/invariant';
12
12
  import { hues } from '@dxos/react-ui-theme';
13
13
  import { getSchemaFromPropertyDefinitions } from '@dxos/schema';
@@ -21,13 +21,13 @@ declare global {
21
21
  }
22
22
 
23
23
  // TODO(ZaymonFC): Move this somewhere common.
24
- export const TypeNameSchema = S.String.pipe(
25
- S.pattern(/^\w+\.\w{2,}\/[\w/]+$/i),
26
- S.annotations({
27
- [TitleAnnotationId]: 'TypeName',
28
- [DescriptionAnnotationId]:
24
+ export const TypeNameSchema = Schema.String.pipe(
25
+ Schema.pattern(/^\w+\.\w{2,}\/[\w/]+$/i),
26
+ Schema.annotations({
27
+ [SchemaAST.TitleAnnotationId]: 'TypeName',
28
+ [SchemaAST.DescriptionAnnotationId]:
29
29
  'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',
30
- [ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],
30
+ [SchemaAST.ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],
31
31
  }),
32
32
  );
33
33
 
@@ -36,23 +36,23 @@ const formatDescription = `The format of the property. Additional information:
36
36
  This tuple is GeoJSON. You must specify \`${FormatEnum.GeoPoint}\` as [Longitude, Latitude]`;
37
37
 
38
38
  // TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.
39
- const PropertyDefinitionSchema = S.Struct({
40
- name: S.String.annotations({ [DescriptionAnnotationId]: 'The name of the property.' }),
41
- format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({
42
- [DescriptionAnnotationId]: formatDescription,
39
+ const PropertyDefinitionSchema = Schema.Struct({
40
+ name: Schema.String.annotations({ [SchemaAST.DescriptionAnnotationId]: 'The name of the property.' }),
41
+ format: Schema.Union(...FormatEnums.map((format) => Schema.Literal(format))).annotations({
42
+ [SchemaAST.DescriptionAnnotationId]: formatDescription,
43
43
  }),
44
- config: S.optional(
45
- S.Struct({
46
- options: S.optional(
47
- S.Array(SelectOptionSchema)
44
+ config: Schema.optional(
45
+ Schema.Struct({
46
+ options: Schema.optional(
47
+ Schema.Array(SelectOptionSchema)
48
48
  .annotations({
49
49
  description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,
50
50
  })
51
- .pipe(S.mutable),
51
+ .pipe(Schema.mutable),
52
52
  ),
53
53
  }),
54
54
  ),
55
- }).pipe(S.mutable);
55
+ }).pipe(Schema.mutable);
56
56
 
57
57
  const SYSTEM_NAMESPACE = 'dxos.org/echo/schema';
58
58
 
@@ -62,7 +62,7 @@ export default () =>
62
62
  name: 'list',
63
63
  description: 'List registered schemas in the space.',
64
64
  caption: 'Listing registered schemas...',
65
- schema: S.Struct({}),
65
+ schema: Schema.Struct({}),
66
66
  execute: async (_input, { extensions }) => {
67
67
  invariant(extensions?.space, 'No space.');
68
68
  const space = extensions.space;
@@ -80,8 +80,8 @@ export default () =>
80
80
  name: 'get',
81
81
  description: 'Get a specific schema by its typename.',
82
82
  caption: 'Getting schema...',
83
- schema: S.Struct({
84
- typename: S.String.annotations({
83
+ schema: Schema.Struct({
84
+ typename: Schema.String.annotations({
85
85
  description: 'The fully qualified typename of the schema.',
86
86
  }),
87
87
  }),
@@ -101,14 +101,14 @@ export default () =>
101
101
  name: 'create',
102
102
  description: 'Create a new schema with the provided definition.',
103
103
  caption: 'Creating schema...',
104
- schema: S.Struct({
104
+ schema: Schema.Struct({
105
105
  typename: TypeNameSchema.annotations({
106
106
  description:
107
107
  'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., "example.com/type/TypeName").',
108
108
  }),
109
- properties: S.Array(PropertyDefinitionSchema).pipe(
110
- S.annotations({ description: 'Array of property definitions for the schema.' }),
111
- S.mutable,
109
+ properties: Schema.Array(PropertyDefinitionSchema).pipe(
110
+ Schema.annotations({ description: 'Array of property definitions for the schema.' }),
111
+ Schema.mutable,
112
112
  ),
113
113
  }),
114
114
  execute: async ({ typename, properties }, { extensions }) => {
@@ -2,7 +2,9 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { contributes, createIntent, type PluginsContext, Capabilities, LayoutAction } from '@dxos/app-framework';
5
+ import { Option } from 'effect';
6
+
7
+ import { contributes, createIntent, type PluginContext, Capabilities, LayoutAction } from '@dxos/app-framework';
6
8
  import { SubscriptionList } from '@dxos/async';
7
9
  import { Expando } from '@dxos/echo-schema';
8
10
  import { scheduledEffect } from '@dxos/echo-signals/core';
@@ -23,17 +25,17 @@ import { COMPOSER_SPACE_LOCK, SHARED } from '../util';
23
25
  const ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;
24
26
  const WAIT_FOR_OBJECT_TIMEOUT = 1000;
25
27
 
26
- export default async (context: PluginsContext) => {
28
+ export default async (context: PluginContext) => {
27
29
  const subscriptions = new SubscriptionList();
28
30
  const spaceSubscriptions = new SubscriptionList();
29
31
 
30
- const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
31
- const { graph } = context.requestCapability(Capabilities.AppGraph);
32
- const layout = context.requestCapability(Capabilities.Layout);
33
- const deck = context.requestCapability(DeckCapabilities.DeckState);
34
- const attention = context.requestCapability(AttentionCapabilities.Attention);
35
- const state = context.requestCapability(SpaceCapabilities.MutableState);
36
- const client = context.requestCapability(ClientCapabilities.Client);
32
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
33
+ const { graph } = context.getCapability(Capabilities.AppGraph);
34
+ const layout = context.getCapability(Capabilities.Layout);
35
+ const deck = context.getCapability(DeckCapabilities.DeckState);
36
+ const attention = context.getCapability(AttentionCapabilities.Attention);
37
+ const state = context.getCapability(SpaceCapabilities.MutableState);
38
+ const client = context.getCapability(ClientCapabilities.Client);
37
39
 
38
40
  const defaultSpace = client.spaces.default;
39
41
  await defaultSpace.waitUntilReady();
@@ -49,7 +51,7 @@ export default async (context: PluginsContext) => {
49
51
 
50
52
  const {
51
53
  objects: [spacesOrder],
52
- } = await defaultSpace.db.query(Filter.schema(Expando, { key: SHARED })).run();
54
+ } = await defaultSpace.db.query(Filter.type(Expando, { key: SHARED })).run();
53
55
  if (!spacesOrder) {
54
56
  // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.
55
57
  // Instead, we store order as an array of space ids.
@@ -65,10 +67,10 @@ export default async (context: PluginsContext) => {
65
67
  return;
66
68
  }
67
69
 
68
- const node = graph.findNode(active[0]);
70
+ const node = graph.getNode(active[0]).pipe(Option.getOrNull);
69
71
  if (!node && active[0].length === FQ_ID_LENGTH) {
70
72
  const timeout = setTimeout(async () => {
71
- const node = graph.findNode(active[0]);
73
+ const node = graph.getNode(active[0]).pipe(Option.getOrNull);
72
74
  if (!node) {
73
75
  await dispatch(createIntent(SpaceAction.WaitForObject, { id: active[0] }));
74
76
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { effect } from '@preact/signals-core';
6
6
 
7
- import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
7
+ import { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';
8
8
  import { PublicKey } from '@dxos/keys';
9
9
  import { LocalStorageStore } from '@dxos/local-storage';
10
10
  import { ComplexMap } from '@dxos/util';
@@ -13,7 +13,7 @@ import { SpaceCapabilities } from './capabilities';
13
13
  import { SPACE_PLUGIN } from '../meta';
14
14
  import { type PluginState } from '../types';
15
15
 
16
- export default (context: PluginsContext) => {
16
+ export default (context: PluginContext) => {
17
17
  const state = new LocalStorageStore<PluginState>(SPACE_PLUGIN, {
18
18
  awaiting: undefined,
19
19
  spaceNames: {},
@@ -29,7 +29,7 @@ export default (context: PluginsContext) => {
29
29
  .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })
30
30
  .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });
31
31
 
32
- const manager = context.requestCapability(Capabilities.PluginManager);
32
+ const manager = context.getCapability(Capabilities.PluginManager);
33
33
  const unsubscribe = effect(() => {
34
34
  // TODO(wittjosiah): Find a way to make this capability-based.
35
35
  const enabled = manager.enabled.includes('dxos.org/plugin/stack');
@@ -26,7 +26,7 @@ export const AwaitingObject = ({ id }: { id: string }) => {
26
26
  const layout = useLayout();
27
27
 
28
28
  const client = useClient();
29
- const objects = useQuery(client.spaces, Filter.all());
29
+ const objects = useQuery(client.spaces, Filter.everything());
30
30
 
31
31
  useEffect(() => {
32
32
  if (!id) {
@@ -35,7 +35,7 @@ const meta: Meta<typeof CreateObjectDialog> = {
35
35
  decorators: [
36
36
  withClientProvider({ createIdentity: true, createSpace: true, types: [CollectionType] }),
37
37
  withTheme,
38
- withLayout({ tooltips: true }),
38
+ withLayout(),
39
39
  ],
40
40
  parameters: {
41
41
  translations: [...translations, osTranslations],
@@ -66,7 +66,7 @@ export const TargetSpace: StoryObj<typeof CreateObjectDialog> = {
66
66
  export const TargetCollection: StoryObj<typeof CreateObjectDialog> = {
67
67
  render: (args) => {
68
68
  const space = useSpace();
69
- const [collection] = useQuery(space, Filter.schema(CollectionType));
69
+ const [collection] = useQuery(space, Filter.type(CollectionType));
70
70
 
71
71
  useEffect(() => {
72
72
  if (space) {
@@ -46,7 +46,7 @@ export const CreateObjectDialog = ({
46
46
 
47
47
  const resolve = useCallback(
48
48
  (typename: string) =>
49
- manager.context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
49
+ manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
50
50
  [manager],
51
51
  );
52
52
 
@@ -2,11 +2,10 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Effect } from 'effect';
5
+ import { Effect, type Schema } from 'effect';
6
6
  import React, { useCallback, useRef } from 'react';
7
7
 
8
8
  import { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';
9
- import { type S } from '@dxos/echo-schema';
10
9
  import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
11
10
  import { Form } from '@dxos/react-ui-form';
12
11
 
@@ -16,7 +15,7 @@ import { SpaceAction, SpaceForm } from '../../types';
16
15
 
17
16
  export const CREATE_SPACE_DIALOG = `${SPACE_PLUGIN}/CreateSpaceDialog`;
18
17
 
19
- type FormValues = S.Schema.Type<typeof SpaceForm>;
18
+ type FormValues = Schema.Schema.Type<typeof SpaceForm>;
20
19
  const initialValues: FormValues = { edgeReplication: true };
21
20
 
22
21
  export const CreateSpaceDialog = () => {
@@ -16,11 +16,7 @@ import translations from '../translations';
16
16
  const meta: Meta = {
17
17
  title: 'plugins/plugin-space/MembersContainer',
18
18
  component: MembersContainer,
19
- decorators: [
20
- withClientProvider({ createIdentity: true, createSpace: true }),
21
- withTheme,
22
- withLayout({ tooltips: true }),
23
- ],
19
+ decorators: [withClientProvider({ createIdentity: true, createSpace: true }), withTheme, withLayout()],
24
20
  parameters: {
25
21
  layout: 'fullscreen',
26
22
  translations: [...translations, osTranslations],
@@ -5,14 +5,14 @@
5
5
  import { Planet } from '@phosphor-icons/react';
6
6
  import React from 'react';
7
7
 
8
- import { type ReactiveEchoObject, getSpace } from '@dxos/client/echo';
8
+ import { type AnyLiveObject, getSpace } from '@dxos/client/echo';
9
9
  import { useClient } from '@dxos/react-client';
10
10
  import { DropdownMenu, toLocalizedString, useTranslation } from '@dxos/react-ui';
11
11
 
12
12
  import { SPACE_PLUGIN } from '../meta';
13
13
  import { getSpaceDisplayName } from '../util';
14
14
 
15
- export const MenuFooter = ({ object }: { object: ReactiveEchoObject<any> }) => {
15
+ export const MenuFooter = ({ object }: { object: AnyLiveObject<any> }) => {
16
16
  const { t } = useTranslation(SPACE_PLUGIN);
17
17
  const client = useClient();
18
18
  const space = getSpace(object);
@@ -5,7 +5,7 @@
5
5
  import React, { useCallback, useState } from 'react';
6
6
 
7
7
  import { type ForeignKey, ForeignKeySchema } from '@dxos/echo-schema';
8
- import { getMeta, type ReactiveEchoObject } from '@dxos/react-client/echo';
8
+ import { getMeta, type AnyLiveObject } from '@dxos/react-client/echo';
9
9
  import { IconButton, useTranslation } from '@dxos/react-ui';
10
10
  import { Form } from '@dxos/react-ui-form';
11
11
 
@@ -18,7 +18,7 @@ const initialValues = {
18
18
  };
19
19
 
20
20
  export type AdvancedObjectSettingsProps = {
21
- object: ReactiveEchoObject<any>;
21
+ object: AnyLiveObject<any>;
22
22
  };
23
23
 
24
24
  export const AdvancedObjectSettings = ({ object }: AdvancedObjectSettingsProps) => {