@dxos/plugin-space 0.8.3 → 0.8.4-main.28f8d3d

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 (275) hide show
  1. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs +31 -0
  2. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +88 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +7 -0
  5. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +68 -0
  6. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +7 -0
  7. package/dist/lib/browser/{app-graph-builder-M2RH72VL.mjs → app-graph-builder-VZW75QPJ.mjs} +178 -30
  8. package/dist/lib/browser/app-graph-builder-VZW75QPJ.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-serializer-F7ISRRBV.mjs → app-graph-serializer-YPHYVZAP.mjs} +13 -13
  10. package/dist/lib/browser/app-graph-serializer-YPHYVZAP.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-TW7O2EPP.mjs → chunk-3UFG6LQQ.mjs} +59 -5
  12. package/dist/lib/browser/chunk-3UFG6LQQ.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-YMCZR6EZ.mjs → chunk-CBYL62HG.mjs} +5 -4
  14. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-7Y4M7GXO.mjs → chunk-DYKFFVN6.mjs} +5 -5
  16. package/dist/lib/browser/{chunk-7Y4M7GXO.mjs.map → chunk-DYKFFVN6.mjs.map} +3 -3
  17. package/dist/lib/browser/{chunk-PTKYMZWO.mjs → chunk-FBCGT5YY.mjs} +2 -2
  18. package/dist/lib/browser/{chunk-NFUKCRGE.mjs → chunk-PSIBVBTA.mjs} +419 -353
  19. package/dist/lib/browser/chunk-PSIBVBTA.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-BXNL6SDI.mjs → chunk-Q5EEPP3S.mjs} +4 -3
  21. package/dist/lib/browser/chunk-Q5EEPP3S.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-V24VASAJ.mjs → chunk-SMB4DGYO.mjs} +133 -29
  23. package/dist/lib/browser/chunk-SMB4DGYO.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-4ZKSFDXM.mjs → chunk-WAXS2ZVX.mjs} +77 -16
  25. package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +7 -0
  26. package/dist/lib/browser/{identity-created-PI7TKANR.mjs → identity-created-T6ZNVE7S.mjs} +5 -5
  27. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +108 -17
  29. package/dist/lib/browser/index.mjs.map +3 -3
  30. package/dist/lib/browser/{intent-resolver-RWU6ZE4H.mjs → intent-resolver-TS6CCKST.mjs} +172 -22
  31. package/dist/lib/browser/intent-resolver-TS6CCKST.mjs.map +7 -0
  32. package/dist/lib/browser/meta.json +1 -1
  33. package/dist/lib/browser/{react-root-QIKHSNT2.mjs → react-root-RQGTZ2ZO.mjs} +8 -8
  34. package/dist/lib/browser/{react-root-QIKHSNT2.mjs.map → react-root-RQGTZ2ZO.mjs.map} +2 -2
  35. package/dist/lib/browser/{react-surface-W56UD53I.mjs → react-surface-V3ARS2BP.mjs} +54 -22
  36. package/dist/lib/browser/react-surface-V3ARS2BP.mjs.map +7 -0
  37. package/dist/lib/browser/{schema-defs-WREJNMIC.mjs → schema-defs-5LBA43X5.mjs} +4 -4
  38. package/dist/lib/browser/schema-defs-5LBA43X5.mjs.map +7 -0
  39. package/dist/lib/browser/{schema-tools-ILTVSSS3.mjs → schema-tools-LPL35WOJ.mjs} +13 -13
  40. package/dist/lib/browser/schema-tools-LPL35WOJ.mjs.map +7 -0
  41. package/dist/lib/browser/{settings-K54STC5A.mjs → settings-FLLBP5KI.mjs} +4 -4
  42. package/dist/lib/browser/{spaces-ready-3PDRDHPC.mjs → spaces-ready-FXEP6XEW.mjs} +17 -15
  43. package/dist/lib/browser/spaces-ready-FXEP6XEW.mjs.map +7 -0
  44. package/dist/lib/browser/{state-HRZ4VRXU.mjs → state-K3UBPKYP.mjs} +4 -4
  45. package/dist/lib/{node-esm/state-XQNDCN37.mjs.map → browser/state-K3UBPKYP.mjs.map} +2 -2
  46. package/dist/lib/browser/types/index.mjs +2 -2
  47. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs +32 -0
  48. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +7 -0
  49. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +89 -0
  50. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +7 -0
  51. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +70 -0
  52. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-BCHVZ4OM.mjs → app-graph-builder-XNVQOJLE.mjs} +178 -30
  54. package/dist/lib/node-esm/app-graph-builder-XNVQOJLE.mjs.map +7 -0
  55. package/dist/lib/node-esm/{app-graph-serializer-TXRGGNP2.mjs → app-graph-serializer-PKVLWV6V.mjs} +13 -13
  56. package/dist/lib/node-esm/app-graph-serializer-PKVLWV6V.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-BSLREHIX.mjs → chunk-7MZ3J3LI.mjs} +4 -3
  58. package/dist/lib/node-esm/chunk-7MZ3J3LI.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-HO7AIKQS.mjs → chunk-CTQMR7E3.mjs} +133 -29
  60. package/dist/lib/node-esm/chunk-CTQMR7E3.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-3CP67AYY.mjs → chunk-FJZNSJC4.mjs} +5 -4
  62. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-MSWEFAPD.mjs → chunk-HWNG4MEU.mjs} +2 -2
  64. package/dist/lib/node-esm/{chunk-JBQKU4K5.mjs → chunk-HYIZVPOA.mjs} +77 -16
  65. package/dist/lib/node-esm/chunk-HYIZVPOA.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-GH2FGJXH.mjs → chunk-KLG4Y4GY.mjs} +5 -5
  67. package/dist/lib/node-esm/{chunk-GH2FGJXH.mjs.map → chunk-KLG4Y4GY.mjs.map} +3 -3
  68. package/dist/lib/node-esm/{chunk-LA6AVVH6.mjs → chunk-KYUHPPRN.mjs} +419 -353
  69. package/dist/lib/node-esm/chunk-KYUHPPRN.mjs.map +7 -0
  70. package/dist/lib/node-esm/{chunk-D4QMPPS7.mjs → chunk-S7MKRQHY.mjs} +59 -5
  71. package/dist/lib/node-esm/chunk-S7MKRQHY.mjs.map +7 -0
  72. package/dist/lib/node-esm/{identity-created-35CTAQWI.mjs → identity-created-AL7NNCKH.mjs} +5 -5
  73. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +7 -0
  74. package/dist/lib/node-esm/index.mjs +108 -17
  75. package/dist/lib/node-esm/index.mjs.map +3 -3
  76. package/dist/lib/node-esm/{intent-resolver-JO6L2VXC.mjs → intent-resolver-W6P27SCF.mjs} +172 -22
  77. package/dist/lib/node-esm/intent-resolver-W6P27SCF.mjs.map +7 -0
  78. package/dist/lib/node-esm/meta.json +1 -1
  79. package/dist/lib/node-esm/{react-root-YFGL3B4J.mjs → react-root-N27KETKT.mjs} +8 -8
  80. package/dist/lib/node-esm/{react-root-YFGL3B4J.mjs.map → react-root-N27KETKT.mjs.map} +2 -2
  81. package/dist/lib/node-esm/{react-surface-CVAPDLEZ.mjs → react-surface-TNPAUQCM.mjs} +54 -22
  82. package/dist/lib/node-esm/react-surface-TNPAUQCM.mjs.map +7 -0
  83. package/dist/lib/node-esm/{schema-defs-4MEJETVX.mjs → schema-defs-TPWZPDCR.mjs} +4 -4
  84. package/dist/lib/node-esm/schema-defs-TPWZPDCR.mjs.map +7 -0
  85. package/dist/lib/node-esm/{schema-tools-SRLCRZ3B.mjs → schema-tools-PJE2FKWH.mjs} +13 -13
  86. package/dist/lib/node-esm/schema-tools-PJE2FKWH.mjs.map +7 -0
  87. package/dist/lib/node-esm/{settings-TD76LTQS.mjs → settings-WKUWY3P6.mjs} +4 -4
  88. package/dist/lib/node-esm/{spaces-ready-FJMGPAVV.mjs → spaces-ready-PQLLIO5W.mjs} +17 -15
  89. package/dist/lib/node-esm/spaces-ready-PQLLIO5W.mjs.map +7 -0
  90. package/dist/lib/node-esm/{state-XQNDCN37.mjs → state-4M5A6OSB.mjs} +4 -4
  91. package/dist/lib/node-esm/state-4M5A6OSB.mjs.map +7 -0
  92. package/dist/lib/node-esm/types/index.mjs +2 -2
  93. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/capabilities.d.ts +9 -3
  97. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  106. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  107. package/dist/types/src/components/CollectionMain.d.ts +1 -0
  108. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  109. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -2
  110. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +1 -1
  114. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  115. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  116. package/dist/types/src/components/MembersContainer.stories.d.ts +1 -1
  117. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  119. package/dist/types/src/components/ObjectDetailsPanel.d.ts +9 -0
  120. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +1 -0
  121. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  122. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  123. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -1
  124. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  125. package/dist/types/src/components/RecordMain.d.ts +7 -0
  126. package/dist/types/src/components/RecordMain.d.ts.map +1 -0
  127. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  128. package/dist/types/src/components/SpacePresence.stories.d.ts +1 -1
  129. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  131. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1 -1
  132. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
  134. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  135. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1 -1
  136. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  137. package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
  138. package/dist/types/src/components/ViewEditor.d.ts +8 -0
  139. package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
  140. package/dist/types/src/components/index.d.ts +11 -1
  141. package/dist/types/src/components/index.d.ts.map +1 -1
  142. package/dist/types/src/events.d.ts +1 -0
  143. package/dist/types/src/events.d.ts.map +1 -1
  144. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  145. package/dist/types/src/translations.d.ts +212 -410
  146. package/dist/types/src/translations.d.ts.map +1 -1
  147. package/dist/types/src/types/types.d.ts +82 -2
  148. package/dist/types/src/types/types.d.ts.map +1 -1
  149. package/dist/types/src/util.d.ts +31 -5
  150. package/dist/types/src/util.d.ts.map +1 -1
  151. package/dist/types/tsconfig.tsbuildinfo +1 -1
  152. package/package.json +52 -52
  153. package/src/SpacePlugin.ts +91 -8
  154. package/src/capabilities/app-graph-builder.ts +211 -14
  155. package/src/capabilities/app-graph-serializer.ts +6 -6
  156. package/src/capabilities/capabilities.ts +8 -3
  157. package/src/capabilities/identity-created.ts +3 -5
  158. package/src/capabilities/intent-resolver.ts +123 -13
  159. package/src/capabilities/react-root.tsx +2 -1
  160. package/src/capabilities/react-surface.tsx +69 -18
  161. package/src/capabilities/schema-defs.ts +3 -2
  162. package/src/capabilities/schema-tool.test.ts +1 -1
  163. package/src/capabilities/schema-tools.ts +11 -11
  164. package/src/capabilities/spaces-ready.ts +10 -7
  165. package/src/capabilities/state.ts +3 -2
  166. package/src/components/AwaitingObject.tsx +5 -7
  167. package/src/components/CollectionMain.tsx +2 -0
  168. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +5 -4
  169. package/src/components/CreateDialog/CreateObjectDialog.tsx +32 -27
  170. package/src/components/CreateDialog/CreateObjectPanel.tsx +3 -3
  171. package/src/components/CreateDialog/CreateSpaceDialog.tsx +1 -1
  172. package/src/components/JoinDialog.tsx +1 -1
  173. package/src/components/MembersContainer.stories.tsx +6 -5
  174. package/src/components/MembersContainer.tsx +8 -7
  175. package/src/components/MenuFooter.tsx +2 -3
  176. package/src/components/ObjectDetailsPanel.tsx +77 -0
  177. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +2 -1
  178. package/src/components/PersistenceStatus.tsx +5 -6
  179. package/src/components/PopoverRenameObject.tsx +7 -13
  180. package/src/components/PopoverRenameSpace.tsx +1 -1
  181. package/src/components/RecordMain.tsx +43 -0
  182. package/src/components/SchemaContainer.tsx +2 -2
  183. package/src/components/SpacePluginSettings.tsx +2 -2
  184. package/src/components/SpacePresence.stories.tsx +4 -3
  185. package/src/components/SpacePresence.tsx +7 -7
  186. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +3 -2
  187. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +6 -6
  188. package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -15
  189. package/src/components/SyncStatus/SyncStatus.tsx +4 -3
  190. package/src/components/SyncStatus/save-tracker.ts +3 -3
  191. package/src/components/SyncStatus/status.ts +4 -4
  192. package/src/components/ViewEditor.tsx +64 -0
  193. package/src/components/index.ts +7 -1
  194. package/src/events.ts +2 -1
  195. package/src/hooks/useActiveSpace.ts +1 -1
  196. package/src/hooks/useInputSurfaceLookup.tsx +1 -1
  197. package/src/translations.ts +75 -11
  198. package/src/types/types.ts +56 -3
  199. package/src/util.tsx +127 -26
  200. package/dist/lib/browser/app-graph-builder-M2RH72VL.mjs.map +0 -7
  201. package/dist/lib/browser/app-graph-serializer-F7ISRRBV.mjs.map +0 -7
  202. package/dist/lib/browser/chunk-4ZKSFDXM.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-BXNL6SDI.mjs.map +0 -7
  204. package/dist/lib/browser/chunk-NFUKCRGE.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-TW7O2EPP.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-V24VASAJ.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-YMCZR6EZ.mjs.map +0 -7
  208. package/dist/lib/browser/identity-created-PI7TKANR.mjs.map +0 -7
  209. package/dist/lib/browser/intent-resolver-RWU6ZE4H.mjs.map +0 -7
  210. package/dist/lib/browser/react-surface-W56UD53I.mjs.map +0 -7
  211. package/dist/lib/browser/schema-defs-WREJNMIC.mjs.map +0 -7
  212. package/dist/lib/browser/schema-tools-ILTVSSS3.mjs.map +0 -7
  213. package/dist/lib/browser/spaces-ready-3PDRDHPC.mjs.map +0 -7
  214. package/dist/lib/browser/state-HRZ4VRXU.mjs.map +0 -7
  215. package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs +0 -364
  216. package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs.map +0 -7
  217. package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs +0 -89
  218. package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs.map +0 -7
  219. package/dist/lib/node/chunk-3X4EA4XL.cjs +0 -37
  220. package/dist/lib/node/chunk-3X4EA4XL.cjs.map +0 -7
  221. package/dist/lib/node/chunk-5WLAXYE3.cjs +0 -125
  222. package/dist/lib/node/chunk-5WLAXYE3.cjs.map +0 -7
  223. package/dist/lib/node/chunk-6P2DB4QQ.cjs +0 -36
  224. package/dist/lib/node/chunk-6P2DB4QQ.cjs.map +0 -7
  225. package/dist/lib/node/chunk-DOC5XEZ4.cjs +0 -184
  226. package/dist/lib/node/chunk-DOC5XEZ4.cjs.map +0 -7
  227. package/dist/lib/node/chunk-NCHF433F.cjs +0 -1921
  228. package/dist/lib/node/chunk-NCHF433F.cjs.map +0 -7
  229. package/dist/lib/node/chunk-NL5Y4EDX.cjs +0 -38
  230. package/dist/lib/node/chunk-NL5Y4EDX.cjs.map +0 -7
  231. package/dist/lib/node/chunk-ULJZPATP.cjs +0 -312
  232. package/dist/lib/node/chunk-ULJZPATP.cjs.map +0 -7
  233. package/dist/lib/node/chunk-XHWVT7LW.cjs +0 -572
  234. package/dist/lib/node/chunk-XHWVT7LW.cjs.map +0 -7
  235. package/dist/lib/node/identity-created-FF4WZ2WY.cjs +0 -42
  236. package/dist/lib/node/identity-created-FF4WZ2WY.cjs.map +0 -7
  237. package/dist/lib/node/index.cjs +0 -278
  238. package/dist/lib/node/index.cjs.map +0 -7
  239. package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs +0 -609
  240. package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs.map +0 -7
  241. package/dist/lib/node/meta.json +0 -1
  242. package/dist/lib/node/react-root-RQUU3A45.cjs +0 -51
  243. package/dist/lib/node/react-root-RQUU3A45.cjs.map +0 -7
  244. package/dist/lib/node/react-surface-AZFJLE72.cjs +0 -351
  245. package/dist/lib/node/react-surface-AZFJLE72.cjs.map +0 -7
  246. package/dist/lib/node/schema-defs-OB2X2HBH.cjs +0 -42
  247. package/dist/lib/node/schema-defs-OB2X2HBH.cjs.map +0 -7
  248. package/dist/lib/node/schema-tools-IYREN4IH.cjs +0 -147
  249. package/dist/lib/node/schema-tools-IYREN4IH.cjs.map +0 -7
  250. package/dist/lib/node/settings-P2EQ7VKQ.cjs +0 -38
  251. package/dist/lib/node/settings-P2EQ7VKQ.cjs.map +0 -7
  252. package/dist/lib/node/spaces-ready-DXPOHYV7.cjs +0 -210
  253. package/dist/lib/node/spaces-ready-DXPOHYV7.cjs.map +0 -7
  254. package/dist/lib/node/state-M35DK75Z.cjs +0 -61
  255. package/dist/lib/node/state-M35DK75Z.cjs.map +0 -7
  256. package/dist/lib/node/types/index.cjs +0 -48
  257. package/dist/lib/node/types/index.cjs.map +0 -7
  258. package/dist/lib/node-esm/app-graph-builder-BCHVZ4OM.mjs.map +0 -7
  259. package/dist/lib/node-esm/app-graph-serializer-TXRGGNP2.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-3CP67AYY.mjs.map +0 -7
  261. package/dist/lib/node-esm/chunk-BSLREHIX.mjs.map +0 -7
  262. package/dist/lib/node-esm/chunk-D4QMPPS7.mjs.map +0 -7
  263. package/dist/lib/node-esm/chunk-HO7AIKQS.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-JBQKU4K5.mjs.map +0 -7
  265. package/dist/lib/node-esm/chunk-LA6AVVH6.mjs.map +0 -7
  266. package/dist/lib/node-esm/identity-created-35CTAQWI.mjs.map +0 -7
  267. package/dist/lib/node-esm/intent-resolver-JO6L2VXC.mjs.map +0 -7
  268. package/dist/lib/node-esm/react-surface-CVAPDLEZ.mjs.map +0 -7
  269. package/dist/lib/node-esm/schema-defs-4MEJETVX.mjs.map +0 -7
  270. package/dist/lib/node-esm/schema-tools-SRLCRZ3B.mjs.map +0 -7
  271. package/dist/lib/node-esm/spaces-ready-FJMGPAVV.mjs.map +0 -7
  272. /package/dist/lib/browser/{chunk-PTKYMZWO.mjs.map → chunk-FBCGT5YY.mjs.map} +0 -0
  273. /package/dist/lib/browser/{settings-K54STC5A.mjs.map → settings-FLLBP5KI.mjs.map} +0 -0
  274. /package/dist/lib/node-esm/{chunk-MSWEFAPD.mjs.map → chunk-HWNG4MEU.mjs.map} +0 -0
  275. /package/dist/lib/node-esm/{settings-TD76LTQS.mjs.map → settings-WKUWY3P6.mjs.map} +0 -0
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  AwaitingObject
3
- } from "./chunk-NFUKCRGE.mjs";
4
- import "./chunk-7Y4M7GXO.mjs";
3
+ } from "./chunk-PSIBVBTA.mjs";
4
+ import "./chunk-DYKFFVN6.mjs";
5
5
  import {
6
6
  SpaceCapabilities
7
- } from "./chunk-BXNL6SDI.mjs";
8
- import "./chunk-V24VASAJ.mjs";
9
- import "./chunk-TW7O2EPP.mjs";
7
+ } from "./chunk-Q5EEPP3S.mjs";
8
+ import "./chunk-SMB4DGYO.mjs";
9
+ import "./chunk-3UFG6LQQ.mjs";
10
10
  import {
11
11
  SPACE_PLUGIN
12
- } from "./chunk-PTKYMZWO.mjs";
12
+ } from "./chunk-FBCGT5YY.mjs";
13
13
 
