@dxos/plugin-space 0.9.0 → 0.9.1-main.c7dcc2e112

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 (368) hide show
  1. package/dist/lib/neutral/{CollectionArticle-S3OF5KJ7.mjs → CollectionArticle-BMH7SZ7Q.mjs} +9 -12
  2. package/dist/lib/neutral/CollectionArticle-BMH7SZ7Q.mjs.map +7 -0
  3. package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs → CollectionSection-BLYTGOKH.mjs} +2 -2
  4. package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs.map → CollectionSection-BLYTGOKH.mjs.map} +3 -3
  5. package/dist/lib/neutral/{CreateObjectDialog-66R3K6I3.mjs → CreateObjectDialog-4VMOUKM7.mjs} +10 -10
  6. package/dist/lib/neutral/CreateObjectDialog-4VMOUKM7.mjs.map +7 -0
  7. package/dist/lib/neutral/{CreateSpaceDialog-CDGSEIJB.mjs → CreateSpaceDialog-WWNUTLVK.mjs} +6 -6
  8. package/dist/lib/neutral/CreateSpaceDialog-WWNUTLVK.mjs.map +7 -0
  9. package/dist/lib/neutral/{ImportSpaceDialog-7GKV4OTF.mjs → ImportSpaceDialog-CSSRTFAO.mjs} +4 -4
  10. package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs.map +7 -0
  11. package/dist/lib/neutral/{InlineSyncStatus-TBJKZCH7.mjs → InlineSyncStatus-UOUTAPCU.mjs} +4 -4
  12. package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs.map +7 -0
  13. package/dist/lib/neutral/{JoinDialog-SSFKRFTJ.mjs → JoinDialog-QZGNRJ4P.mjs} +16 -9
  14. package/dist/lib/neutral/JoinDialog-QZGNRJ4P.mjs.map +7 -0
  15. package/dist/lib/neutral/{MembersContainer-KMCQDWCS.mjs → MembersContainer-OWCAMBKS.mjs} +5 -5
  16. package/dist/lib/neutral/MembersContainer-OWCAMBKS.mjs.map +7 -0
  17. package/dist/lib/neutral/{MenuFooter-5JT7V5FZ.mjs → MenuFooter-QCNFUIAO.mjs} +6 -6
  18. package/dist/lib/neutral/MenuFooter-QCNFUIAO.mjs.map +7 -0
  19. package/dist/lib/neutral/{ObjectCardStack-IXNU3HEN.mjs → ObjectCardStack-DHVDRNRK.mjs} +4 -4
  20. package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs.map +7 -0
  21. package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs +102 -0
  22. package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs.map +7 -0
  23. package/dist/lib/neutral/{RelatedArticle-YDNGUDAJ.mjs → RelatedArticle-YRCRBIYU.mjs} +11 -9
  24. package/dist/lib/neutral/RelatedArticle-YRCRBIYU.mjs.map +7 -0
  25. package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs +96 -0
  26. package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs.map +7 -0
  27. package/dist/lib/neutral/{SchemaContainer-Q4BP6X2M.mjs → SchemaContainer-2NK5YB5O.mjs} +2 -2
  28. package/dist/lib/neutral/SchemaContainer-2NK5YB5O.mjs.map +7 -0
  29. package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs → SmallPresenceLive-L4H7WJOA.mjs} +2 -2
  30. package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs +78 -0
  31. package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs.map +7 -0
  32. package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs +83 -0
  33. package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs.map +7 -0
  34. package/dist/lib/neutral/SpacePlugin.mjs +1 -1
  35. package/dist/lib/neutral/SpacePlugin.node.mjs +4 -4
  36. package/dist/lib/neutral/SpacePlugin.node.mjs.map +3 -3
  37. package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs → SpacePresence-PDTEDHDE.mjs} +2 -2
  38. package/dist/lib/neutral/{SpaceSettings-YAHBOY5T.mjs → SpaceSettings-IVTCSLNT.mjs} +6 -6
  39. package/dist/lib/neutral/SpaceSettings-IVTCSLNT.mjs.map +7 -0
  40. package/dist/lib/neutral/{SpaceSettingsContainer-IB34TEOB.mjs → SpaceSettingsContainer-QAFQ4LWC.mjs} +8 -8
  41. package/dist/lib/neutral/SpaceSettingsContainer-QAFQ4LWC.mjs.map +7 -0
  42. package/dist/lib/neutral/{SyncStatus-CWOXWDDZ.mjs → SyncStatus-J7CHLO5O.mjs} +3 -3
  43. package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs.map +7 -0
  44. package/dist/lib/neutral/{add-object-QYOMCBJA.mjs → add-object-S64XELC3.mjs} +10 -10
  45. package/dist/lib/neutral/add-object-S64XELC3.mjs.map +7 -0
  46. package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs → add-relation-GWSE42BU.mjs} +3 -3
  47. package/dist/lib/neutral/{add-type-CZVKSEIW.mjs → add-type-C3KYE6PI.mjs} +3 -3
  48. package/dist/lib/neutral/{app-graph-builder-SQGCUCDO.mjs → app-graph-builder-TMAD2ZTH.mjs} +128 -71
  49. package/dist/lib/neutral/app-graph-builder-TMAD2ZTH.mjs.map +7 -0
  50. package/dist/lib/neutral/capabilities/index.mjs +13 -15
  51. package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
  52. package/dist/lib/neutral/capabilities/node.mjs +2 -2
  53. package/dist/lib/neutral/{chunk-EEXRKYOD.mjs → chunk-2LTGSUGQ.mjs} +2 -2
  54. package/dist/lib/neutral/{chunk-EEXRKYOD.mjs.map → chunk-2LTGSUGQ.mjs.map} +2 -2
  55. package/dist/lib/neutral/chunk-2RPQHHD7.mjs +17 -0
  56. package/dist/lib/neutral/chunk-2RPQHHD7.mjs.map +7 -0
  57. package/dist/lib/neutral/chunk-5ZZS3KMK.mjs +46 -0
  58. package/dist/lib/neutral/chunk-5ZZS3KMK.mjs.map +7 -0
  59. package/dist/lib/neutral/{chunk-K34BPPQE.mjs → chunk-DSYEB2UN.mjs} +29 -17
  60. package/dist/lib/neutral/chunk-DSYEB2UN.mjs.map +7 -0
  61. package/dist/lib/neutral/{chunk-YY62663T.mjs → chunk-F2VJ6VBV.mjs} +3 -3
  62. package/dist/lib/neutral/chunk-F2VJ6VBV.mjs.map +7 -0
  63. package/dist/lib/neutral/{chunk-JHZGRYGS.mjs → chunk-G2KHP7FX.mjs} +2 -2
  64. package/dist/lib/neutral/{chunk-JHZGRYGS.mjs.map → chunk-G2KHP7FX.mjs.map} +2 -2
  65. package/dist/lib/neutral/chunk-I5JXVBXX.mjs +8 -0
  66. package/dist/lib/neutral/{chunk-BBQR23DW.mjs → chunk-LY6XK5MV.mjs} +105 -128
  67. package/dist/lib/neutral/chunk-LY6XK5MV.mjs.map +7 -0
  68. package/dist/lib/neutral/{chunk-7WUJENBF.mjs → chunk-PSCIOT7Q.mjs} +4 -4
  69. package/dist/lib/neutral/chunk-PSCIOT7Q.mjs.map +7 -0
  70. package/dist/lib/neutral/{close-FGQN37PK.mjs → close-YZHFYPUN.mjs} +3 -3
  71. package/dist/lib/neutral/components/index.mjs +7 -7
  72. package/dist/lib/neutral/components/index.mjs.map +3 -3
  73. package/dist/lib/neutral/containers/index.mjs +23 -21
  74. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  75. package/dist/lib/neutral/{create-EPIFSRJA.mjs → create-XKU2W6QC.mjs} +6 -6
  76. package/dist/lib/neutral/create-XKU2W6QC.mjs.map +7 -0
  77. package/dist/lib/neutral/{delete-LIA5M3WI.mjs → delete-EFM7CAVO.mjs} +3 -3
  78. package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs → delete-field-ONAPFFO5.mjs} +3 -3
  79. package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs → duplicate-object-OJRPFV5I.mjs} +3 -3
  80. package/dist/lib/neutral/{export-space-VWJHVXWF.mjs → export-space-M5RNVUQX.mjs} +3 -3
  81. package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs → get-share-link-FUQBJPSQ.mjs} +4 -4
  82. package/dist/lib/neutral/hooks/index.mjs +16 -4
  83. package/dist/lib/neutral/hooks/index.mjs.map +3 -3
  84. package/dist/lib/neutral/{identity-created-57RML5XT.mjs → identity-created-QMV4DANW.mjs} +4 -4
  85. package/dist/lib/neutral/identity-created-QMV4DANW.mjs.map +7 -0
  86. package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs → import-space-L3AUIARM.mjs} +3 -3
  87. package/dist/lib/neutral/index.mjs +12 -6
  88. package/dist/lib/neutral/{join-Z5K4OAIG.mjs → join-VY3QYBU7.mjs} +4 -4
  89. package/dist/lib/neutral/meta.json +1 -1
  90. package/dist/lib/neutral/meta.mjs +1 -1
  91. package/dist/lib/neutral/{migrate-G7I52UKD.mjs → migrate-WPUISBC4.mjs} +3 -3
  92. package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs → navigation-handler-IKXZGMII.mjs} +4 -4
  93. package/dist/lib/neutral/{navigation-resolver-IFVQRCGU.mjs → navigation-resolver-VBPGMFCE.mjs} +7 -7
  94. package/dist/lib/neutral/navigation-resolver-VBPGMFCE.mjs.map +7 -0
  95. package/dist/lib/neutral/{open-CPWVZSI4.mjs → open-RRYULTSY.mjs} +3 -3
  96. package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs → open-create-object-BRUVFZSY.mjs} +4 -4
  97. package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs → open-create-space-ARLQWW65.mjs} +4 -4
  98. package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs → open-import-space-65H57JXX.mjs} +4 -4
  99. package/dist/lib/neutral/{open-members-BEXOSSBS.mjs → open-members-677P6KD3.mjs} +6 -6
  100. package/dist/lib/neutral/open-members-677P6KD3.mjs.map +7 -0
  101. package/dist/lib/neutral/{open-settings-RHDBW2K5.mjs → open-settings-PRBSGO6D.mjs} +6 -6
  102. package/dist/lib/neutral/open-settings-PRBSGO6D.mjs.map +7 -0
  103. package/dist/lib/neutral/operations/index.mjs +3 -3
  104. package/dist/lib/neutral/plugin.mjs +4 -4
  105. package/dist/lib/neutral/{react-root-2DJPZQT4.mjs → react-root-YLYRCSAZ.mjs} +2 -2
  106. package/dist/lib/neutral/{react-root-2DJPZQT4.mjs.map → react-root-YLYRCSAZ.mjs.map} +3 -3
  107. package/dist/lib/neutral/{react-surface-LYCTOQLY.mjs → react-surface-5EQ6X4CL.mjs} +48 -70
  108. package/dist/lib/neutral/react-surface-5EQ6X4CL.mjs.map +7 -0
  109. package/dist/lib/neutral/{remove-objects-OWDMA4IF.mjs → remove-objects-PWJJI36V.mjs} +5 -5
  110. package/dist/lib/neutral/remove-objects-PWJJI36V.mjs.map +7 -0
  111. package/dist/lib/neutral/{rename-SR6BBSPU.mjs → rename-4727PKI4.mjs} +8 -7
  112. package/dist/lib/neutral/rename-4727PKI4.mjs.map +7 -0
  113. package/dist/lib/neutral/{rename-object-5H6E5AOX.mjs → rename-object-FXUAB5FN.mjs} +8 -7
  114. package/dist/lib/neutral/rename-object-FXUAB5FN.mjs.map +7 -0
  115. package/dist/lib/neutral/{repair-PSYRVSJ6.mjs → repair-HMH476U3.mjs} +3 -3
  116. package/dist/lib/neutral/repair-HMH476U3.mjs.map +7 -0
  117. package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs → restore-field-3ICSIHGA.mjs} +3 -3
  118. package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs → restore-objects-V2BTEWN3.mjs} +3 -3
  119. package/dist/lib/neutral/{settings-Q32EQCHX.mjs → settings-5IBSYBVU.mjs} +3 -3
  120. package/dist/lib/neutral/{settings-Q32EQCHX.mjs.map → settings-5IBSYBVU.mjs.map} +3 -3
  121. package/dist/lib/neutral/{share-5Y4NZA75.mjs → share-ZOZPAUGI.mjs} +3 -3
  122. package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs → snapshot-ZC5PU55W.mjs} +3 -3
  123. package/dist/lib/neutral/{spaces-ready-GBF72QJH.mjs → spaces-ready-EXPCJD4N.mjs} +11 -11
  124. package/dist/lib/neutral/spaces-ready-EXPCJD4N.mjs.map +7 -0
  125. package/dist/lib/neutral/{state-DPBOZRAW.mjs → state-KMH2NUAL.mjs} +2 -2
  126. package/dist/lib/neutral/state-KMH2NUAL.mjs.map +7 -0
  127. package/dist/lib/neutral/testing.mjs +1 -1
  128. package/dist/lib/neutral/translations.mjs +4 -2
  129. package/dist/lib/neutral/translations.mjs.map +3 -3
  130. package/dist/lib/neutral/types/index.mjs +9 -3
  131. package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs → undo-mappings-P43EAUGI.mjs} +5 -5
  132. package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs.map → undo-mappings-P43EAUGI.mjs.map} +3 -3
  133. package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs → wait-for-object-WURK2SLQ.mjs} +3 -3
  134. package/dist/types/dx.config.d.ts +28 -0
  135. package/dist/types/dx.config.d.ts.map +1 -0
  136. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  137. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +12 -0
  138. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
  139. package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +0 -1
  141. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +13 -1
  143. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
  144. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
  145. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
  146. package/dist/types/src/capabilities/index.d.ts +10 -54
  147. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  148. package/dist/types/src/capabilities/navigation-handler/index.d.ts +1 -1
  149. package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
  151. package/dist/types/src/capabilities/node.d.ts +3 -33
  152. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  153. package/dist/types/src/capabilities/react-surface.d.ts +2 -2
  154. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  155. package/dist/types/src/commands/database/add.d.ts.map +1 -1
  156. package/dist/types/src/commands/queue/query.d.ts.map +1 -1
  157. package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts +20 -0
  158. package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
  159. package/dist/types/src/constants.d.ts +1 -2
  160. package/dist/types/src/constants.d.ts.map +1 -1
  161. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  162. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +20 -0
  163. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  164. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
  165. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +20 -0
  166. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
  167. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  168. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +20 -0
  169. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
  170. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +1 -1
  171. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
  172. package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +12 -0
  173. package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -0
  174. package/dist/types/src/containers/RenamePopover/index.d.ts +3 -0
  175. package/dist/types/src/containers/RenamePopover/index.d.ts.map +1 -0
  176. package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts +15 -0
  177. package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts.map +1 -0
  178. package/dist/types/src/containers/SpaceHomeArticle/index.d.ts +2 -0
  179. package/dist/types/src/containers/SpaceHomeArticle/index.d.ts.map +1 -0
  180. package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts +22 -0
  181. package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -0
  182. package/dist/types/src/containers/SpaceHomeRecent/index.d.ts +2 -0
  183. package/dist/types/src/containers/SpaceHomeRecent/index.d.ts.map +1 -0
  184. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +20 -0
  185. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  186. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +20 -0
  187. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  188. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +20 -0
  189. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  190. package/dist/types/src/containers/index.d.ts +3 -2
  191. package/dist/types/src/containers/index.d.ts.map +1 -1
  192. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  193. package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -1
  194. package/dist/types/src/meta.d.ts +28 -2
  195. package/dist/types/src/meta.d.ts.map +1 -1
  196. package/dist/types/src/operations/add-object.d.ts.map +1 -1
  197. package/dist/types/src/operations/helpers.d.ts.map +1 -1
  198. package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
  199. package/dist/types/src/operations/rename-object.d.ts.map +1 -1
  200. package/dist/types/src/operations/rename.d.ts.map +1 -1
  201. package/dist/types/src/translations.d.ts +20 -0
  202. package/dist/types/src/translations.d.ts.map +1 -1
  203. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  204. package/dist/types/src/types/events.d.ts.map +1 -1
  205. package/dist/types/src/types/form.d.ts +7 -1
  206. package/dist/types/src/types/form.d.ts.map +1 -1
  207. package/dist/types/src/types/index.d.ts +1 -0
  208. package/dist/types/src/types/index.d.ts.map +1 -1
  209. package/dist/types/src/types/surface.d.ts +26 -0
  210. package/dist/types/src/types/surface.d.ts.map +1 -0
  211. package/dist/types/src/types/types.d.ts +7 -0
  212. package/dist/types/src/types/types.d.ts.map +1 -1
  213. package/dist/types/src/util.d.ts.map +1 -1
  214. package/dist/types/tsconfig.tsbuildinfo +1 -1
  215. package/dx.config.ts +35 -0
  216. package/package.json +51 -50
  217. package/src/SpacePlugin.test.ts +1 -1
  218. package/src/SpacePlugin.ts +1 -7
  219. package/src/capabilities/app-graph-builder/extensions/collections.ts +44 -24
  220. package/src/capabilities/app-graph-builder/extensions/companions.ts +3 -3
  221. package/src/capabilities/app-graph-builder/extensions/database.ts +17 -14
  222. package/src/capabilities/app-graph-builder/extensions/settings.ts +9 -9
  223. package/src/capabilities/app-graph-builder/extensions/shared.ts +5 -20
  224. package/src/capabilities/app-graph-builder/extensions/spaces.ts +49 -26
  225. package/src/capabilities/identity-created.ts +3 -3
  226. package/src/capabilities/index.ts +0 -1
  227. package/src/capabilities/navigation-resolver.ts +6 -13
  228. package/src/capabilities/react-root.tsx +1 -1
  229. package/src/capabilities/react-surface.tsx +58 -88
  230. package/src/capabilities/repair.ts +4 -2
  231. package/src/capabilities/settings.ts +2 -2
  232. package/src/capabilities/spaces-ready.ts +8 -15
  233. package/src/capabilities/state.ts +1 -1
  234. package/src/capabilities/undo-mappings.ts +3 -3
  235. package/src/commands/database/add.ts +4 -2
  236. package/src/commands/queue/query.ts +4 -3
  237. package/src/components/AwaitingObject/AwaitingObject.tsx +1 -1
  238. package/src/components/CreateObjectPanel/CreateObjectPanel.tsx +2 -2
  239. package/src/components/ForeignKeys/ForeignKeys.tsx +1 -1
  240. package/src/components/SpaceSettings/SpaceSettings.tsx +3 -3
  241. package/src/constants.ts +5 -6
  242. package/src/containers/CollectionArticle/CollectionArticle.tsx +10 -6
  243. package/src/containers/CollectionSection/CollectionSection.tsx +1 -1
  244. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -7
  245. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -5
  246. package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +3 -3
  247. package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +3 -3
  248. package/src/containers/JoinDialog/JoinDialog.tsx +13 -11
  249. package/src/containers/MembersContainer/MembersContainer.tsx +5 -5
  250. package/src/containers/MenuFooter/MenuFooter.tsx +3 -3
  251. package/src/containers/ObjectCardStack/ObjectCardStack.tsx +3 -3
  252. package/src/containers/RecordArticle/RecordArticle.tsx +67 -8
  253. package/src/containers/RelatedArticle/RelatedArticle.tsx +17 -13
  254. package/src/containers/RenamePopover/RenamePopover.tsx +112 -0
  255. package/src/containers/RenamePopover/index.ts +6 -0
  256. package/src/containers/SchemaContainer/SchemaContainer.tsx +1 -1
  257. package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +100 -0
  258. package/src/containers/SpaceHomeArticle/index.ts +5 -0
  259. package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +101 -0
  260. package/src/containers/SpaceHomeRecent/index.ts +5 -0
  261. package/src/containers/SpacePresence/SpacePresence.tsx +1 -1
  262. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +7 -7
  263. package/src/containers/SyncStatus/SyncStatus.tsx +2 -2
  264. package/src/containers/index.ts +3 -2
  265. package/src/hooks/useInputSurfaceLookup.tsx +3 -2
  266. package/src/hooks/useRelatedObjects.ts +13 -1
  267. package/src/meta.ts +2 -27
  268. package/src/operations/add-object.ts +7 -14
  269. package/src/operations/create.ts +2 -2
  270. package/src/operations/definitions.ts +1 -1
  271. package/src/operations/helpers.ts +1 -1
  272. package/src/operations/open-members.ts +3 -3
  273. package/src/operations/open-settings.ts +3 -3
  274. package/src/operations/remove-objects.ts +3 -2
  275. package/src/operations/rename-object.ts +3 -2
  276. package/src/operations/rename.ts +3 -2
  277. package/src/translations.ts +3 -1
  278. package/src/types/capabilities.ts +8 -8
  279. package/src/types/events.ts +5 -5
  280. package/src/types/form.ts +5 -1
  281. package/src/types/index.ts +1 -0
  282. package/src/types/surface.ts +31 -0
  283. package/src/types/types.ts +9 -1
  284. package/src/util.ts +3 -3
  285. package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs.map +0 -7
  286. package/dist/lib/neutral/CreateObjectDialog-66R3K6I3.mjs.map +0 -7
  287. package/dist/lib/neutral/CreateSpaceDialog-CDGSEIJB.mjs.map +0 -7
  288. package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs +0 -59
  289. package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs.map +0 -7
  290. package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs.map +0 -7
  291. package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs.map +0 -7
  292. package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs.map +0 -7
  293. package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs.map +0 -7
  294. package/dist/lib/neutral/MenuFooter-5JT7V5FZ.mjs.map +0 -7
  295. package/dist/lib/neutral/ObjectCardStack-IXNU3HEN.mjs.map +0 -7
  296. package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs +0 -51
  297. package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs.map +0 -7
  298. package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs.map +0 -7
  299. package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs.map +0 -7
  300. package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs +0 -56
  301. package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs.map +0 -7
  302. package/dist/lib/neutral/SpaceSettings-YAHBOY5T.mjs.map +0 -7
  303. package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs.map +0 -7
  304. package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs.map +0 -7
  305. package/dist/lib/neutral/add-object-QYOMCBJA.mjs.map +0 -7
  306. package/dist/lib/neutral/app-graph-builder-SQGCUCDO.mjs.map +0 -7
  307. package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs +0 -81
  308. package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs.map +0 -7
  309. package/dist/lib/neutral/chunk-4RTSNTDC.mjs +0 -37
  310. package/dist/lib/neutral/chunk-4RTSNTDC.mjs.map +0 -7
  311. package/dist/lib/neutral/chunk-7WUJENBF.mjs.map +0 -7
  312. package/dist/lib/neutral/chunk-B7DBIARR.mjs +0 -8
  313. package/dist/lib/neutral/chunk-BBQR23DW.mjs.map +0 -7
  314. package/dist/lib/neutral/chunk-F5MESIRH.mjs +0 -19
  315. package/dist/lib/neutral/chunk-F5MESIRH.mjs.map +0 -7
  316. package/dist/lib/neutral/chunk-K34BPPQE.mjs.map +0 -7
  317. package/dist/lib/neutral/chunk-YY62663T.mjs.map +0 -7
  318. package/dist/lib/neutral/create-EPIFSRJA.mjs.map +0 -7
  319. package/dist/lib/neutral/identity-created-57RML5XT.mjs.map +0 -7
  320. package/dist/lib/neutral/navigation-resolver-IFVQRCGU.mjs.map +0 -7
  321. package/dist/lib/neutral/open-members-BEXOSSBS.mjs.map +0 -7
  322. package/dist/lib/neutral/open-settings-RHDBW2K5.mjs.map +0 -7
  323. package/dist/lib/neutral/react-surface-LYCTOQLY.mjs.map +0 -7
  324. package/dist/lib/neutral/remove-objects-OWDMA4IF.mjs.map +0 -7
  325. package/dist/lib/neutral/rename-SR6BBSPU.mjs.map +0 -7
  326. package/dist/lib/neutral/rename-object-5H6E5AOX.mjs.map +0 -7
  327. package/dist/lib/neutral/repair-PSYRVSJ6.mjs.map +0 -7
  328. package/dist/lib/neutral/spaces-ready-GBF72QJH.mjs.map +0 -7
  329. package/dist/lib/neutral/state-DPBOZRAW.mjs.map +0 -7
  330. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -5
  331. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  332. package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts +0 -7
  333. package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts.map +0 -1
  334. package/dist/types/src/containers/EntityRenamePopover/index.d.ts +0 -2
  335. package/dist/types/src/containers/EntityRenamePopover/index.d.ts.map +0 -1
  336. package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -7
  337. package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +0 -1
  338. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +0 -2
  339. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +0 -1
  340. package/src/capabilities/app-graph-serializer.ts +0 -85
  341. package/src/containers/EntityRenamePopover/EntityRenamePopover.tsx +0 -52
  342. package/src/containers/EntityRenamePopover/index.ts +0 -5
  343. package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +0 -54
  344. package/src/containers/SpaceRenamePopover/index.ts +0 -5
  345. /package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs.map → SmallPresenceLive-L4H7WJOA.mjs.map} +0 -0
  346. /package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs.map → SpacePresence-PDTEDHDE.mjs.map} +0 -0
  347. /package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs.map → add-relation-GWSE42BU.mjs.map} +0 -0
  348. /package/dist/lib/neutral/{add-type-CZVKSEIW.mjs.map → add-type-C3KYE6PI.mjs.map} +0 -0
  349. /package/dist/lib/neutral/{chunk-B7DBIARR.mjs.map → chunk-I5JXVBXX.mjs.map} +0 -0
  350. /package/dist/lib/neutral/{close-FGQN37PK.mjs.map → close-YZHFYPUN.mjs.map} +0 -0
  351. /package/dist/lib/neutral/{delete-LIA5M3WI.mjs.map → delete-EFM7CAVO.mjs.map} +0 -0
  352. /package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs.map → delete-field-ONAPFFO5.mjs.map} +0 -0
  353. /package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs.map → duplicate-object-OJRPFV5I.mjs.map} +0 -0
  354. /package/dist/lib/neutral/{export-space-VWJHVXWF.mjs.map → export-space-M5RNVUQX.mjs.map} +0 -0
  355. /package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs.map → get-share-link-FUQBJPSQ.mjs.map} +0 -0
  356. /package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs.map → import-space-L3AUIARM.mjs.map} +0 -0
  357. /package/dist/lib/neutral/{join-Z5K4OAIG.mjs.map → join-VY3QYBU7.mjs.map} +0 -0
  358. /package/dist/lib/neutral/{migrate-G7I52UKD.mjs.map → migrate-WPUISBC4.mjs.map} +0 -0
  359. /package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs.map → navigation-handler-IKXZGMII.mjs.map} +0 -0
  360. /package/dist/lib/neutral/{open-CPWVZSI4.mjs.map → open-RRYULTSY.mjs.map} +0 -0
  361. /package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs.map → open-create-object-BRUVFZSY.mjs.map} +0 -0
  362. /package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs.map → open-create-space-ARLQWW65.mjs.map} +0 -0
  363. /package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs.map → open-import-space-65H57JXX.mjs.map} +0 -0
  364. /package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs.map → restore-field-3ICSIHGA.mjs.map} +0 -0
  365. /package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs.map → restore-objects-V2BTEWN3.mjs.map} +0 -0
  366. /package/dist/lib/neutral/{share-5Y4NZA75.mjs.map → share-ZOZPAUGI.mjs.map} +0 -0
  367. /package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs.map → snapshot-ZC5PU55W.mjs.map} +0 -0
  368. /package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs.map → wait-for-object-WURK2SLQ.mjs.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-4RTSNTDC.mjs";
