@dxos/plugin-space 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65

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 (344) hide show
  1. package/dist/lib/browser/{CollectionArticle-WASDM637.mjs → CollectionArticle-WPLUW5HF.mjs} +5 -36
  2. package/dist/lib/browser/CollectionArticle-WPLUW5HF.mjs.map +7 -0
  3. package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs → CollectionSection-H2MBNI63.mjs} +2 -2
  4. package/dist/lib/browser/{CreateObjectDialog-MA6DPYMD.mjs → CreateObjectDialog-YUBUWSEL.mjs} +17 -21
  5. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
  6. package/dist/lib/browser/{CreateSpaceDialog-WCEICWIE.mjs → CreateSpaceDialog-3M2LAWV6.mjs} +7 -7
  7. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
  8. package/dist/lib/browser/{InlineSyncStatus-BT7BRBCO.mjs → InlineSyncStatus-K5MZ3YMZ.mjs} +9 -18
  9. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
  10. package/dist/lib/browser/{JoinDialog-PMCAIRCU.mjs → JoinDialog-PBK2RE5F.mjs} +8 -10
  11. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
  12. package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs → MembersContainer-OGYV2L4M.mjs} +4 -4
  13. package/dist/lib/browser/{MenuFooter-HYBTNOBT.mjs → MenuFooter-XCBDK7WP.mjs} +3 -4
  14. package/dist/lib/{node-esm/MenuFooter-2QB3453Y.mjs.map → browser/MenuFooter-XCBDK7WP.mjs.map} +1 -1
  15. package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs → ObjectCardStack-OMXF2DSG.mjs} +6 -6
  16. package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs → ObjectDetails-QFTQQN4W.mjs} +6 -6
  17. package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs → ObjectRenamePopover-JNPJIFIR.mjs} +3 -3
  18. package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs.map → ObjectRenamePopover-JNPJIFIR.mjs.map} +1 -1
  19. package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs → RecordArticle-BO2XHBFN.mjs} +2 -2
  20. package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs → SchemaContainer-QWCSIZBS.mjs} +2 -2
  21. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
  22. package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs → SpacePluginSettings-QGZKNQLK.mjs} +4 -4
  23. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
  24. package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs → SpaceRenamePopover-ZL6RRZ2B.mjs} +3 -3
  25. package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs.map → SpaceRenamePopover-ZL6RRZ2B.mjs.map} +1 -1
  26. package/dist/lib/browser/{SpaceSettingsContainer-UBMVKUPR.mjs → SpaceSettingsContainer-MIOOT63N.mjs} +5 -5
  27. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
  28. package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs → SyncStatus-6N7JJ7XF.mjs} +6 -6
  29. package/dist/lib/browser/{ViewEditor-F74RR542.mjs → ViewEditor-3FX5HDRT.mjs} +4 -7
  30. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
  31. package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs +1203 -0
  32. package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs.map +7 -0
  33. package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs → app-graph-serializer-UZWWGLGY.mjs} +5 -5
  34. package/dist/lib/browser/{chunk-RWOK4F4G.mjs → chunk-2WHUSAHE.mjs} +17 -14
  35. package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
  36. package/dist/lib/browser/{chunk-USN5QKRV.mjs → chunk-6IT5IBB5.mjs} +54 -86
  37. package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
  39. package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
  40. package/dist/lib/browser/{chunk-PXVKN4LU.mjs → chunk-AUX3RRLY.mjs} +34 -9
  41. package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
  42. package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
  43. package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
  44. package/dist/lib/browser/{chunk-XIIYC7P5.mjs → chunk-ICXESMDI.mjs} +6 -6
  45. package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
  47. package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
  48. package/dist/lib/browser/{chunk-J5F4LUJD.mjs → chunk-SSTUPFZ2.mjs} +3 -3
  49. package/dist/lib/browser/{chunk-ABCDB5YC.mjs → chunk-UYOJYBGW.mjs} +7 -16
  50. package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
  51. package/dist/lib/browser/cli/index.mjs +8 -17
  52. package/dist/lib/browser/cli/index.mjs.map +3 -3
  53. package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs → identity-created-ETXNQYR6.mjs} +4 -4
  54. package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs.map → identity-created-ETXNQYR6.mjs.map} +3 -3
  55. package/dist/lib/browser/index.mjs +33 -53
  56. package/dist/lib/browser/index.mjs.map +3 -3
  57. package/dist/lib/browser/meta.json +1 -1
  58. package/dist/lib/browser/{operation-resolver-Y3HYRXX7.mjs → operation-resolver-D4LHB4D4.mjs} +64 -88
  59. package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
  60. package/dist/lib/browser/{react-root-UYBW5RE7.mjs → react-root-OD2HP63B.mjs} +6 -6
  61. package/dist/lib/browser/{react-surface-NJ23NZFF.mjs → react-surface-E4TAFED5.mjs} +57 -79
  62. package/dist/lib/browser/react-surface-E4TAFED5.mjs.map +7 -0
  63. package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
  64. package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
  65. package/dist/lib/browser/{settings-2ELVUFDR.mjs → settings-RUDP2Q56.mjs} +3 -3
  66. package/dist/lib/browser/{spaces-ready-Q6JASPT4.mjs → spaces-ready-B2GYL5IN.mjs} +6 -6
  67. package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
  68. package/dist/lib/browser/{state-CTX4WQOM.mjs → state-I6JDZCDE.mjs} +5 -5
  69. package/dist/lib/browser/{state-CTX4WQOM.mjs.map → state-I6JDZCDE.mjs.map} +2 -2
  70. package/dist/lib/browser/types/index.mjs +2 -2
  71. package/dist/lib/node-esm/{CollectionArticle-A6GGG73Z.mjs → CollectionArticle-JGVNBX66.mjs} +5 -36
  72. package/dist/lib/node-esm/CollectionArticle-JGVNBX66.mjs.map +7 -0
  73. package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs → CollectionSection-BI66Y34F.mjs} +2 -2
  74. package/dist/lib/node-esm/{CreateObjectDialog-4WEFNDDF.mjs → CreateObjectDialog-B6OLP5VQ.mjs} +17 -21
  75. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
  76. package/dist/lib/node-esm/{CreateSpaceDialog-P7QCPB5J.mjs → CreateSpaceDialog-J47M5FPQ.mjs} +7 -7
  77. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
  78. package/dist/lib/node-esm/{InlineSyncStatus-3PCXU7NX.mjs → InlineSyncStatus-BLD57LB5.mjs} +9 -18
  79. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
  80. package/dist/lib/node-esm/{JoinDialog-XEOLJZVN.mjs → JoinDialog-XCOYKSHA.mjs} +8 -10
  81. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
  82. package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs → MembersContainer-4PV3Z4BA.mjs} +4 -4
  83. package/dist/lib/node-esm/{MenuFooter-2QB3453Y.mjs → MenuFooter-PXG2GV6A.mjs} +3 -4
  84. package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs → ObjectCardStack-457SNNVF.mjs} +6 -6
  85. package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs → ObjectDetails-OLF7HSM4.mjs} +6 -6
  86. package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs → ObjectRenamePopover-BRPKVNVF.mjs} +3 -3
  87. package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs.map → ObjectRenamePopover-BRPKVNVF.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs → RecordArticle-XUIT25PP.mjs} +2 -2
  89. package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs → SchemaContainer-5G4R3Z6O.mjs} +2 -2
  90. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
  91. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
  92. package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs → SpacePluginSettings-PENV4GHL.mjs} +4 -4
  93. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
  94. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
  95. package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs → SpaceRenamePopover-XEMTI4PU.mjs} +3 -3
  96. package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs.map → SpaceRenamePopover-XEMTI4PU.mjs.map} +1 -1
  97. package/dist/lib/node-esm/{SpaceSettingsContainer-Y62J2L65.mjs → SpaceSettingsContainer-WI4D7RWA.mjs} +5 -5
  98. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
  99. package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs → SyncStatus-YEBGTNSD.mjs} +6 -6
  100. package/dist/lib/node-esm/{ViewEditor-B2BLYF5U.mjs → ViewEditor-CUQVNM2H.mjs} +4 -7
  101. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
  102. package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs +1204 -0
  103. package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs.map +7 -0
  104. package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs → app-graph-serializer-RT2RQTV2.mjs} +5 -5
  105. package/dist/lib/node-esm/{chunk-OSFH2XKO.mjs → chunk-2OLR2ZKH.mjs} +6 -6
  106. package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
  107. package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
  108. package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
  109. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
  110. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
  111. package/dist/lib/node-esm/{chunk-UJQUBDQS.mjs → chunk-EDC2RUJU.mjs} +7 -16
  112. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
  113. package/dist/lib/node-esm/{chunk-3DWZCVVQ.mjs → chunk-EVNSLSQS.mjs} +54 -86
  114. package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
  115. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
  116. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
  117. package/dist/lib/node-esm/{chunk-P2AVANDG.mjs → chunk-RYQQXNI7.mjs} +34 -9
  118. package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
  119. package/dist/lib/node-esm/{chunk-GWUPFA7J.mjs → chunk-S5BQUCL4.mjs} +17 -14
  120. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
  121. package/dist/lib/node-esm/{chunk-S2IELCDF.mjs → chunk-XYLDAH5C.mjs} +3 -3
  122. package/dist/lib/node-esm/cli/index.mjs +8 -17
  123. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  124. package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs → identity-created-U5LGULVL.mjs} +4 -4
  125. package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs.map → identity-created-U5LGULVL.mjs.map} +3 -3
  126. package/dist/lib/node-esm/index.mjs +33 -53
  127. package/dist/lib/node-esm/index.mjs.map +3 -3
  128. package/dist/lib/node-esm/meta.json +1 -1
  129. package/dist/lib/node-esm/{operation-resolver-IRQ2NVUQ.mjs → operation-resolver-IL2AHNPN.mjs} +64 -88
  130. package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
  131. package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs → react-root-RILC5MBD.mjs} +6 -6
  132. package/dist/lib/node-esm/{react-surface-UDO3PGH6.mjs → react-surface-SWKRVK4S.mjs} +57 -79
  133. package/dist/lib/node-esm/react-surface-SWKRVK4S.mjs.map +7 -0
  134. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs +32 -0
  135. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
  136. package/dist/lib/node-esm/{settings-DCTVM2BV.mjs → settings-3EKSEAAG.mjs} +3 -3
  137. package/dist/lib/node-esm/{spaces-ready-XLGRTJV2.mjs → spaces-ready-QK3EHBOS.mjs} +6 -6
  138. package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
  139. package/dist/lib/node-esm/{state-G74V3WZG.mjs → state-W36RRYUO.mjs} +5 -5
  140. package/dist/lib/node-esm/{state-G74V3WZG.mjs.map → state-W36RRYUO.mjs.map} +2 -2
  141. package/dist/lib/node-esm/types/index.mjs +2 -2
  142. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  143. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -2
  144. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
  146. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
  148. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  150. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
  152. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
  154. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  155. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  156. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  157. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  158. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  159. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
  160. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  161. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  162. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  163. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  164. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  165. package/dist/types/src/cli/commands/database/add.d.ts +0 -1
  166. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  167. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  168. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  169. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  170. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  171. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +0 -1
  172. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  173. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
  174. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
  175. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
  176. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +1 -2
  177. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
  178. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +2 -1
  179. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  180. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
  181. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
  182. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
  183. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
  184. package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
  185. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
  186. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +1 -0
  187. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -1
  188. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
  189. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -1
  190. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
  191. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +67 -13
  192. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  193. package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
  194. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
  195. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +67 -13
  196. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  197. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +67 -13
  198. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  199. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
  200. package/dist/types/src/containers/index.d.ts +1 -1
  201. package/dist/types/src/containers/index.d.ts.map +1 -1
  202. package/dist/types/src/translations.d.ts +67 -13
  203. package/dist/types/src/translations.d.ts.map +1 -1
  204. package/dist/types/src/types/form.d.ts +0 -2
  205. package/dist/types/src/types/form.d.ts.map +1 -1
  206. package/dist/types/src/types/types.d.ts +29 -46
  207. package/dist/types/src/types/types.d.ts.map +1 -1
  208. package/dist/types/src/util.d.ts +4 -161
  209. package/dist/types/src/util.d.ts.map +1 -1
  210. package/dist/types/tsconfig.tsbuildinfo +1 -1
  211. package/package.json +57 -57
  212. package/src/SpacePlugin.ts +14 -22
  213. package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
  214. package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
  215. package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
  216. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  217. package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
  218. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  219. package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
  220. package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
  221. package/src/capabilities/app-graph-builder/extensions/types.ts +421 -0
  222. package/src/capabilities/identity-created/identity-created.ts +3 -3
  223. package/src/capabilities/operation-resolver/operation-resolver.ts +65 -73
  224. package/src/capabilities/react-surface/react-surface.tsx +33 -58
  225. package/src/capabilities/repair/repair.ts +3 -32
  226. package/src/capabilities/spaces-ready/spaces-ready.ts +2 -2
  227. package/src/capabilities/state/state.ts +4 -2
  228. package/src/cli/commands/database/add.ts +0 -1
  229. package/src/cli/commands/space/close/close.ts +1 -1
  230. package/src/cli/commands/space/create/create.ts +1 -1
  231. package/src/cli/commands/space/join/join.ts +1 -1
  232. package/src/cli/commands/space/open/open.ts +1 -1
  233. package/src/cli/plugin.ts +0 -1
  234. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +2 -2
  235. package/src/components/AwaitingObject/index.ts +5 -0
  236. package/src/components/CreateDialog/CreateObjectPanel.tsx +5 -2
  237. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +4 -4
  238. package/src/components/ObjectDetails/BaseObjectSettings.tsx +4 -4
  239. package/src/components/ObjectForm/ObjectForm.tsx +6 -4
  240. package/src/constants.ts +5 -5
  241. package/src/containers/CollectionArticle/CollectionArticle.tsx +7 -54
  242. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -10
  243. package/src/containers/CreateObjectDialog/index.ts +2 -3
  244. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -3
  245. package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -18
  246. package/src/containers/JoinDialog/JoinDialog.tsx +4 -4
  247. package/src/containers/JoinDialog/index.ts +2 -3
  248. package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +1 -1
  249. package/src/containers/SmallPresenceLive/index.ts +1 -1
  250. package/src/containers/SpacePresence/SpacePresence.tsx +4 -16
  251. package/src/containers/SpacePresence/index.ts +2 -3
  252. package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +1 -1
  253. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +2 -2
  254. package/src/containers/ViewEditor/ViewEditor.tsx +0 -1
  255. package/src/containers/index.ts +1 -1
  256. package/src/helpers/query.test.ts +1 -1
  257. package/src/hooks/useActiveSpace.ts +4 -4
  258. package/src/meta.ts +1 -1
  259. package/src/translations.ts +27 -1
  260. package/src/types/capabilities.ts +7 -7
  261. package/src/types/events.ts +5 -5
  262. package/src/types/form.ts +1 -8
  263. package/src/types/types.ts +36 -58
  264. package/src/util.ts +82 -0
  265. package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
  266. package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
  267. package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
  268. package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
  269. package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
  270. package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
  271. package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
  272. package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
  273. package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
  274. package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
  275. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
  276. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  279. package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
  282. package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
  285. package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
  286. package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
  287. package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
  288. package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
  289. package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
  290. package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
  291. package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
  292. package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
  293. package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
  294. package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
  295. package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
  296. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
  297. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
  298. package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
  299. package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
  300. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
  301. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
  303. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  304. package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
  309. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
  310. package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
  311. package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
  312. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
  313. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
  314. package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
  315. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  316. package/src/util.tsx +0 -956
  317. /package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs.map → CollectionSection-H2MBNI63.mjs.map} +0 -0
  318. /package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs.map → MembersContainer-OGYV2L4M.mjs.map} +0 -0
  319. /package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs.map → ObjectCardStack-OMXF2DSG.mjs.map} +0 -0
  320. /package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs.map → ObjectDetails-QFTQQN4W.mjs.map} +0 -0
  321. /package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs.map → RecordArticle-BO2XHBFN.mjs.map} +0 -0
  322. /package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs.map → SchemaContainer-QWCSIZBS.mjs.map} +0 -0
  323. /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → SmallPresenceLive-AHHLBAUP.mjs.map} +0 -0
  324. /package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs.map → SpacePluginSettings-QGZKNQLK.mjs.map} +0 -0
  325. /package/dist/lib/{node-esm/SmallPresenceLive-K4243KXR.mjs.map → browser/SpacePresence-JIWLBUWO.mjs.map} +0 -0
  326. /package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs.map → SyncStatus-6N7JJ7XF.mjs.map} +0 -0
  327. /package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs.map → app-graph-serializer-UZWWGLGY.mjs.map} +0 -0
  328. /package/dist/lib/browser/{chunk-J5F4LUJD.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
  329. /package/dist/lib/browser/{react-root-UYBW5RE7.mjs.map → react-root-OD2HP63B.mjs.map} +0 -0
  330. /package/dist/lib/browser/{settings-2ELVUFDR.mjs.map → settings-RUDP2Q56.mjs.map} +0 -0
  331. /package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs.map → CollectionSection-BI66Y34F.mjs.map} +0 -0
  332. /package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs.map → MembersContainer-4PV3Z4BA.mjs.map} +0 -0
  333. /package/dist/lib/{browser/MenuFooter-HYBTNOBT.mjs.map → node-esm/MenuFooter-PXG2GV6A.mjs.map} +0 -0
  334. /package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs.map → ObjectCardStack-457SNNVF.mjs.map} +0 -0
  335. /package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs.map → ObjectDetails-OLF7HSM4.mjs.map} +0 -0
  336. /package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs.map → RecordArticle-XUIT25PP.mjs.map} +0 -0
  337. /package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs.map → SchemaContainer-5G4R3Z6O.mjs.map} +0 -0
  338. /package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs.map → SpacePluginSettings-PENV4GHL.mjs.map} +0 -0
  339. /package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs.map → SyncStatus-YEBGTNSD.mjs.map} +0 -0
  340. /package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs.map → app-graph-serializer-RT2RQTV2.mjs.map} +0 -0
  341. /package/dist/lib/node-esm/{chunk-S2IELCDF.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
  342. /package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs.map → react-root-RILC5MBD.mjs.map} +0 -0
  343. /package/dist/lib/node-esm/{settings-DCTVM2BV.mjs.map → settings-3EKSEAAG.mjs.map} +0 -0
  344. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