14
- // packages/plugins/plugin-space/src/capabilities/react-root.tsx
14
+ // src/capabilities/react-root.tsx
15
15
  import React from "react";
16
16
  import { Capabilities, contributes, useCapability } from "@dxos/app-framework";
17
17
  var react_root_default = () => contributes(Capabilities.ReactRoot, {
@@ -26,4 +26,4 @@ var react_root_default = () => contributes(Capabilities.ReactRoot, {
26
26
  export {
27
27
  react_root_default as default
28
28
  };
29
- //# sourceMappingURL=react-root-QIKHSNT2.mjs.map
29
+ //# sourceMappingURL=react-root-RQGTZ2ZO.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/react-root.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { AwaitingObject } from '../components';\nimport { SPACE_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactRoot, {\n id: SPACE_PLUGIN,\n root: () => {\n const state = useCapability(SpaceCapabilities.State);\n return state.awaiting ? <AwaitingObject id={state.awaiting} /> : null;\n },\n });\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AAMzD,IAAA,qBAAe,MACbC,YAAYC,aAAaC,WAAW;EAClCC,IAAIC;EACJC,MAAM,MAAA;AACJ,UAAMC,QAAQC,cAAcC,kBAAkBC,KAAK;AACnD,WAAOH,MAAMI,WAAW,sBAAA,cAACC,gBAAAA;MAAeR,IAAIG,MAAMI;SAAe;EACnE;AACF,CAAA;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\n\nimport { AwaitingObject } from '../components';\nimport { SPACE_PLUGIN } from '../meta';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default () =>\n contributes(Capabilities.ReactRoot, {\n id: SPACE_PLUGIN,\n root: () => {\n const state = useCapability(SpaceCapabilities.State);\n return state.awaiting ? <AwaitingObject id={state.awaiting} /> : null;\n },\n });\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AAOzD,IAAA,qBAAe,MACbC,YAAYC,aAAaC,WAAW;EAClCC,IAAIC;EACJC,MAAM,MAAA;AACJ,UAAMC,QAAQC,cAAcC,kBAAkBC,KAAK;AACnD,WAAOH,MAAMI,WAAW,sBAAA,cAACC,gBAAAA;MAAeR,IAAIG,MAAMI;SAAe;EACnE;AACF,CAAA;",
6
6
  "names": ["React", "Capabilities", "contributes", "useCapability", "contributes", "Capabilities", "ReactRoot", "id", "SPACE_PLUGIN", "root", "state", "useCapability", "SpaceCapabilities", "State", "awaiting", "AwaitingObject"]
7
7
  }
@@ -10,47 +10,50 @@ import {
10
10
  JoinDialog,
11
11
  MembersContainer,
12
12
  MenuFooter,
13
+ ObjectDetailsPanel,
13
14
  ObjectSettingsContainer,
14
15
  POPOVER_RENAME_OBJECT,
15
16
  POPOVER_RENAME_SPACE,
16
17
  PopoverRenameObject,
17
18
  PopoverRenameSpace,
19
+ RecordMain,
18
20
  SchemaContainer,
19
21
  SmallPresenceLive,
20
22
  SpacePluginSettings,
21
23
  SpacePresence,
22
24
  SpaceSettingsContainer,
23
- SyncStatus
24
- } from "./chunk-NFUKCRGE.mjs";
25
- import "./chunk-7Y4M7GXO.mjs";
25
+ SyncStatus,
26
+ ViewEditor
27
+ } from "./chunk-PSIBVBTA.mjs";
28
+ import "./chunk-DYKFFVN6.mjs";
26
29
  import {
27
30
  SpaceCapabilities
28
- } from "./chunk-BXNL6SDI.mjs";
29
- import "./chunk-V24VASAJ.mjs";
31
+ } from "./chunk-Q5EEPP3S.mjs";
32
+ import "./chunk-SMB4DGYO.mjs";
30
33
  import {
31
34
  HueAnnotationId,
32
35
  IconAnnotationId
33
- } from "./chunk-TW7O2EPP.mjs";
36
+ } from "./chunk-3UFG6LQQ.mjs";
34
37
  import {
35
38
  SPACE_PLUGIN
36
- } from "./chunk-PTKYMZWO.mjs";
39
+ } from "./chunk-FBCGT5YY.mjs";
37
40
 
