@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
@@ -7,14 +7,7 @@ import * as Fiber from 'effect/Fiber';
7
7
  import * as Option from 'effect/Option';
8
8
 
9
9
  import { Capabilities, Capability } from '@dxos/app-framework';
10
- import {
11
- AppCapabilities,
12
- LayoutOperation,
13
- RootCollectionAnnotation,
14
- getSpacePath,
15
- resolvePersonalSpace,
16
- setPersonalSpace,
17
- } from '@dxos/app-toolkit';
10
+ import { AppAnnotation, AppCapabilities, AppSpace, LayoutOperation, Paths } from '@dxos/app-toolkit';
18
11
  import { SubscriptionList } from '@dxos/async';
19
12
  import { Annotation, Collection, Filter, Obj, Type } from '@dxos/echo';
20
13
  import { SPACE_ID_LENGTH, parseId } from '@dxos/keys';
@@ -67,13 +60,13 @@ export default Capability.makeModule(
67
60
  yield* Effect.promise(() => personalSpace.waitUntilReady());
68
61
 
69
62
  if (fromCredential) {
70
- setPersonalSpace(personalSpace);
63
+ AppSpace.setPersonalSpace(personalSpace);
71
64
  }
72
65
 
73
66
  // Check if deck state indicates we should switch to default space.
74
67
  const layout = registry.get(layoutAtom);
75
68
  if (layout.workspace === 'default') {
76
- yield* invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(personalSpace.id) });
69
+ yield* invoke(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(personalSpace.id) });
77
70
  }
78
71
 