3
+ } from "./chunk-5ZZS3KMK.mjs";
4
4
  import "./chunk-J5LGTIGS.mjs";
5
5
  export {
6
6
  meta
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SpaceOperation
3
- } from "./chunk-YY62663T.mjs";
3
+ } from "./chunk-F2VJ6VBV.mjs";
4
4
  import {
5
5
  SpaceCapabilities
6
- } from "./chunk-K34BPPQE.mjs";
6
+ } from "./chunk-DSYEB2UN.mjs";
7
7
  import "./chunk-J5LGTIGS.mjs";
8
8
 
9
9
  // src/operations/migrate.ts
@@ -49,4 +49,4 @@ var migrate_default = handler;
49
49
  export {
50
50
  migrate_default as default
51
51
  };
52
- //# sourceMappingURL=migrate-G7I52UKD.mjs.map
52
+ //# sourceMappingURL=migrate-WPUISBC4.mjs.map
@@ -1,8 +1,8 @@
1
- import "./chunk-B7DBIARR.mjs";
1
+ import "./chunk-I5JXVBXX.mjs";
2
2
  import {
3
3
  SpaceOperation
4
- } from "./chunk-YY62663T.mjs";
5
- import "./chunk-K34BPPQE.mjs";
4
+ } from "./chunk-F2VJ6VBV.mjs";
5
+ import "./chunk-DSYEB2UN.mjs";
6
6
  import "./chunk-J5LGTIGS.mjs";