38
- // packages/plugins/plugin-space/src/capabilities/react-surface.tsx
41
+ // src/capabilities/react-surface.tsx
39
42
  import React, { useCallback, useMemo } from "react";
40
- import { Capabilities, contributes, createSurface, Surface, useCapabilities, useCapability, useLayout } from "@dxos/app-framework";
43
+ import { Capabilities, Surface, contributes, createSurface, useCapabilities, useCapability, useLayout } from "@dxos/app-framework";
41
44
  import { Obj, Type } from "@dxos/echo";
42
45
  import { findAnnotation } from "@dxos/effect";
43
46
  import { SettingsStore } from "@dxos/local-storage";
44
47
  import { ClientCapabilities } from "@dxos/plugin-client";
45
48
  import { useClient } from "@dxos/react-client";
46
- import { getSpace, isLiveObject, isSpace, parseId, SpaceState, useSpace } from "@dxos/react-client/echo";
49
+ import { SpaceState, fullyQualifiedId, getSpace, isLiveObject, isSpace, parseId, useSpace } from "@dxos/react-client/echo";
47
50
  import { Input, useTranslation } from "@dxos/react-ui";
48
51
  import { SelectInput } from "@dxos/react-ui-form";
49
52
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
50
53
  import { DataType, TypenameAnnotationId } from "@dxos/schema";
