@dxos/plugin-space 0.9.0 → 0.9.1-staging.ee54ba693a

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 (466) 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-5454N3FJ.mjs} +29 -14
  6. package/dist/lib/neutral/CreateObjectDialog-5454N3FJ.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/DefaultProperties-5SAWQC6I.mjs +58 -0
  10. package/dist/lib/neutral/DefaultProperties-5SAWQC6I.mjs.map +7 -0
  11. package/dist/lib/neutral/{ImportSpaceDialog-7GKV4OTF.mjs → ImportSpaceDialog-CSSRTFAO.mjs} +4 -4
  12. package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs.map +7 -0
  13. package/dist/lib/neutral/{InlineSyncStatus-TBJKZCH7.mjs → InlineSyncStatus-UOUTAPCU.mjs} +4 -4
  14. package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs.map +7 -0
  15. package/dist/lib/neutral/{JoinDialog-SSFKRFTJ.mjs → JoinDialog-ATNUCNL2.mjs} +13 -30
  16. package/dist/lib/neutral/JoinDialog-ATNUCNL2.mjs.map +7 -0
  17. package/dist/lib/neutral/{MembersContainer-KMCQDWCS.mjs → MembersContainer-C4ZTP6ZW.mjs} +13 -9
  18. package/dist/lib/neutral/MembersContainer-C4ZTP6ZW.mjs.map +7 -0
  19. package/dist/lib/neutral/{MenuFooter-5JT7V5FZ.mjs → MenuFooter-FWE5LFM4.mjs} +6 -6
  20. package/dist/lib/neutral/MenuFooter-FWE5LFM4.mjs.map +7 -0
  21. package/dist/lib/neutral/{ObjectCardStack-IXNU3HEN.mjs → ObjectCardStack-DHVDRNRK.mjs} +4 -4
  22. package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs.map +7 -0
  23. package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs +102 -0
  24. package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs.map +7 -0
  25. package/dist/lib/neutral/{RelatedArticle-YDNGUDAJ.mjs → RelatedArticle-Z777WVDW.mjs} +11 -10
  26. package/dist/lib/neutral/RelatedArticle-Z777WVDW.mjs.map +7 -0
  27. package/dist/lib/neutral/RenamePopover-AZT2KPOF.mjs +104 -0
  28. package/dist/lib/neutral/RenamePopover-AZT2KPOF.mjs.map +7 -0
  29. package/dist/lib/neutral/{SchemaContainer-Q4BP6X2M.mjs → SchemaContainer-4GJKQBXM.mjs} +9 -5
  30. package/dist/lib/neutral/SchemaContainer-4GJKQBXM.mjs.map +7 -0
  31. package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs → SmallPresenceLive-FW3AMEY5.mjs} +2 -2
  32. package/dist/lib/neutral/SpaceHomeArticle-Y47TLZ72.mjs +78 -0
  33. package/dist/lib/neutral/SpaceHomeArticle-Y47TLZ72.mjs.map +7 -0
  34. package/dist/lib/neutral/SpaceHomeRecent-S57AO3EV.mjs +89 -0
  35. package/dist/lib/neutral/SpaceHomeRecent-S57AO3EV.mjs.map +7 -0
  36. package/dist/lib/neutral/SpacePlugin.mjs +1 -1
  37. package/dist/lib/neutral/SpacePlugin.node.mjs +4 -4
  38. package/dist/lib/neutral/SpacePlugin.node.mjs.map +3 -3
  39. package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs → SpacePresence-T37WH43Y.mjs} +2 -2
  40. package/dist/lib/neutral/SpaceSettings-6CZF7GEO.mjs +60 -0
  41. package/dist/lib/neutral/SpaceSettings-6CZF7GEO.mjs.map +7 -0
  42. package/dist/lib/neutral/{SpaceSettingsContainer-IB34TEOB.mjs → SpaceSettingsContainer-72CJWELM.mjs} +44 -41
  43. package/dist/lib/neutral/SpaceSettingsContainer-72CJWELM.mjs.map +7 -0
  44. package/dist/lib/neutral/{SyncStatus-CWOXWDDZ.mjs → SyncStatus-J7CHLO5O.mjs} +3 -3
  45. package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs.map +7 -0
  46. package/dist/lib/neutral/TypeCollectionArticle-W76ADS2G.mjs +143 -0
  47. package/dist/lib/neutral/TypeCollectionArticle-W76ADS2G.mjs.map +7 -0
  48. package/dist/lib/neutral/{add-object-QYOMCBJA.mjs → add-object-H2N4AOQJ.mjs} +16 -16
  49. package/dist/lib/neutral/add-object-H2N4AOQJ.mjs.map +7 -0
  50. package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs → add-relation-BGTLART5.mjs} +3 -3
  51. package/dist/lib/neutral/{add-type-CZVKSEIW.mjs → add-type-JIDLRANR.mjs} +3 -3
  52. package/dist/lib/neutral/{add-type-CZVKSEIW.mjs.map → add-type-JIDLRANR.mjs.map} +1 -1
  53. package/dist/lib/neutral/{app-graph-builder-SQGCUCDO.mjs → app-graph-builder-7H2KOD4B.mjs} +284 -203
  54. package/dist/lib/neutral/app-graph-builder-7H2KOD4B.mjs.map +7 -0
  55. package/dist/lib/neutral/capabilities/index.mjs +14 -16
  56. package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
  57. package/dist/lib/neutral/capabilities/node.mjs +3 -3
  58. package/dist/lib/neutral/{chunk-7WUJENBF.mjs → chunk-52ASDNRA.mjs} +5 -6
  59. package/dist/lib/neutral/chunk-52ASDNRA.mjs.map +7 -0
  60. package/dist/lib/neutral/chunk-5ZZS3KMK.mjs +46 -0
  61. package/dist/lib/neutral/chunk-5ZZS3KMK.mjs.map +7 -0
  62. package/dist/lib/neutral/chunk-C2ULK22J.mjs +17 -0
  63. package/dist/lib/neutral/chunk-C2ULK22J.mjs.map +7 -0
  64. package/dist/lib/neutral/{chunk-K34BPPQE.mjs → chunk-F5KLUP2P.mjs} +35 -18
  65. package/dist/lib/neutral/chunk-F5KLUP2P.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-JHZGRYGS.mjs → chunk-G2KHP7FX.mjs} +2 -2
  67. package/dist/lib/neutral/{chunk-JHZGRYGS.mjs.map → chunk-G2KHP7FX.mjs.map} +2 -2
  68. package/dist/lib/neutral/{chunk-YY62663T.mjs → chunk-LMUG6PEJ.mjs} +4 -5
  69. package/dist/lib/neutral/chunk-LMUG6PEJ.mjs.map +7 -0
  70. package/dist/lib/neutral/{chunk-EEXRKYOD.mjs → chunk-RAAHDTVF.mjs} +9 -5
  71. package/dist/lib/neutral/chunk-RAAHDTVF.mjs.map +7 -0
  72. package/dist/lib/neutral/{chunk-BBQR23DW.mjs → chunk-SPWAMXNR.mjs} +105 -128
  73. package/dist/lib/neutral/chunk-SPWAMXNR.mjs.map +7 -0
  74. package/dist/lib/neutral/chunk-U5WTDOMV.mjs +8 -0
  75. package/dist/lib/neutral/chunk-V7JALUM3.mjs +9 -0
  76. package/dist/lib/neutral/chunk-V7JALUM3.mjs.map +7 -0
  77. package/dist/lib/neutral/{close-FGQN37PK.mjs → close-5WEQZRNK.mjs} +3 -3
  78. package/dist/lib/neutral/components/index.mjs +22 -23
  79. package/dist/lib/neutral/components/index.mjs.map +4 -4
  80. package/dist/lib/neutral/constants.mjs +16 -0
  81. package/dist/lib/neutral/constants.mjs.map +7 -0
  82. package/dist/lib/neutral/containers/index.mjs +29 -23
  83. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  84. package/dist/lib/neutral/{create-EPIFSRJA.mjs → create-QZ47FHQU.mjs} +7 -7
  85. package/dist/lib/neutral/create-QZ47FHQU.mjs.map +7 -0
  86. package/dist/lib/neutral/{create-object-22WUOWZQ.mjs → create-object-ZU6FZW5X.mjs} +1 -6
  87. package/dist/lib/neutral/create-object-ZU6FZW5X.mjs.map +7 -0
  88. package/dist/lib/neutral/{delete-LIA5M3WI.mjs → delete-SPCU2VFM.mjs} +3 -3
  89. package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs → delete-field-TAKJVEAD.mjs} +3 -3
  90. package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs → duplicate-object-BUPZOO6S.mjs} +3 -3
  91. package/dist/lib/neutral/{export-space-VWJHVXWF.mjs → export-space-S5SCAL4M.mjs} +3 -3
  92. package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs → get-share-link-CLM5IQRL.mjs} +4 -4
  93. package/dist/lib/neutral/hooks/index.mjs +16 -4
  94. package/dist/lib/neutral/hooks/index.mjs.map +3 -3
  95. package/dist/lib/neutral/{identity-created-57RML5XT.mjs → identity-created-BEYMLBK4.mjs} +5 -5
  96. package/dist/lib/neutral/identity-created-BEYMLBK4.mjs.map +7 -0
  97. package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs → import-space-LJQK3KT7.mjs} +3 -3
  98. package/dist/lib/neutral/index.mjs +16 -6
  99. package/dist/lib/neutral/join-FSODYIOC.mjs +54 -0
  100. package/dist/lib/neutral/join-FSODYIOC.mjs.map +7 -0
  101. package/dist/lib/neutral/meta.json +1 -1
  102. package/dist/lib/neutral/meta.mjs +1 -1
  103. package/dist/lib/neutral/{migrate-G7I52UKD.mjs → migrate-WHM6LU7L.mjs} +4 -4
  104. package/dist/lib/neutral/{migrate-G7I52UKD.mjs.map → migrate-WHM6LU7L.mjs.map} +3 -3
  105. package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs → navigation-handler-ZF7MV2HL.mjs} +16 -10
  106. package/dist/lib/neutral/navigation-handler-ZF7MV2HL.mjs.map +7 -0
  107. package/dist/lib/neutral/{navigation-resolver-IFVQRCGU.mjs → navigation-resolver-KBESOSWU.mjs} +11 -11
  108. package/dist/lib/neutral/navigation-resolver-KBESOSWU.mjs.map +7 -0
  109. package/dist/lib/neutral/{open-CPWVZSI4.mjs → open-JCXTL3SK.mjs} +3 -3
  110. package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs → open-create-object-WAIAU7TA.mjs} +6 -6
  111. package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs → open-create-space-VU47FWPZ.mjs} +6 -6
  112. package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs → open-import-space-GUHIEWYB.mjs} +6 -6
  113. package/dist/lib/neutral/{open-members-BEXOSSBS.mjs → open-members-MLLBHKUU.mjs} +6 -6
  114. package/dist/lib/neutral/open-members-MLLBHKUU.mjs.map +7 -0
  115. package/dist/lib/neutral/{open-settings-RHDBW2K5.mjs → open-settings-DTPZF4U4.mjs} +6 -6
  116. package/dist/lib/neutral/open-settings-DTPZF4U4.mjs.map +7 -0
  117. package/dist/lib/neutral/operations/index.mjs +3 -3
  118. package/dist/lib/neutral/plugin.mjs +4 -4
  119. package/dist/lib/neutral/{react-root-2DJPZQT4.mjs → react-root-YLYRCSAZ.mjs} +2 -2
  120. package/dist/lib/neutral/{react-root-2DJPZQT4.mjs.map → react-root-YLYRCSAZ.mjs.map} +3 -3
  121. package/dist/lib/neutral/{react-surface-LYCTOQLY.mjs → react-surface-LRA7GIFN.mjs} +77 -80
  122. package/dist/lib/neutral/react-surface-LRA7GIFN.mjs.map +7 -0
  123. package/dist/lib/neutral/{remove-objects-OWDMA4IF.mjs → remove-objects-WEO66EDS.mjs} +5 -5
  124. package/dist/lib/neutral/remove-objects-WEO66EDS.mjs.map +7 -0
  125. package/dist/lib/neutral/{rename-SR6BBSPU.mjs → rename-Q6UNCBIM.mjs} +9 -8
  126. package/dist/lib/neutral/rename-Q6UNCBIM.mjs.map +7 -0
  127. package/dist/lib/neutral/{rename-object-5H6E5AOX.mjs → rename-object-2UCEGU7U.mjs} +9 -8
  128. package/dist/lib/neutral/rename-object-2UCEGU7U.mjs.map +7 -0
  129. package/dist/lib/neutral/{repair-PSYRVSJ6.mjs → repair-HMH476U3.mjs} +3 -3
  130. package/dist/lib/neutral/repair-HMH476U3.mjs.map +7 -0
  131. package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs → restore-field-6CQAFOXY.mjs} +3 -3
  132. package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs → restore-objects-3VINLP7C.mjs} +3 -3
  133. package/dist/lib/neutral/{settings-Q32EQCHX.mjs → settings-5IBSYBVU.mjs} +3 -3
  134. package/dist/lib/neutral/{settings-Q32EQCHX.mjs.map → settings-5IBSYBVU.mjs.map} +3 -3
  135. package/dist/lib/neutral/{share-5Y4NZA75.mjs → share-A4WPILNF.mjs} +3 -3
  136. package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs → snapshot-HBYMAPA7.mjs} +3 -3
  137. package/dist/lib/neutral/{spaces-ready-GBF72QJH.mjs → spaces-ready-GWMSU72V.mjs} +12 -12
  138. package/dist/lib/neutral/spaces-ready-GWMSU72V.mjs.map +7 -0
  139. package/dist/lib/neutral/{state-DPBOZRAW.mjs → state-KMH2NUAL.mjs} +2 -2
  140. package/dist/lib/neutral/state-KMH2NUAL.mjs.map +7 -0
  141. package/dist/lib/neutral/testing.mjs +1 -1
  142. package/dist/lib/neutral/translations.mjs +18 -8
  143. package/dist/lib/neutral/translations.mjs.map +3 -3
  144. package/dist/lib/neutral/types/index.mjs +9 -3
  145. package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs → undo-mappings-P43EAUGI.mjs} +5 -5
  146. package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs.map → undo-mappings-P43EAUGI.mjs.map} +3 -3
  147. package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs → wait-for-object-U6P2NNWY.mjs} +3 -3
  148. package/dist/types/dx.config.d.ts +28 -0
  149. package/dist/types/dx.config.d.ts.map +1 -0
  150. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  151. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  152. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +19 -25
  153. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
  154. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -1
  155. package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts +15 -33
  156. package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -1
  157. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +3 -2
  158. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -1
  159. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +1 -5
  160. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
  161. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +29 -4
  162. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
  163. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
  164. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
  165. package/dist/types/src/capabilities/create-object.d.ts +1 -33
  166. package/dist/types/src/capabilities/create-object.d.ts.map +1 -1
  167. package/dist/types/src/capabilities/index.d.ts +10 -54
  168. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  169. package/dist/types/src/capabilities/navigation-handler/index.d.ts +1 -1
  170. package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -1
  171. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +1 -2
  172. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -1
  173. package/dist/types/src/capabilities/navigation-resolver.d.ts +1 -2
  174. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
  175. package/dist/types/src/capabilities/node.d.ts +3 -33
  176. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  177. package/dist/types/src/capabilities/react-root.d.ts +1 -5
  178. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  179. package/dist/types/src/capabilities/react-surface.d.ts +2 -2
  180. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  181. package/dist/types/src/capabilities/repair.d.ts +1 -2
  182. package/dist/types/src/capabilities/repair.d.ts.map +1 -1
  183. package/dist/types/src/capabilities/settings.d.ts +1 -3
  184. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  185. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  186. package/dist/types/src/capabilities/state.d.ts +1 -13
  187. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  188. package/dist/types/src/capabilities/undo-mappings.d.ts +2 -3
  189. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -1
  190. package/dist/types/src/commands/database/add.d.ts.map +1 -1
  191. package/dist/types/src/commands/queue/query.d.ts.map +1 -1
  192. package/dist/types/src/components/ForeignKeys/ForeignKeys.d.ts.map +1 -1
  193. package/dist/types/src/components/index.d.ts +2 -2
  194. package/dist/types/src/components/index.d.ts.map +1 -1
  195. package/dist/types/src/constants.d.ts +1 -2
  196. package/dist/types/src/constants.d.ts.map +1 -1
  197. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  198. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +142 -52
  199. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  200. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
  201. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +142 -52
  202. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
  203. package/dist/types/src/containers/DefaultProperties/DefaultProperties.d.ts +15 -0
  204. package/dist/types/src/containers/DefaultProperties/DefaultProperties.d.ts.map +1 -0
  205. package/dist/types/src/containers/DefaultProperties/index.d.ts +2 -0
  206. package/dist/types/src/containers/DefaultProperties/index.d.ts.map +1 -0
  207. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  208. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +142 -52
  209. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
  210. package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts.map +1 -1
  211. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
  212. package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts.map +1 -1
  213. package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +16 -0
  214. package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -0
  215. package/dist/types/src/containers/RenamePopover/index.d.ts +3 -0
  216. package/dist/types/src/containers/RenamePopover/index.d.ts.map +1 -0
  217. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -1
  218. package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts +15 -0
  219. package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts.map +1 -0
  220. package/dist/types/src/containers/SpaceHomeArticle/index.d.ts +2 -0
  221. package/dist/types/src/containers/{ObjectProperties → SpaceHomeArticle}/index.d.ts.map +1 -1
  222. package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts +22 -0
  223. package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -0
  224. package/dist/types/src/containers/SpaceHomeRecent/index.d.ts +2 -0
  225. package/dist/types/src/containers/SpaceHomeRecent/index.d.ts.map +1 -0
  226. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
  227. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +142 -52
  228. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  229. package/dist/types/src/containers/SpacePresence/index.d.ts +1 -1
  230. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
  231. package/dist/types/src/containers/SpaceSettings/SpaceSettings.d.ts +11 -0
  232. package/dist/types/src/containers/SpaceSettings/SpaceSettings.d.ts.map +1 -0
  233. package/dist/types/src/{components → containers}/SpaceSettings/SpaceSettings.stories.d.ts +143 -53
  234. package/dist/types/src/{components → containers}/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
  235. package/dist/types/src/{components → containers}/SpaceSettings/index.d.ts.map +1 -1
  236. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +142 -52
  237. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  238. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +142 -52
  239. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  240. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.d.ts +16 -0
  241. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.d.ts.map +1 -0
  242. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.d.ts +21 -0
  243. package/dist/types/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.d.ts.map +1 -0
  244. package/dist/types/src/containers/TypeCollectionArticle/index.d.ts +2 -0
  245. package/dist/types/src/containers/TypeCollectionArticle/index.d.ts.map +1 -0
  246. package/dist/types/src/containers/index.d.ts +7 -3
  247. package/dist/types/src/containers/index.d.ts.map +1 -1
  248. package/dist/types/src/errors.d.ts +33 -0
  249. package/dist/types/src/errors.d.ts.map +1 -0
  250. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  251. package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -1
  252. package/dist/types/src/index.d.ts +1 -0
  253. package/dist/types/src/index.d.ts.map +1 -1
  254. package/dist/types/src/meta.d.ts +32 -2
  255. package/dist/types/src/meta.d.ts.map +1 -1
  256. package/dist/types/src/operations/add-object.d.ts.map +1 -1
  257. package/dist/types/src/operations/definitions.d.ts +9 -37
  258. package/dist/types/src/operations/definitions.d.ts.map +1 -1
  259. package/dist/types/src/operations/helpers.d.ts.map +1 -1
  260. package/dist/types/src/operations/join.d.ts.map +1 -1
  261. package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
  262. package/dist/types/src/operations/rename-object.d.ts.map +1 -1
  263. package/dist/types/src/operations/rename.d.ts.map +1 -1
  264. package/dist/types/src/translations.d.ts +142 -52
  265. package/dist/types/src/translations.d.ts.map +1 -1
  266. package/dist/types/src/types/Settings.d.ts +3 -1
  267. package/dist/types/src/types/Settings.d.ts.map +1 -1
  268. package/dist/types/src/types/capabilities.d.ts +1 -1
  269. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  270. package/dist/types/src/types/events.d.ts.map +1 -1
  271. package/dist/types/src/types/form.d.ts +7 -1
  272. package/dist/types/src/types/form.d.ts.map +1 -1
  273. package/dist/types/src/types/index.d.ts +1 -0
  274. package/dist/types/src/types/index.d.ts.map +1 -1
  275. package/dist/types/src/types/surface.d.ts +26 -0
  276. package/dist/types/src/types/surface.d.ts.map +1 -0
  277. package/dist/types/src/types/types.d.ts +7 -0
  278. package/dist/types/src/types/types.d.ts.map +1 -1
  279. package/dist/types/src/util.d.ts.map +1 -1
  280. package/dist/types/tsconfig.tsbuildinfo +1 -1
  281. package/dx.config.ts +35 -0
  282. package/package.json +71 -59
  283. package/src/SpacePlugin.test.ts +1 -1
  284. package/src/SpacePlugin.ts +4 -10
  285. package/src/capabilities/app-graph-builder/extensions/collections.ts +82 -69
  286. package/src/capabilities/app-graph-builder/extensions/companions.ts +6 -5
  287. package/src/capabilities/app-graph-builder/extensions/database.ts +118 -91
  288. package/src/capabilities/app-graph-builder/extensions/settings.ts +17 -14
  289. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +13 -9
  290. package/src/capabilities/app-graph-builder/extensions/shared.ts +5 -23
  291. package/src/capabilities/app-graph-builder/extensions/spaces.ts +78 -29
  292. package/src/capabilities/create-object.ts +0 -5
  293. package/src/capabilities/identity-created.ts +4 -4
  294. package/src/capabilities/index.ts +0 -1
  295. package/src/capabilities/navigation-handler/navigation-handler.ts +14 -4
  296. package/src/capabilities/navigation-resolver.ts +13 -20
  297. package/src/capabilities/react-root.tsx +1 -1
  298. package/src/capabilities/react-surface.tsx +95 -99
  299. package/src/capabilities/repair.ts +4 -2
  300. package/src/capabilities/settings.ts +2 -2
  301. package/src/capabilities/spaces-ready.ts +9 -16
  302. package/src/capabilities/state.ts +1 -1
  303. package/src/capabilities/undo-mappings.ts +3 -3
  304. package/src/commands/database/add.ts +4 -2
  305. package/src/commands/queue/query.ts +4 -3
  306. package/src/components/AwaitingObject/AwaitingObject.tsx +1 -1
  307. package/src/components/CreateObjectPanel/CreateObjectPanel.tsx +2 -2
  308. package/src/components/ForeignKeys/ForeignKeys.tsx +21 -20
  309. package/src/components/index.ts +3 -3
  310. package/src/constants.ts +5 -6
  311. package/src/containers/CollectionArticle/CollectionArticle.tsx +10 -6
  312. package/src/containers/CollectionSection/CollectionSection.tsx +1 -1
  313. package/src/containers/CreateObjectDialog/CreateObjectDialog.stories.tsx +1 -1
  314. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +48 -10
  315. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -5
  316. package/src/containers/DefaultProperties/DefaultProperties.tsx +69 -0
  317. package/src/containers/DefaultProperties/index.ts +5 -0
  318. package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +3 -3
  319. package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +3 -3
  320. package/src/containers/JoinDialog/JoinDialog.tsx +14 -25
  321. package/src/containers/MembersContainer/MembersContainer.tsx +42 -38
  322. package/src/containers/MenuFooter/MenuFooter.tsx +3 -3
  323. package/src/containers/ObjectCardStack/ObjectCardStack.tsx +3 -3
  324. package/src/containers/RecordArticle/RecordArticle.tsx +67 -8
  325. package/src/containers/RelatedArticle/RelatedArticle.tsx +18 -15
  326. package/src/containers/RenamePopover/RenamePopover.tsx +125 -0
  327. package/src/containers/RenamePopover/index.ts +6 -0
  328. package/src/containers/SchemaContainer/SchemaContainer.tsx +22 -18
  329. package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +100 -0
  330. package/src/containers/SpaceHomeArticle/index.ts +5 -0
  331. package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +103 -0
  332. package/src/containers/SpaceHomeRecent/index.ts +5 -0
  333. package/src/containers/SpacePresence/SpacePresence.tsx +23 -21
  334. package/src/containers/SpacePresence/index.ts +1 -1
  335. package/src/{components → containers}/SpaceSettings/SpaceSettings.stories.tsx +1 -1
  336. package/src/containers/SpaceSettings/SpaceSettings.tsx +75 -0
  337. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +120 -111
  338. package/src/containers/SyncStatus/SyncStatus.tsx +2 -2
  339. package/src/containers/TypeCollectionArticle/TypeCollectionArticle.stories.tsx +116 -0
  340. package/src/containers/TypeCollectionArticle/TypeCollectionArticle.tsx +162 -0
  341. package/src/containers/TypeCollectionArticle/index.ts +5 -0
  342. package/src/containers/index.ts +7 -3
  343. package/src/errors.ts +11 -0
  344. package/src/hooks/useInputSurfaceLookup.tsx +3 -2
  345. package/src/hooks/useRelatedObjects.ts +13 -1
  346. package/src/index.ts +1 -0
  347. package/src/meta.ts +2 -27
  348. package/src/operations/add-object.ts +12 -18
  349. package/src/operations/add-type.ts +1 -1
  350. package/src/operations/create.ts +4 -4
  351. package/src/operations/definitions.ts +2 -3
  352. package/src/operations/helpers.ts +1 -1
  353. package/src/operations/join.ts +19 -0
  354. package/src/operations/migrate.ts +1 -1
  355. package/src/operations/open-members.ts +3 -3
  356. package/src/operations/open-settings.ts +3 -3
  357. package/src/operations/remove-objects.ts +3 -2
  358. package/src/operations/rename-object.ts +3 -2
  359. package/src/operations/rename.ts +3 -2
  360. package/src/translations.ts +18 -7
  361. package/src/types/Settings.ts +10 -1
  362. package/src/types/capabilities.ts +9 -9
  363. package/src/types/events.ts +5 -5
  364. package/src/types/form.ts +5 -1
  365. package/src/types/index.ts +1 -0
  366. package/src/types/surface.ts +31 -0
  367. package/src/types/types.ts +9 -1
  368. package/src/util.ts +3 -4
  369. package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs.map +0 -7
  370. package/dist/lib/neutral/CreateObjectDialog-66R3K6I3.mjs.map +0 -7
  371. package/dist/lib/neutral/CreateSpaceDialog-CDGSEIJB.mjs.map +0 -7
  372. package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs +0 -59
  373. package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs.map +0 -7
  374. package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs.map +0 -7
  375. package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs.map +0 -7
  376. package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs.map +0 -7
  377. package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs.map +0 -7
  378. package/dist/lib/neutral/MenuFooter-5JT7V5FZ.mjs.map +0 -7
  379. package/dist/lib/neutral/ObjectCardStack-IXNU3HEN.mjs.map +0 -7
  380. package/dist/lib/neutral/ObjectProperties-BF6KGFFC.mjs +0 -33
  381. package/dist/lib/neutral/ObjectProperties-BF6KGFFC.mjs.map +0 -7
  382. package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs +0 -51
  383. package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs.map +0 -7
  384. package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs.map +0 -7
  385. package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs.map +0 -7
  386. package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs +0 -56
  387. package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs.map +0 -7
  388. package/dist/lib/neutral/SpaceSettings-YAHBOY5T.mjs +0 -37
  389. package/dist/lib/neutral/SpaceSettings-YAHBOY5T.mjs.map +0 -7
  390. package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs.map +0 -7
  391. package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs.map +0 -7
  392. package/dist/lib/neutral/add-object-QYOMCBJA.mjs.map +0 -7
  393. package/dist/lib/neutral/app-graph-builder-SQGCUCDO.mjs.map +0 -7
  394. package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs +0 -81
  395. package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs.map +0 -7
  396. package/dist/lib/neutral/chunk-4RTSNTDC.mjs +0 -37
  397. package/dist/lib/neutral/chunk-4RTSNTDC.mjs.map +0 -7
  398. package/dist/lib/neutral/chunk-7WUJENBF.mjs.map +0 -7
  399. package/dist/lib/neutral/chunk-B7DBIARR.mjs +0 -8
  400. package/dist/lib/neutral/chunk-BBQR23DW.mjs.map +0 -7
  401. package/dist/lib/neutral/chunk-EEXRKYOD.mjs.map +0 -7
  402. package/dist/lib/neutral/chunk-F5MESIRH.mjs +0 -19
  403. package/dist/lib/neutral/chunk-F5MESIRH.mjs.map +0 -7
  404. package/dist/lib/neutral/chunk-K34BPPQE.mjs.map +0 -7
  405. package/dist/lib/neutral/chunk-YY62663T.mjs.map +0 -7
  406. package/dist/lib/neutral/create-EPIFSRJA.mjs.map +0 -7
  407. package/dist/lib/neutral/create-object-22WUOWZQ.mjs.map +0 -7
  408. package/dist/lib/neutral/identity-created-57RML5XT.mjs.map +0 -7
  409. package/dist/lib/neutral/join-Z5K4OAIG.mjs +0 -28
  410. package/dist/lib/neutral/join-Z5K4OAIG.mjs.map +0 -7
  411. package/dist/lib/neutral/navigation-handler-QQJYEMAS.mjs.map +0 -7
  412. package/dist/lib/neutral/navigation-resolver-IFVQRCGU.mjs.map +0 -7
  413. package/dist/lib/neutral/open-members-BEXOSSBS.mjs.map +0 -7
  414. package/dist/lib/neutral/open-settings-RHDBW2K5.mjs.map +0 -7
  415. package/dist/lib/neutral/react-surface-LYCTOQLY.mjs.map +0 -7
  416. package/dist/lib/neutral/remove-objects-OWDMA4IF.mjs.map +0 -7
  417. package/dist/lib/neutral/rename-SR6BBSPU.mjs.map +0 -7
  418. package/dist/lib/neutral/rename-object-5H6E5AOX.mjs.map +0 -7
  419. package/dist/lib/neutral/repair-PSYRVSJ6.mjs.map +0 -7
  420. package/dist/lib/neutral/spaces-ready-GBF72QJH.mjs.map +0 -7
  421. package/dist/lib/neutral/state-DPBOZRAW.mjs.map +0 -7
  422. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -5
  423. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  424. package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts +0 -8
  425. package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts.map +0 -1
  426. package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts +0 -7
  427. package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts.map +0 -1
  428. package/dist/types/src/containers/EntityRenamePopover/index.d.ts +0 -2
  429. package/dist/types/src/containers/EntityRenamePopover/index.d.ts.map +0 -1
  430. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +0 -10
  431. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts.map +0 -1
  432. package/dist/types/src/containers/ObjectProperties/index.d.ts +0 -2
  433. package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -7
  434. package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +0 -1
  435. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +0 -2
  436. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +0 -1
  437. package/src/capabilities/app-graph-serializer.ts +0 -85
  438. package/src/components/SpaceSettings/SpaceSettings.tsx +0 -56
  439. package/src/containers/EntityRenamePopover/EntityRenamePopover.tsx +0 -52
  440. package/src/containers/EntityRenamePopover/index.ts +0 -5
  441. package/src/containers/ObjectProperties/ObjectProperties.tsx +0 -32
  442. package/src/containers/ObjectProperties/index.ts +0 -5
  443. package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +0 -54
  444. package/src/containers/SpaceRenamePopover/index.ts +0 -5
  445. /package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs.map → SmallPresenceLive-FW3AMEY5.mjs.map} +0 -0
  446. /package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs.map → SpacePresence-T37WH43Y.mjs.map} +0 -0
  447. /package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs.map → add-relation-BGTLART5.mjs.map} +0 -0
  448. /package/dist/lib/neutral/{chunk-B7DBIARR.mjs.map → chunk-U5WTDOMV.mjs.map} +0 -0
  449. /package/dist/lib/neutral/{close-FGQN37PK.mjs.map → close-5WEQZRNK.mjs.map} +0 -0
  450. /package/dist/lib/neutral/{delete-LIA5M3WI.mjs.map → delete-SPCU2VFM.mjs.map} +0 -0
  451. /package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs.map → delete-field-TAKJVEAD.mjs.map} +0 -0
  452. /package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs.map → duplicate-object-BUPZOO6S.mjs.map} +0 -0
  453. /package/dist/lib/neutral/{export-space-VWJHVXWF.mjs.map → export-space-S5SCAL4M.mjs.map} +0 -0
  454. /package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs.map → get-share-link-CLM5IQRL.mjs.map} +0 -0
  455. /package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs.map → import-space-LJQK3KT7.mjs.map} +0 -0
  456. /package/dist/lib/neutral/{open-CPWVZSI4.mjs.map → open-JCXTL3SK.mjs.map} +0 -0
  457. /package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs.map → open-create-object-WAIAU7TA.mjs.map} +0 -0
  458. /package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs.map → open-create-space-VU47FWPZ.mjs.map} +0 -0
  459. /package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs.map → open-import-space-GUHIEWYB.mjs.map} +0 -0
  460. /package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs.map → restore-field-6CQAFOXY.mjs.map} +0 -0
  461. /package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs.map → restore-objects-3VINLP7C.mjs.map} +0 -0
  462. /package/dist/lib/neutral/{share-5Y4NZA75.mjs.map → share-A4WPILNF.mjs.map} +0 -0
  463. /package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs.map → snapshot-HBYMAPA7.mjs.map} +0 -0
  464. /package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs.map → wait-for-object-U6P2NNWY.mjs.map} +0 -0
  465. /package/dist/types/src/{components → containers}/SpaceSettings/index.d.ts +0 -0
  466. /package/src/{components → containers}/SpaceSettings/index.ts +0 -0