@@ -5,19 +5,20 @@ import {
5
5
  JOIN_DIALOG,
6
6
  OBJECT_RENAME_POPOVER,
7
7
  SPACE_RENAME_POPOVER
8
- } from "./chunk-CVXULIYC.mjs";
8
+ } from "./chunk-5KTTTTEX.mjs";
9
9
  import {
10
+ useActiveSpace,
10
11
  useTypeOptions
11
- } from "./chunk-OSFH2XKO.mjs";
12
+ } from "./chunk-2OLR2ZKH.mjs";
12
13
  import {
13
14
  HueAnnotationId,
14
15
  IconAnnotationId,
15
16
  SpaceCapabilities,
16
17
  TypeInputOptionsAnnotationId
17
- } from "./chunk-3DWZCVVQ.mjs";
18
+ } from "./chunk-EVNSLSQS.mjs";
18
19
  import {
19
20
  meta
20
- } from "./chunk-SL4BJSUG.mjs";
21
+ } from "./chunk-63N5JJXI.mjs";
21
22
 
22
23
  // src/capabilities/react-surface/react-surface.tsx
23
24
  import * as Effect from "effect/Effect";
@@ -26,69 +27,52 @@ import React, { useCallback } from "react";
26
27
  import { Capabilities, Capability } from "@dxos/app-framework";
27
28
  import { Surface, useAtomCapability, useSettingsState } from "@dxos/app-framework/ui";
28
29
  import { AppCapabilities } from "@dxos/app-toolkit";
29
- import { useLayout } from "@dxos/app-toolkit/ui";
30
30
  import { Database, Obj } from "@dxos/echo";
31
31
  import { Collection } from "@dxos/echo";
32
32
  import { findAnnotation } from "@dxos/effect";
33
- import { SpaceState, getSpace, isSpace, parseId, useSpace } from "@dxos/react-client/echo";
33
+ import { SpaceState, getSpace, isSpace, useSpace } from "@dxos/react-client/echo";
34
34
  import { Input } from "@dxos/react-ui";
35
35
  import { SelectField } from "@dxos/react-ui-form";
36
36
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
37
- import { ManagedCollection, ViewAnnotation } from "@dxos/schema";
37
+ import { ViewAnnotation } from "@dxos/schema";
38
38
 
39
39
  // src/containers/index.ts
40
40
  import { lazy } from "react";