51
54
  var OMIT = [
52
- Type.getTypename(DataType.Collection),
53
- Type.getTypename(DataType.QueryCollection)
55
+ DataType.Collection.typename,
56
+ DataType.QueryCollection.typename
54
57
  ];
55
58
  var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilities.ReactSurface, [
56
59
  createSurface({
@@ -63,12 +66,21 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
63
66
  component: ({ data, role, ...rest }) => /* @__PURE__ */ React.createElement(Surface, {
64
67
  data: {
65
68
  id: data.subject.id,
66
- subject: data.subject.properties[Type.getTypename(DataType.Collection)]?.target
69
+ subject: data.subject.properties[DataType.Collection.typename]?.target
67
70
  },
68
71
  role,
69
72
  ...rest
70
73
  })
71
74
  }),
75
+ createSurface({
76
+ id: `${SPACE_PLUGIN}/record-article`,
77
+ role: "article",
78
+ position: "fallback",
79
+ filter: (data) => Obj.isObject(data.subject),
80
+ component: ({ data }) => /* @__PURE__ */ React.createElement(RecordMain, {
81
+ record: data.subject
82
+ })
83
+ }),
72
84
  createSurface({
73
85
  id: `${SPACE_PLUGIN}/collection-fallback`,
74
86
  role: "article",
@@ -145,6 +157,16 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
145
157
  });
146
158
  }
147
159
  }),
160
+ createSurface({
161
+ id: `${SPACE_PLUGIN}/selected-objects`,
162
+ role: "article",
163
+ filter: (data) => Obj.instanceOf(DataType.View, data.companionTo) && data.subject === "selected-objects",
164
+ component: ({ data }) => /* @__PURE__ */ React.createElement(ObjectDetailsPanel, {
165
+ key: fullyQualifiedId(data.companionTo),
166
+ objectId: fullyQualifiedId(data.companionTo),
167
+ view: data.companionTo
168
+ })
169
+ }),
148
170
  createSurface({
149
171
  id: JOIN_DIALOG,
150
172
  role: "dialog",
@@ -229,21 +251,23 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
229
251
  }
230
252
  const annotation = findAnnotation(schema.ast, TypenameAnnotationId);
231
253
  const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
232
- const whitelistedTypenames = useMemo(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => type.typename))), [
254
+ const whitelistedTypenames = useMemo(() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => Type.getTypename(type)))), [
233
255
  schemaWhitelists
234
256
  ]);
235
257
  const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
236
- const objectFormTypenames = useMemo(() => new Set(objectForms.map((form) => Type.getTypename(form.objectSchema)).filter((typename) => !OMIT.includes(typename))), [
258
+ const objectFormTypenames = useMemo(() => new Set(objectForms.map((form) => Type.getTypename(form.objectSchema)).filter((typename) => !OMIT.includes(typename) && !typename.endsWith("View"))), [
237
259
  objectForms
238
260
  ]);
239
261
  const fixed = client.graph.schemaRegistry.schemas.filter((schema2) => {
240
262
  const limitedStatic = annotation.includes("limited-static") && whitelistedTypenames.has(Type.getTypename(schema2));
263
+ const unusedStatic = annotation.includes("unused-static") && whitelistedTypenames.has(Type.getTypename(schema2)) && !space.properties.staticRecords?.includes(Type.getTypename(schema2));
264
+ const usedStatic = annotation.includes("used-static") && whitelistedTypenames.has(Type.getTypename(schema2)) && space.properties.staticRecords?.includes(Type.getTypename(schema2));
241
265
  const objectForm = annotation.includes("object-form") && objectFormTypenames.has(Type.getTypename(schema2));
242
- return annotation.includes("static") || limitedStatic || objectForm;
266
+ return annotation.includes("static") || limitedStatic || unusedStatic || usedStatic || objectForm;
243
267
  });
244
268
  const dynamic = space?.db.schemaRegistry.query().runSync();
245
269
  const typenames = Array.from(/* @__PURE__ */ new Set([
246
- ...annotation.includes("limited-static") || annotation.includes("static") || annotation.includes("object-form") ? fixed.map((schema2) => Type.getTypename(schema2)) : [],
270
+ ...annotation.includes("limited-static") || annotation.includes("unused-static") || annotation.includes("used-static") || annotation.includes("static") || annotation.includes("object-form") ? fixed.map((schema2) => Type.getTypename(schema2)) : [],
247
271
  ...annotation.includes("dynamic") ? dynamic.map((schema2) => schema2.typename) : []
248
272
  ])).sort();
249
273
  const options = useMemo(() => typenames.map((typename) => ({
@@ -252,7 +276,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
252
276
  ns: typename,
253
277
  defaultValue: typename
254
278
  })
255
- })), [
279
+ })).toSorted((a, b) => a.label.localeCompare(b.label)), [
256
280
  t,
257
281
  typenames
258
282
  ]);
@@ -262,9 +286,17 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
262
286
  });
263
287
  }
264
288
  }),