@@ -8,15 +8,15 @@ import * as Match from 'effect/Match';
8
8
  import * as Option from 'effect/Option';
9
9
 
10
10
  import { Capability, type CapabilityManager } from '@dxos/app-framework';
11
- import { AppNode, AppNodeMatcher, LayoutOperation, Segments, getTypeSlug } from '@dxos/app-toolkit';
12
- import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
11
+ import { AppCapabilities, AppNode, AppNodeMatcher, LayoutOperation, Paths } from '@dxos/app-toolkit';
12
+ import { type Space, isSpace } from '@dxos/client/echo';
13
13
  import { Operation } from '@dxos/compute';
14
- import { Annotation, Collection, Entity, Filter, Obj, Query, Scope, Type } from '@dxos/echo';
14
+ import { Annotation, Collection, Entity, Filter, Key, Obj, Query, Scope, Type } from '@dxos/echo';
15
15
  import { HiddenAnnotation } from '@dxos/echo/Annotation';
16
- import { type URI } from '@dxos/keys';
17
16
  import { ClientCapabilities } from '@dxos/plugin-client';
18
- import { CreateAtom, GraphBuilder, Node } from '@dxos/plugin-graph';
17
+ import { GraphBuilder, Node } from '@dxos/plugin-graph';
19
18
  import { ViewAnnotation } from '@dxos/schema';
