@dxos/plugin-space 0.8.1-staging.391c573 → 0.8.1-staging.97aedb1

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 (253) hide show
  1. package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs → app-graph-builder-GMFCSOLG.mjs} +33 -6
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs → app-graph-serializer-DSF2U3A5.mjs} +7 -7
  4. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs.map → app-graph-serializer-DSF2U3A5.mjs.map} +2 -2
  5. package/dist/lib/browser/{chunk-UDWHTKB5.mjs → chunk-5BDV575R.mjs} +22 -16
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-ULA2UQJ4.mjs → chunk-AYW4IDRT.mjs} +15 -65
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-OWVFWTX4.mjs → chunk-JZXWPMLA.mjs} +853 -588
  10. package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-NU7WDVGN.mjs → chunk-KVRYWFZU.mjs} +3 -3
  12. package/dist/lib/browser/chunk-KVRYWFZU.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-23RVI5FZ.mjs → chunk-LO5UL6RU.mjs} +49 -16
  14. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-PTKYMZWO.mjs} +1 -1
  16. package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +7 -0
  17. package/dist/lib/browser/{identity-created-FYGS6TBH.mjs → identity-created-JR7BNXFH.mjs} +3 -3
  18. package/dist/lib/browser/index.mjs +34 -45
  19. package/dist/lib/browser/index.mjs.map +3 -3
  20. package/dist/lib/browser/{intent-resolver-7PY5WDYC.mjs → intent-resolver-RKYILWWQ.mjs} +69 -44
  21. package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-root-EP4XP4IK.mjs → react-root-6H7NX2M2.mjs} +6 -6
  24. package/dist/lib/browser/{react-surface-VNNI5POA.mjs → react-surface-7AGLOVMK.mjs} +39 -38
  25. package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
  26. package/dist/lib/browser/{schema-5W3DSY2E.mjs → schema-FHTA26SW.mjs} +3 -3
  27. package/dist/lib/browser/{schema-tools-6J5ZEDBC.mjs → schema-tools-YAXPRIXP.mjs} +3 -3
  28. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-PHPCXX33.mjs → settings-PJPTJUPE.mjs} +3 -3
  30. package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs → spaces-ready-BSSP7HHG.mjs} +8 -8
  31. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  32. package/dist/lib/browser/{state-INJ63O57.mjs → state-X7VLCC6E.mjs} +5 -3
  33. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +2 -10
  35. package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs → app-graph-builder-DPY7AUZE.cjs} +73 -46
  36. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs → app-graph-serializer-JELGJUAY.cjs} +21 -21
  38. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs.map → app-graph-serializer-JELGJUAY.cjs.map} +2 -2
  39. package/dist/lib/node/{chunk-53J7HLYX.cjs → chunk-3GKCNADA.cjs} +915 -656
  40. package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-6P2DB4QQ.cjs} +4 -4
  42. package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-6P2DB4QQ.cjs.map} +2 -2
  43. package/dist/lib/node/{chunk-YZKNRFHU.cjs → chunk-IKIDS6XF.cjs} +10 -10
  44. package/dist/lib/node/chunk-IKIDS6XF.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-U6DYXAR3.cjs → chunk-PU2EYH4E.cjs} +27 -21
  46. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-OVGKWJOC.cjs → chunk-TUZWEPGX.cjs} +99 -66
  48. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-WAJKBO3J.cjs → chunk-WDEIFDTX.cjs} +19 -73
  50. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  51. package/dist/lib/node/{identity-created-AXI64BLE.cjs → identity-created-XU4HFV2T.cjs} +7 -7
  52. package/dist/lib/node/index.cjs +102 -113
  53. package/dist/lib/node/index.cjs.map +3 -3
  54. package/dist/lib/node/{intent-resolver-QEIKJ5FR.cjs → intent-resolver-VJ7YV74L.cjs} +133 -107
  55. package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
  56. package/dist/lib/node/meta.json +1 -1
  57. package/dist/lib/node/{react-root-OW5NTN2U.cjs → react-root-TEL5RW3N.cjs} +12 -12
  58. package/dist/lib/node/{react-surface-JTIQUBHB.cjs → react-surface-2H3S5TY5.cjs} +78 -76
  59. package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
  60. package/dist/lib/node/{schema-YN7WVFRX.cjs → schema-PPJ5BZ3A.cjs} +7 -7
  61. package/dist/lib/node/{schema-tools-OZS4OC6X.cjs → schema-tools-BLIMOZYY.cjs} +5 -5
  62. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
  63. package/dist/lib/node/{settings-5QYFWNH7.cjs → settings-WVFP2UEP.cjs} +8 -8
  64. package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs → spaces-ready-7DNZSUOG.cjs} +16 -16
  65. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  66. package/dist/lib/node/{state-57UE3DYE.cjs → state-5KX6WBJH.cjs} +10 -8
  67. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  68. package/dist/lib/node/types/index.cjs +13 -21
  69. package/dist/lib/node/types/index.cjs.map +2 -2
  70. package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs → app-graph-builder-42IGWRPL.mjs} +33 -6
  71. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  72. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs → app-graph-serializer-FXONFKOE.mjs} +7 -7
  73. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs.map → app-graph-serializer-FXONFKOE.mjs.map} +2 -2
  74. package/dist/lib/node-esm/{chunk-2TQ2AJEZ.mjs → chunk-3ZOUV4DF.mjs} +22 -16
  75. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-FDVNOFE3.mjs → chunk-BEWBZ4Q4.mjs} +853 -588
  77. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-TRNZQEEN.mjs → chunk-FC4UHDPL.mjs} +15 -65
  79. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-MSWEFAPD.mjs} +1 -1
  81. package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs → chunk-PIYAWT5N.mjs} +3 -3
  83. package/dist/lib/node-esm/chunk-PIYAWT5N.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs → chunk-ZGLK25WQ.mjs} +49 -16
  85. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  86. package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs → identity-created-WJKAS2PV.mjs} +3 -3
  87. package/dist/lib/node-esm/index.mjs +34 -45
  88. package/dist/lib/node-esm/index.mjs.map +3 -3
  89. package/dist/lib/node-esm/{intent-resolver-7EYVRN3R.mjs → intent-resolver-ZFNSA4CM.mjs} +69 -44
  90. package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
  91. package/dist/lib/node-esm/meta.json +1 -1
  92. package/dist/lib/node-esm/{react-root-RCKGZSZB.mjs → react-root-PRBJMWLQ.mjs} +6 -6
  93. package/dist/lib/node-esm/{react-surface-WKKBE5V4.mjs → react-surface-RCZG2PNF.mjs} +39 -38
  94. package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
  95. package/dist/lib/node-esm/{schema-LOR2EVGY.mjs → schema-OUZKVYM5.mjs} +3 -3
  96. package/dist/lib/node-esm/{schema-tools-KJVXGDBO.mjs → schema-tools-IU7EX5A5.mjs} +3 -3
  97. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
  98. package/dist/lib/node-esm/{settings-H6MXTEQM.mjs → settings-FJZPC2TV.mjs} +3 -3
  99. package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs → spaces-ready-7X5PGB2V.mjs} +8 -8
  100. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  101. package/dist/lib/node-esm/{state-VYA6OFHD.mjs → state-Z6E2YTNC.mjs} +5 -3
  102. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  103. package/dist/lib/node-esm/types/index.mjs +2 -10
  104. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/capabilities.d.ts +4 -3
  107. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/index.d.ts +0 -1
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  111. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  114. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  115. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  116. package/dist/types/src/components/MembersContainer.d.ts +7 -0
  117. package/dist/types/src/components/MembersContainer.d.ts.map +1 -0
  118. package/dist/types/src/components/MembersContainer.stories.d.ts +8 -0
  119. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -0
  120. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  121. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts +8 -0
  122. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  123. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  124. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts +8 -0
  125. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  126. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts +2 -0
  127. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  128. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  129. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  130. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  131. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  132. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  133. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +9 -0
  134. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -0
  135. package/dist/types/src/components/SpaceSettings/index.d.ts +2 -2
  136. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  137. package/dist/types/src/components/index.d.ts +2 -2
  138. package/dist/types/src/components/index.d.ts.map +1 -1
  139. package/dist/types/src/events.d.ts +1 -1
  140. package/dist/types/src/events.d.ts.map +1 -1
  141. package/dist/types/src/meta.d.ts +2 -5
  142. package/dist/types/src/meta.d.ts.map +1 -1
  143. package/dist/types/src/translations.d.ts +53 -36
  144. package/dist/types/src/translations.d.ts.map +1 -1
  145. package/dist/types/src/types/thread.d.ts +92 -197
  146. package/dist/types/src/types/thread.d.ts.map +1 -1
  147. package/dist/types/src/types/types.d.ts +10 -0
  148. package/dist/types/src/types/types.d.ts.map +1 -1
  149. package/dist/types/src/util.d.ts +12 -0
  150. package/dist/types/src/util.d.ts.map +1 -1
  151. package/package.json +44 -42
  152. package/src/SpacePlugin.tsx +6 -11
  153. package/src/capabilities/app-graph-builder.ts +20 -0
  154. package/src/capabilities/app-graph-serializer.ts +2 -2
  155. package/src/capabilities/capabilities.ts +3 -3
  156. package/src/capabilities/intent-resolver.ts +66 -38
  157. package/src/capabilities/react-surface.tsx +30 -28
  158. package/src/capabilities/schema-tools.ts +2 -2
  159. package/src/capabilities/spaces-ready.ts +3 -3
  160. package/src/capabilities/state.ts +2 -0
  161. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -6
  162. package/src/components/CreateDialog/CreateObjectPanel.tsx +6 -6
  163. package/src/components/JoinDialog.tsx +43 -27
  164. package/src/components/MembersContainer.stories.tsx +34 -0
  165. package/src/components/MembersContainer.tsx +257 -0
  166. package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
  167. package/src/components/ObjectSettingsContainer/BaseObjectSettings.tsx +47 -0
  168. package/src/components/ObjectSettingsContainer/ObjectSettingsContainer.tsx +36 -0
  169. package/src/components/ObjectSettingsContainer/index.ts +5 -0
  170. package/src/components/PopoverRenameObject.tsx +1 -1
  171. package/src/components/SpacePresence.tsx +25 -23
  172. package/src/components/SpaceSettings/{SpaceSettingsPanel.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  173. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  174. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +63 -0
  175. package/src/components/SpaceSettings/index.ts +2 -2
  176. package/src/components/SyncStatus/SyncStatus.tsx +1 -1
  177. package/src/components/SyncStatus/save-tracker.ts +5 -5
  178. package/src/components/index.ts +2 -2
  179. package/src/events.ts +2 -2
  180. package/src/meta.ts +2 -2
  181. package/src/translations.ts +21 -12
  182. package/src/types/thread.ts +2 -56
  183. package/src/types/types.ts +15 -6
  184. package/src/util.tsx +30 -9
  185. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-OWVFWTX4.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +0 -7
  191. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +0 -7
  192. package/dist/lib/browser/intent-resolver-7PY5WDYC.mjs.map +0 -7
  193. package/dist/lib/browser/react-surface-VNNI5POA.mjs.map +0 -7
  194. package/dist/lib/browser/schema-tools-6J5ZEDBC.mjs.map +0 -7
  195. package/dist/lib/browser/spaces-ready-K47RR7N2.mjs.map +0 -7
  196. package/dist/lib/browser/state-INJ63O57.mjs.map +0 -7
  197. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +0 -7
  198. package/dist/lib/node/chunk-53J7HLYX.cjs.map +0 -7
  199. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +0 -7
  200. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +0 -7
  201. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +0 -7
  202. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +0 -7
  203. package/dist/lib/node/intent-resolver-QEIKJ5FR.cjs.map +0 -7
  204. package/dist/lib/node/react-surface-JTIQUBHB.cjs.map +0 -7
  205. package/dist/lib/node/schema-tools-OZS4OC6X.cjs.map +0 -7
  206. package/dist/lib/node/spaces-ready-FQNAKR7G.cjs.map +0 -7
  207. package/dist/lib/node/state-57UE3DYE.cjs.map +0 -7
  208. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +0 -7
  210. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +0 -7
  211. package/dist/lib/node-esm/chunk-FDVNOFE3.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +0 -7
  215. package/dist/lib/node-esm/intent-resolver-7EYVRN3R.mjs.map +0 -7
  216. package/dist/lib/node-esm/react-surface-WKKBE5V4.mjs.map +0 -7
  217. package/dist/lib/node-esm/schema-tools-KJVXGDBO.mjs.map +0 -7
  218. package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs.map +0 -7
  219. package/dist/lib/node-esm/state-VYA6OFHD.mjs.map +0 -7
  220. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  221. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +0 -1
  222. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +0 -2
  223. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +0 -1
  224. package/dist/types/src/components/BaseObjectSettings.d.ts +0 -7
  225. package/dist/types/src/components/BaseObjectSettings.d.ts.map +0 -1
  226. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +0 -11
  227. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +0 -1
  228. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts +0 -7
  229. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +0 -1
  230. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +0 -7
  231. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +0 -1
  232. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts +0 -7
  233. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +0 -1
  234. package/src/components/AdvancedObjectSettings/index.ts +0 -5
  235. package/src/components/BaseObjectSettings.tsx +0 -40
  236. package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +0 -43
  237. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +0 -120
  238. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +0 -83
  239. /package/dist/lib/browser/{identity-created-FYGS6TBH.mjs.map → identity-created-JR7BNXFH.mjs.map} +0 -0
  240. /package/dist/lib/browser/{react-root-EP4XP4IK.mjs.map → react-root-6H7NX2M2.mjs.map} +0 -0
  241. /package/dist/lib/browser/{schema-5W3DSY2E.mjs.map → schema-FHTA26SW.mjs.map} +0 -0
  242. /package/dist/lib/browser/{settings-PHPCXX33.mjs.map → settings-PJPTJUPE.mjs.map} +0 -0
  243. /package/dist/lib/node/{identity-created-AXI64BLE.cjs.map → identity-created-XU4HFV2T.cjs.map} +0 -0
  244. /package/dist/lib/node/{react-root-OW5NTN2U.cjs.map → react-root-TEL5RW3N.cjs.map} +0 -0
  245. /package/dist/lib/node/{schema-YN7WVFRX.cjs.map → schema-PPJ5BZ3A.cjs.map} +0 -0
  246. /package/dist/lib/node/{settings-5QYFWNH7.cjs.map → settings-WVFP2UEP.cjs.map} +0 -0
  247. /package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs.map → identity-created-WJKAS2PV.mjs.map} +0 -0
  248. /package/dist/lib/node-esm/{react-root-RCKGZSZB.mjs.map → react-root-PRBJMWLQ.mjs.map} +0 -0
  249. /package/dist/lib/node-esm/{schema-LOR2EVGY.mjs.map → schema-OUZKVYM5.mjs.map} +0 -0
  250. /package/dist/lib/node-esm/{settings-H6MXTEQM.mjs.map → settings-FJZPC2TV.mjs.map} +0 -0
  251. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
  252. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  253. /package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