79
72
  const queryResults = yield* Effect.promise(() =>
@@ -102,12 +95,12 @@ export default Capability.makeModule(
102
95
 
103
96
  // Try to find the personal space now, or subscribe to find it later.
104
97
  // Initialization is non-blocking so subscriptions wire immediately.
105
- const resolved = resolvePersonalSpace(client);
98
+ const resolved = AppSpace.resolvePersonalSpace(client);
106
99
  if (resolved) {
107
100
  startPersonalSpaceInit(resolved.space, resolved);
108
101
  } else {
109
102
  const personalSpaceSub = client.spaces.subscribe(() => {
110
- const resolved = resolvePersonalSpace(client);
103
+ const resolved = AppSpace.resolvePersonalSpace(client);
111
104
  if (resolved) {
112
105
  startPersonalSpaceInit(resolved.space, resolved);
113
106
  }
@@ -158,7 +151,7 @@ export default Capability.makeModule(
158
151
  // Cache space names.
159
152
  const spaceNamesSub = client.spaces.subscribe(async (spaces) => {
160
153
  // TODO(wittjosiah): Remove. This is a hack to be able to migrate the personal space properties.
161
- const personalSpaceForMigration = resolvePersonalSpace(client);
154
+ const personalSpaceForMigration = AppSpace.resolvePersonalSpace(client);
162
155
  if (
163
156
  personalSpaceForMigration?.space &&
164
157
  personalSpaceForMigration.space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION
@@ -169,11 +162,11 @@ export default Capability.makeModule(
169
162
  spaces
170
163
  .filter((space) => space.state.get() === SpaceState.SPACE_READY)
171
164
  .forEach((space) => {
172
- if (Option.isNone(Annotation.get(space.properties, RootCollectionAnnotation))) {
165
+ if (Option.isNone(Annotation.get(space.properties, AppAnnotation.RootCollectionAnnotation))) {
173
166
  const legacyRef = (space.properties as any)[Type.getTypename(Collection.Collection)];
174
167
  if (legacyRef) {
175
168
  Obj.update(space.properties, (properties) => {
176
- Annotation.set(properties, RootCollectionAnnotation, legacyRef);
169
+ Annotation.set(properties, AppAnnotation.RootCollectionAnnotation, legacyRef);
177
170
  });
178
171
  }
179
172
  }
@@ -25,7 +25,7 @@ export default Capability.makeModule(
25
25
 
26
26
  // Persisted state using KVS store.
27
27
  const stateAtom = createKvsStore({
28
- key: `${meta.id}.state`,
28
+ key: `${meta.profile.key}.state`,
29
29
  schema: SpaceCapabilities.StateSchema,
30
30
  defaultValue: () => ({ ...defaultSpaceState }),
31
31
  });
@@ -30,7 +30,7 @@ export default Capability.makeModule(
30
30
  props: output.props,
31
31
  index: output.index,
32
32
  }),
33
- message: ['field-deleted.label', { ns: meta.id }],
33
+ message: ['field-deleted.label', { ns: meta.profile.key }],
34
34
  }),
35
35
  UndoMapping.make({
36
36
  operation: SpaceOperation.RemoveObjects,
@@ -44,8 +44,8 @@ export default Capability.makeModule(
44
44
  message: (input, _output) => {
45
45
  const ns = Entity.getTypename(input.objects[0]);
46
46
  return ns && input.objects.length === 1
47
- ? ['object-deleted.label', { ns: [ns, meta.id] }]
48
- : ['objects-deleted.label', { ns: meta.id }];
47
+ ? ['object-deleted.label', { ns: [ns, meta.profile.key] }]
48
+ : ['objects-deleted.label', { ns: meta.profile.key }];
49
49
  },
50
50
  }),
51
51
  ]),
@@ -11,7 +11,7 @@ import * as Effect from 'effect/Effect';
11
11
  import * as Option from 'effect/Option';
12
12
 
13
13
  import { type Capability, Plugin } from '@dxos/app-framework';
14
- import { AppActivationEvents, RootCollectionAnnotation } from '@dxos/app-toolkit';
14
+ import { AppActivationEvents, AppAnnotation } from '@dxos/app-toolkit';
15
15
  import { CommandConfig, Common, type SpaceNotFoundError, flushAndSync, print, spaceLayer } from '@dxos/cli-util';
16
16
  import { type ClientService } from '@dxos/client';
17
17
  import { SpaceProperties } from '@dxos/client/echo';
@@ -53,7 +53,9 @@ export const add: Command.Command<
53
53
  };
54
54
 
55
55
  const [properties] = yield* Database.query(Filter.type(SpaceProperties)).run;
56
- const rootCollectionRef = Annotation.get(properties, RootCollectionAnnotation).pipe(Option.getOrUndefined);
56
+ const rootCollectionRef = Annotation.get(properties, AppAnnotation.RootCollectionAnnotation).pipe(
57
+ Option.getOrUndefined,
58
+ );
57
59
  const collection = rootCollectionRef ? yield* Database.load<Collection.Collection>(rootCollectionRef) : undefined;
58
60
 
59
61
  const selectedTypename = yield* Option.match(typename, {
@@ -9,7 +9,7 @@ import * as Effect from 'effect/Effect';
9
9
 
10
10
  import { CommandConfig, printList } from '@dxos/cli-util';
11
11
  import { ClientService } from '@dxos/client';
12
- import { Entity } from '@dxos/echo';
12
+ import { Entity, Filter, Query, Scope } from '@dxos/echo';
13
13
  import { EID } from '@dxos/keys';
14
14
 
15
15
  import { printQueueObject } from './util';
@@ -37,8 +37,9 @@ export const query = Command.make(
37
37
  yield* Console.error(`Space not found: ${spaceId}`);
38
38
  return;
39
39
  }
40
- const queue = space.queues.get(echoUri);
41
- const objects = yield* Effect.promise(() => queue.queryObjects());
40
+ const objects = yield* Effect.promise(() =>
41
+ space.db.query(Query.select(Filter.everything()).from(Scope.feed(echoUri))).run(),
42
+ );
42
43
 
43
44
  if (json) {
44
45
  yield* Console.log(JSON.stringify(objects, null, 2));
@@ -20,7 +20,7 @@ const WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1_000;
20
20
  const TOAST_TIMEOUT = 4 * 60 * 1_000;
21
21
 
22
22
  export const AwaitingObject = ({ id }: { id: string }) => {
23
- const { t } = useTranslation(meta.id);
23
+ const { t } = useTranslation(meta.profile.key);
24
24
  const { invokePromise } = useOperationInvoker();
25
25
  const [open, setOpen] = useState(true);
26
26
  const [waiting, setWaiting] = useState(true);
@@ -149,7 +149,7 @@ type SelectTypeProps = Pick<CreateObjectPanelProps, 'options'> & {
149
149
  };
150
150
 
151
151
  const SelectType = ({ options, onChange }: SelectTypeProps) => {
152
- const { t } = useTranslation(meta.id);
152
+ const { t } = useTranslation(meta.profile.key);
153
153
 
154
154
  const { results, handleSearch } = useSearchListResults({
155
155
  items: options,
@@ -197,7 +197,7 @@ type SelectSpaceProps = Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'
197
197
  };
198
198
 
199
199
  const SelectSpace = ({ spaces, defaultSpaceId, onChange }: SelectSpaceProps) => {
200
- const { t } = useTranslation(meta.id);
200
+ const { t } = useTranslation(meta.profile.key);
201
201
 
202
202
  const sortedSpaces = useMemo(
203
203
  () =>
@@ -31,7 +31,7 @@ type KeyItemProps = {
31
31
  };
32
32
 
33
33
  const KeyItem = ({ forignKey, onDelete }: KeyItemProps) => {
34
- const { t } = useTranslation(meta.id);
34
+ const { t } = useTranslation(meta.profile.key);
35
35
 
36
36
  const handleDelete = useCallback(() => {
37
37
  onDelete?.(forignKey);
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { isPersonalSpace } from '@dxos/app-toolkit';
7
+ import { AppSpace } from '@dxos/app-toolkit';
8
8
  import { type Space } from '@dxos/react-client/echo';
9
9
  import { IconButton, Input, List, ListItem, toLocalizedString, useTranslation } from '@dxos/react-ui';
10
10
  import { Settings as SettingsForm } from '@dxos/react-ui-form';
@@ -19,7 +19,7 @@ export type SpaceSettingsProps = {
19
19
  };
20
20
 
21
21
  export const SpaceSettings = ({ spaces, onOpenSpaceSettings }: SpaceSettingsProps) => {
22
- const { t } = useTranslation(meta.id);
22
+ const { t } = useTranslation(meta.profile.key);
23
23
 
24
24
  return (
25
25
  <SettingsForm.Viewport>
@@ -35,7 +35,7 @@ export const SpaceSettings = ({ spaces, onOpenSpaceSettings }: SpaceSettingsProp
35
35
  <ListItem.Heading classNames='grow truncate min-h-0!'>
36
36
  {toLocalizedString(
37
37
  getSpaceDisplayName(space, {
38
- personal: isPersonalSpace(space),
38
+ personal: AppSpace.isPersonalSpace(space),
39
39
  }),
40
40
  t,
41
41
  )}
package/src/constants.ts CHANGED
@@ -6,9 +6,8 @@ import { DXN } from '@dxos/keys';
6
6
 
7
7
  import { meta } from '#meta';
8
8
 
9
- export const CREATE_OBJECT_DIALOG = DXN.make(`${meta.id}.createObjectDialog`);
10
- export const CREATE_SPACE_DIALOG = DXN.make(`${meta.id}.createSpaceDialog`);
11
- export const IMPORT_SPACE_DIALOG = DXN.make(`${meta.id}.importSpaceDialog`);
12
- export const JOIN_DIALOG = DXN.make(`${meta.id}.joinDialog`);
13
- export const ENTITY_RENAME_POPOVER = DXN.make(`${meta.id}.entityRenamePopover`);
14
- export const SPACE_RENAME_POPOVER = DXN.make(`${meta.id}.spaceRenamePopover`);
9
+ export const CREATE_OBJECT_DIALOG = DXN.make(`${meta.profile.key}.createObjectDialog`);
10
+ export const CREATE_SPACE_DIALOG = DXN.make(`${meta.profile.key}.createSpaceDialog`);
11
+ export const IMPORT_SPACE_DIALOG = DXN.make(`${meta.profile.key}.importSpaceDialog`);
12
+ export const JOIN_DIALOG = DXN.make(`${meta.profile.key}.joinDialog`);
13
+ export const RENAME_POPOVER = DXN.make(`${meta.profile.key}.renamePopover`);
@@ -5,11 +5,11 @@
5
5
  import React, { useCallback, useMemo } from 'react';
6
6
 
7
7
  import { useOperationInvoker } from '@dxos/app-framework/ui';
8
- import { LayoutOperation, getCollectionObjectPath, getObjectPathFromObject } from '@dxos/app-toolkit';
8
+ import { LayoutOperation, Paths } from '@dxos/app-toolkit';
9
9
  import { type AppSurface } from '@dxos/app-toolkit/ui';
10
10
  import { type Collection, Obj } from '@dxos/echo';
11
11
  import { ScrollArea, toLocalizedString, useTranslation } from '@dxos/react-ui';
12
- import { Card, Toolbar } from '@dxos/react-ui';
12
+ import { Card, Icon } from '@dxos/react-ui';
13
13
  import { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';
14
14
  import { SearchPanel, useSearchListResults } from '@dxos/react-ui-search';
15
15
  import { getStyles } from '@dxos/ui-theme';
@@ -20,7 +20,7 @@ import { meta } from '#meta';
20
20
  * Article view for collections.
21
21
  */
22
22
  export const CollectionArticle = ({ subject, attendableId }: AppSurface.ObjectArticleProps<Collection.Collection>) => {
23
- const { t } = useTranslation(meta.id);
23
+ const { t } = useTranslation(meta.profile.key);
24
24
  const { items, handleSearch } = useCollectionItems(subject, attendableId);
25
25
 
26
26
  return (
@@ -51,7 +51,7 @@ type ObjectItem = {
51
51
  };
52
52
 
53
53
  const ObjectTile: MosaicStackTileComponent<ObjectItem> = ({ data: item }) => {
54
- const { t } = useTranslation(meta.id);
54
+ const { t } = useTranslation(meta.profile.key);
55
55
  const { invokePromise } = useOperationInvoker();
56
56
 
57
57
  const typename = Obj.getTypename(item.object) ?? '';
@@ -68,7 +68,9 @@ const ObjectTile: MosaicStackTileComponent<ObjectItem> = ({ data: item }) => {
68
68
  return (
69
69
  <Card.Root fullWidth role='button' classNames='cursor-pointer' onClick={handleClick}>
70
70
  <Card.Header>
71
- <Toolbar.IconButton variant='ghost' label={label} icon={item.icon} iconOnly iconClassNames={styles?.fg} />
71
+ <Card.Block>
72
+ <Icon icon={item.icon} classNames={styles?.fg} />
73
+ </Card.Block>
72
74
  <Card.Title>{label}</Card.Title>
73
75
  <Card.Menu />
74
76
  </Card.Header>
@@ -89,7 +91,9 @@ const useCollectionItems = (collection: Collection.Collection, attendableId?: st
89
91
  () =>
90
92
  objects.map((obj) => {
91
93
  const iconAnnotation = Obj.getIcon(obj);
92
- const targetPath = attendableId ? getCollectionObjectPath(attendableId, obj.id) : getObjectPathFromObject(obj);
94
+ const targetPath = attendableId
95
+ ? Paths.getCollectionObjectPath(attendableId, obj.id)
96
+ : Paths.getObjectPathFromObject(obj);
93
97
 
94
98
  return {
95
99
  id: Obj.getURI(obj),
@@ -13,7 +13,7 @@ import { meta } from '#meta';
13
13
  export type CollectionSectionProps = AppSurface.ObjectSectionProps<Collection.Collection>;
14
14
 
15
15
  export const CollectionSection = ({ role, subject }: CollectionSectionProps) => {
16
- const { t } = useTranslation(meta.id);
16
+ const { t } = useTranslation(meta.profile.key);
17
17
 
18
18
  // TODO(wittjosiah): Better placeholder.
19
19
  return (
@@ -9,7 +9,7 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
9
9
 
10
10
  import { Capability } from '@dxos/app-framework';
11
11
  import { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';
12
- import { allTypesQuery, getPersonalSpace, LayoutOperation } from '@dxos/app-toolkit';
12
+ import { AppSpace, LayoutOperation, TypeOptions } from '@dxos/app-toolkit';
13
13
  import { PluginRegistryButton, useLayout } from '@dxos/app-toolkit/ui';
14
14
  import { Operation } from '@dxos/compute';
15
15
  import { Annotation, Collection, Database, Obj, Type } from '@dxos/echo';
@@ -27,7 +27,7 @@ import { SpaceCapabilities } from '#types';
27
27
 
28
28
  import { getSpaceDisplayName } from '../../util';
29
29
 
30
- export const CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;
30
+ export const CREATE_OBJECT_DIALOG = `${meta.profile.key}.CreateObjectDialog`;
31
31
 
32
32
  export type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'initialFormValues'> & {
33
33
  views?: boolean;
@@ -45,7 +45,7 @@ export const CreateObjectDialog = ({
45
45
  shouldNavigate: _shouldNavigate,
46
46
  targetNodeId,
47
47
  }: CreateObjectDialogProps) => {
48
- const { t } = useTranslation(meta.id);
48
+ const { t } = useTranslation(meta.profile.key);
49
49
  const manager = usePluginManager();
50
50
  const operationInvoker = useOperationInvoker();
51
51
  const { invoke } = operationInvoker;
@@ -57,12 +57,15 @@ export const CreateObjectDialog = ({
57
57
  const closeRef = useRef<HTMLButtonElement | null>(null);
58
58
 
59
59
  const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
60
- const allTypes = useQuery(db, allTypesQuery);
60
+ const allTypes = useQuery(db, TypeOptions.allTypesQuery);
61
61
  const space = useMemo(() => spaces.find((s) => s.db === db), [spaces, db]);
62
62
  const spaceLabel = useMemo(
63
63
  () =>
64
64
  space &&
65
- toLocalizedString(getSpaceDisplayName(space, { personal: space.id === getPersonalSpace(client)?.id }), t),
65
+ toLocalizedString(
66
+ getSpaceDisplayName(space, { personal: space.id === AppSpace.getPersonalSpace(client)?.id }),
67
+ t,
68
+ ),
66
69
  [space, client, t],
67
70
  );
68
71
 
@@ -86,7 +89,7 @@ export const CreateObjectDialog = ({
86
89
  for (const entry of contributions) {
87
90
  entries.push(entry);
88
91
  if (owningPlugin) {
89
- pluginByEntryId.set(entry.id, owningPlugin.meta.name);
92
+ pluginByEntryId.set(entry.id, owningPlugin.meta.profile.name);
90
93
  }
91
94
  }
92
95
  }
@@ -205,7 +208,7 @@ export const CreateObjectDialog = ({
205
208
  target={target}
206
209
  typename={typename}
207
210
  initialFormValues={initialFormValues}
208
- defaultSpaceId={getPersonalSpace(client)?.id ?? client.spaces.get()[0]?.id}
211
+ defaultSpaceId={AppSpace.getPersonalSpace(client)?.id ?? client.spaces.get()[0]?.id}
209
212
  resolve={resolve}
210
213
  onCreateObject={handleCreateObject}
211
214
  onTargetChange={setTarget}
@@ -7,7 +7,7 @@ import type * as Schema from 'effect/Schema';
7
7
  import React, { useCallback, useRef } from 'react';
8
8
 
9
9
  import { useOperationInvoker } from '@dxos/app-framework/ui';
10
- import { LayoutOperation, getSpaceHomePath, getSpacePath } from '@dxos/app-toolkit';
10
+ import { LayoutOperation, Paths } from '@dxos/app-toolkit';
11
11
  import { EffectEx } from '@dxos/effect';
12
12
  import { Column, Dialog, useTranslation } from '@dxos/react-ui';
13
13
  import { Form } from '@dxos/react-ui-form';
@@ -17,14 +17,14 @@ import { meta } from '#meta';
17
17
  import { SpaceOperation } from '#operations';
18
18
  import { SpaceForm } from '#types';
19
19
 
20
- export const CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;
20
+ export const CREATE_SPACE_DIALOG = `${meta.profile.key}.CreateSpaceDialog`;
21
21
 
22
22
  type FormValues = Schema.Schema.Type<typeof SpaceForm>;
23
23
  const initialValues: FormValues = { edgeReplication: true };
24
24
 
25
25
  export const CreateSpaceDialog = () => {
26
26
  const closeRef = useRef<HTMLButtonElement | null>(null);
27
- const { t } = useTranslation(meta.id);
27
+ const { t } = useTranslation(meta.profile.key);
28
28
  const { invokePromise } = useOperationInvoker();
29
29
 
30
30
  const inputSurfaceLookup = useInputSurfaceLookup();
@@ -36,8 +36,8 @@ export const CreateSpaceDialog = () => {
36
36
  if (result?.space) {
37
37
  yield* Effect.promise(() =>
38
38
  invokePromise(LayoutOperation.Open, {
39
- subject: [getSpaceHomePath(result.space.id)],
40
- workspace: getSpacePath(result.space.id),
39
+ subject: [Paths.getSpaceHomePath(result.space.id)],
40
+ workspace: Paths.getSpacePath(result.space.id),
41
41
  navigation: 'immediate',
42
42
  }),
43
43
  );
@@ -6,14 +6,14 @@ import React, { useCallback } from 'react';
6
6
  import { FileUploader } from 'react-drag-drop-files';
7
7
 
8
8
  import { useOperationInvoker } from '@dxos/app-framework/ui';
9
- import { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';
9
+ import { LayoutOperation, Paths } from '@dxos/app-toolkit';
10
10
  import { Button, Dialog, Icon, useTranslation } from '@dxos/react-ui';
11
11
 
12
12
  import { meta } from '#meta';
13
13
  import { SpaceOperation } from '#operations';
14
14
 
15
15
  export const ImportSpaceDialog = () => {
16
- const { t } = useTranslation(meta.id);
16
+ const { t } = useTranslation(meta.profile.key);
17
17
  const { invokePromise } = useOperationInvoker();
18
18
 
19
19
  const handleFile = useCallback(
@@ -24,7 +24,7 @@ export const ImportSpaceDialog = () => {
24
24
  });
25
25
  await invokePromise(LayoutOperation.UpdateDialog, { state: false });
26
26
  if (result?.space) {
27
- await invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(result.space.id) });
27
+ await invokePromise(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(result.space.id) });
28
28
  }
29
29
  },
30
30
  [invokePromise],
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React, { useEffect, useState } from 'react';
6
6
 
7
- import { getSpacePath } from '@dxos/app-toolkit';
7
+ import { Paths } from '@dxos/app-toolkit';
8
8
  import { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';
9
9
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
10
10
  import { useClient } from '@dxos/react-client';
@@ -27,8 +27,8 @@ const useEdgeStatus = (): EdgeStatus.ConnectionState => {
27
27
  };
28
28
 
29
29
  export const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {
30
- const { t } = useTranslation(meta.id);
31
- const qualifiedId = getSpacePath(space.id);
30
+ const { t } = useTranslation(meta.profile.key);
31
+ const qualifiedId = Paths.getSpacePath(space.id);
32
32
  const { hasAttention, isAncestor, isRelated } = useAttention(qualifiedId);
33
33
  const attended = hasAttention || isRelated;
34
34
  const containsAttended = isAncestor && !open;
@@ -5,7 +5,7 @@
5
5
  import React, { useCallback } from 'react';
6
6
 
7
7
  import { useOperationInvoker } from '@dxos/app-framework/ui';
8
- import { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';
8
+ import { LayoutOperation, Paths } from '@dxos/app-toolkit';
9
9
  import { useAppGraph } from '@dxos/app-toolkit/ui';
10
10
  import { Trigger } from '@dxos/async';
11
11
  import { Graph } from '@dxos/plugin-graph';
@@ -19,7 +19,7 @@ import { osTranslations } from '@dxos/ui-theme';
19
19
 
20
20
  import { meta } from '#meta';
21
21
 
22
- export const JOIN_DIALOG = `${meta.id}.JoinDialog`;
22
+ export const JOIN_DIALOG = `${meta.profile.key}.JoinDialog`;
23
23
 
24
24
  export type JoinDialogProps = JoinPanelProps & {
25
25
  navigableCollections?: boolean;
@@ -29,7 +29,7 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
29
29
  const { invokePromise } = useOperationInvoker();
30
30
  const client = useClient();
31
31
  const { graph } = useAppGraph();
32
- const { t } = useTranslation(meta.id);
32
+ const { t } = useTranslation(meta.profile.key);
33
33
 
34
34
  const handleDone = useCallback(
35
35
  async (result: InvitationResult | null) => {
@@ -40,10 +40,10 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
40
40
 
41
41
  await Promise.all([
42
42
  invokePromise(LayoutOperation.AddToast, {
43
- id: `${meta.id}.join-success`,
43
+ id: `${meta.profile.key}.join-success`,
44
44
  duration: 5_000,
45
- title: ['join-success.label', { ns: meta.id }],
46
- closeLabel: ['dismiss.label', { ns: meta.id }],
45
+ title: ['join-success.label', { ns: meta.profile.key }],
46
+ closeLabel: ['dismiss.label', { ns: meta.profile.key }],
47
47
  }),
48
48
  invokePromise(LayoutOperation.UpdateDialog, { state: false }),
49
49
  ]);
@@ -61,12 +61,9 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
61
61
  space = await trigger.wait();
62
62
  }
63
63
 
64
- await invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(space.id) });
64
+ await invokePromise(LayoutOperation.SwitchWorkspace, { subject: Paths.getSpacePath(space.id) });
65
65
 
66
- // TODO(wittjosiah): If navigableCollections is false and there's no target,
67
- // should try to navigate to the first object of the space replicates.
68
- // Potentially this could also be done on the inviters side to ensure there's always a target.
69
- const target = result?.target || (navigableCollections ? space?.id : undefined);
66
+ const target = result?.target;
70
67
  if (target) {
71
68
  // Wait before navigating to the target node.
72
69
  // If the target has not yet replicated, this will trigger a loading toast.
@@ -75,6 +72,11 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
75
72
  invokePromise(LayoutOperation.Open, { subject: [target] }),
76
73
  invokePromise(LayoutOperation.Expose, { subject: target }),
77
74
  ]);
75
+ } else {
76
+ await invokePromise(LayoutOperation.Open, {
77
+ subject: [Paths.getSpaceHomePath(space.id)],
78
+ workspace: Paths.getSpacePath(space.id),
79
+ });
78
80
  }
79
81
 
80
82
  onDone?.(result);
@@ -7,7 +7,7 @@ import React, { type Dispatch, type SetStateAction, useMemo, useState } from 're
7
7
  import { QR } from 'react-qr-rounded';
8
8
 
9
9
  import { useOperationInvoker } from '@dxos/app-framework/ui';
10
- import { RootCollectionAnnotation } from '@dxos/app-toolkit';
10
+ import { AppAnnotation } from '@dxos/app-toolkit';
11
11
  import { AppSurface } from '@dxos/app-toolkit/ui';
12
12
  import { Annotation, Obj } from '@dxos/echo';
13
13
  import { log } from '@dxos/log';
@@ -48,7 +48,7 @@ export type MembersContainerProps = AppSurface.SpaceArticleProps<{
48
48
  }>;
49
49
 
50
50
  export const MembersContainer = ({ space, createInvitationUrl }: MembersContainerProps) => {
51
- const { t } = useTranslation(meta.id);
51
+ const { t } = useTranslation(meta.profile.key);
52
52
  const config = useConfig();
53
53
  const { invokePromise } = useOperationInvoker();
54
54
  const invitations = useSpaceInvitations(space.key);
@@ -64,8 +64,8 @@ export const MembersContainer = ({ space, createInvitationUrl }: MembersContaine
64
64
  };
65
65
 
66
66
  // TODO(wittjosiah): Track which was the most recently viewed object.
67
- const target = Annotation.get(space.properties, RootCollectionAnnotation).pipe(Option.getOrUndefined)?.target
68
- ?.objects[0]?.target;
67
+ const target = Annotation.get(space.properties, AppAnnotation.RootCollectionAnnotation).pipe(Option.getOrUndefined)
68
+ ?.target?.objects[0]?.target;
69
69
 
70
70
  const inviteActions = useMemo(
71
71
  (): Record<string, ActionMenuItem> => ({
@@ -210,7 +210,7 @@ const InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel
210
210
  const emoji = hexToEmoji(id);
211
211
  return (
212
212
  <>
213
- <p className='text-description'>{t('qr-code.description', { ns: meta.id })}</p>
213
+ <p className='text-description'>{t('qr-code.description', { ns: meta.profile.key })}</p>
214
214
  <div role='group' className='grid grid-cols-[1fr_min-content] my-2 gap-2'>
215
215
  <div className='w-full aspect-square relative text-description'>
216
216
  <QR
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { isPersonalSpace } from '@dxos/app-toolkit';
7
+ import { AppSpace } from '@dxos/app-toolkit';
8
8
  import { getSpace } from '@dxos/client/echo';
9
9
  import { type Obj } from '@dxos/echo';
10
10
  import { DropdownMenu, Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';
@@ -14,9 +14,9 @@ import { meta } from '#meta';
14
14
  import { getSpaceDisplayName } from '../../util';
15
15
 
16
16
  export const MenuFooter = ({ object }: { object: Obj.Unknown }) => {
17
- const { t } = useTranslation(meta.id);
17
+ const { t } = useTranslation(meta.profile.key);
18
18
  const space = getSpace(object);
19
- const spaceName = space ? getSpaceDisplayName(space, { personal: isPersonalSpace(space) }) : '';
19
+ const spaceName = space ? getSpaceDisplayName(space, { personal: AppSpace.isPersonalSpace(space) }) : '';
20
20
  return space ? (
21
21
  <>
22
22
  <DropdownMenu.Separator />
@@ -7,7 +7,7 @@ import React, { forwardRef, useState } from 'react';
7
7
  import { Filter, Obj, type View } from '@dxos/echo';
8
8
  import { useQuery, useType } from '@dxos/react-client/echo';
9
9
  import { Card, Message, Panel, ScrollArea, Toolbar, useTranslation } from '@dxos/react-ui';
10
- import { useSelected } from '@dxos/react-ui-attention';
10
+ import { useSelection } from '@dxos/react-ui-attention';
11
11
  import { ObjectForm } from '@dxos/react-ui-form';
12
12
  import { Mosaic } from '@dxos/react-ui-mosaic';
13
13
  import { getTypeURIFromQuery } from '@dxos/schema';
@@ -24,13 +24,13 @@ export type ObjectCardStackProps = {
24
24
  * @deprecated Use Mosaic Board components.
25
25
  */
26
26
  export const ObjectCardStack = forwardRef<HTMLDivElement, ObjectCardStackProps>(({ objectId, view }, forwardedRef) => {
27
- const { t } = useTranslation(meta.id);
27
+ const { t } = useTranslation(meta.profile.key);
28
28
  const db = Obj.getDatabase(view);
29
29
  const typeUri = view.query ? getTypeURIFromQuery(view.query.ast) : undefined;
30
30
  const type = useType(db, typeUri);
31
31
 
32
32
  const queriedObjects = useQuery(db, type ? Filter.type(type) : Filter.nothing());
33
- const selectedRows = useSelected(objectId, 'multi');
33
+ const selectedRows = useSelection(objectId, 'multi');
34
34
  const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);
35
35
 
36
36
  const [viewport, setViewport] = useState<HTMLElement | null>(null);