41
- var CollectionArticle = lazy(() => import("./CollectionArticle-A6GGG73Z.mjs"));
42
- var CollectionSection = lazy(() => import("./CollectionSection-WWKDOAAT.mjs"));
43
- var CreateObjectDialog = lazy(() => import("./CreateObjectDialog-4WEFNDDF.mjs"));
44
- var CreateSpaceDialog = lazy(() => import("./CreateSpaceDialog-P7QCPB5J.mjs"));
45
- var InlineSyncStatus = lazy(() => import("./InlineSyncStatus-3PCXU7NX.mjs"));
46
- var JoinDialog = lazy(() => import("./JoinDialog-XEOLJZVN.mjs"));
47
- var MembersContainer = lazy(() => import("./MembersContainer-UQZLW3YA.mjs"));
48
- var MenuFooter = lazy(() => import("./MenuFooter-2QB3453Y.mjs"));
49
- var ObjectCardStack = lazy(() => import("./ObjectCardStack-UXEWG6RV.mjs"));
50
- var ObjectDetails = lazy(() => import("./ObjectDetails-26PVHUQL.mjs"));
51
- var ObjectRenamePopover = lazy(() => import("./ObjectRenamePopover-EHTP76G7.mjs"));
52
- var RecordArticle = lazy(() => import("./RecordArticle-APY2WKUW.mjs"));
53
- var SchemaContainer = lazy(() => import("./SchemaContainer-XR2D6MYX.mjs"));
54
- var SmallPresenceLive = lazy(() => import("./SmallPresenceLive-K4243KXR.mjs"));
55
- var SpacePluginSettings = lazy(() => import("./SpacePluginSettings-VEB5IGG7.mjs"));
56
- var SpacePresence = lazy(() => import("./SpacePresence-HC2XGQ54.mjs"));
57
- var SpaceRenamePopover = lazy(() => import("./SpaceRenamePopover-WHM632OT.mjs"));
58
- var SpaceSettingsContainer = lazy(() => import("./SpaceSettingsContainer-Y62J2L65.mjs"));
59
- var SyncStatus = lazy(() => import("./SyncStatus-XTJAVHPN.mjs"));
60
- var ViewEditor = lazy(() => import("./ViewEditor-B2BLYF5U.mjs"));
41
+ var CollectionArticle = lazy(() => import("./CollectionArticle-JGVNBX66.mjs"));
42
+ var CollectionSection = lazy(() => import("./CollectionSection-BI66Y34F.mjs"));
43
+ var CreateObjectDialog = lazy(() => import("./CreateObjectDialog-B6OLP5VQ.mjs"));
44
+ var CreateSpaceDialog = lazy(() => import("./CreateSpaceDialog-J47M5FPQ.mjs"));
45
+ var InlineSyncStatus = lazy(() => import("./InlineSyncStatus-BLD57LB5.mjs"));
46
+ var JoinDialog = lazy(() => import("./JoinDialog-XCOYKSHA.mjs"));
47
+ var MembersContainer = lazy(() => import("./MembersContainer-4PV3Z4BA.mjs"));
48
+ var MenuFooter = lazy(() => import("./MenuFooter-PXG2GV6A.mjs"));
49
+ var ObjectCardStack = lazy(() => import("./ObjectCardStack-457SNNVF.mjs"));
50
+ var ObjectDetails = lazy(() => import("./ObjectDetails-OLF7HSM4.mjs"));
51
+ var ObjectRenamePopover = lazy(() => import("./ObjectRenamePopover-BRPKVNVF.mjs"));
52
+ var RecordArticle = lazy(() => import("./RecordArticle-XUIT25PP.mjs"));
53
+ var SchemaContainer = lazy(() => import("./SchemaContainer-5G4R3Z6O.mjs"));
54
+ var SmallPresenceLive = lazy(() => import("./SmallPresenceLive-4K7RJS74.mjs"));
55
+ var SpacePluginSettings = lazy(() => import("./SpacePluginSettings-PENV4GHL.mjs"));
56
+ var SpacePresence = lazy(() => import("./SpacePresence-H3VZWFJV.mjs"));
57
+ var SpaceRenamePopover = lazy(() => import("./SpaceRenamePopover-XEMTI4PU.mjs"));
58
+ var SpaceSettingsContainer = lazy(() => import("./SpaceSettingsContainer-WI4D7RWA.mjs"));
59
+ var SyncStatus = lazy(() => import("./SyncStatus-YEBGTNSD.mjs"));
60
+ var ViewEditor = lazy(() => import("./ViewEditor-CUQVNM2H.mjs"));
61
61
 
62
62
  // src/capabilities/react-surface/react-surface.tsx
63
63
  var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({ createInvitationUrl }) {
64
64
  return Capability.contributes(Capabilities.ReactSurface, [
65
65
  Surface.create({
66
- id: `${meta.id}/article`,
67
- role: "article",
68
- filter: (data) => (
69
- // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
70
- isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY
71
- ),
72
- component: ({ data, role, ...rest }) => /* @__PURE__ */ React.createElement(Surface.Surface, {
73
- data: {
74
- id: data.subject.id,
75
- subject: data.subject.properties[Collection.Collection.typename]?.target
76
- },
77
- role,
78
- ...rest
79
- })
80
- }),
81
- Surface.create({
82
- id: `${meta.id}/collection-fallback`,
66
+ id: `${meta.id}.collection-fallback`,
83
67
  role: "article",
84
68
  position: "fallback",
85
- filter: (data) => Obj.instanceOf(Collection.Collection, data.subject) || Obj.instanceOf(ManagedCollection.ManagedCollection, data.subject),
69
+ filter: (data) => Obj.instanceOf(Collection.Collection, data.subject),
86
70
  component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionArticle, {
87
71
  subject: data.subject
88
72
  })
89
73
  }),
90
74
  Surface.create({
91
- id: `${meta.id}/record-article`,
75
+ id: `${meta.id}.record-article`,
92
76
  role: "article",
93
77
  position: "fallback",
94
78
  filter: (data) => Obj.isObject(data.subject),
@@ -97,7 +81,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
97
81
  })
98
82
  }),
99
83
  Surface.create({
100
- id: `${meta.id}/plugin-settings`,
84
+ id: `${meta.id}.plugin-settings`,
101
85
  role: "article",
102
86
  filter: (data) => AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
103
87
  component: ({ data: { subject } }) => {
@@ -109,7 +93,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
109
93
  }
110
94
  }),
111
95
  Surface.create({
112
- id: `${meta.id}/companion/object-settings`,
96
+ id: `${meta.id}.companion.object-settings`,
113
97
  role: "article",
114
98
  filter: (data) => Obj.isObject(data.companionTo) && data.subject === "settings",
115
99
  component: ({ ref, data, role }) => /* @__PURE__ */ React.createElement(ObjectDetails, {
@@ -119,14 +103,12 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
119
103
  })
120
104
  }),