@@ -26,25 +26,25 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var react_root_OW5NTN2U_exports = {};
30
- __export(react_root_OW5NTN2U_exports, {
29
+ var react_root_TEL5RW3N_exports = {};
30
+ __export(react_root_TEL5RW3N_exports, {
31
31
  default: () => react_root_default
32
32
  });
33
- module.exports = __toCommonJS(react_root_OW5NTN2U_exports);
34
- var import_chunk_53J7HLYX = require("./chunk-53J7HLYX.cjs");
35
- var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
36
- var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
37
- var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
38
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
33
+ module.exports = __toCommonJS(react_root_TEL5RW3N_exports);
34
+ var import_chunk_3GKCNADA = require("./chunk-3GKCNADA.cjs");
35
+ var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
36
+ var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
37
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
38
+ var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
39
39
  var import_react = __toESM(require("react"));
40
40
  var import_app_framework = require("@dxos/app-framework");
41
41
  var react_root_default = () => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactRoot, {
42
- id: import_chunk_WZR6OAN3.SPACE_PLUGIN,
42
+ id: import_chunk_6P2DB4QQ.SPACE_PLUGIN,
43
43
  root: () => {
44
- const state = (0, import_app_framework.useCapability)(import_chunk_YZKNRFHU.SpaceCapabilities.State);
45
- return state.awaiting ? /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.AwaitingObject, {
44
+ const state = (0, import_app_framework.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.State);
45
+ return state.awaiting ? /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.AwaitingObject, {
46
46
  id: state.awaiting
47
47
  }) : null;
48
48
  }
49
49
  });
50
- //# sourceMappingURL=react-root-OW5NTN2U.cjs.map
50
+ //# sourceMappingURL=react-root-TEL5RW3N.cjs.map
@@ -26,23 +26,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var react_surface_JTIQUBHB_exports = {};
30
- __export(react_surface_JTIQUBHB_exports, {
29
+ var react_surface_2H3S5TY5_exports = {};
30
+ __export(react_surface_2H3S5TY5_exports, {
31
31
  default: () => react_surface_default
32
32
  });
33
- module.exports = __toCommonJS(react_surface_JTIQUBHB_exports);
34
- var import_chunk_53J7HLYX = require("./chunk-53J7HLYX.cjs");
35
- var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
36
- var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
37
- var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
38
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
33
+ module.exports = __toCommonJS(react_surface_2H3S5TY5_exports);
34
+ var import_chunk_3GKCNADA = require("./chunk-3GKCNADA.cjs");
35
+ var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
36
+ var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
37
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
38
+ var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
39
39
  var import_react = __toESM(require("react"));
40
40
  var import_app_framework = require("@dxos/app-framework");
41
+ var import_echo_schema = require("@dxos/echo-schema");
41
42
  var import_local_storage = require("@dxos/local-storage");
42
43
  var import_echo = require("@dxos/react-client/echo");
43
44
  var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
44
45
  (0, import_app_framework.createSurface)({
45
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/article`,
46
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/article`,
46
47
  role: "article",
47
48
  filter: (data) => (
48
49
  // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
@@ -51,171 +52,172 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
51
52
  component: ({ data, role, ...rest }) => /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
52
53
  data: {
53
54
  id: data.subject.id,
54
- subject: data.subject.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target
55
+ subject: data.subject.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target
55
56
  },
56
57
  role,
57
58
  ...rest
58
59
  })
59
60
  }),
60
61
  (0, import_app_framework.createSurface)({
61
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-fallback`,
62
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/collection-fallback`,
62
63
  role: "article",
63
64
  position: "fallback",
64
- filter: (data) => data.subject instanceof import_chunk_WAJKBO3J.CollectionType,
65
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CollectionMain, {
65
+ filter: (data) => (0, import_echo_schema.isInstanceOf)(import_chunk_WDEIFDTX.CollectionType, data.subject),
66
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.CollectionMain, {
66
67
  collection: data.subject
67
68
  })
68
69
  }),
69
70
  (0, import_app_framework.createSurface)({
70
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings-panel`,
71
- // TODO(burdon): Add role name syntax to minimal plugin docs.
72
- role: "complementary--settings",
73
- filter: (data) => (0, import_echo.isSpace)(data.subject),
74
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpaceSettingsPanel, {
75
- space: data.subject
71
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/members`,
72
+ role: "article",
73
+ position: "hoist",
74
+ filter: (data) => (0, import_echo.isSpace)(data.subject) && data.variant === "members",
75
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.MembersContainer, {
76
+ space: data.subject,
77
+ createInvitationUrl
76
78
  })
77
79
  }),
78
80
  (0, import_app_framework.createSurface)({
79
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/object-settings-base-panel`,
80
- role: "complementary--settings",
81
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/settings`,
82
+ role: "article",
81
83
  position: "hoist",
82
- filter: (data) => (0, import_echo.isEchoObject)(data.subject),
83
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.BaseObjectSettings, {
84
- object: data.subject
84
+ filter: (data) => (0, import_echo.isSpace)(data.subject) && data.variant === "settings",
85
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SpaceSettingsContainer, {
86
+ space: data.subject
85
87
  })
86
88
  }),
87
89
  (0, import_app_framework.createSurface)({
88
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/object-settings-advanced-panel`,
89
- role: "complementary--settings",
90
- position: "fallback",
91
- filter: (data) => (0, import_echo.isEchoObject)(data.subject),
92
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.AdvancedObjectSettings, {
93
- object: data.subject
90
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/companion/object-settings`,
91
+ role: "article",
92
+ filter: (data) => (0, import_echo.isEchoObject)(data.companionTo) && data.subject === "settings",
93
+ component: ({ data, role }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.ObjectSettingsContainer, {
94
+ object: data.companionTo,
95
+ role
94
96
  })
95
97
  }),
96
98
  (0, import_app_framework.createSurface)({
97
- id: import_chunk_53J7HLYX.SPACE_SETTINGS_DIALOG,
98
- role: "dialog",
99
- filter: (data) => data.component === import_chunk_53J7HLYX.SPACE_SETTINGS_DIALOG,
100
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpaceSettingsDialog, {
101
- ...data.props,
102
- createInvitationUrl
99
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/space-settings--properties`,
100
+ role: "space-settings--properties",
101
+ filter: (data) => (0, import_echo.isSpace)(data.subject),
102
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SpacePropertiesForm, {
103
+ space: data.subject
103
104
  })
104
105
  }),
105
106
  (0, import_app_framework.createSurface)({
106
- id: import_chunk_53J7HLYX.JOIN_DIALOG,
107
+ id: import_chunk_3GKCNADA.JOIN_DIALOG,
107
108
  role: "dialog",
108
- filter: (data) => data.component === import_chunk_53J7HLYX.JOIN_DIALOG,
109
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.JoinDialog, data.props)
109
+ filter: (data) => data.component === import_chunk_3GKCNADA.JOIN_DIALOG,
110
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.JoinDialog, data.props)
110
111
  }),
111
112
  (0, import_app_framework.createSurface)({
112
- id: import_chunk_53J7HLYX.CREATE_SPACE_DIALOG,
113
+ id: import_chunk_3GKCNADA.CREATE_SPACE_DIALOG,
113
114
  role: "dialog",
114
- filter: (data) => data.component === import_chunk_53J7HLYX.CREATE_SPACE_DIALOG,
115
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CreateSpaceDialog, null)
115
+ filter: (data) => data.component === import_chunk_3GKCNADA.CREATE_SPACE_DIALOG,
116
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.CreateSpaceDialog, null)
116
117
  }),
117
118
  (0, import_app_framework.createSurface)({
118
- id: import_chunk_53J7HLYX.CREATE_OBJECT_DIALOG,
119
+ id: import_chunk_3GKCNADA.CREATE_OBJECT_DIALOG,
119
120
  role: "dialog",
120
- filter: (data) => data.component === import_chunk_53J7HLYX.CREATE_OBJECT_DIALOG,
121
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CreateObjectDialog, data.props)
121
+ filter: (data) => data.component === import_chunk_3GKCNADA.CREATE_OBJECT_DIALOG,
122
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.CreateObjectDialog, data.props)
122
123
  }),
123
124
  (0, import_app_framework.createSurface)({
124
- id: import_chunk_53J7HLYX.POPOVER_RENAME_SPACE,
125
+ id: import_chunk_3GKCNADA.POPOVER_RENAME_SPACE,
125
126
  role: "popover",
126
- filter: (data) => data.component === import_chunk_53J7HLYX.POPOVER_RENAME_SPACE && (0, import_echo.isSpace)(data.props),
127
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.PopoverRenameSpace, {
127
+ filter: (data) => data.component === import_chunk_3GKCNADA.POPOVER_RENAME_SPACE && (0, import_echo.isSpace)(data.props),
128
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.PopoverRenameSpace, {
128
129
  space: data.props
129
130
  })
130
131
  }),
131
132
  (0, import_app_framework.createSurface)({
132
- id: import_chunk_53J7HLYX.POPOVER_RENAME_OBJECT,
133
+ id: import_chunk_3GKCNADA.POPOVER_RENAME_OBJECT,
133
134
  role: "popover",
134
- filter: (data) => data.component === import_chunk_53J7HLYX.POPOVER_RENAME_OBJECT && (0, import_echo.isReactiveObject)(data.props),
135
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.PopoverRenameObject, {
135
+ filter: (data) => data.component === import_chunk_3GKCNADA.POPOVER_RENAME_OBJECT && (0, import_echo.isReactiveObject)(data.props),
136
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.PopoverRenameObject, {
136
137
  object: data.props
137
138
  })
138
139
  }),
139
140
  (0, import_app_framework.createSurface)({
140
- id: import_chunk_53J7HLYX.POPOVER_ADD_SPACE,
141
+ id: import_chunk_3GKCNADA.POPOVER_ADD_SPACE,
141
142
  role: "popover",
142
- filter: (data) => data.component === import_chunk_53J7HLYX.POPOVER_ADD_SPACE,
143
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.PopoverAddSpace, null)
143
+ filter: (data) => data.component === import_chunk_3GKCNADA.POPOVER_ADD_SPACE,
144
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.PopoverAddSpace, null)
144
145
  }),
145
146
  (0, import_app_framework.createSurface)({
146
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence`,
147
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/navtree-presence`,
147
148
  role: "navtree-item-end",
148
149
  filter: (data) => typeof data.id === "string" && (0, import_echo.isEchoObject)(data.subject),
149
150
  component: ({ data }) => {
150
- const state = (0, import_app_framework.useCapability)(import_chunk_YZKNRFHU.SpaceCapabilities.MutableState);
151
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SmallPresenceLive, {
151
+ const state = (0, import_app_framework.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
152
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SmallPresenceLive, {
152
153
  id: data.id,
153
154
  open: data.open,
154
155
  viewers: state.viewersByObject[data.id]
155
156
  });
156
157
  }
157
158
  }),
159
+ // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
158
160
  (0, import_app_framework.createSurface)({
159
- // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
160
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence-fallback`,
161
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/navtree-presence-fallback`,
161
162
  role: "navtree-item-end",
162
163
  position: "fallback",
163
164
  filter: (data) => typeof data.id === "string",
164
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SmallPresenceLive, {
165
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SmallPresenceLive, {
165
166
  id: data.id,
166
167
  open: data.open
167
168
  })
168
169
  }),
170
+ // TODO(wittjosiah): Broken?
169
171
  (0, import_app_framework.createSurface)({
170
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-sync-status`,
172
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/navtree-sync-status`,
171
173
  role: "navtree-item-end",
172
174
  filter: (data) => (0, import_echo.isSpace)(data.subject),
173
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.InlineSyncStatus, {
175
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.InlineSyncStatus, {
174
176
  space: data.subject,
175
177
  open: data.open
176
178
  })
177
179
  }),
178
180
  (0, import_app_framework.createSurface)({
179
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navbar-presence`,
181
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/navbar-presence`,
180
182
  role: "navbar-end",
181
183
  position: "hoist",
182
184
  filter: (data) => (0, import_echo.isSpace)(data.subject) || (0, import_echo.isEchoObject)(data.subject),
183
185
  component: ({ data }) => {
184
186
  const space = (0, import_echo.isSpace)(data.subject) ? data.subject : (0, import_echo.getSpace)(data.subject);
185
- const object = (0, import_echo.isSpace)(data.subject) ? data.subject.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target : void 0 : data.subject;
186
- return object ? /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpacePresence, {
187
+ const object = (0, import_echo.isSpace)(data.subject) ? data.subject.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target : void 0 : data.subject;
188
+ return object ? /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SpacePresence, {
187
189
  object
188
190
  }) : null;
189
191
  }
190
192
  }),
191
193
  (0, import_app_framework.createSurface)({
192
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-section`,
194
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/collection-section`,
193
195
  role: "section",
194
- filter: (data) => data.subject instanceof import_chunk_WAJKBO3J.CollectionType,
195
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.CollectionSection, {
196
+ filter: (data) => (0, import_echo_schema.isInstanceOf)(import_chunk_WDEIFDTX.CollectionType, data.subject),
197
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.CollectionSection, {
196
198
  collection: data.subject
197
199
  })
198
200
  }),
199
201
  (0, import_app_framework.createSurface)({
200
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings`,
202
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/plugin-settings`,
201
203
  role: "article",
202
- filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_WZR6OAN3.SPACE_PLUGIN,
203
- component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SpacePluginSettings, {
204
+ filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_6P2DB4QQ.SPACE_PLUGIN,
205
+ component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SpacePluginSettings, {
204
206
  settings: subject.value
205
207
  })
206
208
  }),
207
209
  (0, import_app_framework.createSurface)({
208
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/menu-footer`,
210
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/menu-footer`,
209
211
  role: "menu-footer",
210
212
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
211
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.MenuFooter, {
213
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.MenuFooter, {
212
214
  object: data.subject
213
215
  })
214
216
  }),
215
217
  (0, import_app_framework.createSurface)({
216
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/status`,
218
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/status`,
217
219
  role: "status",
218
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_53J7HLYX.SyncStatus, null)
220
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_3GKCNADA.SyncStatus, null)
219
221
  })
220
222
  ]);
221
- //# sourceMappingURL=react-surface-JTIQUBHB.cjs.map
223
+ //# sourceMappingURL=react-surface-2H3S5TY5.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface, Surface, useCapability } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { SettingsStore } from '@dxos/local-storage';\nimport {\n getSpace,\n isEchoObject,\n isReactiveObject,\n isSpace,\n SpaceState,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SyncStatus,\n type CreateObjectDialogProps,\n POPOVER_ADD_SPACE,\n PopoverAddSpace,\n SpaceSettingsContainer,\n SpacePropertiesForm,\n MembersContainer,\n ObjectSettingsContainer,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => isInstanceOf(CollectionType, data.subject),\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: Space; variant: 'members' } =>\n isSpace(data.subject) && data.variant === 'members',\n component: ({ data }) => <MembersContainer space={data.subject} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: Space; variant: 'settings' } =>\n isSpace(data.subject) && data.variant === 'settings',\n component: ({ data }) => <SpaceSettingsContainer space={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: ReactiveEchoObject<any> } =>\n isEchoObject(data.companionTo) && data.subject === 'settings',\n component: ({ data, role }) => <ObjectSettingsContainer object={data.companionTo} role={role} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings--properties`,\n role: 'space-settings--properties',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <SpacePropertiesForm space={data.subject} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: POPOVER_ADD_SPACE,\n role: 'popover',\n filter: (data): data is any => data.component === POPOVER_ADD_SPACE,\n component: () => <PopoverAddSpace />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n // TODO(wittjosiah): Broken?\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => isInstanceOf(CollectionType, data.subject),\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "React", "Surface", "properties", "CollectionType", "typename", "target", "position", "isInstanceOf", "CollectionMain", "collection", "variant", "MembersContainer", "space", "SpaceSettingsContainer", "isEchoObject", "companionTo", "ObjectSettingsContainer", "object", "SpacePropertiesForm", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isReactiveObject", "PopoverRenameObject", "POPOVER_ADD_SPACE", "PopoverAddSpace", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "undefined", "SpacePresence", "CollectionSection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "MenuFooter", "SyncStatus"]
7
+ }
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var schema_YN7WVFRX_exports = {};
20
- __export(schema_YN7WVFRX_exports, {
19
+ var schema_PPJ5BZ3A_exports = {};
20
+ __export(schema_PPJ5BZ3A_exports, {
21
21
  default: () => schema_default
22
22
  });
23
- module.exports = __toCommonJS(schema_YN7WVFRX_exports);
24
- var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
25
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
23
+ module.exports = __toCommonJS(schema_PPJ5BZ3A_exports);
24
+ var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
25
+ var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
26
26
  var import_signals_core = require("@preact/signals-core");
27
27
  var import_app_framework = require("@dxos/app-framework");
28
28
  var import_plugin_client = require("@dxos/plugin-client");
@@ -30,11 +30,11 @@ var schema_default = (context) => {
30
30
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
31
31
  let previous = [];
32
32
  const unsubscribe = (0, import_signals_core.effect)(() => {
33
- const forms = Array.from(new Set(context.requestCapabilities(import_chunk_YZKNRFHU.SpaceCapabilities.ObjectForm)));
33
+ const forms = Array.from(new Set(context.requestCapabilities(import_chunk_IKIDS6XF.SpaceCapabilities.ObjectForm)));
34
34
  const newSchemas = forms.filter((form) => !previous.includes(form)).map((form) => form.objectSchema);
35
35
  previous = forms;
36
36
  client.addTypes(newSchemas);
37
37
  });
38
38
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Null, null, () => unsubscribe());
39
39
  };
40
- //# sourceMappingURL=schema-YN7WVFRX.cjs.map
40
+ //# sourceMappingURL=schema-PPJ5BZ3A.cjs.map
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var schema_tools_OZS4OC6X_exports = {};
20
- __export(schema_tools_OZS4OC6X_exports, {
19
+ var schema_tools_BLIMOZYY_exports = {};
20
+ __export(schema_tools_BLIMOZYY_exports, {
21
21
  TypeNameSchema: () => TypeNameSchema,
22
22
  default: () => schema_tools_default
23
23
  });
24
- module.exports = __toCommonJS(schema_tools_OZS4OC6X_exports);
24
+ module.exports = __toCommonJS(schema_tools_BLIMOZYY_exports);
25
25
  var import_SchemaAST = require("effect/SchemaAST");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
27
  var import_artifact = require("@dxos/artifact");
@@ -131,7 +131,7 @@ var schema_tools_default = () => (0, import_app_framework.contributes)(import_ap
131
131
  ]
132
132
  });
133
133
  const space = extensions.space;
134
- const schema = (0, import_schema.echoSchemaFromPropertyDefinitions)(typename, properties);
134
+ const schema = (0, import_schema.getSchemaFromPropertyDefinitions)(typename, properties);
135
135
  const [registeredSchema] = await space.db.schemaRegistry.register([
136
136
  schema
137
137
  ]);
@@ -143,4 +143,4 @@ var schema_tools_default = () => (0, import_app_framework.contributes)(import_ap
143
143
  0 && (module.exports = {
144
144
  TypeNameSchema
145
145
  });
146
- //# sourceMappingURL=schema-tools-OZS4OC6X.cjs.map
146
+ //# sourceMappingURL=schema-tools-BLIMOZYY.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/schema-tools.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { DescriptionAnnotationId, ExamplesAnnotationId, TitleAnnotationId } from 'effect/SchemaAST';\n\nimport { Capabilities, contributes, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { type Space } from '@dxos/client/echo';\nimport { FormatEnum, FormatEnums, S, SelectOptionSchema, GeoPoint, toJsonSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { hues } from '@dxos/react-ui-theme';\nimport { getSchemaFromPropertyDefinitions } from '@dxos/schema';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\n// TODO(ZaymonFC): Move this somewhere common.\nexport const TypeNameSchema = S.String.pipe(\n S.pattern(/^\\w+\\.\\w{2,}\\/[\\w/]+$/i),\n S.annotations({\n [TitleAnnotationId]: 'TypeName',\n [DescriptionAnnotationId]:\n 'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',\n [ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],\n }),\n);\n\nconst formatDescription = `The format of the property. Additional information:\n ${FormatEnum.GeoPoint}: ${JSON.stringify(toJsonSchema(GeoPoint))}\n This tuple is GeoJSON. You must specify \\`${FormatEnum.GeoPoint}\\` as [Longitude, Latitude]`;\n\n// TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.\nconst PropertyDefinitionSchema = S.Struct({\n name: S.String.annotations({ [DescriptionAnnotationId]: 'The name of the property.' }),\n format: S.Union(...FormatEnums.map((format) => S.Literal(format))).annotations({\n [DescriptionAnnotationId]: formatDescription,\n }),\n config: S.optional(\n S.Struct({\n options: S.optional(\n S.Array(SelectOptionSchema)\n .annotations({\n description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,\n })\n .pipe(S.mutable),\n ),\n }),\n ),\n}).pipe(S.mutable);\n\nconst SYSTEM_NAMESPACE = 'dxos.org/echo/schema';\n\nexport default () =>\n contributes(Capabilities.Tools, [\n defineTool(SYSTEM_NAMESPACE, {\n name: 'list',\n description: 'List registered schemas in the space.',\n caption: 'Listing registered schemas...',\n schema: S.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schemas = await space.db.schemaRegistry.query({}).run();\n return ToolResult.Success(\n schemas.map((schema) => ({\n typename: schema.typename,\n version: schema.version,\n })),\n );\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'get',\n description: 'Get a specific schema by its typename.',\n caption: 'Getting schema...',\n schema: S.Struct({\n typename: S.String.annotations({\n description: 'The fully qualified typename of the schema.',\n }),\n }),\n execute: async ({ typename }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n if (!schema) {\n return ToolResult.Error(`Schema not found: ${typename}`);\n }\n\n return ToolResult.Success(schema);\n },\n }),\n defineTool(SYSTEM_NAMESPACE, {\n name: 'create',\n description: 'Create a new schema with the provided definition.',\n caption: 'Creating schema...',\n schema: S.Struct({\n typename: TypeNameSchema.annotations({\n description:\n 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., \"example.com/type/TypeName\").',\n }),\n properties: S.Array(PropertyDefinitionSchema).pipe(\n S.annotations({ description: 'Array of property definitions for the schema.' }),\n S.mutable,\n ),\n }),\n execute: async ({ typename, properties }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = getSchemaFromPropertyDefinitions(typename, properties);\n const [registeredSchema] = await space.db.schemaRegistry.register([schema]);\n\n return ToolResult.Success(registeredSchema);\n },\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["TypeNameSchema", "S", "String", "pipe", "pattern", "annotations", "TitleAnnotationId", "DescriptionAnnotationId", "ExamplesAnnotationId", "formatDescription", "FormatEnum", "GeoPoint", "JSON", "stringify", "toJsonSchema", "PropertyDefinitionSchema", "Struct", "name", "format", "Union", "FormatEnums", "map", "Literal", "config", "optional", "options", "Array", "SelectOptionSchema", "description", "hues", "join", "mutable", "SYSTEM_NAMESPACE", "contributes", "Capabilities", "Tools", "defineTool", "caption", "schema", "execute", "_input", "extensions", "invariant", "space", "schemas", "db", "schemaRegistry", "query", "run", "ToolResult", "Success", "typename", "version", "firstOrUndefined", "Error", "properties", "getSchemaFromPropertyDefinitions", "registeredSchema", "register"]
7
+ }
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var settings_5QYFWNH7_exports = {};
20
- __export(settings_5QYFWNH7_exports, {
19
+ var settings_WVFP2UEP_exports = {};
20
+ __export(settings_WVFP2UEP_exports, {
21
21
  default: () => settings_default
22
22
  });
23
- module.exports = __toCommonJS(settings_5QYFWNH7_exports);
24
- var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
25
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
23
+ module.exports = __toCommonJS(settings_WVFP2UEP_exports);
24
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
25
+ var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
27
  var import_live_object = require("@dxos/live-object");
28
28
  var settings_default = () => {
@@ -30,9 +30,9 @@ var settings_default = () => {
30
30
  showHidden: false
31
31
  });
32
32
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Settings, {
33
- schema: import_chunk_WAJKBO3J.SpaceSettingsSchema,
34
- prefix: import_chunk_WZR6OAN3.SPACE_PLUGIN,
33
+ schema: import_chunk_WDEIFDTX.SpaceSettingsSchema,
34
+ prefix: import_chunk_6P2DB4QQ.SPACE_PLUGIN,
35
35
  value: settings
36
36
  });
37
37
  };
38
- //# sourceMappingURL=settings-5QYFWNH7.cjs.map
38
+ //# sourceMappingURL=settings-WVFP2UEP.cjs.map
@@ -16,15 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var spaces_ready_FQNAKR7G_exports = {};
20
- __export(spaces_ready_FQNAKR7G_exports, {
19
+ var spaces_ready_7DNZSUOG_exports = {};
20
+ __export(spaces_ready_7DNZSUOG_exports, {
21
21
  default: () => spaces_ready_default
22
22
  });
23
- module.exports = __toCommonJS(spaces_ready_FQNAKR7G_exports);
24
- var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
25
- var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
26
- var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
27
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
23
+ module.exports = __toCommonJS(spaces_ready_7DNZSUOG_exports);
24
+ var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
25
+ var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
26
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
27
+ var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
29
  var import_async = require("@dxos/async");
30
30
  var import_echo_schema = require("@dxos/echo-schema");
@@ -42,14 +42,14 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/sr
42
42
  var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
43
43
  var WAIT_FOR_OBJECT_TIMEOUT = 1e3;
44
44
  var spaces_ready_default = async (context) => {
45
- const subscriptions = new import_async.EventSubscriptions();
46
- const spaceSubscriptions = new import_async.EventSubscriptions();
45
+ const subscriptions = new import_async.SubscriptionList();
46
+ const spaceSubscriptions = new import_async.SubscriptionList();
47
47
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
48
48
  const { graph } = context.requestCapability(import_app_framework.Capabilities.AppGraph);
49
49
  const layout = context.requestCapability(import_app_framework.Capabilities.Layout);
50
50
  const deck = context.requestCapability(import_plugin_deck.DeckCapabilities.DeckState);
51
51
  const attention = context.requestCapability(import_plugin_attention.AttentionCapabilities.Attention);
52
- const state = context.requestCapability(import_chunk_YZKNRFHU.SpaceCapabilities.MutableState);
52
+ const state = context.requestCapability(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
53
53
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
54
54
  const defaultSpace = client.spaces.default;
55
55
  await defaultSpace.waitUntilReady();
@@ -59,15 +59,15 @@ var spaces_ready_default = async (context) => {
59
59
  subject: defaultSpace.id
60
60
  }));
61
61
  }
62
- if (typeof defaultSpace.properties[import_chunk_OVGKWJOC.COMPOSER_SPACE_LOCK] !== "boolean") {
63
- defaultSpace.properties[import_chunk_OVGKWJOC.COMPOSER_SPACE_LOCK] = true;
62
+ if (typeof defaultSpace.properties[import_chunk_TUZWEPGX.COMPOSER_SPACE_LOCK] !== "boolean") {
63
+ defaultSpace.properties[import_chunk_TUZWEPGX.COMPOSER_SPACE_LOCK] = true;
64
64
  }
65
65
  const { objects: [spacesOrder] } = await defaultSpace.db.query(import_echo.Filter.schema(import_echo_schema.Expando, {
66
- key: import_chunk_OVGKWJOC.SHARED
66
+ key: import_chunk_TUZWEPGX.SHARED
67
67
  })).run();
68
68
  if (!spacesOrder) {
69
69
  defaultSpace.db.add((0, import_live_object.create)({
70
- key: import_chunk_OVGKWJOC.SHARED,
70
+ key: import_chunk_TUZWEPGX.SHARED,
71
71
  order: []
72
72
  }));
73
73
  }
@@ -82,7 +82,7 @@ var spaces_ready_default = async (context) => {
82
82
  const timeout = setTimeout(async () => {
83
83
  const node2 = graph.findNode(active[0]);
84
84
  if (!node2) {
85
- await dispatch((0, import_app_framework.createIntent)(import_chunk_WAJKBO3J.SpaceAction.WaitForObject, {
85
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
86
86
  id: active[0]
87
87
  }));
88
88
  }
@@ -207,4 +207,4 @@ var spaces_ready_default = async (context) => {
207
207
  subscriptions.clear();
208
208
  });
209
209
  };
210
- //# sourceMappingURL=spaces-ready-FQNAKR7G.cjs.map
210
+ //# sourceMappingURL=spaces-ready-7DNZSUOG.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/spaces-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, createIntent, type PluginsContext, Capabilities, LayoutAction } from '@dxos/app-framework';\nimport { SubscriptionList } from '@dxos/async';\nimport { Expando } from '@dxos/echo-schema';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { create } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { Filter, FQ_ID_LENGTH, parseFullyQualifiedId, SpaceState } from '@dxos/react-client/echo';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 1000;\n\nexport default async (context: PluginsContext) => {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const layout = context.requestCapability(Capabilities.Layout);\n const deck = context.requestCapability(DeckCapabilities.DeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n if (deck.activeDeck === 'default') {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: defaultSpace.id }));\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n defaultSpace.properties[COMPOSER_SPACE_LOCK] = true;\n }\n\n const {\n objects: [spacesOrder],\n } = await defaultSpace.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(create({ key: SHARED, order: [] }));\n }\n\n // Await missing objects.\n subscriptions.add(\n scheduledEffect(\n () => ({ active: layout.active }),\n ({ active }) => {\n if (active.length !== 1) {\n return;\n }\n\n const node = graph.findNode(active[0]);\n if (!node && active[0].length === FQ_ID_LENGTH) {\n const timeout = setTimeout(async () => {\n const node = graph.findNode(active[0]);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id: active[0] }));\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n return () => clearTimeout(timeout);\n }\n },\n ),\n );\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n subscriptions.add(\n scheduledEffect(\n () => ({ name: space.properties.name }),\n ({ name }) => (state.spaceNames[space.id] = name),\n ),\n );\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space.\n subscriptions.add(\n scheduledEffect(\n () => ({ current: attention.current, active: layout.active, inactive: layout.inactive }),\n ({ current, active, inactive }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', { err: err.message });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n return () => clearInterval(interval);\n },\n ),\n );\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in state.viewersByObject)) {\n state.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n state.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!state.viewersByIdentity.has(identityKey)) {\n state.viewersByIdentity.set(identityKey, new Set());\n }\n state.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n state.viewersByObject[id]?.delete(identityKey);\n state.viewersByIdentity.get(identityKey)?.delete(id);\n // It’s okay for these to be empty sets/maps, reduces churn.\n }\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n await Promise.all(\n client.spaces.get().map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n );\n state.enabledEdgeReplication = true;\n } catch (err) {\n log.catch(err);\n }\n\n return contributes(Capabilities.Null, null, () => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "context", "subscriptions", "SubscriptionList", "spaceSubscriptions", "dispatchPromise", "dispatch", "requestCapability", "Capabilities", "IntentDispatcher", "graph", "AppGraph", "layout", "Layout", "deck", "DeckCapabilities", "DeckState", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "activeDeck", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "add", "create", "order", "scheduledEffect", "active", "length", "node", "findNode", "FQ_ID_LENGTH", "timeout", "setTimeout", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "current", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null"]
7
+ }