19
+ import { isLabel, toLocalizedString } from '@dxos/ui-types/translations';
20
20
  import { createFilename, isNonNullable } from '@dxos/util';
21
21
 
22
22
  import { meta } from '#meta';
@@ -26,15 +26,11 @@ import { SpaceCapabilities } from '#types';
26
26
  import { makeCreateObjectEntryForDatabaseType } from '../../../util';
27
27
  import {
28
28
  ADD_VIEW_TO_SCHEMA_LABEL,
29
- BLOCK_REORDER_ABOVE,
29
+ DATABASE_SECTION_TYPE,
30
30
  SNAPSHOT_BY_SCHEMA_LABEL,
31
31
  STATIC_SCHEMA_TYPE,
32
- TYPES_SECTION_TYPE,
33
- TYPE_COLLECTION_TYPE,
34
32
  buildViewIndex,
35
- createObjectNode,
36
33
  downloadBlob,
37
- getDynamicLabel,
38
34
  } from './shared';
39
35
 
40
36
  //
@@ -46,25 +42,36 @@ export const createDatabaseExtensions = Effect.fnUntraced(function* () {
46
42
  const capabilities = yield* Capability.Service;
47
43
 
48
44
  return yield* Effect.all([
49
- // Types section virtual node under each space.
45
+ // System section group created alongside database/settings so the group always
46
+ // appears when the space plugin is active and hides when there are no children.
50
47
  GraphBuilder.createExtension({
51
- id: 'typesSection',
48
+ id: Paths.GroupSegments.system,
52
49
  match: AppNodeMatcher.whenSpace,
53
- connector: (space, get) => {
54
- const spaceState = get(CreateAtom.fromObservable(space.state));
55
- if (spaceState !== SpaceState.SPACE_READY) {
56
- return Effect.succeed([]);
57
- }
50
+ connector: (space) =>
51
+ Effect.succeed([
52
+ AppNode.makeGroup({
53
+ id: Paths.GroupSegments.system,
54
+ type: Paths.GroupTypes.system,
55
+ label: ['nav-tree-group-system.label', { ns: meta.profile.key }],
56
+ space,
57
+ position: 900,
58
+ }),
59
+ ]),
60
+ }),
58
61
 
62
+ // Types section virtual node under the system group.
63
+ GraphBuilder.createExtension({
64
+ id: 'databaseSection',
65
+ match: AppNodeMatcher.whenNavTreeGroup(Paths.GroupTypes.system),
66
+ connector: (space) => {
59
67
  return Effect.succeed([
60
68
  AppNode.makeSection({
61
- id: Segments.types,
62
- type: TYPES_SECTION_TYPE,
63
- label: ['types-section.label', { ns: meta.id }],
69
+ id: Paths.Segments.database,
70
+ type: DATABASE_SECTION_TYPE,
71
+ label: ['database-section.label', { ns: meta.profile.key }],
64
72
  icon: 'ph--database--regular',
65
73
  space,
66
- position: 'last',
67
- testId: 'spacePlugin.typesSection',
74
+ testId: 'spacePlugin.databaseSection',
68
75
  }),
69
76
  ]);
70
77
  },
@@ -72,12 +79,16 @@ export const createDatabaseExtensions = Effect.fnUntraced(function* () {
72
79
 
73
80
  // Schema nodes under the Types virtual node.
74
81
  GraphBuilder.createExtension({
75
- id: 'types',
82
+ id: 'database',
76
83
  match: (node) => {
77
84
  const space = isSpace(node.properties.space) ? node.properties.space : undefined;
78
- return node.type === TYPES_SECTION_TYPE && space ? Option.some(space) : Option.none();
85
+ return node.type === DATABASE_SECTION_TYPE && space ? Option.some(space) : Option.none();
79
86
  },
80
87
  connector: (space, get) => {
88
+ // Read settings reactively — same pattern as the translator read below.
89
+ const settingsAtom = get(capabilities.atom(SpaceCapabilities.Settings)).at(0);
90
+ const showHidden = settingsAtom ? get(settingsAtom).showHidden : false;
91
+
81
92
  // Persisted types live in the space db; static/runtime types live in the shared registry.
82
93
  // Fan across both so the space's own types appear without leaking other spaces' types.
83
94
  const allSchemas = get(
@@ -92,7 +103,7 @@ export const createDatabaseExtensions = Effect.fnUntraced(function* () {
92
103
  return false;
93
104
  }
94
105
  const schema = Type.getSchema(type);
95
- if (HiddenAnnotation.get(schema).pipe(Option.getOrElse(() => false))) {
106
+ if (!showHidden && HiddenAnnotation.get(schema).pipe(Option.getOrElse(() => false))) {
96
107
  return false;
97
108
  }
98
109
  if (Type.getTypename(type) === Type.getTypename(Collection.Collection)) {
@@ -115,7 +126,24 @@ export const createDatabaseExtensions = Effect.fnUntraced(function* () {
115
126
  return objects.length > 0 || viewIndex.typeUrisWithViews.has(typeUri);
116
127
  });
117
128
 
118
- return Effect.succeed(visibleSchemas.map((schema) => createSchemaNode({ schema, space, get })));
129
+ // Sort alphabetically by display name. Static types' labels are `typename.label` translation
130
+ // keys resolved at render; resolve them here via the Translator capability so the order matches
131
+ // what users see. Resolved reactively inside the connector (not at factory setup) so the
132
+ // capability — contributed during startup by the theme plugin — is present when this runs.
133
+ const translator = get(capabilities.atom(AppCapabilities.Translator)).at(0);
134
+ const labelOf = (node: Node.NodeArg<Type.AnyEntity>): string => {
135
+ const label = node.properties?.label;
136
+ if (translator && isLabel(label)) {
137
+ return toLocalizedString(label, translator.t);
138
+ }
139
+ return node.data ? Type.getTypename(node.data) : '';
140
+ };
141
+
142
+ return Effect.succeed(
143
+ visibleSchemas
144
+ .map((schema) => createSchemaNode({ schema, space, get }))
145
+ .toSorted((nodeA, nodeB) => labelOf(nodeA).localeCompare(labelOf(nodeB))),
146
+ );
119
147
  },
120
148
  }),
121
149
 
@@ -129,81 +157,73 @@ export const createDatabaseExtensions = Effect.fnUntraced(function* () {
129
157
  connector: ({ space, schema }, get) => {
130
158
  const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
131
159
  const schemas = client ? get(client.graph.registry.query(Filter.type(Type.Type)).atom) : [];
132
-
133
- const slug = getTypeSlug(schema);
134
160
  const typeUri = Type.getURI(schema);
135
161
 
136
- // {All} virtual node.
137
- const allNode = Node.make({
138
- id: 'all',
139
- type: TYPE_COLLECTION_TYPE,
140
- data: { space, typeUri },
141
- properties: {
142
- label: ['type-collection-all.label', { ns: meta.id }],
143
- icon: 'ph--list--regular',
144
- iconHue: 'neutral',
145
- role: 'branch',
146
- testId: `spacePlugin.typeCollectionAll.${slug}`,
147
- selectable: false,
148
- draggable: false,
149
- droppable: false,
150
- childrenDroppable: false,
151
- blockInstruction: BLOCK_REORDER_ABOVE,
152
- },
153
- });
154
-
155
- // View objects for this schema.
162
+ // View objects are the type node's only visible children; objects of the type are resolved
163
+ // on demand as hidden children (see the `typeCollectionObject` resolver). The list of all
164
+ // objects is rendered when the type node is selected (see TypeCollectionArticle).
156
165
  const viewIndex = buildViewIndex(get, space, schemas);
157
166
  const viewNodes = viewIndex
158
167
  .getViewsForTypeUri(typeUri)
159
168
  .map((object: Obj.Unknown) =>
160
- createObjectNode({
169
+ AppNode.makeObject({
170
+ get,
161
171
  db: space.db,
162
172
  object,
173
+ draggable: false,
163
174
  droppable: false,
164
175
  }),
165
176
  )
166
177
  .filter(isNonNullable);
167
178
 
168
- return Effect.succeed([allNode, ...viewNodes]);
179
+ return Effect.succeed(viewNodes);
169
180
  },
170
181
  }),
171
182
 
172
- // Objects of the schema type under the {All} node.
183
+ // Objects of a type are not enumerated in the nav tree; navigating directly to the canonical
184
+ // object path resolves the object on demand as a hidden child of its type node. Mirrors the
185
+ // inbox feed-object resolver: a resolver keyed on path shape, not a connector.
173
186
  GraphBuilder.createExtension({
174
- id: 'typeCollectionObjects',
175
- match: (node) => {
176
- if (node.type !== TYPE_COLLECTION_TYPE || !node.data?.space || !node.data?.typeUri) {
177
- return Option.none();
178
- }
179
- return Option.some({ space: node.data.space as Space, typeUri: node.data.typeUri as URI.URI });
180
- },
181
- connector: ({ space, typeUri }, get) => {
182
- const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
183
- const schemas = client ? get(client.graph.registry.query(Filter.type(Type.Type)).atom) : [];
184
- const viewIndex = buildViewIndex(get, space, schemas);
185
- const objects = get(space.db.query(Filter.type(typeUri)).atom).filter(
186
- (object: Obj.Unknown) => !viewIndex.isView(object) && !Obj.getParent(object),
187
- );
187
+ id: 'typeCollectionObject',
188
+ match: () => Option.none(),
189
+ resolver: (qualifiedId, get) =>
190
+ Effect.gen(function* () {
191
+ const segments = qualifiedId.split('/');
192
+ // Discriminator: the canonical object path `…/database/<slug>/<objectId>`.
193
+ if (segments.at(-3) !== Paths.Segments.database) {
194
+ return null;
195
+ }
188
196
 
189
- return Effect.succeed(
190
- objects
191
- .map((object: Obj.Unknown) => {
192
- get(Obj.atom(object));
193
- return createObjectNode({
194
- db: space.db,
195
- object,
196
- droppable: false,
197
- });
198
- })
199
- .filter(isNonNullable)
200
- .toSorted((nodeA, nodeB) => {
201
- const labelA = typeof nodeA.properties.label === 'string' ? nodeA.properties.label : '';
202
- const labelB = typeof nodeB.properties.label === 'string' ? nodeB.properties.label : '';
203
- return labelA.localeCompare(labelB);
204
- }),
205
- );
206
- },
197
+ const spaceId = Paths.getSpaceIdFromPath(qualifiedId);
198
+ const objectId = segments.at(-1);
199
+ if (!spaceId || !objectId || !Key.EntityId.isValid(objectId)) {
200
+ return null;
201
+ }
202
+
203
+ const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
204
+ const space = client?.spaces.get(spaceId);
205
+ if (!space) {
206
+ return null;
207
+ }
208
+
209
+ const object = get(space.db.query(Filter.id(objectId)).atom).at(0);
210
+ if (!object) {
211
+ return null;
212
+ }
213
+
214
+ get(Obj.atom(object));
215
+ const node = AppNode.makeObject({
216
+ get,
217
+ db: space.db,
218
+ object,
219
+ disposition: 'hidden',
220
+ draggable: false,
221
+ droppable: false,
222
+ });
223
+ // Resolver nodes are keyed by the requested path (not the local object id) so the parent
224
+ // type node's child edge connects; `makeObject` uses the local id, so override it here.
225
+ return node && { ...node, id: qualifiedId };
226
+ }),
207
227
  }),
208
228
 
209
229
  // Actions for schema nodes.
@@ -254,7 +274,7 @@ const createSchemaNode = ({
254
274
  const typename = Type.getTypename(schema);
255
275
  // The node id doubles as the `types/<slug>` path segment, so it must be slash- and colon-free:
256
276
  // a stored schema's entity id, or a static schema's typename.
257
- const slug = getTypeSlug(schema);
277
+ const slug = Paths.getTypeSlug(schema);
258
278
  const iconAnnotation =
259
279
  Type.getDatabase(schema) == null
260
280
  ? Option.getOrUndefined(Annotation.IconAnnotation.get(Type.getSchema(schema)))
@@ -275,7 +295,7 @@ const createSchemaNode = ({
275
295
  },
276
296
  ),
277
297
  Match.orElse(() => ({
278
- label: getDynamicLabel('typename.label', typename, { count: 2, defaultValue: typename }),
298
+ label: AppNode.getDynamicLabel('typename.label', typename, { count: 2, defaultValue: typename }),
279
299
  nodeId: slug,
280
300
  })),
281
301
  );
@@ -290,9 +310,11 @@ const createSchemaNode = ({
290
310
  label,
291
311
  icon,
292
312
  iconHue,
293
- role: 'branch',
313
+ // Selecting the type node opens a list of every object of this type (see TypeCollectionArticle);
314
+ // objects resolve on demand as hidden children. View objects are its only visible children, so
315
+ // without a view the node is a leaf (no `role: 'branch'`).
294
316
  testId: `spacePlugin.schemaNode.${typename}`,
295
- selectable: false,
317
+ selectable: true,
296
318
  draggable: false,
297
319
  droppable: false,
298
320
  childrenDroppable: false,
@@ -351,7 +373,10 @@ const createSchemaActions = ({
351
373
  properties: {
352
374
  // Static plugin types carry a per-typename `add-object.label` (e.g. "Add event");
353
375
  // database types have no such namespace, so fall back to the plugin's generic label.
354
- label: getDynamicLabel('add-object.label', Type.getDatabase(type) != null ? meta.id : typename),
376
+ label: AppNode.getDynamicLabel(
377
+ 'add-object.label',
378
+ Type.getDatabase(type) != null ? meta.profile.key : typename,
379
+ ),
355
380
  icon: 'ph--plus--regular',
356
381
  disposition: 'list-item-primary',
357
382
  testId: 'spacePlugin.createObject',
@@ -365,7 +390,9 @@ const createSchemaActions = ({
365
390
  Operation.invoke(SpaceOperation.OpenCreateObject, {
366
391
  target: space.db,
367
392
  views: true,
368
- initialFormValues: { typename: Type.getTypename(type) },
393
+ // The type-picker field value is the type URI (see TypeOptions), so seed the default with
394
+ // the URI — not the bare typename — for the option to be pre-selected.
395
+ initialFormValues: { typename: Type.getURI(type) },
369
396
  }),
370
397
  properties: {
371
398
  label: ADD_VIEW_TO_SCHEMA_LABEL,
@@ -384,7 +411,7 @@ const createSchemaActions = ({
384
411
  })
385
412
  : Effect.fail(new Error('Cannot rename immutable schema')),
386
413
  properties: {
387
- label: getDynamicLabel('rename-object.label', Type.getTypename(Type.Type)),
414
+ label: AppNode.getDynamicLabel('rename-object.label', Type.getTypename(Type.Type)),
388
415
  icon: 'ph--pencil-simple-line--regular',
389
416
  disabled: Type.getDatabase(type) == null,
390
417
  disposition: 'list-item',
@@ -400,7 +427,7 @@ const createSchemaActions = ({
400
427
  })
401
428
  : Effect.succeed(undefined),
402
429
  properties: {
403
- label: getDynamicLabel('delete-object.label', Type.getTypename(Type.Type)),
430
+ label: AppNode.getDynamicLabel('delete-object.label', Type.getTypename(Type.Type)),
404
431
  icon: 'ph--trash--regular',
405
432
  disposition: 'list-item',
406
433
  disabled: !deletable,
@@ -4,8 +4,9 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { AppNode, AppNodeMatcher, isPersonalSpace } from '@dxos/app-toolkit';
7
+ import { AppNode, AppNodeMatcher, AppSpace } from '@dxos/app-toolkit';
8
8
  import { GraphBuilder, Node } from '@dxos/plugin-graph';
9
+ import { Position } from '@dxos/util';
9
10
 
10
11
  import { meta } from '#meta';
11
12
  import { SETTINGS_SECTION_ID, SETTINGS_SECTION_TYPE } from '#types';
@@ -17,7 +18,7 @@ import { SETTINGS_SECTION_ID, SETTINGS_SECTION_TYPE } from '#types';
17
18
  /**
18
19
  * Settings section attached directly under each Space node, plus its children.
19
20
  *
20
- * The virtual `settings` section is pinned to the top via `position: 'first'`
21
+ * The virtual `settings` section is pinned to the top via `position: Position.first`
21
22
  * so it sits above the un-positioned middle band (collections, mailboxes,
22
23
  * automations, integrations, etc.). It groups the panels contributed by this
23
24
  * plugin (general, members) and by other plugins (automation, functions).
@@ -31,11 +32,11 @@ export const createSettingsExtensions = Effect.fnUntraced(function* () {
31
32
  AppNode.makeSection({
32
33
  id: SETTINGS_SECTION_ID,
33
34
  type: SETTINGS_SECTION_TYPE,
34
- label: ['settings-section.label', { ns: meta.id }],
35
+ label: ['settings-section.label', { ns: meta.profile.key }],
35
36
  icon: 'ph--sliders--regular',
36
- iconHue: 'indigo',
37
+ iconHue: 'emerald',
37
38
  space,
38
- position: 'first',
39
+ position: Position.first,
39
40
  testId: 'spacePlugin.settings',
40
41
  }),
41
42
  ]),
@@ -45,17 +46,18 @@ export const createSettingsExtensions = Effect.fnUntraced(function* () {
45
46
  id: 'settingsSections',
46
47
  match: AppNodeMatcher.whenSpaceSettings,
47
48
  connector: (space) => {
48
- const personal = isPersonalSpace(space);
49
+ const personal = AppSpace.isPersonalSpace(space);
49
50
  return Effect.succeed([
50
51
  Node.make({
51
52
  id: 'general',
52
- type: `${meta.id}.general`,
53
- data: `${meta.id}.general`,
53
+ type: `${meta.profile.key}.general`,
54
+ data: `${meta.profile.key}.general`,
54
55
  properties: {
55
- label: ['space-settings-properties.label', { ns: meta.id }],
56
+ label: ['space-settings-properties.label', { ns: meta.profile.key }],
56
57
  icon: 'ph--brackets-curly--regular',
57
- iconHue: 'indigo',
58
+ iconHue: 'emerald',
58
59
  space,
60
+ position: Position.first,
59
61
  testId: 'spacePlugin.general',
60
62
  },
61
63
  }),
@@ -63,13 +65,14 @@ export const createSettingsExtensions = Effect.fnUntraced(function* () {
63
65
  ? [
64
66
  Node.make({
65
67
  id: 'members',
66
- type: `${meta.id}.members`,
67
- data: `${meta.id}.members`,
68
+ type: `${meta.profile.key}.members`,
69
+ data: `${meta.profile.key}.members`,
68
70
  properties: {
69
- label: ['members-panel.label', { ns: meta.id }],
71
+ label: ['members-panel.label', { ns: meta.profile.key }],
70
72
  icon: 'ph--users--regular',
71
- iconHue: 'indigo',
73
+ iconHue: 'emerald',
72
74
  space,
75
+ position: Position.first,
73
76
  testId: 'spacePlugin.members',
74
77
  },
75
78
  }),
@@ -10,19 +10,23 @@ import { type Space, SpaceState } from '@dxos/client/echo';
10
10
  import { Annotation, DXN, Entity, Filter, Obj, Query, Ref, Type, View } from '@dxos/echo';
11
11
  import { type EchoDatabase } from '@dxos/echo-client';
12
12
  import { EchoTestBuilder } from '@dxos/echo-client/testing';
13
- import { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';
13
+ import { Migrations, MigrationVersionAnnotation } from '@dxos/migrations';
14
14
  import { ViewAnnotation } from '@dxos/schema';
15
15
 
16
16
  import { buildViewIndex, checkPendingMigration } from './shared';
17
17
 
18
- const TestContact = Schema.Struct({
19
- name: Schema.String,
20
- }).pipe(Type.makeObject(DXN.make('com.example.type.contact', '0.1.0')));
21
-
22
- const TestViewWrapper = Schema.Struct({
23
- name: Schema.optional(Schema.String),
24
- view: Ref.Ref(View.View),
25
- }).pipe(ViewAnnotation.set(['view']), Type.makeObject(DXN.make('com.example.type.viewWrapper', '0.1.0')));
18
+ const TestContact = Type.makeObject(DXN.make('com.example.type.contact', '0.1.0'))(
19
+ Schema.Struct({
20
+ name: Schema.String,
21
+ }),
22
+ );
23
+
24
+ const TestViewWrapper = Type.makeObject(DXN.make('com.example.type.viewWrapper', '0.1.0'))(
25
+ Schema.Struct({
26
+ name: Schema.optional(Schema.String),
27
+ view: Ref.Ref(View.View),
28
+ }).pipe(ViewAnnotation.set(['view'])),
29
+ );
26
30
 
27
31
  describe('buildViewIndex', () => {
28
32
  let testBuilder: EchoTestBuilder;
@@ -8,7 +8,7 @@ import * as Option from 'effect/Option';
8
8
  import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
9
9
  import { type Operation } from '@dxos/compute';
10
10
  import { Annotation, Filter, Obj, Type } from '@dxos/echo';
11
- import { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';
11
+ import { Migrations, MigrationVersionAnnotation } from '@dxos/migrations';
12
12
  import { type Node } from '@dxos/plugin-graph';
13
13
  import { type TreeData } from '@dxos/react-ui-list';
14
14
  import type { EchoViewRefPath } from '@dxos/schema';
@@ -17,42 +17,25 @@ import { type Label } from '@dxos/ui-types/translations';
17
17
 
18
18
  import { meta } from '#meta';
19
19
 
20
- export {
21
- ACCEPT_ECHO_CLASS,
22
- CACHEABLE_PROPS,
23
- CAN_DROP_OBJECT,
24
- blockInstructionCache,
25
- buildCollectionPartials,
26
- collectionPartialsCache,
27
- createFactory,
28
- createObjectNode,
29
- getAcceptPersistenceKey,
30
- getCollectionGraphNodePartials,
31
- getDynamicLabel,
32
- rearrangeCache,
33
- } from '@dxos/app-toolkit';
34
-
35
20
  //
36
21
  // Virtual Node Types
37
22
  //
38
23
 
39
- export const TYPES_SECTION_TYPE = `${meta.id}.types`;
40
- export const COLLECTIONS_SECTION_TYPE = `${meta.id}.collections`;
41
- export const TYPE_COLLECTION_TYPE = `${meta.id}.type-collection`;
42
- export const STATIC_SCHEMA_TYPE = `${meta.id}.static-schema`;
24
+ export const DATABASE_SECTION_TYPE = `${meta.profile.key}.database`;
25
+ export const COLLECTIONS_SECTION_TYPE = `${meta.profile.key}.collections`;
26
+ export const STATIC_SCHEMA_TYPE = `${meta.profile.key}.static-schema`;
43
27
 
44
28
  //
45
29
  // Constants
46
30
  //
47
31
 
48
32
  /** Shared translation namespace descriptor. */
49
- export const META_NS: { ns: string } = { ns: meta.id };
33
+ export const META_NS: { ns: string } = { ns: meta.profile.key };
50
34
 
51
35
  //
52
36
  // Stable Callbacks
53
37
  //
54
38
 
55
- export const BLOCK_REORDER_ABOVE = (_source: TreeData, instruction: any) => instruction.type === 'reorder-above';
56
39
  export const CAN_DROP_SPACE = (source: TreeData) => Obj.isObject(source.item.data) || isSpace(source.item.data);
57
40
 
58
41
  //
@@ -81,7 +64,6 @@ export const CREATE_OBJECT_IN_SPACE_LABEL: Label = ['create-object-in-space.labe
81
64
  export const EXPOSE_OBJECT_LABEL: Label = ['expose-object.label', META_NS];
82
65
  export const MIGRATE_SPACE_LABEL: Label = ['migrate-space.label', META_NS];
83
66
  export const NEW_TYPE_LABEL: Label = ['new-type.label', META_NS];
84
- export const REMOVE_FROM_COLLECTION_LABEL: Label = ['remove-from-collection.label', META_NS];
85
67
  export const RENAME_SPACE_LABEL: Label = ['rename-space.label', META_NS];
86
68
  export const SETTINGS_PANEL_LABEL: Label = ['settings-panel.label', META_NS];
87
69
  export const SNAPSHOT_BY_SCHEMA_LABEL: Label = ['snapshot-by-schema.label', META_NS];