7
7
 
8
8
  // src/capabilities/navigation-handler/navigation-handler.ts
@@ -35,4 +35,4 @@ var removeQueryParam = (key) => {
35
35
  export {
36
36
  navigation_handler_default as default
37
37
  };
38
- //# sourceMappingURL=navigation-handler-QQJYEMAS.mjs.map
38
+ //# sourceMappingURL=navigation-handler-IKXZGMII.mjs.map
@@ -4,11 +4,11 @@ import "./chunk-J5LGTIGS.mjs";
4
4
  import * as Effect from "effect/Effect";
5
5
  import * as Option from "effect/Option";
6
6
  import { Capability } from "@dxos/app-framework";
7
- import { AppCapabilities, getActiveSpace, getObjectPath, getSpaceIdFromPath, getSpacePath } from "@dxos/app-toolkit";
7
+ import { AppCapabilities, AppSpace, Paths } from "@dxos/app-toolkit";
8
8
  import { Database, Entity, Key } from "@dxos/echo";
9
9
  import { EID } from "@dxos/keys";
10
10
  import { ClientCapabilities } from "@dxos/plugin-client";
11
- import { SETTINGS_ID, SETTINGS_KEY } from "@dxos/plugin-settings";
11
+ import { getPluginSettingsSectionPath } from "@dxos/plugin-settings";
12
12
  import { meta } from "#meta";
13
13
  var navigation_resolver_default = Capability.makeModule(Effect.fnUntraced(function* () {
14
14
  const client = yield* Capability.get(ClientCapabilities.Client);
@@ -17,7 +17,7 @@ var navigation_resolver_default = Capability.makeModule(Effect.fnUntraced(functi
17
17
  if (!query?.dxn) {
18
18
  return [
19
19
  {
20
- path: `${getSpacePath(SETTINGS_ID)}/${SETTINGS_KEY}:${meta.id.replaceAll("/", ":")}`,
20
+ path: getPluginSettingsSectionPath(meta.profile.key),
21
21
  label: "Spaces settings",
22
22
  type: "settings"
23
23
  }
@@ -39,7 +39,7 @@ var navigation_resolver_default = Capability.makeModule(Effect.fnUntraced(functi
39
39
  }
40
40
  return [
41
41
  {
42
- path: getObjectPath(db.spaceId, typename, object.id),
42
+ path: Paths.getObjectPath(db.spaceId, typename, object.id),
43
43
  label: Entity.getLabel(object) ?? "",
44
44
  type: typename
45
45
  }
@@ -47,7 +47,7 @@ var navigation_resolver_default = Capability.makeModule(Effect.fnUntraced(functi
47
47
  });
48
48
  const pathResolver = (qualifiedPath) => {
49
49
  const segments = qualifiedPath.split("/");
50
- const spaceId = getSpaceIdFromPath(qualifiedPath);
50
+ const spaceId = Paths.getSpaceIdFromPath(qualifiedPath);
51
51
  const objectId = segments[segments.length - 1];
52
52
  if (!spaceId || !objectId || !Key.EntityId.isValid(objectId)) {
53
53
  return Effect.succeed(Option.none());
@@ -61,7 +61,7 @@ var navigation_resolver_default = Capability.makeModule(Effect.fnUntraced(functi
61
61
  if (path.includes("/") || !Key.EntityId.isValid(path)) {
62
62
  return Effect.succeed(Option.none());
63
63
  }
64
- const space = getActiveSpace(client, capabilities);
64
+ const space = AppSpace.getActiveSpace(client, capabilities);
65
65
  if (!space) {
66
66
  return Effect.succeed(Option.none());
67
67
  }
@@ -79,4 +79,4 @@ var navigation_resolver_default = Capability.makeModule(Effect.fnUntraced(functi
79
79
  export {
80
80
  navigation_resolver_default as default
81
81
  };
82
- //# sourceMappingURL=navigation-resolver-IFVQRCGU.mjs.map
82
+ //# sourceMappingURL=navigation-resolver-VBPGMFCE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/navigation-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities, AppSpace, Paths, type AppCapabilities as AppCaps } from '@dxos/app-toolkit';\nimport { Database, Entity, Key } from '@dxos/echo';\nimport { EID } from '@dxos/keys';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { getPluginSettingsSectionPath } from '@dxos/plugin-settings';\n\nimport { meta } from '#meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const capabilities = yield* Capability.Service;\n\n // TODO(wittjosiah): Remove cast once NavigationTargetResolver type includes Database.Service.\n const resolver: AppCaps.NavigationTargetResolver = ((query) =>\n Effect.gen(function* () {\n if (!query?.dxn) {\n return [\n {\n path: getPluginSettingsSectionPath(meta.profile.key),\n label: 'Spaces settings',\n type: 'settings',\n },\n ];\n }\n\n const dxn = EID.tryParse(query.dxn.startsWith('@dxn:') ? query.dxn.slice(1) : query.dxn);\n if (!dxn) {\n return [];\n }\n\n const { db } = yield* Database.Service;\n const ref = db.makeRef(dxn);\n const object = yield* Database.load(ref).pipe(Effect.catchAll(() => Effect.succeed(null)));\n if (!object) {\n return [];\n }\n\n const typename = Entity.getTypename(object);\n if (!typename) {\n return [];\n }\n\n return [\n {\n path: Paths.getObjectPath(db.spaceId, typename, object.id),\n label: Entity.getLabel(object) ?? '',\n type: typename,\n },\n ];\n })) as AppCaps.NavigationTargetResolver;\n\n // Parse object paths into EIDs (structure only; existence is checked by the caller).\n // Handles canonical type paths (root/<spaceId>/types/<typename>/all/<objectId>)\n // and collection paths (root/<spaceId>/collections/<collectionId>/<objectId>): the space id\n // is the first segment and the object id the last.\n const pathResolver: AppCaps.NavigationPathResolver = (qualifiedPath) => {\n const segments = qualifiedPath.split('/');\n const spaceId = Paths.getSpaceIdFromPath(qualifiedPath);\n const objectId = segments[segments.length - 1];\n if (!spaceId || !objectId || !Key.EntityId.isValid(objectId)) {\n return Effect.succeed(Option.none());\n }\n return Effect.succeed(Option.some(EID.make({ spaceId, entityId: objectId as Key.EntityId })));\n };\n\n // Resolve a bare entity ID (no path separators) against the current space.\n // Agents sometimes pass raw entity IDs from object creation results instead of full paths.\n const bareEntityPathResolver: AppCaps.NavigationPathResolver = (path) => {\n if (path.includes('/') || !Key.EntityId.isValid(path)) {\n return Effect.succeed(Option.none());\n }\n const space = AppSpace.getActiveSpace(client, capabilities);\n if (!space) {\n return Effect.succeed(Option.none());\n }\n return Effect.succeed(Option.some(EID.make({ spaceId: space.id, entityId: path as Key.EntityId })));\n };\n\n return [\n Capability.contributes(AppCapabilities.NavigationTargetResolver, resolver),\n Capability.contributes(AppCapabilities.NavigationPathResolver, pathResolver),\n Capability.contributes(AppCapabilities.NavigationPathResolver, bareEntityPathResolver),\n ];\n }),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiBC,UAAUC,aAA8C;AAClF,SAASC,UAAUC,QAAQC,WAAW;AACtC,SAASC,WAAW;AACpB,SAASC,0BAA0B;AACnC,SAASC,oCAAoC;AAE7C,SAASC,YAAY;AAErB,IAAA,8BAAeV,WAAWW,WACjBC,kBAAW,aAAA;AAChB,QAAMC,SAAS,OAAOb,WAAWc,IAAIN,mBAAmBO,MAAM;AAC9D,QAAMC,eAAe,OAAOhB,WAAWiB;AAGvC,QAAMC,WAA8C,CAACC,UAC5CC,WAAI,aAAA;AACT,QAAI,CAACD,OAAOE,KAAK;AACf,aAAO;QACL;UACEC,MAAMb,6BAA6BC,KAAKa,QAAQC,GAAG;UACnDC,OAAO;UACPC,MAAM;QACR;;IAEJ;AAEA,UAAML,MAAMd,IAAIoB,SAASR,MAAME,IAAIO,WAAW,OAAA,IAAWT,MAAME,IAAIQ,MAAM,CAAA,IAAKV,MAAME,GAAG;AACvF,QAAI,CAACA,KAAK;AACR,aAAO,CAAA;IACT;AAEA,UAAM,EAAES,GAAE,IAAK,OAAO1B,SAASa;AAC/B,UAAMc,MAAMD,GAAGE,QAAQX,GAAAA;AACvB,UAAMY,SAAS,OAAO7B,SAAS8B,KAAKH,GAAAA,EAAKI,KAAYC,gBAAS,MAAaC,eAAQ,IAAA,CAAA,CAAA;AACnF,QAAI,CAACJ,QAAQ;AACX,aAAO,CAAA;IACT;AAEA,UAAMK,WAAWjC,OAAOkC,YAAYN,MAAAA;AACpC,QAAI,CAACK,UAAU;AACb,aAAO,CAAA;IACT;AAEA,WAAO;MACL;QACEhB,MAAMnB,MAAMqC,cAAcV,GAAGW,SAASH,UAAUL,OAAOS,EAAE;QACzDjB,OAAOpB,OAAOsC,SAASV,MAAAA,KAAW;QAClCP,MAAMY;MACR;;EAEJ,CAAA;AAMF,QAAMM,eAA+C,CAACC,kBAAAA;AACpD,UAAMC,WAAWD,cAAcE,MAAM,GAAA;AACrC,UAAMN,UAAUtC,MAAM6C,mBAAmBH,aAAAA;AACzC,UAAMI,WAAWH,SAASA,SAASI,SAAS,CAAA;AAC5C,QAAI,CAACT,WAAW,CAACQ,YAAY,CAAC3C,IAAI6C,SAASC,QAAQH,QAAAA,GAAW;AAC5D,aAAcZ,eAAegB,YAAI,CAAA;IACnC;AACA,WAAchB,eAAeiB,YAAK/C,IAAIgD,KAAK;MAAEd;MAASe,UAAUP;IAAyB,CAAA,CAAA,CAAA;EAC3F;AAIA,QAAMQ,yBAAyD,CAACnC,SAAAA;AAC9D,QAAIA,KAAKoC,SAAS,GAAA,KAAQ,CAACpD,IAAI6C,SAASC,QAAQ9B,IAAAA,GAAO;AACrD,aAAce,eAAegB,YAAI,CAAA;IACnC;AACA,UAAMM,QAAQzD,SAAS0D,eAAe/C,QAAQG,YAAAA;AAC9C,QAAI,CAAC2C,OAAO;AACV,aAActB,eAAegB,YAAI,CAAA;IACnC;AACA,WAAchB,eAAeiB,YAAK/C,IAAIgD,KAAK;MAAEd,SAASkB,MAAMjB;MAAIc,UAAUlC;IAAqB,CAAA,CAAA,CAAA;EACjG;AAEA,SAAO;IACLtB,WAAW6D,YAAY5D,gBAAgB6D,0BAA0B5C,QAAAA;IACjElB,WAAW6D,YAAY5D,gBAAgB8D,wBAAwBnB,YAAAA;IAC/D5C,WAAW6D,YAAY5D,gBAAgB8D,wBAAwBN,sBAAAA;;AAEnE,CAAA,CAAA;",
6
+ "names": ["Effect", "Option", "Capability", "AppCapabilities", "AppSpace", "Paths", "Database", "Entity", "Key", "EID", "ClientCapabilities", "getPluginSettingsSectionPath", "meta", "makeModule", "fnUntraced", "client", "get", "Client", "capabilities", "Service", "resolver", "query", "gen", "dxn", "path", "profile", "key", "label", "type", "tryParse", "startsWith", "slice", "db", "ref", "makeRef", "object", "load", "pipe", "catchAll", "succeed", "typename", "getTypename", "getObjectPath", "spaceId", "id", "getLabel", "pathResolver", "qualifiedPath", "segments", "split", "getSpaceIdFromPath", "objectId", "length", "EntityId", "isValid", "none", "some", "make", "entityId", "bareEntityPathResolver", "includes", "space", "getActiveSpace", "contributes", "NavigationTargetResolver", "NavigationPathResolver"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SpaceOperation
3
- } from "./chunk-YY62663T.mjs";
4
- import "./chunk-K34BPPQE.mjs";
3
+ } from "./chunk-F2VJ6VBV.mjs";
4
+ import "./chunk-DSYEB2UN.mjs";
5
5
  import "./chunk-J5LGTIGS.mjs";
6
6
 
7
7
  // src/operations/open.ts
@@ -14,4 +14,4 @@ var open_default = handler;
14
14
  export {
15
15
  open_default as default
16
16
  };
17
- //# sourceMappingURL=open-CPWVZSI4.mjs.map
17
+ //# sourceMappingURL=open-RRYULTSY.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CREATE_OBJECT_DIALOG
3
- } from "./chunk-F5MESIRH.mjs";
3
+ } from "./chunk-2RPQHHD7.mjs";
4
4
  import {
5
5
  SpaceOperation
6
- } from "./chunk-YY62663T.mjs";
6
+ } from "./chunk-F2VJ6VBV.mjs";
7
7
  import {
8
8
  SpaceCapabilities
9
- } from "./chunk-K34BPPQE.mjs";
9
+ } from "./chunk-DSYEB2UN.mjs";
10
10
  import "./chunk-J5LGTIGS.mjs";
11
11
 
12
12
  // src/operations/open-create-object.ts
@@ -39,4 +39,4 @@ var open_create_object_default = handler;
39
39
  export {
40
40
  open_create_object_default as default
41
41
  };
42
- //# sourceMappingURL=open-create-object-4LN4PR6N.mjs.map
42
+ //# sourceMappingURL=open-create-object-BRUVFZSY.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  CREATE_SPACE_DIALOG
3
- } from "./chunk-F5MESIRH.mjs";
3
+ } from "./chunk-2RPQHHD7.mjs";
4
4
  import {
5
5
  SpaceOperation
6
- } from "./chunk-YY62663T.mjs";
7
- import "./chunk-K34BPPQE.mjs";
6
+ } from "./chunk-F2VJ6VBV.mjs";
7
+ import "./chunk-DSYEB2UN.mjs";
8
8
  import "./chunk-J5LGTIGS.mjs";
9
9
 
10
10
  // src/operations/open-create-space.ts
@@ -21,4 +21,4 @@ var open_create_space_default = handler;
21
21
  export {
22
22
  open_create_space_default as default
23
23
  };
24
- //# sourceMappingURL=open-create-space-VPAW3F2T.mjs.map
24
+ //# sourceMappingURL=open-create-space-ARLQWW65.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  IMPORT_SPACE_DIALOG
3
- } from "./chunk-F5MESIRH.mjs";
3
+ } from "./chunk-2RPQHHD7.mjs";
4
4
  import {
5
5
  SpaceOperation
6
- } from "./chunk-YY62663T.mjs";
7
- import "./chunk-K34BPPQE.mjs";
6
+ } from "./chunk-F2VJ6VBV.mjs";
7
+ import "./chunk-DSYEB2UN.mjs";
8
8
  import "./chunk-J5LGTIGS.mjs";
9
9
 
10
10
  // src/operations/open-import-space.ts
@@ -21,4 +21,4 @@ var open_import_space_default = handler;
21
21
  export {
22
22
  open_import_space_default as default
23
23
  };
24
- //# sourceMappingURL=open-import-space-VLQ5V55H.mjs.map
24
+ //# sourceMappingURL=open-import-space-65H57JXX.mjs.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  SpaceOperation
3
- } from "./chunk-YY62663T.mjs";
4
- import "./chunk-K34BPPQE.mjs";
3
+ } from "./chunk-F2VJ6VBV.mjs";
4
+ import "./chunk-DSYEB2UN.mjs";
5
5
  import "./chunk-J5LGTIGS.mjs";
6
6
 
7
7
  // src/operations/open-members.ts
8
8
  import * as Effect from "effect/Effect";
9
- import { LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
9
+ import { LayoutOperation, Paths } from "@dxos/app-toolkit";
10
10
  import { Operation } from "@dxos/compute";
11
11
  var handler = SpaceOperation.OpenMembers.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
12
12
  yield* Operation.invoke(LayoutOperation.Open, {
13
13
  subject: [
14
- `${getSpacePath(input.space.id)}/settings`
14
+ Paths.getSpacePath(input.space.id, "settings")
15
15
  ],
16
- workspace: getSpacePath(input.space.id)
16
+ workspace: Paths.getSpacePath(input.space.id)
17
17
  });
18
18
  })));