289
+ createSurface({
290
+ id: `${SPACE_PLUGIN}/object-settings`,
291
+ role: "object-settings",
292
+ filter: (data) => Obj.instanceOf(DataType.View, data.subject),
293
+ component: ({ data }) => /* @__PURE__ */ React.createElement(ViewEditor, {
294
+ view: data.subject
295
+ })
296
+ }),
265
297
  createSurface({
266
298
  id: POPOVER_RENAME_SPACE,
267
- role: "popover",
299
+ role: "card--popover",
268
300
  filter: (data) => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),
269
301
  component: ({ data }) => /* @__PURE__ */ React.createElement(PopoverRenameSpace, {
270
302
  space: data.props
@@ -272,7 +304,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
272
304
  }),
273
305
  createSurface({
274
306
  id: POPOVER_RENAME_OBJECT,
275
- role: "popover",
307
+ role: "card--popover",
276
308
  filter: (data) => data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),
277
309
  component: ({ data }) => /* @__PURE__ */ React.createElement(PopoverRenameObject, {
278
310
  object: data.props
@@ -327,7 +359,7 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
327
359
  filter: (data) => isSpace(data.subject) || Obj.isObject(data.subject),
328
360
  component: ({ data }) => {
329
361
  const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);
330
- const object = isSpace(data.subject) ? data.subject.state.get() === SpaceState.SPACE_READY ? space?.properties[Type.getTypename(DataType.Collection)]?.target : void 0 : data.subject;
362
+ const object = isSpace(data.subject) ? data.subject.state.get() === SpaceState.SPACE_READY ? space?.properties[DataType.Collection.typename]?.target : void 0 : data.subject;
331
363
  return object ? /* @__PURE__ */ React.createElement(SpacePresence, {
332
364
  object
333
365
  }) : null;
@@ -350,4 +382,4 @@ var react_surface_default = ({ createInvitationUrl }) => contributes(Capabilitie
350
382
  export {
351
383
  react_surface_default as default
352
384
  };
353
- //# sourceMappingURL=react-surface-W56UD53I.mjs.map
385
+ //# sourceMappingURL=react-surface-V3ARS2BP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema } from 'effect';\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n Capabilities,\n Surface,\n contributes,\n createSurface,\n useCapabilities,\n useCapability,\n useLayout,\n} from '@dxos/app-framework';\nimport { Obj, Type } from '@dxos/echo';\nimport { findAnnotation } from '@dxos/effect';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { useClient } from '@dxos/react-client';\nimport {\n type Space,\n SpaceState,\n fullyQualifiedId,\n getSpace,\n isLiveObject,\n isSpace,\n parseId,\n useSpace,\n} from '@dxos/react-client/echo';\nimport { Input, useTranslation } from '@dxos/react-ui';\nimport { type InputProps, SelectInput } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\nimport { DataType, type TypenameAnnotation, TypenameAnnotationId } from '@dxos/schema';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CollectionMain,\n CollectionSection,\n CreateObjectDialog,\n type CreateObjectDialogProps,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MembersContainer,\n MenuFooter,\n ObjectDetailsPanel,\n ObjectSettingsContainer,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n RecordMain,\n SchemaContainer,\n SmallPresenceLive,\n SpacePluginSettings,\n SpacePresence,\n SpaceSettingsContainer,\n SyncStatus,\n ViewEditor,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { HueAnnotationId, IconAnnotationId, type SpaceSettingsProps } from '../types';\n\nimport { SpaceCapabilities } from './capabilities';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nconst OMIT = [DataType.Collection.typename, DataType.QueryCollection.typename];\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{\n id: data.subject.id,\n subject: data.subject.properties[DataType.Collection.typename]?.target,\n }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/record-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: Obj.Any } => Obj.isObject(data.subject),\n component: ({ data }) => <RecordMain record={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: DataType.Collection } => Obj.instanceOf(DataType.Collection, data.subject),\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/companion/object-settings`,\n role: 'article',\n filter: (data): data is { companionTo: Obj.Any } => Obj.isObject(data.companionTo) && data.subject === 'settings',\n component: ({ data, role }) => <ObjectSettingsContainer object={data.companionTo} role={role} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-properties`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/properties`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SpaceSettingsContainer space={space} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-members`,\n role: 'article',\n position: 'hoist',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/members`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <MembersContainer space={space} createInvitationUrl={createInvitationUrl} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/space-settings-schema`,\n role: 'article',\n filter: (data): data is { subject: string } => data.subject === `${SPACE_PLUGIN}/schema`,\n component: () => {\n const layout = useLayout();\n const { spaceId } = parseId(layout.workspace);\n const space = useSpace(spaceId);\n if (!space || !spaceId) {\n return null;\n }\n\n return <SchemaContainer space={space} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/selected-objects`,\n role: 'article',\n filter: (data): data is { companionTo: DataType.View; subject: 'selected-objects' } =>\n Obj.instanceOf(DataType.View, data.companionTo) && data.subject === 'selected-objects',\n component: ({ data }) => (\n <ObjectDetailsPanel\n key={fullyQualifiedId(data.companionTo)}\n objectId={fullyQualifiedId(data.companionTo)}\n view={data.companionTo}\n />\n ),\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: CreateObjectDialogProps } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => <CreateObjectDialog {...data.props} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/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, disabled, type, getValue, onValueChange } = inputProps as any as InputProps;\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={disabled} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/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, disabled, type, getValue, onValueChange } = inputProps as any as InputProps;\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 disabled={disabled} value={getValue() ?? ''} onChange={handleChange} onReset={handleReset} />\n </Input.Root>\n );\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/typename-form-input`,\n role: 'form-input',\n filter: (\n data,\n ): data is { prop: string; schema: Schema.Schema<any>; target: Space | DataType.Collection | undefined } => {\n if (data.prop !== 'typename') {\n return false;\n }\n\n const annotation = findAnnotation((data.schema as Schema.Schema.All).ast, TypenameAnnotationId);\n return !!annotation;\n },\n component: ({ data: { schema, target }, ...inputProps }) => {\n const { t } = useTranslation();\n const client = useClient();\n const props = inputProps as any as InputProps;\n const space = isSpace(target) ? target : getSpace(target);\n if (!space) {\n return null;\n }\n\n const annotation = findAnnotation<TypenameAnnotation[]>(schema.ast, TypenameAnnotationId)!;\n\n const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);\n const whitelistedTypenames = useMemo(\n () => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => Type.getTypename(type)))),\n [schemaWhitelists],\n );\n\n const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);\n const objectFormTypenames = useMemo(\n () =>\n new Set(\n objectForms\n .map((form) => Type.getTypename(form.objectSchema))\n // TODO(wittjosiah): Remove.\n .filter((typename) => !OMIT.includes(typename) && !typename.endsWith('View')),\n ),\n [objectForms],\n );\n\n const fixed = client.graph.schemaRegistry.schemas.filter((schema) => {\n const limitedStatic =\n annotation.includes('limited-static') && whitelistedTypenames.has(Type.getTypename(schema));\n const unusedStatic =\n annotation.includes('unused-static') &&\n whitelistedTypenames.has(Type.getTypename(schema)) &&\n !space.properties.staticRecords?.includes(Type.getTypename(schema));\n const usedStatic =\n annotation.includes('used-static') &&\n whitelistedTypenames.has(Type.getTypename(schema)) &&\n space.properties.staticRecords?.includes(Type.getTypename(schema));\n const objectForm = annotation.includes('object-form') && objectFormTypenames.has(Type.getTypename(schema));\n return annotation.includes('static') || limitedStatic || unusedStatic || usedStatic || objectForm;\n });\n const dynamic = space?.db.schemaRegistry.query().runSync();\n const typenames = Array.from(\n new Set<string>([\n ...(annotation.includes('limited-static') ||\n annotation.includes('unused-static') ||\n annotation.includes('used-static') ||\n annotation.includes('static') ||\n annotation.includes('object-form')\n ? fixed.map((schema) => Type.getTypename(schema))\n : []),\n ...(annotation.includes('dynamic') ? dynamic.map((schema) => schema.typename) : []),\n ]),\n ).sort();\n\n const options = useMemo(\n () =>\n typenames\n .map((typename) => ({\n value: typename,\n label: t('typename label', { ns: typename, defaultValue: typename }),\n }))\n .toSorted((a, b) => a.label.localeCompare(b.label)),\n [t, typenames],\n );\n\n return <SelectInput {...props} options={options} />;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings`,\n role: 'object-settings',\n filter: (data): data is { subject: DataType.View } => Obj.instanceOf(DataType.View, data.subject),\n component: ({ data }) => <ViewEditor view={data.subject} />,\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'card--popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'card--popover',\n filter: (data): data is { props: Obj.Any } =>\n data.component === POPOVER_RENAME_OBJECT && isLiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: Obj.Any } => Obj.isObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: Obj.Any; open?: boolean } =>\n typeof data.id === 'string' && Obj.isObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n // TODO(wittjosiah): Broken?\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | Obj.Any } => 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[DataType.Collection.typename]?.target as DataType.Collection)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: DataType.Collection } => Obj.instanceOf(DataType.Collection, data.subject),\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "Capabilities", "Surface", "contributes", "createSurface", "useCapabilities", "useCapability", "useLayout", "Obj", "Type", "findAnnotation", "SettingsStore", "ClientCapabilities", "useClient", "SpaceState", "fullyQualifiedId", "getSpace", "isLiveObject", "isSpace", "parseId", "useSpace", "Input", "useTranslation", "SelectInput", "HuePicker", "IconPicker", "DataType", "TypenameAnnotationId", "OMIT", "DataType", "Collection", "typename", "QueryCollection", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "Surface", "properties", "target", "position", "Obj", "isObject", "RecordMain", "record", "instanceOf", "CollectionMain", "collection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "companionTo", "ObjectSettingsContainer", "object", "layout", "useLayout", "spaceId", "parseId", "workspace", "space", "useSpace", "SpaceSettingsContainer", "MembersContainer", "SchemaContainer", "View", "ObjectDetailsPanel", "key", "fullyQualifiedId", "objectId", "view", "JOIN_DIALOG", "JoinDialog", "props", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "CreateObjectDialog", "annotation", "findAnnotation", "schema", "ast", "HueAnnotationId", "_", "inputProps", "label", "disabled", "type", "getValue", "onValueChange", "handleChange", "useCallback", "nextHue", "handleReset", "undefined", "Input", "Root", "Label", "HuePicker", "onChange", "onReset", "IconAnnotationId", "nextIcon", "IconPicker", "prop", "TypenameAnnotationId", "t", "useTranslation", "client", "useClient", "getSpace", "schemaWhitelists", "useCapabilities", "ClientCapabilities", "SchemaWhiteList", "whitelistedTypenames", "useMemo", "Set", "flatMap", "typeArray", "map", "Type", "getTypename", "objectForms", "SpaceCapabilities", "ObjectForm", "objectFormTypenames", "form", "objectSchema", "includes", "endsWith", "fixed", "graph", "schemaRegistry", "schemas", "limitedStatic", "has", "unusedStatic", "staticRecords", "usedStatic", "objectForm", "dynamic", "db", "query", "runSync", "typenames", "Array", "from", "sort", "options", "ns", "defaultValue", "toSorted", "a", "b", "localeCompare", "SelectInput", "ViewEditor", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isLiveObject", "PopoverRenameObject", "MenuFooter", "useCapability", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "SpacePresence", "CollectionSection", "SyncStatus"]
7
+ }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-BXNL6SDI.mjs";
4
- import "./chunk-PTKYMZWO.mjs";
3
+ } from "./chunk-Q5EEPP3S.mjs";
4
+ import "./chunk-FBCGT5YY.mjs";
5
5
 
6
- // packages/plugins/plugin-space/src/capabilities/schema-defs.ts
6
+ // src/capabilities/schema-defs.ts
7
7
  import { Capabilities, contributes } from "@dxos/app-framework";
8
8
  import { ClientCapabilities } from "@dxos/plugin-client";
9
9
  var schema_defs_default = (context) => {
@@ -23,4 +23,4 @@ var schema_defs_default = (context) => {
23
23
  export {
24
24
  schema_defs_default as default
25
25
  };
26
- //# sourceMappingURL=schema-defs-WREJNMIC.mjs.map
26
+ //# sourceMappingURL=schema-defs-5LBA43X5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/schema-defs.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { type ObjectForm } from '../types';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const registry = context.getCapability(Capabilities.RxRegistry);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // TODO(wittjosiah): Unregister schemas when they are disabled.\n let previous: ObjectForm[] = [];\n const cancel = registry.subscribe(\n context.capabilities(SpaceCapabilities.ObjectForm),\n (_forms) => {\n const forms = Array.from(new Set(_forms));\n // TODO(wittjosiah): Filter out schemas which the client has already registered.\n const newSchemas = forms.filter((form) => !previous.includes(form)).map((form) => form.objectSchema);\n previous = forms;\n client.addTypes(newSchemas);\n },\n { immediate: true },\n );\n\n return contributes(Capabilities.Null, null, () => cancel());\n};\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,cAAkCC,mBAAmB;AAC9D,SAASC,0BAA0B;AAMnC,IAAA,sBAAe,CAACC,YAAAA;AACd,QAAMC,WAAWD,QAAQE,cAAcC,aAAaC,UAAU;AAC9D,QAAMC,SAASL,QAAQE,cAAcI,mBAAmBC,MAAM;AAG9D,MAAIC,WAAyB,CAAA;AAC7B,QAAMC,SAASR,SAASS,UACtBV,QAAQW,aAAaC,kBAAkBC,UAAU,GACjD,CAACC,WAAAA;AACC,UAAMC,QAAQC,MAAMC,KAAK,IAAIC,IAAIJ,MAAAA,CAAAA;AAEjC,UAAMK,aAAaJ,MAAMK,OAAO,CAACC,SAAS,CAACb,SAASc,SAASD,IAAAA,CAAAA,EAAOE,IAAI,CAACF,SAASA,KAAKG,YAAY;AACnGhB,eAAWO;AACXV,WAAOoB,SAASN,UAAAA;EAClB,GACA;IAAEO,WAAW;EAAK,CAAA;AAGpB,SAAOC,YAAYxB,aAAayB,MAAM,MAAM,MAAMnB,OAAAA,CAAAA;AACpD;",
6
+ "names": ["Capabilities", "contributes", "ClientCapabilities", "context", "registry", "getCapability", "Capabilities", "RxRegistry", "client", "ClientCapabilities", "Client", "previous", "cancel", "subscribe", "capabilities", "SpaceCapabilities", "ObjectForm", "_forms", "forms", "Array", "from", "Set", "newSchemas", "filter", "form", "includes", "map", "objectSchema", "addTypes", "immediate", "contributes", "Null"]
7
+ }
@@ -1,13 +1,13 @@
1
- // packages/plugins/plugin-space/src/capabilities/schema-tools.ts
1
+ // src/capabilities/schema-tools.ts
2
2
  import { Schema, SchemaAST } from "effect";
3
- import { createTool, ToolResult } from "@dxos/ai";
3
+ import { ToolResult, createTool } from "@dxos/ai";
4
4
  import { Capabilities, contributes } from "@dxos/app-framework";
5
5
  import { Type } from "@dxos/echo";
6
6
  import { FormatEnum, FormatEnums, SelectOptionSchema } from "@dxos/echo-schema";
7
7
  import { invariant } from "@dxos/invariant";
8
8
  import { hues } from "@dxos/react-ui-theme";
9
9
  import { getSchemaFromPropertyDefinitions } from "@dxos/schema";
10
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/schema-tools.ts";
10
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/schema-tools.ts";
11
11
  var TypeNameSchema = Schema.String.pipe(Schema.pattern(/^\w+\.\w{2,}\/[\w/]+$/i), Schema.annotations({
12
12
  title: "TypeName",
13
13
  description: "Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.",
@@ -36,8 +36,8 @@ var SYSTEM_NAMESPACE = "dxos.org/echo/schema";
36
36
  var schema_tools_default = () => contributes(Capabilities.Tools, [
37
37
  createTool(SYSTEM_NAMESPACE, {
38
38
  name: "list",
39
- description: "List registered schemas in the space.",
40
- caption: "Listing registered schemas...",
39
+ description: "List registered record types in the space.",
40
+ caption: "Listing registered record types...",
41
41
  schema: Schema.Struct({}),
42
42
  execute: async (_input, { extensions }) => {
43
43
  invariant(extensions?.space, "No space.", {
@@ -59,11 +59,11 @@ var schema_tools_default = () => contributes(Capabilities.Tools, [
59
59
  }),
60
60
  createTool(SYSTEM_NAMESPACE, {
61
61
  name: "get",
62
- description: "Get a specific schema by its typename.",
63
- caption: "Getting schema...",
62
+ description: "Get a specific record type by its name.",
63
+ caption: "Getting record...",
64
64
  schema: Schema.Struct({
65
65
  typename: Schema.String.annotations({
66
- description: "The fully qualified typename of the schema."
66
+ description: "The fully qualified name of the record type."
67
67
  })
68
68
  }),
69
69
  execute: async ({ typename }, { extensions }) => {
@@ -88,14 +88,14 @@ var schema_tools_default = () => contributes(Capabilities.Tools, [
88
88
  }),
89
89
  createTool(SYSTEM_NAMESPACE, {
90
90
  name: "create",
91
- description: "Create a new schema with the provided definition.",
92
- caption: "Creating schema...",
91
+ description: "Create a new record type with the provided definition.",
92
+ caption: "Creating record type...",
93
93
  schema: Schema.Struct({
94
94
  typename: TypeNameSchema.annotations({
95
- description: 'The fully qualified schema typename. Must start with a domain, and then one or more path components (e.g., "example.com/type/TypeName").'
95
+ description: 'The fully qualified name of the record type. Must start with a domain, and then one or more path components (e.g., "example.com/type/TypeName").'
96
96
  }),
97
97
  properties: Schema.Array(PropertyDefinitionSchema).pipe(Schema.annotations({
98
- description: "Array of property definitions for the schema."
98
+ description: "Array of property definitions for the record."
99
99
  }), Schema.mutable)
100
100
  }),
101
101
  execute: async ({ typename, properties }, { extensions }) => {
@@ -121,4 +121,4 @@ export {
121
121
  TypeNameSchema,
122
122
  schema_tools_default as default
123
123
  };
124
- //# sourceMappingURL=schema-tools-ILTVSSS3.mjs.map
124
+ //# sourceMappingURL=schema-tools-LPL35WOJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/schema-tools.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema, SchemaAST } from 'effect';\n\nimport { ToolResult, createTool } from '@dxos/ai';\nimport { Capabilities, type PromiseIntentDispatcher, contributes } from '@dxos/app-framework';\nimport { type Space } from '@dxos/client/echo';\nimport { Type } from '@dxos/echo';\nimport { FormatEnum, FormatEnums, SelectOptionSchema } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { hues } from '@dxos/react-ui-theme';\nimport { getSchemaFromPropertyDefinitions } from '@dxos/schema';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n space?: Space;\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\n// TODO(ZaymonFC): Move this somewhere common.\nexport const TypeNameSchema = Schema.String.pipe(\n Schema.pattern(/^\\w+\\.\\w{2,}\\/[\\w/]+$/i),\n Schema.annotations({\n title: 'TypeName',\n description:\n 'Domain-style type name path. Dashes are not allowed. Use camel case for the final component of the type name.',\n [SchemaAST.ExamplesAnnotationId]: ['example.com/type/Document', 'example.com/type/FlightList'],\n }),\n);\n\nconst formatDescription = `The format of the property. Additional information:\n ${FormatEnum.GeoPoint}: ${JSON.stringify(Type.toJsonSchema(Type.Format.GeoPoint))}\n This tuple is GeoJSON. You must specify \\`${FormatEnum.GeoPoint}\\` as [Longitude, Latitude]`;\n\n// TODO(ZaymonFC): All properties are default optional, but maybe we should allow for required properties.\nconst PropertyDefinitionSchema = Schema.Struct({\n name: Schema.String.annotations({ description: 'The name of the property.' }),\n format: Schema.Union(...FormatEnums.map((format) => Schema.Literal(format))).annotations({\n description: formatDescription,\n }),\n config: Schema.optional(\n Schema.Struct({\n options: Schema.optional(\n Schema.Array(SelectOptionSchema)\n .annotations({\n description: `Options for SingleSelect/MultiSelect formats. Available colors: ${hues.join(', ')}`,\n })\n .pipe(Schema.mutable),\n ),\n }),\n ),\n}).pipe(Schema.mutable);\n\nconst SYSTEM_NAMESPACE = 'dxos.org/echo/schema';\n\nexport default () =>\n contributes(Capabilities.Tools, [\n createTool(SYSTEM_NAMESPACE, {\n name: 'list',\n description: 'List registered record types in the space.',\n caption: 'Listing registered record types...',\n schema: Schema.Struct({}),\n execute: async (_input, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schemas = await space.db.schemaRegistry.query({}).run();\n return ToolResult.Success(\n schemas.map((schema) => ({\n typename: schema.typename,\n version: schema.version,\n })),\n );\n },\n }),\n createTool(SYSTEM_NAMESPACE, {\n name: 'get',\n description: 'Get a specific record type by its name.',\n caption: 'Getting record...',\n schema: Schema.Struct({\n typename: Schema.String.annotations({\n description: 'The fully qualified name of the record type.',\n }),\n }),\n execute: async ({ typename }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();\n if (!schema) {\n return ToolResult.Error(`Schema not found: ${typename}`);\n }\n\n return ToolResult.Success(schema);\n },\n }),\n createTool(SYSTEM_NAMESPACE, {\n name: 'create',\n description: 'Create a new record type with the provided definition.',\n caption: 'Creating record type...',\n schema: Schema.Struct({\n typename: TypeNameSchema.annotations({\n description:\n 'The fully qualified name of the record type. Must start with a domain, and then one or more path components (e.g., \"example.com/type/TypeName\").',\n }),\n properties: Schema.Array(PropertyDefinitionSchema).pipe(\n Schema.annotations({ description: 'Array of property definitions for the record.' }),\n Schema.mutable,\n ),\n }),\n execute: async ({ typename, properties }, { extensions }) => {\n invariant(extensions?.space, 'No space.');\n const space = extensions.space;\n\n const schema = getSchemaFromPropertyDefinitions(typename, properties);\n const [registeredSchema] = await space.db.schemaRegistry.register([schema]);\n\n return ToolResult.Success(registeredSchema);\n },\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "SchemaAST", "ToolResult", "createTool", "Capabilities", "contributes", "Type", "FormatEnum", "FormatEnums", "SelectOptionSchema", "invariant", "hues", "getSchemaFromPropertyDefinitions", "TypeNameSchema", "String", "pipe", "pattern", "annotations", "title", "description", "ExamplesAnnotationId", "formatDescription", "GeoPoint", "JSON", "stringify", "toJsonSchema", "Format", "PropertyDefinitionSchema", "Struct", "name", "format", "Union", "map", "Literal", "config", "optional", "options", "Array", "join", "mutable", "SYSTEM_NAMESPACE", "Tools", "caption", "schema", "execute", "_input", "extensions", "space", "schemas", "db", "schemaRegistry", "query", "run", "Success", "typename", "version", "firstOrUndefined", "Error", "properties", "registeredSchema", "register"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  SpaceSettingsSchema
3
- } from "./chunk-TW7O2EPP.mjs";
3
+ } from "./chunk-3UFG6LQQ.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-PTKYMZWO.mjs";
6
+ } from "./chunk-FBCGT5YY.mjs";
7
7
 
8
- // packages/plugins/plugin-space/src/capabilities/settings.ts
8
+ // src/capabilities/settings.ts
9
9
  import { Capabilities, contributes } from "@dxos/app-framework";
10
10
  import { live } from "@dxos/live-object";
11
11
  var settings_default = () => {
@@ -21,4 +21,4 @@ var settings_default = () => {
21
21
  export {
22
22
  settings_default as default
23
23
  };
24
- //# sourceMappingURL=settings-K54STC5A.mjs.map
24
+ //# sourceMappingURL=settings-FLLBP5KI.mjs.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-BXNL6SDI.mjs";
3
+ } from "./chunk-Q5EEPP3S.mjs";
4
4
  import {
5
5
  COMPOSER_SPACE_LOCK,
6
6
  SHARED
7
- } from "./chunk-V24VASAJ.mjs";
7
+ } from "./chunk-SMB4DGYO.mjs";
8
8
  import {
9
9
  SpaceAction
10
- } from "./chunk-TW7O2EPP.mjs";
11
- import "./chunk-PTKYMZWO.mjs";
10
+ } from "./chunk-3UFG6LQQ.mjs";
11
+ import "./chunk-FBCGT5YY.mjs";
12
12
 
13
- // packages/plugins/plugin-space/src/capabilities/spaces-ready.ts
13
+ // src/capabilities/spaces-ready.ts
14
14
  import { Option } from "effect";
15
- import { contributes, createIntent, Capabilities, LayoutAction } from "@dxos/app-framework";
15
+ import { Capabilities, LayoutAction, contributes, createIntent } from "@dxos/app-framework";
16
16
  import { SubscriptionList } from "@dxos/async";
17
17
  import { Filter, Obj, Type } from "@dxos/echo";
18
18
  import { scheduledEffect } from "@dxos/echo-signals/core";
@@ -22,9 +22,9 @@ import { ClientCapabilities } from "@dxos/plugin-client";
22
22
  import { DeckCapabilities } from "@dxos/plugin-deck";
23
23
  import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
24
24
  import { PublicKey } from "@dxos/react-client";
25
- import { FQ_ID_LENGTH, parseFullyQualifiedId, SpaceState } from "@dxos/react-client/echo";
25
+ import { FQ_ID_LENGTH, SpaceState, parseFullyQualifiedId } from "@dxos/react-client/echo";
26
26
  import { ComplexMap, reduceGroupBy } from "@dxos/util";
27
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/capabilities/spaces-ready.ts";
27
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/spaces-ready.ts";
28
28
  var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
29
29
  var WAIT_FOR_OBJECT_TIMEOUT = 5e3;
30
30
  var spaces_ready_default = async (context) => {
@@ -63,13 +63,15 @@ var spaces_ready_default = async (context) => {
63
63
  if (active.length !== 1) {
64
64
  return;
65
65
  }
66
- const node = graph.getNode(active[0]).pipe(Option.getOrNull);
67
- if (!node && active[0].length === FQ_ID_LENGTH) {
66
+ const id = active[0];
67
+ const node = graph.getNode(id).pipe(Option.getOrNull);
68
+ if (!node && id.length === FQ_ID_LENGTH) {
69
+ void graph.initialize(id);
68
70
  const timeout = setTimeout(async () => {
69
- const node2 = graph.getNode(active[0]).pipe(Option.getOrNull);
71
+ const node2 = graph.getNode(id).pipe(Option.getOrNull);
70
72
  if (!node2) {
71
73
  await dispatch(createIntent(SpaceAction.WaitForObject, {
72
- id: active[0]
74
+ id
73
75
  }));
74
76
  }
75
77
  }, WAIT_FOR_OBJECT_TIMEOUT);
@@ -132,7 +134,7 @@ var spaces_ready_default = async (context) => {
132
134
  err: err.message
133
135
  }, {
134
136
  F: __dxlog_file,
135
- L: 156,
137
+ L: 159,
136
138
  S: void 0,
137
139
  C: (f, a) => f(...a)
138
140
  });
@@ -183,7 +185,7 @@ var spaces_ready_default = async (context) => {
183
185
  } catch (err) {
184
186
  log.catch(err, void 0, {
185
187
  F: __dxlog_file,
186
- L: 224,
188
+ L: 227,
187
189
  S: void 0,
188
190
  C: (f, a) => f(...a)
189
191
  });
@@ -196,4 +198,4 @@ var spaces_ready_default = async (context) => {
196
198
  export {
197
199
  spaces_ready_default as default
198
200
  };
199
- //# sourceMappingURL=spaces-ready-3PDRDHPC.mjs.map
201
+ //# sourceMappingURL=spaces-ready-FXEP6XEW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/spaces-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Option } from 'effect';\n\nimport { Capabilities, LayoutAction, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { SubscriptionList } from '@dxos/async';\nimport { Filter, Obj, Type } from '@dxos/echo';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { FQ_ID_LENGTH, SpaceState, parseFullyQualifiedId } from '@dxos/react-client/echo';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../util';\n\nimport { SpaceCapabilities } from './capabilities';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 5_000;\n\nexport default async (context: PluginContext) => {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const layout = context.getCapability(Capabilities.Layout);\n const deck = context.getCapabilities(DeckCapabilities.DeckState)[0];\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const state = context.getCapability(SpaceCapabilities.MutableState);\n const client = context.getCapability(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n if (deck?.activeDeck === 'default') {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: defaultSpace.id }));\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n defaultSpace.properties[COMPOSER_SPACE_LOCK] = true;\n }\n\n const {\n objects: [spacesOrder],\n } = await defaultSpace.db.query(Filter.type(Type.Expando, { key: SHARED })).run();\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(Obj.make(Type.Expando, { key: SHARED, order: [] }));\n }\n\n // Await missing objects.\n subscriptions.add(\n scheduledEffect(\n () => ({ active: layout.active }),\n ({ active }) => {\n if (active.length !== 1) {\n return;\n }\n\n const id = active[0];\n const node = graph.getNode(id).pipe(Option.getOrNull);\n if (!node && id.length === FQ_ID_LENGTH) {\n void graph.initialize(id);\n const timeout = setTimeout(async () => {\n const node = graph.getNode(id).pipe(Option.getOrNull);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id }));\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n return () => clearTimeout(timeout);\n }\n },\n ),\n );\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n subscriptions.add(\n scheduledEffect(\n () => ({ name: space.properties.name }),\n ({ name }) => (state.spaceNames[space.id] = name),\n ),\n );\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space.\n subscriptions.add(\n scheduledEffect(\n () => ({ current: attention.current, active: layout.active, inactive: layout.inactive }),\n ({ current, active, inactive }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', { err: err.message });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n return () => clearInterval(interval);\n },\n ),\n );\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in state.viewersByObject)) {\n state.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n state.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!state.viewersByIdentity.has(identityKey)) {\n state.viewersByIdentity.set(identityKey, new Set());\n }\n state.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n state.viewersByObject[id]?.delete(identityKey);\n state.viewersByIdentity.get(identityKey)?.delete(id);\n // It’s okay for these to be empty sets/maps, reduces churn.\n }\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n await Promise.all(\n client.spaces.get().map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n );\n state.enabledEdgeReplication = true;\n } catch (err) {\n log.catch(err);\n }\n\n return contributes(Capabilities.Null, null, () => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Option", "Capabilities", "LayoutAction", "contributes", "createIntent", "SubscriptionList", "Filter", "Obj", "Type", "scheduledEffect", "log", "AttentionCapabilities", "ClientCapabilities", "DeckCapabilities", "EdgeReplicationSetting", "PublicKey", "FQ_ID_LENGTH", "SpaceState", "parseFullyQualifiedId", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "context", "subscriptions", "SubscriptionList", "spaceSubscriptions", "dispatchPromise", "dispatch", "getCapability", "Capabilities", "IntentDispatcher", "graph", "AppGraph", "layout", "Layout", "deck", "getCapabilities", "DeckCapabilities", "DeckState", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "activeDeck", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "type", "Type", "Expando", "key", "SHARED", "run", "add", "Obj", "make", "order", "scheduledEffect", "active", "length", "node", "getNode", "pipe", "Option", "getOrNull", "FQ_ID_LENGTH", "initialize", "timeout", "setTimeout", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "current", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  SpaceCapabilities
3
- } from "./chunk-BXNL6SDI.mjs";
3
+ } from "./chunk-Q5EEPP3S.mjs";
4
4
  import {
5
5
  SPACE_PLUGIN
6
- } from "./chunk-PTKYMZWO.mjs";
6
+ } from "./chunk-FBCGT5YY.mjs";
7
7
 
8
- // packages/plugins/plugin-space/src/capabilities/state.ts
8
+ // src/capabilities/state.ts
9
9
  import { effect } from "@preact/signals-core";
10
10
  import { Capabilities, contributes } from "@dxos/app-framework";
11
11
  import { PublicKey } from "@dxos/keys";
@@ -44,4 +44,4 @@ var state_default = (context) => {
44
44
  export {
45
45
  state_default as default
46
46
  };
47
- //# sourceMappingURL=state-HRZ4VRXU.mjs.map
47
+ //# sourceMappingURL=state-K3UBPKYP.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginContext } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SPACE_PLUGIN } from '../meta';\nimport { type PluginState } from '../types';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<PluginState>(SPACE_PLUGIN, {\n awaiting: undefined,\n spaceNames: {},\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.getCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAcC,mBAAuC;AAC9D,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAM3B,IAAA,gBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAA+BC,cAAc;IAC7DC,UAAUC;IACVC,YAAY,CAAC;IACbC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,WAAWC,UAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAb,QACGc,KAAK;IAAEC,KAAK;IAAcC,MAAMf,kBAAkBgB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMf,kBAAkBiB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAUpB,QAAQqB,cAAcC,aAAaC,aAAa;AAChE,QAAMC,cAAcC,OAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAYzB,MAAM2B,OAAOf,sBAAsB;AACjDZ,YAAM2B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,SAAOG,YAAYC,kBAAkBC,OAAO9B,MAAM2B,QAAQ,MAAA;AACxDJ,gBAAAA;AACAvB,UAAM+B,MAAK;EACb,CAAA;AACF;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect } from '@preact/signals-core';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { PublicKey } from '@dxos/keys';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { ComplexMap } from '@dxos/util';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { type PluginState } from '../types';\n\nimport { SpaceCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const state = new LocalStorageStore<PluginState>(SPACE_PLUGIN, {\n awaiting: undefined,\n spaceNames: {},\n viewersByObject: {},\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n viewersByIdentity: new ComplexMap(PublicKey.hash),\n sdkMigrationRunning: {},\n navigableCollections: false,\n enabledEdgeReplication: false,\n });\n\n state\n .prop({ key: 'spaceNames', type: LocalStorageStore.json<Record<string, string>>() })\n .prop({ key: 'enabledEdgeReplication', type: LocalStorageStore.bool() });\n\n const manager = context.getCapability(Capabilities.PluginManager);\n const unsubscribe = effect(() => {\n // TODO(wittjosiah): Find a way to make this capability-based.\n const enabled = manager.enabled.includes('dxos.org/plugin/stack');\n if (enabled !== state.values.navigableCollections) {\n state.values.navigableCollections = enabled;\n }\n });\n\n return contributes(SpaceCapabilities.State, state.values, () => {\n unsubscribe();\n state.close();\n });\n};\n"],
5
+ "mappings": ";;;;;;;;AAIA,SAASA,cAAc;AAEvB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,iBAAiB;AAC1B,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAO3B,IAAA,gBAAe,CAACC,YAAAA;AACd,QAAMC,QAAQ,IAAIC,kBAA+BC,cAAc;IAC7DC,UAAUC;IACVC,YAAY,CAAC;IACbC,iBAAiB,CAAC;;IAElBC,mBAAmB,IAAIC,WAAWC,UAAUC,IAAI;IAChDC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,wBAAwB;EAC1B,CAAA;AAEAb,QACGc,KAAK;IAAEC,KAAK;IAAcC,MAAMf,kBAAkBgB,KAAI;EAA2B,CAAA,EACjFH,KAAK;IAAEC,KAAK;IAA0BC,MAAMf,kBAAkBiB,KAAI;EAAG,CAAA;AAExE,QAAMC,UAAUpB,QAAQqB,cAAcC,aAAaC,aAAa;AAChE,QAAMC,cAAcC,OAAO,MAAA;AAEzB,UAAMC,UAAUN,QAAQM,QAAQC,SAAS,uBAAA;AACzC,QAAID,YAAYzB,MAAM2B,OAAOf,sBAAsB;AACjDZ,YAAM2B,OAAOf,uBAAuBa;IACtC;EACF,CAAA;AAEA,SAAOG,YAAYC,kBAAkBC,OAAO9B,MAAM2B,QAAQ,MAAA;AACxDJ,gBAAAA;AACAvB,UAAM+B,MAAK;EACb,CAAA;AACF;",
6
6
  "names": ["effect", "Capabilities", "contributes", "PublicKey", "LocalStorageStore", "ComplexMap", "context", "state", "LocalStorageStore", "SPACE_PLUGIN", "awaiting", "undefined", "spaceNames", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "sdkMigrationRunning", "navigableCollections", "enabledEdgeReplication", "prop", "key", "type", "json", "bool", "manager", "getCapability", "Capabilities", "PluginManager", "unsubscribe", "effect", "enabled", "includes", "values", "contributes", "SpaceCapabilities", "State", "close"]
7
7
  }