121
105
  Surface.create({
122
- id: `${meta.id}/space-settings-properties`,
106
+ id: `${meta.id}.space-settings-properties`,
123
107
  role: "article",
124
- filter: (data) => data.subject === `${meta.id}/properties`,
108
+ filter: (data) => data.subject === `${meta.id}.general`,
125
109
  component: ({ ref }) => {
126
- const layout = useLayout();
127
- const { spaceId } = parseId(layout.workspace);
128
- const space = useSpace(spaceId);
129
- if (!space || !spaceId) {
110
+ const space = useActiveSpace();
111
+ if (!space) {
130
112
  return null;
131
113
  }
132
114
  return /* @__PURE__ */ React.createElement(SpaceSettingsContainer, {
@@ -135,15 +117,13 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
135
117
  }
136
118
  }),
137
119
  Surface.create({
138
- id: `${meta.id}/space-settings-members`,
120
+ id: `${meta.id}.space-settings-members`,
139
121
  role: "article",
140
122
  position: "hoist",
141
- filter: (data) => data.subject === `${meta.id}/members`,
123
+ filter: (data) => data.subject === `${meta.id}.members`,
142
124
  component: () => {
143
- const layout = useLayout();
144
- const { spaceId } = parseId(layout.workspace);
145
- const space = useSpace(spaceId);
146
- if (!space || !spaceId) {
125
+ const space = useActiveSpace();
126
+ if (!space) {
147
127
  return null;
148
128
  }
149
129
  return /* @__PURE__ */ React.createElement(MembersContainer, {
@@ -153,14 +133,12 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
153
133
  }
154
134
  }),
155
135
  Surface.create({
156
- id: `${meta.id}/space-settings-schema`,
136
+ id: `${meta.id}.space-settings-schema`,
157
137
  role: "article",
158
- filter: (data) => data.subject === `${meta.id}/schema`,
138
+ filter: (data) => data.subject === `${meta.id}.schema`,
159
139
  component: () => {
160
- const layout = useLayout();
161
- const { spaceId } = parseId(layout.workspace);
162
- const space = useSpace(spaceId);
163
- if (!space || !spaceId) {
140
+ const space = useActiveSpace();
141
+ if (!space) {
164
142
  return null;
165
143
  }
166
144
  return /* @__PURE__ */ React.createElement(SchemaContainer, {
@@ -169,7 +147,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
169
147
  }
170
148
  }),
171
149
  Surface.create({
172
- id: `${meta.id}/selected-objects`,
150
+ id: `${meta.id}.selected-objects`,
173
151
  role: "article",
174
152
  filter: (data) => {
175
153
  if (data.subject !== "selected-objects" || !Obj.isObject(data.companionTo)) {
@@ -205,7 +183,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
205
183
  component: ({ data }) => /* @__PURE__ */ React.createElement(CreateObjectDialog, data.props)
206
184
  }),
207
185
  Surface.create({
208
- id: `${meta.id}/create-initial-space-form-[hue]`,
186
+ id: `${meta.id}.create-initial-space-form-[hue]`,
209
187
  role: "form-input",
210
188
  filter: (data) => {
211
189
  const annotation = findAnnotation(data.schema.ast, HueAnnotationId);
@@ -228,7 +206,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
228
206
  }
229
207
  }),
230
208
  Surface.create({
231
- id: `${meta.id}/create-initial-space-form-[icon]`,
209
+ id: `${meta.id}.create-initial-space-form-[icon]`,
232
210
  role: "form-input",
233
211
  filter: (data) => {
234
212
  const annotation = findAnnotation(data.schema.ast, IconAnnotationId);
@@ -251,7 +229,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
251
229
  }
252
230
  }),
253
231
  Surface.create({
254
- id: `${meta.id}/typename-form-input`,
232
+ id: `${meta.id}.typename-form-input`,
255
233
  role: "form-input",
256
234
  filter: (data) => {
257
235
  if (data.prop !== "typename") {
@@ -276,7 +254,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
276
254
  }
277
255
  }),
278
256
  Surface.create({
279
- id: `${meta.id}/object-settings`,
257
+ id: `${meta.id}.object-settings`,
280
258
  role: "object-settings",
281
259
  filter: (data) => {
282
260
  if (!Obj.isObject(data.subject)) {
@@ -312,7 +290,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
312
290
  })
313
291
  }),
314
292
  Surface.create({
315
- id: `${meta.id}/menu-footer`,
293
+ id: `${meta.id}.menu-footer`,
316
294
  role: "menu-footer",
317
295
  filter: (data) => Obj.isObject(data.subject),
318
296
  component: ({ data }) => /* @__PURE__ */ React.createElement(MenuFooter, {
@@ -320,7 +298,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
320
298
  })
321
299
  }),
322
300
  Surface.create({
323
- id: `${meta.id}/navtree-presence`,
301
+ id: `${meta.id}.navtree-presence`,
324
302
  role: "navtree-item-end",
325
303
  filter: (data) => typeof data.id === "string" && Obj.isObject(data.subject),
326
304
  component: ({ data }) => {
@@ -334,7 +312,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
334
312
  }),
335
313
  // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
336
314
  Surface.create({
337
- id: `${meta.id}/navtree-presence-fallback`,
315
+ id: `${meta.id}.navtree-presence-fallback`,
338
316
  role: "navtree-item-end",
339
317
  position: "fallback",
340
318
  filter: (data) => typeof data.id === "string",
@@ -345,7 +323,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
345
323
  }),
346
324
  // TODO(wittjosiah): Broken?
347
325
  Surface.create({
348
- id: `${meta.id}/navtree-sync-status`,
326
+ id: `${meta.id}.navtree-sync-status`,
349
327
  role: "navtree-item-end",
350
328
  filter: (data) => isSpace(data.subject),
351
329
  component: ({ data }) => /* @__PURE__ */ React.createElement(InlineSyncStatus, {
@@ -354,7 +332,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
354
332
  })
355
333
  }),
356
334
  Surface.create({
357
- id: `${meta.id}/navbar-presence`,
335
+ id: `${meta.id}.navbar-presence`,
358
336
  role: "navbar-end",
359
337
  position: "hoist",
360
338
  filter: (data) => isSpace(data.subject) || Obj.isObject(data.subject),
@@ -367,7 +345,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
367
345
  }
368
346
  }),
369
347
  Surface.create({
370
- id: `${meta.id}/collection-section`,
348
+ id: `${meta.id}.collection-section`,
371
349
  role: "section",
372
350
  filter: (data) => Obj.instanceOf(Collection.Collection, data.subject),
373
351
  component: ({ data }) => /* @__PURE__ */ React.createElement(CollectionSection, {
@@ -375,7 +353,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
375
353
  })
376
354
  }),
377
355
  Surface.create({
378
- id: `${meta.id}/status`,
356
+ id: `${meta.id}.status`,
379
357
  role: "status",
380
358
  component: () => /* @__PURE__ */ React.createElement(SyncStatus, null)
381
359
  })
@@ -384,4 +362,4 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
384
362
  export {
385
363
  react_surface_default as default
386
364
  };
387
- //# sourceMappingURL=react-surface-UDO3PGH6.mjs.map
365
+ //# sourceMappingURL=react-surface-SWKRVK4S.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface/react-surface.tsx", "../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useAtomCapability, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Database, Obj, type Ref } from '@dxos/echo';\nimport { Collection, type View } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { type Space, SpaceState, getSpace, isSpace, useSpace } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { ViewAnnotation } from '@dxos/schema';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n JOIN_DIALOG,\n OBJECT_RENAME_POPOVER,\n SPACE_RENAME_POPOVER,\n} from '../../constants';\nimport {\n CollectionArticle,\n CollectionSection,\n CreateObjectDialog,\n type CreateObjectDialogProps,\n CreateSpaceDialog,\n InlineSyncStatus,\n JoinDialog,\n MembersContainer,\n MenuFooter,\n ObjectCardStack,\n ObjectDetails,\n ObjectRenamePopover,\n RecordArticle,\n SchemaContainer,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SpaceRenamePopover,\n SpaceSettingsContainer,\n SyncStatus,\n ViewEditor,\n} from '../../containers';\nimport { useActiveSpace, useTypeOptions } from '../../hooks';\nimport { meta } from '../../meta';\nimport {\n HueAnnotationId,\n IconAnnotationId,\n SpaceCapabilities,\n type SpaceSettingsProps,\n type TypeInputOptions,\n TypeInputOptionsAnnotationId,\n} from '../../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* ({ createInvitationUrl }: ReactSurfaceOptions) {\n return Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}.collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Collection.Collection } =>\n Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ data }) => <CollectionArticle subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}.record-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => <RecordArticle subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}.plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: AppCapabilities.Settings } =>\n AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<SpaceSettingsProps>(subject.atom);\n return <SpacePluginSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.companion.object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Unknown } =>\n Obj.isObject(data.companionTo) && data.subject === 'settings',\n component: ({ ref, data, role }) => <ObjectDetails subject={data.companionTo} role={role} ref={ref} />,\n }),\n Surface.create({\n id: `${meta.id}.space-settings-properties`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}.general`,\n component: ({ ref }) => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}.members`,\n component: () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${meta.id}.schema`,\n component: () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.selected-objects`,\n role: 'article',\n filter: (\n data,\n ): data is { companionTo: Obj.OfShape<{ view: Ref.Ref<View.View> }>; subject: 'selected-objects' } => {\n if (data.subject !== 'selected-objects' || !Obj.isObject(data.companionTo)) {\n return false;\n }\n\n // TODO(burdon): Check companionTo.view.target is valid.\n const schema = Obj.getSchema(data.companionTo);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n // TODO(burdon): Replace with mosaic.\n component: ({ data, ref }) => (\n <ObjectCardStack\n key={Obj.getDXN(data.companionTo).toString()}\n objectId={Obj.getDXN(data.companionTo).toString()}\n view={data.companionTo.view.target!}\n ref={ref}\n />\n ),\n }),\n Surface.create({\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 Surface.create({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n Surface.create({\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 Surface.create({\n id: `${meta.id}.create-initial-space-form-[hue]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <HuePicker disabled={!!readonly} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}.create-initial-space-form-[icon]`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {\n const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);\n return !!annotation;\n },\n component: ({ data: _, ...inputProps }) => {\n const { label, readonly, type, getValue, onValueChange } = inputProps as any as FormFieldComponentProps;\n const handleChange = useCallback((nextIcon: string) => onValueChange(type, nextIcon), [onValueChange]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange]);\n return (\n <Input.Root>\n <Input.Label>{label}</Input.Label>\n <IconPicker\n disabled={!!readonly}\n value={getValue() ?? ''}\n onChange={handleChange}\n onReset={handleReset}\n />\n </Input.Root>\n );\n },\n }),\n Surface.create({\n id: `${meta.id}.typename-form-input`,\n role: 'form-input',\n filter: (\n data,\n ): data is {\n prop: string;\n schema: Schema.Schema.Any;\n target: Database.Database | Collection.Collection | undefined;\n } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation((data.schema as Schema.Schema.All).ast, TypeInputOptionsAnnotationId);\n return !!annotation;\n },\n component: ({ data: { schema, target }, ...inputProps }) => {\n const props = inputProps as any as FormFieldComponentProps;\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n const space = useSpace(db?.spaceId);\n const annotation = findAnnotation<TypeInputOptions>(schema.ast, TypeInputOptionsAnnotationId)!;\n const options = useTypeOptions({ space, annotation });\n\n return <SelectField {...props} options={options} />;\n },\n }),\n Surface.create({\n id: `${meta.id}.object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: { view: Ref.Ref<View.View> } } => {\n if (!Obj.isObject(data.subject)) {\n return false;\n }\n\n const schema = Obj.getSchema(data.subject);\n return Option.fromNullable(schema).pipe(\n Option.flatMap((schema) => ViewAnnotation.get(schema)),\n Option.getOrElse(() => false),\n );\n },\n component: ({ data }) => {\n const view = data.subject.view.target;\n if (!view) {\n return null;\n }\n\n return <ViewEditor view={view} />;\n },\n }),\n Surface.create({\n id: SPACE_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),\n component: ({ data }) => <SpaceRenamePopover space={data.props} />,\n }),\n Surface.create({\n id: OBJECT_RENAME_POPOVER,\n role: 'popover',\n filter: (data): data is { props: Obj.Unknown } =>\n data.component === OBJECT_RENAME_POPOVER && Obj.isObject(data.props),\n component: ({ data }) => <ObjectRenamePopover object={data.props} />,\n }),\n Surface.create({\n id: `${meta.id}.menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}.navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: Obj.Unknown; open?: boolean } =>\n typeof data.id === 'string' && Obj.isObject(data.subject),\n component: ({ data }) => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={ephemeral.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n Surface.create({\n id: `${meta.id}.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 Surface.create({\n id: `${meta.id}.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 Surface.create({\n id: `${meta.id}.navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | Obj.Unknown } => isSpace(data.subject) || Obj.isObject(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[Collection.Collection.typename]?.target as Collection.Collection)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n Surface.create({\n id: `${meta.id}.collection-section`,\n role: 'section',\n filter: (data): data is { subject: Collection.Collection } =>\n Obj.instanceOf(Collection.Collection, data.subject),\n component: ({ data }) => <CollectionSection subject={data.subject} />,\n }),\n Surface.create({\n id: `${meta.id}.status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { CreateObjectDialogProps } from './CreateObjectDialog';\n\nexport const CollectionArticle: ComponentType<any> = lazy(() => import('./CollectionArticle'));\nexport const CollectionSection: ComponentType<any> = lazy(() => import('./CollectionSection'));\nexport const CreateObjectDialog: ComponentType<any> = lazy(() => import('./CreateObjectDialog'));\nexport const CreateSpaceDialog: ComponentType<any> = lazy(() => import('./CreateSpaceDialog'));\nexport const InlineSyncStatus: ComponentType<any> = lazy(() => import('./InlineSyncStatus'));\nexport const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));\nexport const MembersContainer: ComponentType<any> = lazy(() => import('./MembersContainer'));\nexport const MenuFooter: ComponentType<any> = lazy(() => import('./MenuFooter'));\nexport const ObjectCardStack: ComponentType<any> = lazy(() => import('./ObjectCardStack'));\nexport const ObjectDetails: ComponentType<any> = lazy(() => import('./ObjectDetails'));\nexport const ObjectRenamePopover: ComponentType<any> = lazy(() => import('./ObjectRenamePopover'));\nexport const RecordArticle: ComponentType<any> = lazy(() => import('./RecordArticle'));\nexport const SchemaContainer: ComponentType<any> = lazy(() => import('./SchemaContainer'));\nexport const SmallPresenceLive: ComponentType<any> = lazy(() => import('./SmallPresenceLive'));\nexport const SpacePluginSettings: ComponentType<any> = lazy(() => import('./SpacePluginSettings'));\nexport const SpacePresence: ComponentType<any> = lazy(() => import('./SpacePresence'));\nexport const SpaceRenamePopover: ComponentType<any> = lazy(() => import('./SpaceRenamePopover'));\nexport const SpaceSettingsContainer: ComponentType<any> = lazy(() => import('./SpaceSettingsContainer'));\nexport const SyncStatus: ComponentType<any> = lazy(() => import('./SyncStatus'));\nexport const ViewEditor: ComponentType<any> = lazy(() => import('./ViewEditor'));\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,cAAcC,kBAAkB;AACzC,SAASC,SAASC,mBAAmBC,wBAAwB;AAC7D,SAASC,uBAAuB;AAChC,SAASC,UAAUC,WAAqB;AACxC,SAASC,kBAA6B;AACtC,SAASC,sBAAsB;AAC/B,SAAqBC,YAAYC,UAAUC,SAASC,gBAAgB;AACpE,SAASC,aAAa;AACtB,SAAuCC,mBAAmB;AAC1D,SAASC,WAAWC,kBAAkB;AACtC,SAASC,sBAAsB;;;ACf/B,SAA6BC,YAAY;AAIlC,IAAMC,oBAAwCC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAChE,IAAMC,oBAAwCD,KAAK,MAAM,OAAO,kCAAA,CAAA;AAChE,IAAME,qBAAyCF,KAAK,MAAM,OAAO,mCAAA,CAAA;AACjE,IAAMG,oBAAwCH,KAAK,MAAM,OAAO,kCAAA,CAAA;AAChE,IAAMI,mBAAuCJ,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC/D,IAAMK,aAAiCL,KAAK,MAAM,OAAO,2BAAA,CAAA;AACzD,IAAMM,mBAAuCN,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC/D,IAAMO,aAAiCP,KAAK,MAAM,OAAO,2BAAA,CAAA;AACzD,IAAMQ,kBAAsCR,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC9D,IAAMS,gBAAoCT,KAAK,MAAM,OAAO,8BAAA,CAAA;AAC5D,IAAMU,sBAA0CV,KAAK,MAAM,OAAO,oCAAA,CAAA;AAClE,IAAMW,gBAAoCX,KAAK,MAAM,OAAO,8BAAA,CAAA;AAC5D,IAAMY,kBAAsCZ,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC9D,IAAMa,oBAAwCb,KAAK,MAAM,OAAO,kCAAA,CAAA;AAChE,IAAMc,sBAA0Cd,KAAK,MAAM,OAAO,oCAAA,CAAA;AAClE,IAAMe,gBAAoCf,KAAK,MAAM,OAAO,8BAAA,CAAA;AAC5D,IAAMgB,qBAAyChB,KAAK,MAAM,OAAO,mCAAA,CAAA;AACjE,IAAMiB,yBAA6CjB,KAAK,MAAM,OAAO,uCAAA,CAAA;AACrE,IAAMkB,aAAiClB,KAAK,MAAM,OAAO,2BAAA,CAAA;AACzD,IAAMmB,aAAiCnB,KAAK,MAAM,OAAO,2BAAA,CAAA;;;ADwChE,IAAA,wBAAeoB,WAAWC,WACjBC,kBAAW,WAAW,EAAEC,oBAAmB,GAAuB;AACvE,SAAOH,WAAWI,YAAYC,aAAaC,cAAc;IACvDC,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNC,UAAU;MACVC,QAAQ,CAACC,SACPC,IAAIC,WAAWC,WAAWA,YAAYH,KAAKI,OAAO;MACpDC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAACM,mBAAAA;QAAkBF,SAASJ,KAAKI;;IAC5D,CAAA;IACAX,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNC,UAAU;MACVC,QAAQ,CAACC,SAA2CC,IAAIM,SAASP,KAAKI,OAAO;MAC7EC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAACQ,eAAAA;QAAcJ,SAASJ,KAAKI;;IACxD,CAAA;IACAX,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SACPS,gBAAgBC,WAAWV,KAAKI,OAAO,KAAKJ,KAAKI,QAAQO,WAAWf,KAAKD;MAC3EU,WAAW,CAAC,EAAEL,MAAM,EAAEI,QAAO,EAAE,MAAE;AAC/B,cAAM,EAAEQ,UAAUC,eAAc,IAAKC,iBAAqCV,QAAQW,IAAI;AACtF,eAAO,sBAAA,cAACC,qBAAAA;UAAoBJ;UAAoBK,kBAAkBJ;;MACpE;IACF,CAAA;IACApB,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SACPC,IAAIM,SAASP,KAAKkB,WAAW,KAAKlB,KAAKI,YAAY;MACrDC,WAAW,CAAC,EAAEc,KAAKnB,MAAMH,KAAI,MAAO,sBAAA,cAACuB,eAAAA;QAAchB,SAASJ,KAAKkB;QAAarB;QAAYsB;;IAC5F,CAAA;IACA1B,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAAsCA,KAAKI,YAAY,GAAGR,KAAKD,EAAE;MAC1EU,WAAW,CAAC,EAAEc,IAAG,MAAE;AACjB,cAAME,QAAQC,eAAAA;AACd,YAAI,CAACD,OAAO;AACV,iBAAO;QACT;AAEA,eAAO,sBAAA,cAACE,wBAAAA;UAAuBF;;MACjC;IACF,CAAA;IACA5B,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNC,UAAU;MACVC,QAAQ,CAACC,SAAsCA,KAAKI,YAAY,GAAGR,KAAKD,EAAE;MAC1EU,WAAW,MAAA;AACT,cAAMgB,QAAQC,eAAAA;AACd,YAAI,CAACD,OAAO;AACV,iBAAO;QACT;AAEA,eAAO,sBAAA,cAACG,kBAAAA;UAAiBH;UAAchC;;MACzC;IACF,CAAA;IACAI,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAAsCA,KAAKI,YAAY,GAAGR,KAAKD,EAAE;MAC1EU,WAAW,MAAA;AACT,cAAMgB,QAAQC,eAAAA;AACd,YAAI,CAACD,OAAO;AACV,iBAAO;QACT;AAEA,eAAO,sBAAA,cAACI,iBAAAA;UAAgBJ;;MAC1B;IACF,CAAA;IACA5B,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CACNC,SAAAA;AAEA,YAAIA,KAAKI,YAAY,sBAAsB,CAACH,IAAIM,SAASP,KAAKkB,WAAW,GAAG;AAC1E,iBAAO;QACT;AAGA,cAAMQ,SAASzB,IAAI0B,UAAU3B,KAAKkB,WAAW;AAC7C,eAAcU,oBAAaF,MAAAA,EAAQG,KAC1BC,eAAQ,CAACJ,YAAWK,eAAeC,IAAIN,OAAAA,CAAAA,GACvCO,iBAAU,MAAM,KAAA,CAAA;MAE3B;;MAEA5B,WAAW,CAAC,EAAEL,MAAMmB,IAAG,MACrB,sBAAA,cAACe,iBAAAA;QACCC,KAAKlC,IAAImC,OAAOpC,KAAKkB,WAAW,EAAEmB,SAAQ;QAC1CC,UAAUrC,IAAImC,OAAOpC,KAAKkB,WAAW,EAAEmB,SAAQ;QAC/CE,MAAMvC,KAAKkB,YAAYqB,KAAKC;QAC5BrB;;IAGN,CAAA;IACA1B,QAAQC,OAAO;MACbC,IAAI8C;MACJ5C,MAAM;MACNE,QAAQ,CAACC,SAA4CA,KAAKK,cAAcoC;MACxEpC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAAC0C,YAAe1C,KAAK2C,KAAK;IACrD,CAAA;IACAlD,QAAQC,OAAO;MACbC,IAAIiD;MACJ/C,MAAM;MACNE,QAAQ,CAACC,SAAsBA,KAAKK,cAAcuC;MAClDvC,WAAW,MAAM,sBAAA,cAACwC,mBAAAA,IAAAA;IACpB,CAAA;IACApD,QAAQC,OAAO;MACbC,IAAImD;MACJjD,MAAM;MACNE,QAAQ,CAACC,SAAqDA,KAAKK,cAAcyC;MACjFzC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAAC+C,oBAAuB/C,KAAK2C,KAAK;IAC7D,CAAA;IACAlD,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAAAA;AACP,cAAMgD,aAAaC,eAAyBjD,KAAK0B,OAA6BwB,KAAKC,eAAAA;AACnF,eAAO,CAAC,CAACH;MACX;MACA3C,WAAW,CAAC,EAAEL,MAAMoD,GAAG,GAAGC,WAAAA,MAAY;AACpC,cAAM,EAAEC,OAAOC,UAAUC,MAAMC,UAAUC,cAAa,IAAKL;AAC3D,cAAMM,eAAeC,YAAY,CAACC,YAAoBH,cAAcF,MAAMK,OAAAA,GAAU;UAACH;SAAc;AACnG,cAAMI,cAAcF,YAAY,MAAMF,cAAcF,MAAMO,MAAAA,GAAY;UAACL;SAAc;AACrF,eACE,sBAAA,cAACM,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK,MAAEZ,KAAAA,GACd,sBAAA,cAACa,WAAAA;UAAUC,UAAU,CAAC,CAACb;UAAUc,OAAOZ,SAAAA,KAAc;UAAIa,UAAUX;UAAcY,SAAST;;MAGjG;IACF,CAAA;IACArE,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAAAA;AACP,cAAMgD,aAAaC,eAAyBjD,KAAK0B,OAA6BwB,KAAKsB,gBAAAA;AACnF,eAAO,CAAC,CAACxB;MACX;MACA3C,WAAW,CAAC,EAAEL,MAAMoD,GAAG,GAAGC,WAAAA,MAAY;AACpC,cAAM,EAAEC,OAAOC,UAAUC,MAAMC,UAAUC,cAAa,IAAKL;AAC3D,cAAMM,eAAeC,YAAY,CAACa,aAAqBf,cAAcF,MAAMiB,QAAAA,GAAW;UAACf;SAAc;AACrG,cAAMI,cAAcF,YAAY,MAAMF,cAAcF,MAAMO,MAAAA,GAAY;UAACL;SAAc;AACrF,eACE,sBAAA,cAACM,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK,MAAEZ,KAAAA,GACd,sBAAA,cAACoB,YAAAA;UACCN,UAAU,CAAC,CAACb;UACZc,OAAOZ,SAAAA,KAAc;UACrBa,UAAUX;UACVY,SAAST;;MAIjB;IACF,CAAA;IACArE,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CACNC,SAAAA;AAMA,YAAIA,KAAK2E,SAAS,YAAY;AAC5B,iBAAO;QACT;AAEA,cAAM3B,aAAaC,eAAgBjD,KAAK0B,OAA6BwB,KAAK0B,4BAAAA;AAC1E,eAAO,CAAC,CAAC5B;MACX;MACA3C,WAAW,CAAC,EAAEL,MAAM,EAAE0B,QAAQc,OAAM,GAAI,GAAGa,WAAAA,MAAY;AACrD,cAAMV,QAAQU;AACd,cAAMwB,KAAKC,SAASC,WAAWvC,MAAAA,IAAUA,SAASA,UAAUvC,IAAI+E,YAAYxC,MAAAA;AAC5E,cAAMnB,QAAQ4D,SAASJ,IAAIK,OAAAA;AAC3B,cAAMlC,aAAaC,eAAiCvB,OAAOwB,KAAK0B,4BAAAA;AAChE,cAAMO,UAAUC,eAAe;UAAE/D;UAAO2B;QAAW,CAAA;AAEnD,eAAO,sBAAA,cAACqC,aAAAA;UAAa,GAAG1C;UAAOwC;;MACjC;IACF,CAAA;IACA1F,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAAAA;AACP,YAAI,CAACC,IAAIM,SAASP,KAAKI,OAAO,GAAG;AAC/B,iBAAO;QACT;AAEA,cAAMsB,SAASzB,IAAI0B,UAAU3B,KAAKI,OAAO;AACzC,eAAcwB,oBAAaF,MAAAA,EAAQG,KAC1BC,eAAQ,CAACJ,YAAWK,eAAeC,IAAIN,OAAAA,CAAAA,GACvCO,iBAAU,MAAM,KAAA,CAAA;MAE3B;MACA5B,WAAW,CAAC,EAAEL,KAAI,MAAE;AAClB,cAAMuC,OAAOvC,KAAKI,QAAQmC,KAAKC;AAC/B,YAAI,CAACD,MAAM;AACT,iBAAO;QACT;AAEA,eAAO,sBAAA,cAAC+C,YAAAA;UAAW/C;;MACrB;IACF,CAAA;IACA9C,QAAQC,OAAO;MACbC,IAAI4F;MACJ1F,MAAM;MACNE,QAAQ,CAACC,SAAmCA,KAAKK,cAAckF,wBAAwBC,QAAQxF,KAAK2C,KAAK;MACzGtC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAACyF,oBAAAA;QAAmBpE,OAAOrB,KAAK2C;;IAC3D,CAAA;IACAlD,QAAQC,OAAO;MACbC,IAAI+F;MACJ7F,MAAM;MACNE,QAAQ,CAACC,SACPA,KAAKK,cAAcqF,yBAAyBzF,IAAIM,SAASP,KAAK2C,KAAK;MACrEtC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAAC2F,qBAAAA;QAAoBC,QAAQ5F,KAAK2C;;IAC7D,CAAA;IACAlD,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAA2CC,IAAIM,SAASP,KAAKI,OAAO;MAC7EC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAAC6F,YAAAA;QAAWD,QAAQ5F,KAAKI;;IACpD,CAAA;IACAX,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SACP,OAAOA,KAAKL,OAAO,YAAYM,IAAIM,SAASP,KAAKI,OAAO;MAC1DC,WAAW,CAAC,EAAEL,KAAI,MAAE;AAClB,cAAM8F,YAAYC,kBAAkBC,kBAAkBC,cAAc;AACpE,eAAO,sBAAA,cAACC,mBAAAA;UAAkBvG,IAAIK,KAAKL;UAAIwG,MAAMnG,KAAKmG;UAAMC,SAASN,UAAUO,gBAAgBrG,KAAKL,EAAE;;MACpG;IACF,CAAA;;IAEAF,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNC,UAAU;MACVC,QAAQ,CAACC,SAAiD,OAAOA,KAAKL,OAAO;MAC7EU,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAACkG,mBAAAA;QAAkBvG,IAAIK,KAAKL;QAAIwG,MAAMnG,KAAKmG;;IACtE,CAAA;;IAEA1G,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SAAqDwF,QAAQxF,KAAKI,OAAO;MAClFC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAACsG,kBAAAA;QAAiBjF,OAAOrB,KAAKI;QAAS+F,MAAMnG,KAAKmG;;IAC7E,CAAA;IACA1G,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNC,UAAU;MACVC,QAAQ,CAACC,SAAmDwF,QAAQxF,KAAKI,OAAO,KAAKH,IAAIM,SAASP,KAAKI,OAAO;MAC9GC,WAAW,CAAC,EAAEL,KAAI,MAAE;AAClB,cAAMqB,QAAQmE,QAAQxF,KAAKI,OAAO,IAAIJ,KAAKI,UAAUmG,SAASvG,KAAKI,OAAO;AAC1E,cAAMwF,SAASJ,QAAQxF,KAAKI,OAAO,IAC/BJ,KAAKI,QAAQoG,MAAMxE,IAAG,MAAOyE,WAAWC,cACrCrF,OAAOsF,WAAWxG,WAAWA,WAAWyG,QAAQ,GAAGpE,SACpDuB,SACF/D,KAAKI;AAET,eAAOwF,SAAS,sBAAA,cAACiB,eAAAA;UAAcjB;aAAqB;MACtD;IACF,CAAA;IACAnG,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNE,QAAQ,CAACC,SACPC,IAAIC,WAAWC,WAAWA,YAAYH,KAAKI,OAAO;MACpDC,WAAW,CAAC,EAAEL,KAAI,MAAO,sBAAA,cAAC8G,mBAAAA;QAAkB1G,SAASJ,KAAKI;;IAC5D,CAAA;IACAX,QAAQC,OAAO;MACbC,IAAI,GAAGC,KAAKD,EAAE;MACdE,MAAM;MACNQ,WAAW,MAAM,sBAAA,cAAC0G,YAAAA,IAAAA;IACpB,CAAA;GACD;AACH,CAAA,CAAA;",
6
+ "names": ["Effect", "Option", "React", "useCallback", "Capabilities", "Capability", "Surface", "useAtomCapability", "useSettingsState", "AppCapabilities", "Database", "Obj", "Collection", "findAnnotation", "SpaceState", "getSpace", "isSpace", "useSpace", "Input", "SelectField", "HuePicker", "IconPicker", "ViewAnnotation", "lazy", "CollectionArticle", "lazy", "CollectionSection", "CreateObjectDialog", "CreateSpaceDialog", "InlineSyncStatus", "JoinDialog", "MembersContainer", "MenuFooter", "ObjectCardStack", "ObjectDetails", "ObjectRenamePopover", "RecordArticle", "SchemaContainer", "SmallPresenceLive", "SpacePluginSettings", "SpacePresence", "SpaceRenamePopover", "SpaceSettingsContainer", "SyncStatus", "ViewEditor", "Capability", "makeModule", "fnUntraced", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "position", "filter", "data", "Obj", "instanceOf", "Collection", "subject", "component", "CollectionArticle", "isObject", "RecordArticle", "AppCapabilities", "isSettings", "prefix", "settings", "updateSettings", "useSettingsState", "atom", "SpacePluginSettings", "onSettingsChange", "companionTo", "ref", "ObjectDetails", "space", "useActiveSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "schema", "getSchema", "fromNullable", "pipe", "flatMap", "ViewAnnotation", "get", "getOrElse", "ObjectCardStack", "key", "getDXN", "toString", "objectId", "view", "target", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "ast", "HueAnnotationId", "_", "inputProps", "label", "readonly", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "disabled", "value", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "prop", "TypeInputOptionsAnnotationId", "db", "Database", "isDatabase", "getDatabase", "useSpace", "spaceId", "options", "useTypeOptions", "SelectField", "ViewEditor", "SPACE_RENAME_POPOVER", "isSpace", "SpaceRenamePopover", "OBJECT_RENAME_POPOVER", "ObjectRenamePopover", "object", "MenuFooter", "ephemeral", "useAtomCapability", "SpaceCapabilities", "EphemeralState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "state", "SpaceState", "SPACE_READY", "properties", "typename", "SpacePresence", "CollectionSection", "SyncStatus"]
7
+ }
@@ -0,0 +1,32 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SpaceCapabilities
4
+ } from "./chunk-EVNSLSQS.mjs";
5
+ import "./chunk-63N5JJXI.mjs";
6
+
7
+ // src/capabilities/repair/repair.ts
8
+ import * as Effect from "effect/Effect";
9
+ import { Capability } from "@dxos/app-framework";
10
+ import { Collection, Obj, Ref } from "@dxos/echo";
11
+ var repair_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(SpaceCapabilities.Repair, async ({ space }) => {
12
+ await removeQueryCollections(space);
13
+ })));
14
+ var removeQueryCollections = async (space) => {
15
+ const rootCollection = await space.properties[Collection.Collection.typename]?.load();
16
+ if (!rootCollection) {
17
+ return;
18
+ }
19
+ const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
20
+ const queryCollections = objects.filter((object) => Obj.getTypename(object) === "org.dxos.type.query-collection");
21
+ if (queryCollections.length === 0) {
22
+ return;
23
+ }
24
+ Obj.change(rootCollection, (c) => {
25
+ c.objects = objects.filter((object) => Obj.getTypename(object) !== "org.dxos.type.query-collection").map((object) => Ref.make(object));
26
+ });
27
+ queryCollections.forEach((object) => space.db.remove(object));
28
+ };
29
+ export {
30
+ repair_default as default
31
+ };
32
+ //# sourceMappingURL=repair-LRZHFPSJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/repair/repair.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Collection, Obj, Ref } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { SpaceCapabilities } from '../../types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(SpaceCapabilities.Repair, async ({ space }: { space: Space }) => {\n await removeQueryCollections(space);\n }),\n ),\n);\n\n/**\n * Remove all existing query collections from the root collection.\n */\nconst removeQueryCollections = async (space: Space) => {\n const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();\n if (!rootCollection) {\n return;\n }\n\n const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));\n const queryCollections = objects.filter((object) => Obj.getTypename(object) === 'org.dxos.type.query-collection');\n if (queryCollections.length === 0) {\n return;\n }\n\n Obj.change(rootCollection, (c) => {\n c.objects = objects\n .filter((object) => Obj.getTypename(object) !== 'org.dxos.type.query-collection')\n .map((object) => Ref.make(object));\n });\n queryCollections.forEach((object) => space.db.remove(object));\n};\n"],
5
+ "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,YAAYC,KAAKC,WAAW;AAKrC,IAAA,iBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,kBAAkBC,QAAQ,OAAO,EAAEC,MAAK,MAAoB;AACjF,QAAMC,uBAAuBD,KAAAA;AAC/B,CAAA,CAAA,CAAA;AAOJ,IAAMC,yBAAyB,OAAOD,UAAAA;AACpC,QAAME,iBAAwC,MAAMF,MAAMG,WAAWC,WAAWA,WAAWC,QAAQ,GAAGC,KAAAA;AACtG,MAAI,CAACJ,gBAAgB;AACnB;EACF;AAEA,QAAMK,UAAU,MAAMC,QAAQC,IAAIP,eAAeK,QAAQG,IAAI,CAACC,QAAQA,IAAIL,KAAI,CAAA,CAAA;AAC9E,QAAMM,mBAAmBL,QAAQM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,gCAAA;AAChF,MAAIF,iBAAiBK,WAAW,GAAG;AACjC;EACF;AAEAF,MAAIG,OAAOhB,gBAAgB,CAACiB,MAAAA;AAC1BA,MAAEZ,UAAUA,QACTM,OAAO,CAACC,WAAWC,IAAIC,YAAYF,MAAAA,MAAY,gCAAA,EAC/CJ,IAAI,CAACI,WAAWM,IAAIC,KAAKP,MAAAA,CAAAA;EAC9B,CAAA;AACAF,mBAAiBU,QAAQ,CAACR,WAAWd,MAAMuB,GAAGC,OAAOV,MAAAA,CAAAA;AACvD;",
6
+ "names": ["Effect", "Capability", "Collection", "Obj", "Ref", "Capability", "makeModule", "succeed", "contributes", "SpaceCapabilities", "Repair", "space", "removeQueryCollections", "rootCollection", "properties", "Collection", "typename", "load", "objects", "Promise", "all", "map", "ref", "queryCollections", "filter", "object", "Obj", "getTypename", "length", "change", "c", "Ref", "make", "forEach", "db", "remove"]
7
+ }
@@ -2,10 +2,10 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  SpaceCapabilities,
4
4
  SpaceSettingsSchema
5
- } from "./chunk-3DWZCVVQ.mjs";
5
+ } from "./chunk-EVNSLSQS.mjs";
6
6
  import {
7
7
  meta
8
- } from "./chunk-SL4BJSUG.mjs";
8
+ } from "./chunk-63N5JJXI.mjs";
9
9
 
10
10
  // src/capabilities/settings/settings.ts
11
11
  import * as Effect from "effect/Effect";
@@ -32,4 +32,4 @@ var settings_default = Capability.makeModule(() => Effect.sync(() => {
32
32
  export {
33
33
  settings_default as default
34
34
  };
35
- //# sourceMappingURL=settings-DCTVM2BV.mjs.map
35
+ //# sourceMappingURL=settings-3EKSEAAG.mjs.map
@@ -2,18 +2,18 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  COMPOSER_SPACE_LOCK,
4
4
  SHARED
5
- } from "./chunk-WW6YYBRG.mjs";
5
+ } from "./chunk-GEGWQVZX.mjs";
6
6
  import {
7
7
  SpaceCapabilities,
8
8
  SpaceOperation
9
- } from "./chunk-3DWZCVVQ.mjs";
10
- import "./chunk-SL4BJSUG.mjs";
9
+ } from "./chunk-EVNSLSQS.mjs";
10
+ import "./chunk-63N5JJXI.mjs";
11
11
 
12
12
  // src/capabilities/spaces-ready/spaces-ready.ts
13
13
  import * as Effect from "effect/Effect";
14
14
  import * as Option from "effect/Option";
15
15
  import { Capabilities, Capability } from "@dxos/app-framework";
16
- import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
16
+ import { AppCapabilities, LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
17
17
  import { SubscriptionList } from "@dxos/async";
18
18
  import { Filter, Obj } from "@dxos/echo";
19
19
  import { log } from "@dxos/log";
@@ -45,7 +45,7 @@ var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* ()
45
45
  const layout = registry.get(layoutAtom);
46
46
  if (layout.workspace === "default") {
47
47
  yield* invoke(LayoutOperation.SwitchWorkspace, {
48
- subject: defaultSpace.id
48
+ subject: getSpacePath(defaultSpace.id)
49
49
  });
50
50
  }
51
51
  if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== "boolean") {
@@ -241,4 +241,4 @@ var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* ()
241
241
  export {
242
242
  spaces_ready_default as default
243
243
  };
244
- //# sourceMappingURL=spaces-ready-XLGRTJV2.mjs.map
244
+ //# sourceMappingURL=spaces-ready-QK3EHBOS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/spaces-ready/spaces-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { SubscriptionList } from '@dxos/async';\nimport { Filter, Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { SPACE_ID_LENGTH, SpaceState, parseId } from '@dxos/react-client/echo';\nimport { Expando } from '@dxos/schema';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities, SpaceOperation } from '../../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 5_000;\n\n// E.g., dxn:echo:BA25QRC2FEWCSAMRP4RZL65LWJ7352CKE:01J00J9B45YHYSGZQTQMSKMGJ6\nconst ECHO_DXN_LENGTH = 3 + 1 + 4 + 1 + 33 + 1 + 26;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { invoke, invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const layoutAtom = yield* Capability.get(AppCapabilities.Layout);\n const attention = yield* Capability.get(AttentionCapabilities.Attention);\n const stateAtom = yield* Capability.get(SpaceCapabilities.State);\n const ephemeralAtom = yield* Capability.get(SpaceCapabilities.EphemeralState);\n const client = yield* Capability.get(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n yield* Effect.tryPromise(() => defaultSpace.waitUntilReady());\n\n // Check if deck state indicates we should switch to default space.\n const layout = registry.get(layoutAtom);\n if (layout.workspace === 'default') {\n yield* invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(defaultSpace.id) });\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n Obj.change(defaultSpace.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = true;\n });\n }\n\n const queryResults = yield* Effect.tryPromise(() =>\n defaultSpace.db.query(Filter.type(Expando.Expando, { key: SHARED })).run(),\n );\n const spacesOrder = queryResults[0];\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(Obj.make(Expando.Expando, { key: SHARED, order: [] }));\n }\n\n // Await missing objects - subscribe to layout atom changes.\n // NOTE: Use immediate: true to check initial state (URL handler may have already set active).\n let lastActiveCleanup: (() => void) | undefined;\n subscriptions.add(\n registry.subscribe(\n layoutAtom,\n (layout) => {\n // Clean up previous effect.\n lastActiveCleanup?.();\n lastActiveCleanup = undefined;\n\n // Determine the ID to check - either from active item or workspace.\n const id = layout.active.length === 1 ? layout.active[0] : layout.workspace;\n if (!id) {\n return;\n }\n\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node && (id.length === ECHO_DXN_LENGTH || id.length === SPACE_ID_LENGTH)) {\n void Graph.initialize(graph, id);\n const timeout = setTimeout(async () => {\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node) {\n await invokePromise(SpaceOperation.WaitForObject, { id });\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n lastActiveCleanup = () => clearTimeout(timeout);\n }\n },\n { immediate: true },\n ),\n );\n // Also add cleanup for the last effect.\n subscriptions.add(() => lastActiveCleanup?.());\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 const updateSpaceName = () => {\n const name = space.properties.name;\n if (!name) {\n registry.update(stateAtom, (current) => {\n const { [space.id]: _, ...rest } = current.spaceNames;\n return { ...current, spaceNames: rest };\n });\n } else {\n registry.update(stateAtom, (current) => ({\n ...current,\n spaceNames: { ...current.spaceNames, [space.id]: name },\n }));\n }\n };\n updateSpaceName();\n subscriptions.add(Obj.subscribe(space.properties, updateSpaceName));\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space - subscribe to both layout and attention.\n let broadcastCleanup: (() => void) | undefined;\n const setupBroadcast = () => {\n broadcastCleanup?.();\n\n const layout = registry.get(layoutAtom);\n const current = attention.getCurrent();\n const active = layout.active;\n const inactive = layout.inactive;\n\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: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id: string) => {\n try {\n const { spaceId } = parseId(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.', {\n err: err.message,\n });\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 broadcastCleanup = () => clearInterval(interval);\n };\n\n // Subscribe to layout changes for broadcast.\n subscriptions.add(registry.subscribe(layoutAtom, setupBroadcast));\n // Subscribe to attention.current changes.\n subscriptions.add(attention.subscribeCurrent(() => setupBroadcast()));\n // Initial setup.\n setupBroadcast();\n // Cleanup.\n subscriptions.add(() => broadcastCleanup?.());\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 // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n registry.update(ephemeralAtom, (ephemeral) => {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in ephemeral.viewersByObject)) {\n ephemeral.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n ephemeral.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!ephemeral.viewersByIdentity.has(identityKey)) {\n ephemeral.viewersByIdentity.set(identityKey, new Set());\n }\n ephemeral.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n ephemeral.viewersByObject[id]?.delete(identityKey);\n ephemeral.viewersByIdentity.get(identityKey)?.delete(id);\n // It's okay for these to be empty sets/maps, reduces churn.\n }\n });\n\n return { ...ephemeral };\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n yield* Effect.tryPromise(() =>\n Promise.all(\n client.spaces\n .get()\n .map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n ),\n );\n registry.update(stateAtom, (current) => ({ ...current, enabledEdgeReplication: true }));\n } catch (err) {\n log.catch(err);\n }\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n }),\n );\n }),\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["Effect", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "getSpacePath", "SubscriptionList", "Filter", "Obj", "log", "AttentionCapabilities", "ClientCapabilities", "Graph", "EdgeReplicationSetting", "PublicKey", "SPACE_ID_LENGTH", "SpaceState", "parseId", "Expando", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "ECHO_DXN_LENGTH", "Capability", "makeModule", "fnUntraced", "subscriptions", "SubscriptionList", "spaceSubscriptions", "invoke", "invokePromise", "get", "Capabilities", "OperationInvoker", "graph", "AppCapabilities", "AppGraph", "registry", "AtomRegistry", "layoutAtom", "Layout", "attention", "AttentionCapabilities", "Attention", "stateAtom", "SpaceCapabilities", "State", "ephemeralAtom", "EphemeralState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "tryPromise", "waitUntilReady", "layout", "workspace", "LayoutOperation", "SwitchWorkspace", "subject", "getSpacePath", "id", "properties", "COMPOSER_SPACE_LOCK", "Obj", "change", "p", "queryResults", "db", "query", "Filter", "type", "Expando", "key", "SHARED", "run", "spacesOrder", "add", "make", "order", "lastActiveCleanup", "subscribe", "undefined", "active", "length", "node", "Graph", "getNode", "pipe", "getOrNull", "SPACE_ID_LENGTH", "initialize", "timeout", "setTimeout", "SpaceOperation", "WaitForObject", "clearTimeout", "immediate", "state", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "updateSpaceName", "name", "update", "current", "_", "rest", "spaceNames", "unsubscribe", "broadcastCleanup", "setupBroadcast", "getCurrent", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "subscribeCurrent", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "ephemeral", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null", "sync"]
7
+ }
@@ -1,10 +1,10 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  SpaceCapabilities
4
- } from "./chunk-3DWZCVVQ.mjs";
4
+ } from "./chunk-EVNSLSQS.mjs";
5
5
  import {
6
6
  meta
7
- } from "./chunk-SL4BJSUG.mjs";
7
+ } from "./chunk-63N5JJXI.mjs";
8
8
 
9
9
  // src/capabilities/state/state.ts
10
10
  import { Atom } from "@effect-atom/atom-react";
@@ -20,7 +20,7 @@ var defaultSpaceState = {
20
20
  var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
21
21
  const registry = yield* Capability.get(Capabilities.AtomRegistry);
22
22
  const stateAtom = createKvsStore({
23
- key: `${meta.id}/state`,
23
+ key: `${meta.id}.state`,
24
24
  schema: SpaceCapabilities.StateSchema,
25
25
  defaultValue: () => ({
26
26
  ...defaultSpaceState
@@ -35,7 +35,7 @@ var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
35
35
  }).pipe(Atom.keepAlive);
36
36
  const manager = yield* Capability.get(Capabilities.PluginManager);
37
37
  const updateNavigableCollections = () => {
38
- const enabled = manager.getEnabled().includes("dxos.org/plugin/stack");
38
+ const enabled = manager.getEnabled().includes("org.dxos.plugin.stack") || manager.getEnabled().includes("org.dxos.plugin.simple-layout");
39
39
  const current = registry.get(ephemeralAtom);
40
40
  if (enabled !== current.navigableCollections) {
41
41
  registry.update(ephemeralAtom, (c) => ({
@@ -56,4 +56,4 @@ var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
56
56
  export {
57
57
  state_default as default
58
58
  };
59
- //# sourceMappingURL=state-G74V3WZG.mjs.map
59
+ //# sourceMappingURL=state-W36RRYUO.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/state/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\nimport { PublicKey } from '@dxos/keys';\nimport { ComplexMap } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { SpaceCapabilities } from '../../types';\n\n/** Default persisted state. */\nconst defaultSpaceState: SpaceCapabilities.SpaceState = {\n spaceNames: {},\n enabledEdgeReplication: false,\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n\n // Persisted state using KVS store.\n const stateAtom = createKvsStore({\n key: `${meta.id}/state`,\n schema: SpaceCapabilities.StateSchema,\n defaultValue: () => ({ ...defaultSpaceState }),\n });\n\n // Ephemeral state (not persisted, but kept alive to prevent GC resets).\n const ephemeralAtom = Atom.make<SpaceCapabilities.SpaceEphemeralState>({\n awaiting: undefined,\n sdkMigrationRunning: {},\n navigableCollections: false,\n viewersByObject: {},\n viewersByIdentity: new ComplexMap<PublicKey, Set<string>>(PublicKey.hash),\n }).pipe(Atom.keepAlive);\n\n const manager = yield* Capability.get(Capabilities.PluginManager);\n // Update navigableCollections based on plugin state.\n const updateNavigableCollections = () => {\n const enabled = manager.getEnabled().includes('dxos.org/plugin/stack');\n const current = registry.get(ephemeralAtom);\n if (enabled !== current.navigableCollections) {\n registry.update(ephemeralAtom, (c) => ({ ...c, navigableCollections: enabled }));\n }\n };\n // Check initial state and subscribe to changes.\n updateNavigableCollections();\n const unsubscribe = registry.subscribe(manager.enabled, updateNavigableCollections);\n\n return [\n Capability.contributes(SpaceCapabilities.State, stateAtom),\n Capability.contributes(SpaceCapabilities.EphemeralState, ephemeralAtom, () =>\n Effect.sync(() => {\n unsubscribe();\n }),\n ),\n ];\n }),\n);\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAM3B,IAAMC,oBAAkD;EACtDC,YAAY,CAAC;EACbC,wBAAwB;AAC1B;AAEA,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,aAAaC,YAAY;AAGhE,QAAMC,YAAYC,eAAe;IAC/BC,KAAK,GAAGC,KAAKC,EAAE;IACfC,QAAQC,kBAAkBC;IAC1BC,cAAc,OAAO;MAAE,GAAGlB;IAAkB;EAC9C,CAAA;AAGA,QAAMmB,gBAAgBC,KAAKC,KAA4C;IACrEC,UAAUC;IACVC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,iBAAiB,CAAC;IAClBC,mBAAmB,IAAIC,WAAmCC,UAAUC,IAAI;EAC1E,CAAA,EAAGC,KAAKX,KAAKY,SAAS;AAEtB,QAAMC,UAAU,OAAO9B,WAAWI,IAAIC,aAAa0B,aAAa;AAEhE,QAAMC,6BAA6B,MAAA;AACjC,UAAMC,UAAUH,QAAQI,WAAU,EAAGC,SAAS,uBAAA;AAC9C,UAAMC,UAAUjC,SAASC,IAAIY,aAAAA;AAC7B,QAAIiB,YAAYG,QAAQd,sBAAsB;AAC5CnB,eAASkC,OAAOrB,eAAe,CAACsB,OAAO;QAAE,GAAGA;QAAGhB,sBAAsBW;MAAQ,EAAA;IAC/E;EACF;AAEAD,6BAAAA;AACA,QAAMO,cAAcpC,SAASqC,UAAUV,QAAQG,SAASD,0BAAAA;AAExD,SAAO;IACLhC,WAAWyC,YAAY5B,kBAAkB6B,OAAOnC,SAAAA;IAChDP,WAAWyC,YAAY5B,kBAAkB8B,gBAAgB3B,eAAe,MAC/D4B,YAAK,MAAA;AACVL,kBAAAA;IACF,CAAA,CAAA;;AAGN,CAAA,CAAA;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\nimport { PublicKey } from '@dxos/keys';\nimport { ComplexMap } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { SpaceCapabilities } from '../../types';\n\n/** Default persisted state. */\nconst defaultSpaceState: SpaceCapabilities.SpaceState = {\n spaceNames: {},\n enabledEdgeReplication: false,\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n\n // Persisted state using KVS store.\n const stateAtom = createKvsStore({\n key: `${meta.id}.state`,\n schema: SpaceCapabilities.StateSchema,\n defaultValue: () => ({ ...defaultSpaceState }),\n });\n\n // Ephemeral state (not persisted, but kept alive to prevent GC resets).\n const ephemeralAtom = Atom.make<SpaceCapabilities.SpaceEphemeralState>({\n awaiting: undefined,\n sdkMigrationRunning: {},\n navigableCollections: false,\n viewersByObject: {},\n viewersByIdentity: new ComplexMap<PublicKey, Set<string>>(PublicKey.hash),\n }).pipe(Atom.keepAlive);\n\n const manager = yield* Capability.get(Capabilities.PluginManager);\n // Update navigableCollections based on plugin state.\n const updateNavigableCollections = () => {\n const enabled =\n manager.getEnabled().includes('org.dxos.plugin.stack') ||\n manager.getEnabled().includes('org.dxos.plugin.simple-layout');\n const current = registry.get(ephemeralAtom);\n if (enabled !== current.navigableCollections) {\n registry.update(ephemeralAtom, (c) => ({ ...c, navigableCollections: enabled }));\n }\n };\n // Check initial state and subscribe to changes.\n updateNavigableCollections();\n const unsubscribe = registry.subscribe(manager.enabled, updateNavigableCollections);\n\n return [\n Capability.contributes(SpaceCapabilities.State, stateAtom),\n Capability.contributes(SpaceCapabilities.EphemeralState, ephemeralAtom, () =>\n Effect.sync(() => {\n unsubscribe();\n }),\n ),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAM3B,IAAMC,oBAAkD;EACtDC,YAAY,CAAC;EACbC,wBAAwB;AAC1B;AAEA,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,aAAaC,YAAY;AAGhE,QAAMC,YAAYC,eAAe;IAC/BC,KAAK,GAAGC,KAAKC,EAAE;IACfC,QAAQC,kBAAkBC;IAC1BC,cAAc,OAAO;MAAE,GAAGlB;IAAkB;EAC9C,CAAA;AAGA,QAAMmB,gBAAgBC,KAAKC,KAA4C;IACrEC,UAAUC;IACVC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,iBAAiB,CAAC;IAClBC,mBAAmB,IAAIC,WAAmCC,UAAUC,IAAI;EAC1E,CAAA,EAAGC,KAAKX,KAAKY,SAAS;AAEtB,QAAMC,UAAU,OAAO9B,WAAWI,IAAIC,aAAa0B,aAAa;AAEhE,QAAMC,6BAA6B,MAAA;AACjC,UAAMC,UACJH,QAAQI,WAAU,EAAGC,SAAS,uBAAA,KAC9BL,QAAQI,WAAU,EAAGC,SAAS,+BAAA;AAChC,UAAMC,UAAUjC,SAASC,IAAIY,aAAAA;AAC7B,QAAIiB,YAAYG,QAAQd,sBAAsB;AAC5CnB,eAASkC,OAAOrB,eAAe,CAACsB,OAAO;QAAE,GAAGA;QAAGhB,sBAAsBW;MAAQ,EAAA;IAC/E;EACF;AAEAD,6BAAAA;AACA,QAAMO,cAAcpC,SAASqC,UAAUV,QAAQG,SAASD,0BAAAA;AAExD,SAAO;IACLhC,WAAWyC,YAAY5B,kBAAkB6B,OAAOnC,SAAAA;IAChDP,WAAWyC,YAAY5B,kBAAkB8B,gBAAgB3B,eAAe,MAC/D4B,YAAK,MAAA;AACVL,kBAAAA;IACF,CAAA,CAAA;;AAGN,CAAA,CAAA;",
6
6
  "names": ["Atom", "Effect", "Capabilities", "Capability", "createKvsStore", "PublicKey", "ComplexMap", "defaultSpaceState", "spaceNames", "enabledEdgeReplication", "Capability", "makeModule", "fnUntraced", "registry", "get", "Capabilities", "AtomRegistry", "stateAtom", "createKvsStore", "key", "meta", "id", "schema", "SpaceCapabilities", "StateSchema", "defaultValue", "ephemeralAtom", "Atom", "make", "awaiting", "undefined", "sdkMigrationRunning", "navigableCollections", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "pipe", "keepAlive", "manager", "PluginManager", "updateNavigableCollections", "enabled", "getEnabled", "includes", "current", "update", "c", "unsubscribe", "subscribe", "contributes", "State", "EphemeralState", "sync"]
7
7
  }
@@ -14,8 +14,8 @@ import {
14
14
  TypeInputOptionsAnnotation,
15
15
  TypeInputOptionsAnnotationId,
16
16
  getTypenames
17
- } from "../chunk-3DWZCVVQ.mjs";
18
- import "../chunk-SL4BJSUG.mjs";
17
+ } from "../chunk-EVNSLSQS.mjs";
18
+ import "../chunk-63N5JJXI.mjs";
19
19
  export {
20
20
  CollectionOperation,
21
21
  HueAnnotationId,
@@ -1 +1 @@
1
- {"version":3,"file":"SpacePlugin.d.ts","sourceRoot":"","sources":["../../../src/SpacePlugin.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiD,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuC5F,OAAO,EAAqC,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErF,eAAO,MAAM,WAAW,0CAyKvB,CAAC"}
1
+ {"version":3,"file":"SpacePlugin.d.ts","sourceRoot":"","sources":["../../../src/SpacePlugin.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiD,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuC5F,OAAO,EAAqC,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErF,eAAO,MAAM,WAAW,0CAiKvB,CAAC"}