19
19
  var open_members_default = handler;
20
20
  export {
21
21
  open_members_default as default
22
22
  };
23
- //# sourceMappingURL=open-members-BEXOSSBS.mjs.map
23
+ //# sourceMappingURL=open-members-677P6KD3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/open-members.ts"],
4
+ "sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation, Paths } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.OpenMembers> = SpaceOperation.OpenMembers.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [Paths.getSpacePath(input.space.id, 'settings')],\n workspace: Paths.getSpacePath(input.space.id),\n });\n }),\n ),\n);\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,aAAa;AACvC,SAASC,iBAAiB;AAI1B,IAAMC,UAAoEC,eAAeC,YAAYC,KACnGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOH,UAAUI,OAAOC,gBAAgBC,MAAM;IAC5CC,SAAS;MAACC,MAAMC,aAAaN,MAAMO,MAAMC,IAAI,UAAA;;IAC7CC,WAAWJ,MAAMC,aAAaN,MAAMO,MAAMC,EAAE;EAC9C,CAAA;AACF,CAAA,CAAA,CAAA;AAGJ,IAAA,uBAAef;",
6
+ "names": ["Effect", "LayoutOperation", "Paths", "Operation", "handler", "SpaceOperation", "OpenMembers", "pipe", "Operation", "withHandler", "fnUntraced", "input", "invoke", "LayoutOperation", "Open", "subject", "Paths", "getSpacePath", "space", "id", "workspace"]
7
+ }
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  SpaceOperation
3
- } from "./chunk-YY62663T.mjs";
4
- import "./chunk-K34BPPQE.mjs";
3
+ } from "./chunk-F2VJ6VBV.mjs";
4
+ import "./chunk-DSYEB2UN.mjs";
5
5
  import "./chunk-J5LGTIGS.mjs";
6
6
 
7
7
  // src/operations/open-settings.ts
8
8
  import * as Effect from "effect/Effect";
9
- import { LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
9
+ import { LayoutOperation, Paths } from "@dxos/app-toolkit";
10
10
  import { Operation } from "@dxos/compute";
11
11
  var handler = SpaceOperation.OpenSettings.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
12
12
  yield* Operation.invoke(LayoutOperation.Open, {
13
13
  subject: [
14
- `${getSpacePath(input.space.id)}/settings/general`
14
+ Paths.getSpacePath(input.space.id, "settings", "general")
15
15
  ],
16
- workspace: getSpacePath(input.space.id)
16
+ workspace: Paths.getSpacePath(input.space.id)
17
17
  });
18
18
  })));
19
19
  var open_settings_default = handler;
20
20
  export {
21
21
  open_settings_default as default
22
22
  };
23
- //# sourceMappingURL=open-settings-RHDBW2K5.mjs.map
23
+ //# sourceMappingURL=open-settings-PRBSGO6D.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/open-settings.ts"],
4
+ "sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation, Paths } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { SpaceOperation } from './definitions';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.OpenSettings> = SpaceOperation.OpenSettings.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [Paths.getSpacePath(input.space.id, 'settings', 'general')],\n workspace: Paths.getSpacePath(input.space.id),\n });\n }),\n ),\n);\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,aAAa;AACvC,SAASC,iBAAiB;AAI1B,IAAMC,UAAqEC,eAAeC,aAAaC,KACrGC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOH,UAAUI,OAAOC,gBAAgBC,MAAM;IAC5CC,SAAS;MAACC,MAAMC,aAAaN,MAAMO,MAAMC,IAAI,YAAY,SAAA;;IACzDC,WAAWJ,MAAMC,aAAaN,MAAMO,MAAMC,EAAE;EAC9C,CAAA;AACF,CAAA,CAAA,CAAA;AAGJ,IAAA,wBAAef;",
6
+ "names": ["Effect", "LayoutOperation", "Paths", "Operation", "handler", "SpaceOperation", "OpenSettings", "pipe", "Operation", "withHandler", "fnUntraced", "input", "invoke", "LayoutOperation", "Open", "subject", "Paths", "getSpacePath", "space", "id", "workspace"]
7
+ }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  SpaceOperationHandlerSet
3
- } from "../chunk-B7DBIARR.mjs";
3
+ } from "../chunk-I5JXVBXX.mjs";
4
4
  import {
5
5
  SpaceOperation
6
- } from "../chunk-YY62663T.mjs";
7
- import "../chunk-K34BPPQE.mjs";
6
+ } from "../chunk-F2VJ6VBV.mjs";
7
+ import "../chunk-DSYEB2UN.mjs";
8
8
  import "../chunk-J5LGTIGS.mjs";
9
9
  export {
10
10
  SpaceOperation,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  SpaceOperationHandlerSet
3
- } from "./chunk-B7DBIARR.mjs";
3
+ } from "./chunk-I5JXVBXX.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-4RTSNTDC.mjs";
7
- import "./chunk-YY62663T.mjs";
8
- import "./chunk-K34BPPQE.mjs";
6
+ } from "./chunk-5ZZS3KMK.mjs";
7
+ import "./chunk-F2VJ6VBV.mjs";
8
+ import "./chunk-DSYEB2UN.mjs";
9
9
  import "./chunk-J5LGTIGS.mjs";
10
10
 
11
11
  // src/plugin.ts
@@ -9,7 +9,7 @@ import { AwaitingObject } from "#components";
9
9
  import { meta } from "#meta";
10
10
  import { SpaceCapabilities } from "#types";
11
11
  var react_root_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactRoot, {
12
- id: meta.id,
12
+ id: meta.profile.key,
13
13
  root: () => {
14
14
  const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);
15
15
  return ephemeral.awaiting ? /* @__PURE__ */ React.createElement(AwaitingObject, {
@@ -20,4 +20,4 @@ var react_root_default = Capability.makeModule(() => Effect.succeed(Capability.c
20
20
  export {
21
21
  react_root_default as default
22
22
  };
23
- //# sourceMappingURL=react-root-2DJPZQT4.mjs.map
23
+ //# sourceMappingURL=react-root-YLYRCSAZ.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 * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { useAtomCapability } from '@dxos/app-framework/ui';\n\nimport { AwaitingObject } from '#components';\nimport { meta } from '#meta';\nimport { SpaceCapabilities } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactRoot, {\n id: meta.id,\n root: () => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n return ephemeral.awaiting ? <AwaitingObject id={ephemeral.awaiting} /> : null;\n },\n }),\n ),\n);\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,yBAAyB;AAElC,SAASC,sBAAsB;AAC/B,SAASC,YAAY;AACrB,SAASC,yBAAyB;AAElC,IAAA,qBAAeJ,WAAWK,WAAW,MAC5BC,eACLN,WAAWO,YAAYR,aAAaS,WAAW;EAC7CC,IAAIN,KAAKM;EACTC,MAAM,MAAA;AACJ,UAAMC,YAAYV,kBAAkBG,kBAAkBQ,cAAc;AACpE,WAAOD,UAAUE,WAAW,sBAAA,cAACX,gBAAAA;MAAeO,IAAIE,UAAUE;SAAe;EAC3E;AACF,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "React", "Capabilities", "Capability", "useAtomCapability", "AwaitingObject", "meta", "SpaceCapabilities", "makeModule", "succeed", "contributes", "ReactRoot", "id", "root", "ephemeral", "EphemeralState", "awaiting"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { useAtomCapability } from '@dxos/app-framework/ui';\n\nimport { AwaitingObject } from '#components';\nimport { meta } from '#meta';\nimport { SpaceCapabilities } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactRoot, {\n id: meta.profile.key,\n root: () => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n return ephemeral.awaiting ? <AwaitingObject id={ephemeral.awaiting} /> : null;\n },\n }),\n ),\n);\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,yBAAyB;AAElC,SAASC,sBAAsB;AAC/B,SAASC,YAAY;AACrB,SAASC,yBAAyB;AAElC,IAAA,qBAAeJ,WAAWK,WAAW,MAC5BC,eACLN,WAAWO,YAAYR,aAAaS,WAAW;EAC7CC,IAAIN,KAAKO,QAAQC;EACjBC,MAAM,MAAA;AACJ,UAAMC,YAAYZ,kBAAkBG,kBAAkBU,cAAc;AACpE,WAAOD,UAAUE,WAAW,sBAAA,cAACb,gBAAAA;MAAeO,IAAII,UAAUE;SAAe;EAC3E;AACF,CAAA,CAAA,CAAA;",
6
+ "names": ["Effect", "React", "Capabilities", "Capability", "useAtomCapability", "AwaitingObject", "meta", "SpaceCapabilities", "makeModule", "succeed", "contributes", "ReactRoot", "id", "profile", "key", "root", "ephemeral", "EphemeralState", "awaiting"]
7
7
  }
@@ -1,11 +1,10 @@
1
1
  import {
2
2
  CREATE_OBJECT_DIALOG,
3
3
  CREATE_SPACE_DIALOG,
4
- ENTITY_RENAME_POPOVER,
5
4
  IMPORT_SPACE_DIALOG,
6
5
  JOIN_DIALOG,
7
- SPACE_RENAME_POPOVER
8
- } from "./chunk-F5MESIRH.mjs";
6
+ RENAME_POPOVER
7
+ } from "./chunk-2RPQHHD7.mjs";
9
8
  import "./chunk-J5LGTIGS.mjs";
10
9
 
11
10
  // src/capabilities/react-surface.tsx
@@ -14,9 +13,9 @@ import * as Option from "effect/Option";
14
13
  import React, { useCallback } from "react";
15
14
  import { Capabilities, Capability } from "@dxos/app-framework";
16
15
  import { Surface, useAtomCapability, useOperationInvoker } from "@dxos/app-framework/ui";
17
- import { RootCollectionAnnotation } from "@dxos/app-toolkit";
16
+ import { AppAnnotation } from "@dxos/app-toolkit";
18
17
  import { AppSurface, useActiveSpace, useTypeOptions } from "@dxos/app-toolkit/ui";
19
- import { Annotation, Collection, Database, Entity, Obj, Type } from "@dxos/echo";
18
+ import { Annotation, Collection, Database, Obj, Type } from "@dxos/echo";
20
19
  import { SchemaEx } from "@dxos/effect";
21
20
  import { SpaceState, getSpace, isSpace, useSpaces } from "@dxos/react-client/echo";
22
21
  import { Input } from "@dxos/react-ui";
@@ -24,12 +23,28 @@ import { SelectField } from "@dxos/react-ui-form";
24
23
  import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
25
24
  import { ViewAnnotation } from "@dxos/schema";
26
25
  import { SpaceSettings } from "#components";
27
- import { CollectionArticle, CollectionSection, CreateObjectDialog, CreateSpaceDialog, ImportSpaceDialog, InlineSyncStatus, JoinDialog, MembersContainer, MenuFooter, EntityRenamePopover, ObjectCardStack, ObjectProperties, RecordArticle, RelatedArticle, SchemaContainer, SmallPresenceLive, SpacePresence, SpaceRenamePopover, SpaceSettingsContainer, SyncStatus, ViewEditor } from "#containers";
26
+ import { CollectionArticle, CollectionSection, CreateObjectDialog, CreateSpaceDialog, ImportSpaceDialog, InlineSyncStatus, JoinDialog, MembersContainer, MenuFooter, ObjectCardStack, ObjectProperties, RecordArticle, RelatedArticle, RenamePopover, SchemaContainer, SmallPresenceLive, SpaceHomeArticle, SpaceHomeRecent, SpacePresence, SpaceSettingsContainer, SyncStatus, ViewEditor } from "#containers";
28
27
  import { meta } from "#meta";
29
28
  import { SpaceOperation } from "#operations";
30
- import { HueAnnotationId, IconAnnotationId, SpaceCapabilities, TypeInputOptionsAnnotationId } from "#types";
29
+ import { HueAnnotationId, IconAnnotationId, SpaceCapabilities, SpaceHomeContent, SPACE_HOME_NODE_TYPE, TypeInputOptionsAnnotationId } from "#types";
31
30
  var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({ createInvitationUrl }) {
32
31
  return Capability.contributes(Capabilities.ReactSurface, [
32
+ Surface.create({
33
+ id: "spaceHome",
34
+ filter: AppSurface.literal(AppSurface.Article, SPACE_HOME_NODE_TYPE),
35
+ component: ({ data, role }) => /* @__PURE__ */ React.createElement(SpaceHomeArticle, {
36
+ role,
37
+ attendableId: data.attendableId,
38
+ space: data.properties?.space
39
+ })
40
+ }),
41
+ Surface.create({
42
+ id: "spaceHomeRecent",
43
+ filter: Surface.makeFilter(SpaceHomeContent),
44
+ component: ({ data }) => /* @__PURE__ */ React.createElement(SpaceHomeRecent, {
45
+ space: data.space
46
+ })
47
+ }),
33
48
  Surface.create({
34
49
  id: "collectionFallback",
35
50
  position: "last",
@@ -49,7 +64,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
49
64
  }),
50
65
  Surface.create({
51
66
  id: "pluginSettings",
52
- filter: AppSurface.settings(AppSurface.Article, meta.id),
67
+ filter: AppSurface.settings(AppSurface.Article, meta.profile.key),
53
68
  component: () => {
54
69
  const spaces = useSpaces();
55
70
  const { invokePromise } = useOperationInvoker();
@@ -80,7 +95,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
80
95
  }),
81
96
  Surface.create({
82
97
  id: "spaceSettingsProperties",
83
- filter: AppSurface.literal(AppSurface.Article, `${meta.id}.general`),
98
+ filter: AppSurface.literal(AppSurface.Article, `${meta.profile.key}.general`),
84
99
  component: ({ ref }) => {
85
100
  const space = useActiveSpace();
86
101
  if (!space) {
@@ -94,7 +109,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
94
109
  Surface.create({
95
110
  id: "spaceSettingsMembers",
96
111
  position: "first",
97
- filter: AppSurface.literal(AppSurface.Article, `${meta.id}.members`),
112
+ filter: AppSurface.literal(AppSurface.Article, `${meta.profile.key}.members`),
98
113
  component: () => {
99
114
  const space = useActiveSpace();
100
115
  if (!space) {
@@ -108,7 +123,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
108
123
  }),
109
124
  Surface.create({
110
125
  id: "spaceSettingsSchema",
111
- filter: AppSurface.literal(AppSurface.Article, `${meta.id}.schema`),
126
+ filter: AppSurface.literal(AppSurface.Article, `${meta.profile.key}.schema`),
112
127
  component: () => {
113
128
  const space = useActiveSpace();
114
129
  if (!space) {
@@ -121,16 +136,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
121
136
  }),
122
137
  Surface.create({
123
138
  id: "selectedObjects",
124
- role: "article",
125
- filter: (data) => {
126
- if (data.subject !== "selected-objects" || !Obj.isObject(data.companionTo)) {
127
- return false;
128
- }
129
- const type = Obj.getType(data.companionTo);
130
- const path = type ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => []) : [];
131
- const viewTarget = path.length > 0 ? ViewAnnotation.tryGetTargetAlongPath(data.companionTo, path) : void 0;
132
- return !!viewTarget;
133
- },
139
+ filter: AppSurface.allOf(AppSurface.literal(AppSurface.Article, "selected-objects"), AppSurface.companion(AppSurface.Article, Obj.isObject)),
134
140
  // TODO(burdon): Replace with mosaic.
135
141
  component: ({ data, ref }) => {
136
142
  const type = Obj.getType(data.companionTo);
@@ -169,11 +175,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
169
175
  }),
170
176
  Surface.create({
171
177
  id: "createInitialSpaceFormHue",
172
- role: "form-input",
173
- filter: (data) => {
174
- const annotation = SchemaEx.findAnnotation(data.schema.ast, HueAnnotationId);
175
- return !!annotation;
176
- },
178
+ filter: AppSurface.formInputBySchema((ast) => !!SchemaEx.findAnnotation(ast, HueAnnotationId)),
177
179
  component: ({ data, ...inputProps }) => {
178
180
  const ast = data.fieldPropertyAst;
179
181
  if (!ast) {
@@ -198,11 +200,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
198
200
  }),
199
201
  Surface.create({
200
202
  id: "createInitialSpaceFormIcon",
201
- role: "form-input",
202
- filter: (data) => {
203
- const annotation = SchemaEx.findAnnotation(data.schema.ast, IconAnnotationId);
204
- return !!annotation;
205
- },
203
+ filter: AppSurface.formInputBySchema((ast) => !!SchemaEx.findAnnotation(ast, IconAnnotationId)),
206
204
  component: ({ data, ...inputProps }) => {
207
205
  const ast = data.fieldPropertyAst;
208
206
  if (!ast) {
@@ -227,16 +225,9 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
227
225
  }),
228
226
  Surface.create({
229
227
  id: "typenameFormInput",
230
- role: "form-input",
231
- filter: (data) => {
232
- if (data.prop !== "typename") {
233
- return false;
234
- }
235
- const annotation = SchemaEx.findAnnotation(data.schema.ast, TypeInputOptionsAnnotationId);
236
- return !!annotation;
237
- },
238
- component: ({ data: { schema, target, fieldPropertyAst }, ...inputProps }) => {
239
- const ast = fieldPropertyAst;
228
+ filter: AppSurface.formInput((data) => data.prop === "typename" && !!SchemaEx.findAnnotation(data.schema.ast, TypeInputOptionsAnnotationId)),
229
+ component: ({ data, ...inputProps }) => {
230
+ const ast = data.fieldPropertyAst;
240
231
  if (!ast) {
241
232
  return null;
242
233
  }
@@ -244,8 +235,9 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
244
235
  ...inputProps,
245
236
  type: ast
246
237
  };
247
- const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
248
- const annotation = SchemaEx.findAnnotation(schema.ast, TypeInputOptionsAnnotationId);
238
+ const target = data.target;
239
+ const db = Database.isDatabase(target) ? target : Obj.isObject(target) ? Obj.getDatabase(target) : void 0;
240
+ const annotation = SchemaEx.findAnnotation(data.schema.ast, TypeInputOptionsAnnotationId);
249
241
  const options = useTypeOptions({
250
242
  db,
251
243
  annotation
@@ -258,8 +250,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
258
250
  }),
259
251
  Surface.create({
260
252
  id: "objectProperties",
261
- role: "object-properties",
262
- filter: (data) => {
253
+ filter: Surface.makeFilter(AppSurface.ObjectProperties, (data) => {
263
254
  if (!Obj.isObject(data.subject)) {
264
255
  return false;
265
256
  }
@@ -267,7 +258,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
267
258
  const path = type ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => []) : [];
268
259
  const viewTarget = path.length > 0 ? ViewAnnotation.tryGetTargetAlongPath(data.subject, path) : void 0;
269
260
  return !!viewTarget;
270
- },
261
+ }),
271
262
  component: ({ data }) => {
272
263
  const type = Obj.getType(data.subject);
273
264
  const path = type ? Option.getOrElse(ViewAnnotation.get(Type.getSchema(type)), () => []) : [];
@@ -281,19 +272,10 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
281
272
  }
282
273
  }),
283
274
  Surface.create({
284
- id: SPACE_RENAME_POPOVER,
285
- role: "popover",
286
- filter: (data) => data.component === SPACE_RENAME_POPOVER && isSpace(data.props),
287
- component: ({ data }) => /* @__PURE__ */ React.createElement(SpaceRenamePopover, {
288
- space: data.props
289
- })
290
- }),
291
- Surface.create({
292
- id: ENTITY_RENAME_POPOVER,
293
- role: "popover",
294
- filter: (data) => data.component === ENTITY_RENAME_POPOVER && Entity.isEntity(data.props),
295
- component: ({ data }) => /* @__PURE__ */ React.createElement(EntityRenamePopover, {
296
- entity: data.props
275
+ id: RENAME_POPOVER,
276
+ filter: AppSurface.component(AppSurface.Popover, RENAME_POPOVER),
277
+ component: ({ data }) => /* @__PURE__ */ React.createElement(RenamePopover, {
278
+ subject: data.props
297
279
  })
298
280
  }),
299
281
  Surface.create({
@@ -305,8 +287,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
305
287
  }),
306
288
  Surface.create({
307
289
  id: "navtreePresence",
308
- role: "navtree-item-end",
309
- filter: (data) => typeof data.id === "string" && Obj.isObject(data.subject),
290
+ filter: AppSurface.subject(AppSurface.NavtreeItemEnd, Obj.isObject),
310
291
  component: ({ data }) => {
311
292
  const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);
312
293
  return /* @__PURE__ */ React.createElement(SmallPresenceLive, {
@@ -319,9 +300,8 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
319
300
  // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
320
301
  Surface.create({
321
302
  id: "navtreePresenceFallback",
322
- role: "navtree-item-end",
323
303
  position: "last",
324
- filter: (data) => typeof data.id === "string",
304
+ filter: Surface.makeFilter(AppSurface.NavtreeItemEnd),
325
305
  component: ({ data }) => /* @__PURE__ */ React.createElement(SmallPresenceLive, {
326
306
  id: data.id,
327
307
  open: data.open
@@ -330,8 +310,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
330
310
  // TODO(wittjosiah): Broken?
331
311
  Surface.create({
332
312
  id: "navtreeSyncStatus",
333
- role: "navtree-item-end",
334
- filter: (data) => isSpace(data.subject),
313
+ filter: AppSurface.subject(AppSurface.NavtreeItemEnd, isSpace),
335
314
  component: ({ data }) => /* @__PURE__ */ React.createElement(InlineSyncStatus, {
336
315
  space: data.subject,
337
316
  open: data.open
@@ -339,12 +318,11 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
339
318
  }),
340
319
  Surface.create({
341
320
  id: "navbarPresence",
342
- role: "navbar-end",
343
321
  position: "first",
344
- filter: (data) => isSpace(data.subject) || Obj.isObject(data.subject),
322
+ filter: AppSurface.subject(AppSurface.NavbarEnd, (value) => isSpace(value) || Obj.isObject(value)),
345
323
  component: ({ data }) => {
346
324
  const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);
347
- const object = isSpace(data.subject) ? data.subject.state.get() === SpaceState.SPACE_READY ? space && Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target : void 0 : data.subject;
325
+ const object = isSpace(data.subject) ? data.subject.state.get() === SpaceState.SPACE_READY ? space && Annotation.get(space.properties, AppAnnotation.RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target : void 0 : data.subject;
348
326
  return object ? /* @__PURE__ */ React.createElement(SpacePresence, {
349
327
  object
350
328
  }) : null;
@@ -359,7 +337,7 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
359
337
  }),
360
338
  Surface.create({
361
339
  id: "syncStatus",
362
- role: "status-indicator",
340
+ filter: Surface.makeFilter(AppSurface.StatusIndicator),
363
341
  component: () => /* @__PURE__ */ React.createElement(SyncStatus, null)
364
342
  })
365
343
  ]);
@@ -367,4 +345,4 @@ var react_surface_default = Capability.makeModule(Effect.fnUntraced(function* ({
367
345
  export {
368
346
  react_surface_default as default
369
347
  };
370
- //# sourceMappingURL=react-surface-LYCTOQLY.mjs.map
348
+ //# sourceMappingURL=react-surface-5EQ6X4CL.mjs.map