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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/dist/lib/browser/{CollectionArticle-WASDM637.mjs → CollectionArticle-WPLUW5HF.mjs} +5 -36
  2. package/dist/lib/browser/CollectionArticle-WPLUW5HF.mjs.map +7 -0
  3. package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs → CollectionSection-H2MBNI63.mjs} +2 -2
  4. package/dist/lib/browser/{CreateObjectDialog-MA6DPYMD.mjs → CreateObjectDialog-YUBUWSEL.mjs} +17 -21
  5. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
  6. package/dist/lib/browser/{CreateSpaceDialog-WCEICWIE.mjs → CreateSpaceDialog-3M2LAWV6.mjs} +7 -7
  7. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
  8. package/dist/lib/browser/{InlineSyncStatus-BT7BRBCO.mjs → InlineSyncStatus-K5MZ3YMZ.mjs} +9 -18
  9. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
  10. package/dist/lib/browser/{JoinDialog-PMCAIRCU.mjs → JoinDialog-PBK2RE5F.mjs} +8 -10
  11. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
  12. package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs → MembersContainer-OGYV2L4M.mjs} +4 -4
  13. package/dist/lib/browser/{MenuFooter-HYBTNOBT.mjs → MenuFooter-XCBDK7WP.mjs} +3 -4
  14. package/dist/lib/{node-esm/MenuFooter-2QB3453Y.mjs.map → browser/MenuFooter-XCBDK7WP.mjs.map} +1 -1
  15. package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs → ObjectCardStack-OMXF2DSG.mjs} +6 -6
  16. package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs → ObjectDetails-QFTQQN4W.mjs} +6 -6
  17. package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs → ObjectRenamePopover-JNPJIFIR.mjs} +3 -3
  18. package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs.map → ObjectRenamePopover-JNPJIFIR.mjs.map} +1 -1
  19. package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs → RecordArticle-BO2XHBFN.mjs} +2 -2
  20. package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs → SchemaContainer-QWCSIZBS.mjs} +2 -2
  21. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
  22. package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs → SpacePluginSettings-QGZKNQLK.mjs} +4 -4
  23. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
  24. package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs → SpaceRenamePopover-ZL6RRZ2B.mjs} +3 -3
  25. package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs.map → SpaceRenamePopover-ZL6RRZ2B.mjs.map} +1 -1
  26. package/dist/lib/browser/{SpaceSettingsContainer-UBMVKUPR.mjs → SpaceSettingsContainer-MIOOT63N.mjs} +5 -5
  27. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
  28. package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs → SyncStatus-6N7JJ7XF.mjs} +6 -6
  29. package/dist/lib/browser/{ViewEditor-F74RR542.mjs → ViewEditor-3FX5HDRT.mjs} +4 -7
  30. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
  31. package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs +1203 -0
  32. package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs.map +7 -0
  33. package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs → app-graph-serializer-UZWWGLGY.mjs} +5 -5
  34. package/dist/lib/browser/{chunk-RWOK4F4G.mjs → chunk-2WHUSAHE.mjs} +17 -14
  35. package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
  36. package/dist/lib/browser/{chunk-USN5QKRV.mjs → chunk-6IT5IBB5.mjs} +54 -86
  37. package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
  38. package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
  39. package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
  40. package/dist/lib/browser/{chunk-PXVKN4LU.mjs → chunk-AUX3RRLY.mjs} +34 -9
  41. package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
  42. package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
  43. package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
  44. package/dist/lib/browser/{chunk-XIIYC7P5.mjs → chunk-ICXESMDI.mjs} +6 -6
  45. package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
  46. package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
  47. package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
  48. package/dist/lib/browser/{chunk-J5F4LUJD.mjs → chunk-SSTUPFZ2.mjs} +3 -3
  49. package/dist/lib/browser/{chunk-ABCDB5YC.mjs → chunk-UYOJYBGW.mjs} +7 -16
  50. package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
  51. package/dist/lib/browser/cli/index.mjs +8 -17
  52. package/dist/lib/browser/cli/index.mjs.map +3 -3
  53. package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs → identity-created-ETXNQYR6.mjs} +4 -4
  54. package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs.map → identity-created-ETXNQYR6.mjs.map} +3 -3
  55. package/dist/lib/browser/index.mjs +33 -53
  56. package/dist/lib/browser/index.mjs.map +3 -3
  57. package/dist/lib/browser/meta.json +1 -1
  58. package/dist/lib/browser/{operation-resolver-Y3HYRXX7.mjs → operation-resolver-D4LHB4D4.mjs} +64 -88
  59. package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
  60. package/dist/lib/browser/{react-root-UYBW5RE7.mjs → react-root-OD2HP63B.mjs} +6 -6
  61. package/dist/lib/browser/{react-surface-NJ23NZFF.mjs → react-surface-E4TAFED5.mjs} +57 -79
  62. package/dist/lib/browser/react-surface-E4TAFED5.mjs.map +7 -0
  63. package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
  64. package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
  65. package/dist/lib/browser/{settings-2ELVUFDR.mjs → settings-RUDP2Q56.mjs} +3 -3
  66. package/dist/lib/browser/{spaces-ready-Q6JASPT4.mjs → spaces-ready-B2GYL5IN.mjs} +6 -6
  67. package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
  68. package/dist/lib/browser/{state-CTX4WQOM.mjs → state-I6JDZCDE.mjs} +5 -5
  69. package/dist/lib/browser/{state-CTX4WQOM.mjs.map → state-I6JDZCDE.mjs.map} +2 -2
  70. package/dist/lib/browser/types/index.mjs +2 -2
  71. package/dist/lib/node-esm/{CollectionArticle-A6GGG73Z.mjs → CollectionArticle-JGVNBX66.mjs} +5 -36
  72. package/dist/lib/node-esm/CollectionArticle-JGVNBX66.mjs.map +7 -0
  73. package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs → CollectionSection-BI66Y34F.mjs} +2 -2
  74. package/dist/lib/node-esm/{CreateObjectDialog-4WEFNDDF.mjs → CreateObjectDialog-B6OLP5VQ.mjs} +17 -21
  75. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
  76. package/dist/lib/node-esm/{CreateSpaceDialog-P7QCPB5J.mjs → CreateSpaceDialog-J47M5FPQ.mjs} +7 -7
  77. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
  78. package/dist/lib/node-esm/{InlineSyncStatus-3PCXU7NX.mjs → InlineSyncStatus-BLD57LB5.mjs} +9 -18
  79. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
  80. package/dist/lib/node-esm/{JoinDialog-XEOLJZVN.mjs → JoinDialog-XCOYKSHA.mjs} +8 -10
  81. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
  82. package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs → MembersContainer-4PV3Z4BA.mjs} +4 -4
  83. package/dist/lib/node-esm/{MenuFooter-2QB3453Y.mjs → MenuFooter-PXG2GV6A.mjs} +3 -4
  84. package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs → ObjectCardStack-457SNNVF.mjs} +6 -6
  85. package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs → ObjectDetails-OLF7HSM4.mjs} +6 -6
  86. package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs → ObjectRenamePopover-BRPKVNVF.mjs} +3 -3
  87. package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs.map → ObjectRenamePopover-BRPKVNVF.mjs.map} +1 -1
  88. package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs → RecordArticle-XUIT25PP.mjs} +2 -2
  89. package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs → SchemaContainer-5G4R3Z6O.mjs} +2 -2
  90. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
  91. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
  92. package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs → SpacePluginSettings-PENV4GHL.mjs} +4 -4
  93. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
  94. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
  95. package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs → SpaceRenamePopover-XEMTI4PU.mjs} +3 -3
  96. package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs.map → SpaceRenamePopover-XEMTI4PU.mjs.map} +1 -1
  97. package/dist/lib/node-esm/{SpaceSettingsContainer-Y62J2L65.mjs → SpaceSettingsContainer-WI4D7RWA.mjs} +5 -5
  98. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
  99. package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs → SyncStatus-YEBGTNSD.mjs} +6 -6
  100. package/dist/lib/node-esm/{ViewEditor-B2BLYF5U.mjs → ViewEditor-CUQVNM2H.mjs} +4 -7
  101. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
  102. package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs +1204 -0
  103. package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs.map +7 -0
  104. package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs → app-graph-serializer-RT2RQTV2.mjs} +5 -5
  105. package/dist/lib/node-esm/{chunk-OSFH2XKO.mjs → chunk-2OLR2ZKH.mjs} +6 -6
  106. package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
  107. package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
  108. package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
  109. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
  110. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
  111. package/dist/lib/node-esm/{chunk-UJQUBDQS.mjs → chunk-EDC2RUJU.mjs} +7 -16
  112. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
  113. package/dist/lib/node-esm/{chunk-3DWZCVVQ.mjs → chunk-EVNSLSQS.mjs} +54 -86
  114. package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
  115. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
  116. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
  117. package/dist/lib/node-esm/{chunk-P2AVANDG.mjs → chunk-RYQQXNI7.mjs} +34 -9
  118. package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
  119. package/dist/lib/node-esm/{chunk-GWUPFA7J.mjs → chunk-S5BQUCL4.mjs} +17 -14
  120. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
  121. package/dist/lib/node-esm/{chunk-S2IELCDF.mjs → chunk-XYLDAH5C.mjs} +3 -3
  122. package/dist/lib/node-esm/cli/index.mjs +8 -17
  123. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  124. package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs → identity-created-U5LGULVL.mjs} +4 -4
  125. package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs.map → identity-created-U5LGULVL.mjs.map} +3 -3
  126. package/dist/lib/node-esm/index.mjs +33 -53
  127. package/dist/lib/node-esm/index.mjs.map +3 -3
  128. package/dist/lib/node-esm/meta.json +1 -1
  129. package/dist/lib/node-esm/{operation-resolver-IRQ2NVUQ.mjs → operation-resolver-IL2AHNPN.mjs} +64 -88
  130. package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
  131. package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs → react-root-RILC5MBD.mjs} +6 -6
  132. package/dist/lib/node-esm/{react-surface-UDO3PGH6.mjs → react-surface-SWKRVK4S.mjs} +57 -79
  133. package/dist/lib/node-esm/react-surface-SWKRVK4S.mjs.map +7 -0
  134. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs +32 -0
  135. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
  136. package/dist/lib/node-esm/{settings-DCTVM2BV.mjs → settings-3EKSEAAG.mjs} +3 -3
  137. package/dist/lib/node-esm/{spaces-ready-XLGRTJV2.mjs → spaces-ready-QK3EHBOS.mjs} +6 -6
  138. package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
  139. package/dist/lib/node-esm/{state-G74V3WZG.mjs → state-W36RRYUO.mjs} +5 -5
  140. package/dist/lib/node-esm/{state-G74V3WZG.mjs.map → state-W36RRYUO.mjs.map} +2 -2
  141. package/dist/lib/node-esm/types/index.mjs +2 -2
  142. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  143. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -2
  144. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
  146. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
  148. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  150. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
  152. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
  154. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  155. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  156. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  157. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  158. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  159. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
  160. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  161. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  162. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  163. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  164. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  165. package/dist/types/src/cli/commands/database/add.d.ts +0 -1
  166. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  167. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  168. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  169. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  170. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  171. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +0 -1
  172. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  173. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
  174. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
  175. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
  176. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +1 -2
  177. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
  178. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +2 -1
  179. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  180. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
  181. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
  182. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
  183. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
  184. package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
  185. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
  186. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +1 -0
  187. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -1
  188. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
  189. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -1
  190. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
  191. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +67 -13
  192. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  193. package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
  194. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
  195. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +67 -13
  196. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  197. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +67 -13
  198. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  199. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
  200. package/dist/types/src/containers/index.d.ts +1 -1
  201. package/dist/types/src/containers/index.d.ts.map +1 -1
  202. package/dist/types/src/translations.d.ts +67 -13
  203. package/dist/types/src/translations.d.ts.map +1 -1
  204. package/dist/types/src/types/form.d.ts +0 -2
  205. package/dist/types/src/types/form.d.ts.map +1 -1
  206. package/dist/types/src/types/types.d.ts +29 -46
  207. package/dist/types/src/types/types.d.ts.map +1 -1
  208. package/dist/types/src/util.d.ts +4 -161
  209. package/dist/types/src/util.d.ts.map +1 -1
  210. package/dist/types/tsconfig.tsbuildinfo +1 -1
  211. package/package.json +57 -57
  212. package/src/SpacePlugin.ts +14 -22
  213. package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
  214. package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
  215. package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
  216. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  217. package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
  218. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  219. package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
  220. package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
  221. package/src/capabilities/app-graph-builder/extensions/types.ts +421 -0
  222. package/src/capabilities/identity-created/identity-created.ts +3 -3
  223. package/src/capabilities/operation-resolver/operation-resolver.ts +65 -73
  224. package/src/capabilities/react-surface/react-surface.tsx +33 -58
  225. package/src/capabilities/repair/repair.ts +3 -32
  226. package/src/capabilities/spaces-ready/spaces-ready.ts +2 -2
  227. package/src/capabilities/state/state.ts +4 -2
  228. package/src/cli/commands/database/add.ts +0 -1
  229. package/src/cli/commands/space/close/close.ts +1 -1
  230. package/src/cli/commands/space/create/create.ts +1 -1
  231. package/src/cli/commands/space/join/join.ts +1 -1
  232. package/src/cli/commands/space/open/open.ts +1 -1
  233. package/src/cli/plugin.ts +0 -1
  234. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +2 -2
  235. package/src/components/AwaitingObject/index.ts +5 -0
  236. package/src/components/CreateDialog/CreateObjectPanel.tsx +5 -2
  237. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +4 -4
  238. package/src/components/ObjectDetails/BaseObjectSettings.tsx +4 -4
  239. package/src/components/ObjectForm/ObjectForm.tsx +6 -4
  240. package/src/constants.ts +5 -5
  241. package/src/containers/CollectionArticle/CollectionArticle.tsx +7 -54
  242. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -10
  243. package/src/containers/CreateObjectDialog/index.ts +2 -3
  244. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -3
  245. package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -18
  246. package/src/containers/JoinDialog/JoinDialog.tsx +4 -4
  247. package/src/containers/JoinDialog/index.ts +2 -3
  248. package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +1 -1
  249. package/src/containers/SmallPresenceLive/index.ts +1 -1
  250. package/src/containers/SpacePresence/SpacePresence.tsx +4 -16
  251. package/src/containers/SpacePresence/index.ts +2 -3
  252. package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +1 -1
  253. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +2 -2
  254. package/src/containers/ViewEditor/ViewEditor.tsx +0 -1
  255. package/src/containers/index.ts +1 -1
  256. package/src/helpers/query.test.ts +1 -1
  257. package/src/hooks/useActiveSpace.ts +4 -4
  258. package/src/meta.ts +1 -1
  259. package/src/translations.ts +27 -1
  260. package/src/types/capabilities.ts +7 -7
  261. package/src/types/events.ts +5 -5
  262. package/src/types/form.ts +1 -8
  263. package/src/types/types.ts +36 -58
  264. package/src/util.ts +82 -0
  265. package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
  266. package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
  267. package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
  268. package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
  269. package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
  270. package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
  271. package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
  272. package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
  273. package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
  274. package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
  275. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
  276. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  279. package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
  282. package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
  285. package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
  286. package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
  287. package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
  288. package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
  289. package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
  290. package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
  291. package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
  292. package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
  293. package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
  294. package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
  295. package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
  296. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
  297. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
  298. package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
  299. package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
  300. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
  301. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
  303. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  304. package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
  309. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
  310. package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
  311. package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
  312. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
  313. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
  314. package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
  315. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  316. package/src/util.tsx +0 -956
  317. /package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs.map → CollectionSection-H2MBNI63.mjs.map} +0 -0
  318. /package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs.map → MembersContainer-OGYV2L4M.mjs.map} +0 -0
  319. /package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs.map → ObjectCardStack-OMXF2DSG.mjs.map} +0 -0
  320. /package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs.map → ObjectDetails-QFTQQN4W.mjs.map} +0 -0
  321. /package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs.map → RecordArticle-BO2XHBFN.mjs.map} +0 -0
  322. /package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs.map → SchemaContainer-QWCSIZBS.mjs.map} +0 -0
  323. /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → SmallPresenceLive-AHHLBAUP.mjs.map} +0 -0
  324. /package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs.map → SpacePluginSettings-QGZKNQLK.mjs.map} +0 -0
  325. /package/dist/lib/{node-esm/SmallPresenceLive-K4243KXR.mjs.map → browser/SpacePresence-JIWLBUWO.mjs.map} +0 -0
  326. /package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs.map → SyncStatus-6N7JJ7XF.mjs.map} +0 -0
  327. /package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs.map → app-graph-serializer-UZWWGLGY.mjs.map} +0 -0
  328. /package/dist/lib/browser/{chunk-J5F4LUJD.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
  329. /package/dist/lib/browser/{react-root-UYBW5RE7.mjs.map → react-root-OD2HP63B.mjs.map} +0 -0
  330. /package/dist/lib/browser/{settings-2ELVUFDR.mjs.map → settings-RUDP2Q56.mjs.map} +0 -0
  331. /package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs.map → CollectionSection-BI66Y34F.mjs.map} +0 -0
  332. /package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs.map → MembersContainer-4PV3Z4BA.mjs.map} +0 -0
  333. /package/dist/lib/{browser/MenuFooter-HYBTNOBT.mjs.map → node-esm/MenuFooter-PXG2GV6A.mjs.map} +0 -0
  334. /package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs.map → ObjectCardStack-457SNNVF.mjs.map} +0 -0
  335. /package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs.map → ObjectDetails-OLF7HSM4.mjs.map} +0 -0
  336. /package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs.map → RecordArticle-XUIT25PP.mjs.map} +0 -0
  337. /package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs.map → SchemaContainer-5G4R3Z6O.mjs.map} +0 -0
  338. /package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs.map → SpacePluginSettings-PENV4GHL.mjs.map} +0 -0
  339. /package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs.map → SyncStatus-YEBGTNSD.mjs.map} +0 -0
  340. /package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs.map → app-graph-serializer-RT2RQTV2.mjs.map} +0 -0
  341. /package/dist/lib/node-esm/{chunk-S2IELCDF.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
  342. /package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs.map → react-root-RILC5MBD.mjs.map} +0 -0
  343. /package/dist/lib/node-esm/{settings-DCTVM2BV.mjs.map → settings-3EKSEAAG.mjs.map} +0 -0
  344. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
@@ -8,9 +8,8 @@ import React, { useCallback, useMemo, useRef, useState } from 'react';
8
8
 
9
9
  import { Capability } from '@dxos/app-framework';
10
10
  import { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';
11
- import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
12
- import { Database, Obj, Type } from '@dxos/echo';
13
- import { type Collection } from '@dxos/echo';
11
+ import { AppCapabilities, LayoutOperation, getObjectPath } from '@dxos/app-toolkit';
12
+ import { Collection, Database, Obj, Type } from '@dxos/echo';
14
13
  import { runAndForwardErrors } from '@dxos/effect';
15
14
  import { invariant } from '@dxos/invariant';
16
15
  import { Operation } from '@dxos/operation';
@@ -28,12 +27,13 @@ import {
28
27
  import { meta } from '../../meta';
29
28
  import { SpaceOperation } from '../../types';
30
29
 
31
- export const CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;
30
+ export const CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;
32
31
 
33
32
  export type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'initialFormValues'> & {
34
33
  views?: boolean;
35
34
  onCreateObject?: (object: Obj.Unknown) => void;
36
35
  shouldNavigate?: (object: Obj.Unknown) => boolean;
36
+ targetNodeId?: string;
37
37
  };
38
38
 
39
39
  export const CreateObjectDialog = ({
@@ -43,6 +43,7 @@ export const CreateObjectDialog = ({
43
43
  initialFormValues,
44
44
  onCreateObject,
45
45
  shouldNavigate: _shouldNavigate,
46
+ targetNodeId,
46
47
  }: CreateObjectDialogProps) => {
47
48
  const manager = usePluginManager();
48
49
  const { t } = useTranslation(meta.id);
@@ -82,7 +83,7 @@ export const CreateObjectDialog = ({
82
83
  manager.capabilities
83
84
  .getAll(AppCapabilities.Metadata)
84
85
  .filter((entry) => entry.metadata?.createObject)
85
- .filter((entry) => (views === true ? viewTypenames.has(entry.id) : !viewTypenames.has(entry.id)))
86
+ .filter((entry) => (views === true ? viewTypenames.has(entry.id) : true))
86
87
  .map((entry) => ({
87
88
  id: entry.id,
88
89
  label: t('typename label', { ns: entry.id, defaultValue: entry.id }),
@@ -106,17 +107,16 @@ export const CreateObjectDialog = ({
106
107
  invariant(db, 'Missing database');
107
108
  const object = yield* metadata.createObject(data, { db });
108
109
  if (Obj.isObject(object) && !Obj.instanceOf(Type.PersistentType, object)) {
109
- // TODO(wittjosiah): Selection in navtree isn't working as expected when hidden typenames evals to true.
110
- const hidden = !metadata.addToCollectionOnCreate;
111
- yield* operationInvoker.invoke(SpaceOperation.AddObject, {
110
+ const { subject } = yield* operationInvoker.invoke(SpaceOperation.AddObject, {
112
111
  target,
113
112
  object,
114
- hidden,
113
+ hidden: !Obj.instanceOf(Collection.Collection, object),
114
+ targetNodeId,
115
115
  });
116
116
  const shouldNavigate = _shouldNavigate ?? (() => true);
117
117
  if (shouldNavigate(object)) {
118
118
  yield* operationInvoker.invoke(LayoutOperation.Open, {
119
- subject: [Obj.getDXN(object).toString()],
119
+ subject,
120
120
  });
121
121
  }
122
122
 
@@ -2,6 +2,5 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { CreateObjectDialog } from './CreateObjectDialog';
6
-
7
- export default CreateObjectDialog;
5
+ export { CreateObjectDialog, type CreateObjectDialogProps } from './CreateObjectDialog';
6
+ export { CreateObjectDialog as default } from './CreateObjectDialog';
@@ -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 } from '@dxos/app-toolkit';
10
+ import { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';
11
11
  import { runAndForwardErrors } from '@dxos/effect';
12
12
  import { Dialog, useTranslation } from '@dxos/react-ui';
13
13
  import { Form } from '@dxos/react-ui-form';
@@ -16,7 +16,7 @@ import { useInputSurfaceLookup } from '../../hooks';
16
16
  import { meta } from '../../meta';
17
17
  import { SpaceForm, SpaceOperation } from '../../types';
18
18
 
19
- export const CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;
19
+ export const CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;
20
20
 
21
21
  type FormValues = Schema.Schema.Type<typeof SpaceForm>;
22
22
  const initialValues: FormValues = { edgeReplication: true };
@@ -33,7 +33,9 @@ export const CreateSpaceDialog = () => {
33
33
  const program = Effect.gen(function* () {
34
34
  const { data: result } = yield* Effect.promise(() => invokePromise(SpaceOperation.Create, data));
35
35
  if (result?.space) {
36
- yield* Effect.promise(() => invokePromise(LayoutOperation.SwitchWorkspace, { subject: result.space.id }));
36
+ yield* Effect.promise(() =>
37
+ invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(result.space.id) }),
38
+ );
37
39
  yield* Effect.promise(() => invokePromise(LayoutOperation.UpdateDialog, { state: false }));
38
40
  }
39
41
  });
@@ -2,18 +2,16 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import * as Option from 'effect/Option';
6
5
  import React, { useEffect, useState } from 'react';
7
6
 
8
- import { useAppGraph } from '@dxos/app-toolkit/ui';
7
+ import { getSpacePath } from '@dxos/app-toolkit';
9
8
  import { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';
10
9
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
11
10
  import { useClient } from '@dxos/react-client';
12
11
  import { type Space, useSpaceSyncState } from '@dxos/react-client/echo';
13
12
  import { Tooltip, useTranslation } from '@dxos/react-ui';
14
- import { AttentionGlyph, useAttended, useAttention } from '@dxos/react-ui-attention';
13
+ import { AttentionGlyph, useAttention } from '@dxos/react-ui-attention';
15
14
 
16
- import { usePath } from '../../hooks';
17
15
  import { meta } from '../../meta';
18
16
 
19
17
  const useEdgeStatus = (): EdgeStatus.ConnectionState => {
@@ -30,19 +28,10 @@ const useEdgeStatus = (): EdgeStatus.ConnectionState => {
30
28
 
31
29
  export const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {
32
30
  const { t } = useTranslation(meta.id);
33
- const id = space.id;
34
- const { hasAttention, isAncestor, isRelated } = useAttention(id);
35
- const isAttended = hasAttention || isAncestor || isRelated;
36
-
37
- // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded
38
- // this will result in an empty path until the graph is connected.
39
- // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.
40
- const { graph } = useAppGraph();
41
- const attended = useAttended();
42
- const startOfAttention = attended.at(-1);
43
- const path = usePath(graph, startOfAttention);
44
- const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;
45
-
31
+ const qualifiedId = getSpacePath(space.id);
32
+ const { hasAttention, isAncestor, isRelated } = useAttention(qualifiedId);
33
+ const attended = hasAttention || isRelated;
34
+ const containsAttended = isAncestor && !open;
46
35
  const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
47
36
  // TODO(wittjosiah): This is not reactive.
48
37
  const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED;
@@ -53,7 +42,7 @@ export const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean
53
42
  <Tooltip.Trigger asChild content={t('syncing label')} side='bottom'>
54
43
  <AttentionGlyph
55
44
  syncing={syncing}
56
- attended={isAttended}
45
+ attended={attended}
57
46
  containsAttended={containsAttended}
58
47
  classNames='self-center mx-1'
59
48
  />
@@ -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 } from '@dxos/app-toolkit';
8
+ import { LayoutOperation, getSpacePath } 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.id}.JoinDialog`;
23
23
 
24
24
  export type JoinDialogProps = JoinPanelProps & {
25
25
  navigableCollections?: boolean;
@@ -40,7 +40,7 @@ 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.id}.join-success`,
44
44
  duration: 5_000,
45
45
  title: ['join success label', { ns: meta.id }],
46
46
  closeLabel: ['dismiss label', { ns: meta.id }],
@@ -61,7 +61,7 @@ export const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialo
61
61
  space = await trigger.wait();
62
62
  }
63
63
 
64
- await invokePromise(LayoutOperation.SwitchWorkspace, { subject: space.id });
64
+ await invokePromise(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(space.id) });
65
65
 
66
66
  // TODO(wittjosiah): If navigableCollections is false and there's no target,
67
67
  // should try to navigate to the first object of the space replicates.
@@ -2,6 +2,5 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { JoinDialog } from './JoinDialog';
6
-
7
- export default JoinDialog;
5
+ export { JoinDialog, type JoinDialogProps } from './JoinDialog';
6
+ export { JoinDialog as default } from './JoinDialog';
@@ -13,7 +13,7 @@ import { osTranslations } from '@dxos/ui-theme';
13
13
 
14
14
  import { meta } from '../../meta';
15
15
 
16
- export const OBJECT_RENAME_POPOVER = `${meta.id}/ObjectRenamePopover`;
16
+ export const OBJECT_RENAME_POPOVER = `${meta.id}.ObjectRenamePopover`;
17
17
 
18
18
  export const ObjectRenamePopover = ({ object }: { object: Obj.Unknown }) => {
19
19
  const { t } = useTranslation(meta.id);
@@ -2,4 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export { SmallPresenceLive as default } from '../SpacePresence/SpacePresence';
5
+ export { SmallPresenceLive as default } from '../SpacePresence';
@@ -2,11 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import * as Option from 'effect/Option';
6
5
  import React, { forwardRef, useCallback, useEffect, useState } from 'react';
7
6
 
8
7
  import { useAtomCapability } from '@dxos/app-framework/ui';
9
- import { useAppGraph } from '@dxos/app-toolkit/ui';
10
8
  import { generateName } from '@dxos/display-name';
11
9
  import { type Key, Obj } from '@dxos/echo';
12
10
  import { PublicKey } from '@dxos/react-client';
@@ -25,10 +23,9 @@ import {
25
23
  useDefaultValue,
26
24
  useTranslation,
27
25
  } from '@dxos/react-ui';
28
- import { AttentionGlyph, type AttentionGlyphProps, useAttended, useAttention } from '@dxos/react-ui-attention';
26
+ import { AttentionGlyph, type AttentionGlyphProps, useAttention } from '@dxos/react-ui-attention';
29
27
  import { ComplexMap, keyToFallback } from '@dxos/util';
30
28
 
31
- import { usePath } from '../../hooks';
32
29
  import { meta } from '../../meta';
33
30
  import { type ObjectViewerProps, SpaceCapabilities } from '../../types';
34
31
 
@@ -220,17 +217,8 @@ export type SmallPresenceLiveProps = {
220
217
 
221
218
  export const SmallPresenceLive = ({ id, open, viewers }: SmallPresenceLiveProps) => {
222
219
  const { hasAttention, isAncestor, isRelated } = useAttention(id);
223
- const isAttended = hasAttention || isAncestor || isRelated;
224
-
225
- // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded
226
- // this will result in an empty path until the graph is connected.
227
- // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.
228
- const { graph } = useAppGraph();
229
- const attended = useAttended();
230
- const startOfAttention = attended.at(-1);
231
- const path = usePath(graph, startOfAttention);
232
- const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;
233
-
220
+ const attended = hasAttention || isRelated;
221
+ const containsAttended = isAncestor && !open;
234
222
  const getActiveViewers = (viewers: ComplexMap<PublicKey, ObjectViewerProps>): ObjectViewerProps[] => {
235
223
  const moment = Date.now();
236
224
  return Array.from<ObjectViewerProps>(viewers.values()).filter(
@@ -250,7 +238,7 @@ export const SmallPresenceLive = ({ id, open, viewers }: SmallPresenceLiveProps)
250
238
  }
251
239
  }, [viewers]);
252
240
 
253
- return <SmallPresence count={activeViewers.length} attended={isAttended} containsAttended={containsAttended} />;
241
+ return <SmallPresence count={activeViewers.length} attended={attended} containsAttended={containsAttended} />;
254
242
  };
255
243
 
256
244
  export type SmallPresenceProps = {
@@ -2,6 +2,5 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { SpacePresence } from './SpacePresence';
6
-
7
- export default SpacePresence;
5
+ export { SpacePresence, SmallPresenceLive } from './SpacePresence';
6
+ export { SpacePresence as default } from './SpacePresence';
@@ -13,7 +13,7 @@ import { osTranslations } from '@dxos/ui-theme';
13
13
 
14
14
  import { meta } from '../../meta';
15
15
 
16
- export const SPACE_RENAME_POPOVER = `${meta.id}/SpaceRenamePopover`;
16
+ export const SPACE_RENAME_POPOVER = `${meta.id}.SpaceRenamePopover`;
17
17
 
18
18
  export const SpaceRenamePopover = ({ space }: { space: Space }) => {
19
19
  const { t } = useTranslation(meta.id);
@@ -6,7 +6,7 @@ import * as Schema from 'effect/Schema';
6
6
  import React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';
7
7
 
8
8
  import { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';
9
- import { LayoutOperation } from '@dxos/app-toolkit';
9
+ import { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';
10
10
  import { Obj } from '@dxos/echo';
11
11
  import { log } from '@dxos/log';
12
12
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
@@ -78,7 +78,7 @@ export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) =
78
78
  if (newValues.archived && !archived) {
79
79
  void invokePromise(SpaceOperation.Close, { space });
80
80
  void invokePromise(LayoutOperation.SwitchWorkspace, {
81
- subject: client.spaces.default.id,
81
+ subject: getSpacePath(client.spaces.default.id),
82
82
  });
83
83
  } else if (!newValues.archived && archived) {
84
84
  void invokePromise(SpaceOperation.Open, { space });
@@ -32,7 +32,6 @@ export const ViewEditor = ({ view }: ViewEditorProps) => {
32
32
  annotation: {
33
33
  location: ['database', 'runtime'],
34
34
  kind: ['user'],
35
- registered: ['registered'],
36
35
  },
37
36
  });
38
37
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { type ComponentType, lazy } from 'react';
6
6
 
7
- export type { CreateObjectDialogProps } from './CreateObjectDialog/CreateObjectDialog';
7
+ export type { CreateObjectDialogProps } from './CreateObjectDialog';
8
8
 
9
9
  export const CollectionArticle: ComponentType<any> = lazy(() => import('./CollectionArticle'));
10
10
  export const CollectionSection: ComponentType<any> = lazy(() => import('./CollectionSection'));
@@ -15,7 +15,7 @@ describe('evalQuery', () => {
15
15
  "id": undefined,
16
16
  "props": {},
17
17
  "type": "object",
18
- "typename": "dxn:type:dxos.org/type/Person:0.1.0",
18
+ "typename": "dxn:type:org.dxos.type.person:0.1.0",
19
19
  },
20
20
  "type": "select",
21
21
  }
@@ -3,22 +3,22 @@
3
3
  //
4
4
 
5
5
  import { Capabilities, type CapabilityManager } from '@dxos/app-framework';
6
- import { AppCapabilities } from '@dxos/app-toolkit';
6
+ import { AppCapabilities, getSpaceIdFromPath } from '@dxos/app-toolkit';
7
7
  import { useLayout } from '@dxos/app-toolkit/ui';
8
8
  import { ClientCapabilities } from '@dxos/plugin-client';
9
- import { parseId, useSpace } from '@dxos/react-client/echo';
9
+ import { useSpace } from '@dxos/react-client/echo';
10
10
 
11
11
  export const getActiveSpace = (capabilities: CapabilityManager.CapabilityManager) => {
12
12
  const client = capabilities.get(ClientCapabilities.Client);
13
13
  const registry = capabilities.get(Capabilities.AtomRegistry);
14
14
  const layoutAtom = capabilities.get(AppCapabilities.Layout);
15
15
  const layout = registry.get(layoutAtom);
16
- const { spaceId } = parseId(layout.workspace);
16
+ const spaceId = getSpaceIdFromPath(layout.workspace);
17
17
  return spaceId ? client.spaces.get(spaceId) : undefined;
18
18
  };
19
19
 
20
20
  export const useActiveSpace = () => {
21
21
  const layout = useLayout();
22
- const { spaceId } = parseId(layout.workspace);
22
+ const spaceId = getSpaceIdFromPath(layout.workspace);
23
23
  return useSpace(spaceId);
24
24
  };
package/src/meta.ts CHANGED
@@ -6,7 +6,7 @@ import { type Plugin } from '@dxos/app-framework';
6
6
  import { trim } from '@dxos/util';
7
7
 
8
8
  export const meta: Plugin.Meta = {
9
- id: 'dxos.org/plugin/space',
9
+ id: 'org.dxos.plugin.space',
10
10
  name: 'Spaces',
11
11
  description: trim`
12
12
  Core workspace container system for organizing and sharing collaborative environments.
@@ -19,6 +19,7 @@ export const translations = [
19
19
  'typename label_one': 'Collection',
20
20
  'typename label_other': 'Collections',
21
21
  'object name placeholder': 'New collection',
22
+ 'add object label': 'Add collection',
22
23
  'rename object label': 'Rename collection',
23
24
  'delete object label': 'Delete collection',
24
25
  'object deleted label': 'Collection deleted',
@@ -29,6 +30,7 @@ export const translations = [
29
30
  'typename label_one': 'Type',
30
31
  'typename label_other': 'Types',
31
32
  'object name placeholder': 'New type',
33
+ 'add object label': 'Add type',
32
34
  'rename object label': 'Rename type',
33
35
  'delete object label': 'Delete type',
34
36
  'object deleted label': 'Type deleted',
@@ -39,6 +41,9 @@ export const translations = [
39
41
  'typename label_one': 'Event',
40
42
  'typename label_other': 'Events',
41
43
  'object name placeholder': 'New event',
44
+ 'add object label': 'Add event',
45
+ 'rename object label': 'Rename event',
46
+ 'delete object label': 'Delete event',
42
47
  },
43
48
  [Message.Message.typename]: {
44
49
  'typename label': 'Message',
@@ -46,6 +51,9 @@ export const translations = [
46
51
  'typename label_one': 'Message',
47
52
  'typename label_other': 'Messages',
48
53
  'object name placeholder': 'New message',
54
+ 'add object label': 'Add message',
55
+ 'rename object label': 'Rename message',
56
+ 'delete object label': 'Delete message',
49
57
  },
50
58
  [Organization.Organization.typename]: {
51
59
  'typename label': 'Organization',
@@ -53,6 +61,9 @@ export const translations = [
53
61
  'typename label_one': 'Organization',
54
62
  'typename label_other': 'Organizations',
55
63
  'object name placeholder': 'New organization',
64
+ 'add object label': 'Add organization',
65
+ 'rename object label': 'Rename organization',
66
+ 'delete object label': 'Delete organization',
56
67
  },
57
68
  [Person.Person.typename]: {
58
69
  'typename label': 'Person',
@@ -60,6 +71,9 @@ export const translations = [
60
71
  'typename label_one': 'Person',
61
72
  'typename label_other': 'People',
62
73
  'object name placeholder': 'New person',
74
+ 'add object label': 'Add person',
75
+ 'rename object label': 'Rename person',
76
+ 'delete object label': 'Delete person',
63
77
  },
64
78
  [Pipeline.Pipeline.typename]: {
65
79
  'typename label': 'Project',
@@ -67,6 +81,9 @@ export const translations = [
67
81
  'typename label_one': 'Project',
68
82
  'typename label_other': 'Projects',
69
83
  'object name placeholder': 'New project',
84
+ 'add object label': 'Add project',
85
+ 'rename object label': 'Rename project',
86
+ 'delete object label': 'Delete project',
70
87
  },
71
88
  [Task.Task.typename]: {
72
89
  'typename label': 'Task',
@@ -74,6 +91,9 @@ export const translations = [
74
91
  'typename label_one': 'Task',
75
92
  'typename label_other': 'Tasks',
76
93
  'object name placeholder': 'New task',
94
+ 'add object label': 'Add task',
95
+ 'rename object label': 'Rename task',
96
+ 'delete object label': 'Delete task',
77
97
  },
78
98
  [meta.id]: {
79
99
  'plugin name': 'Spaces',
@@ -131,8 +151,10 @@ export const translations = [
131
151
  'The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.',
132
152
  'create object in space label': 'Add to space',
133
153
  'create object in collection label': 'Add to collection',
154
+ 'remove from collection label': 'Remove from collection',
134
155
  'create object in system collection label': 'Add to system collection',
135
- 'add view to schema label': 'Add view to type',
156
+ 'new type label': 'New type',
157
+ 'add view to schema label': 'Add view for type',
136
158
  'space members label': 'Space members',
137
159
  'active space members heading': 'Online ({{count}})',
138
160
  'inactive space members heading': 'Offline ({{count}})',
@@ -239,6 +261,10 @@ export const translations = [
239
261
  'sync upload label': 'Upload',
240
262
  'sync download label': 'Download',
241
263
 
264
+ 'types section label': 'Types',
265
+ 'collections section label': 'Collections',
266
+ 'type collection all label': 'All',
267
+
242
268
  'search placeholder': 'Search…',
243
269
  },
244
270
  },
@@ -20,7 +20,7 @@ import { meta } from '../meta';
20
20
  import { type ObjectViewerProps, type SpaceSettingsProps } from './types';
21
21
 
22
22
  export namespace SpaceCapabilities {
23
- export const Settings = Capability.make<Atom.Writable<SpaceSettingsProps>>(`${meta.id}/capability/settings`);
23
+ export const Settings = Capability.make<Atom.Writable<SpaceSettingsProps>>(`${meta.id}.capability.settings`);
24
24
 
25
25
  /** Schema for persisted space plugin state. */
26
26
  export const StateSchema = Schema.mutable(
@@ -33,7 +33,7 @@ export namespace SpaceCapabilities {
33
33
  export type SpaceState = Schema.Schema.Type<typeof StateSchema>;
34
34
 
35
35
  /** Persisted state (stored in KVS/localStorage). */
36
- export const State = Capability.make<Atom.Writable<SpaceState>>(`${meta.id}/capability/state`);
36
+ export const State = Capability.make<Atom.Writable<SpaceState>>(`${meta.id}.capability.state`);
37
37
 
38
38
  /** Ephemeral space plugin state (not persisted). */
39
39
  export type SpaceEphemeralState = {
@@ -46,18 +46,18 @@ export namespace SpaceCapabilities {
46
46
 
47
47
  /** Transient/ephemeral state (not persisted). */
48
48
  export const EphemeralState = Capability.make<Atom.Writable<SpaceEphemeralState>>(
49
- `${meta.id}/capability/ephemeral-state`,
49
+ `${meta.id}.capability.ephemeral-state`,
50
50
  );
51
51
 
52
52
  export type SettingsSection = { id: string; label: Label; position?: Position };
53
- export const SettingsSection = Capability.make<SettingsSection>(`${meta.id}/capability/settings-section`);
53
+ export const SettingsSection = Capability.make<SettingsSection>(`${meta.id}.capability.settings-section`);
54
54
 
55
55
  export type OnCreateSpace = (params: {
56
56
  space: Space;
57
57
  isDefault: boolean;
58
58
  rootCollection: Collection.Collection;
59
59
  }) => Effect.Effect<void, Error, Operation.Service>;
60
- export const OnCreateSpace = Capability.make<OnCreateSpace>(`${meta.id}/capability/on-space-created`);
60
+ export const OnCreateSpace = Capability.make<OnCreateSpace>(`${meta.id}.capability.on-space-created`);
61
61
 
62
62
  export type OnSchemaAdded = (params: {
63
63
  db: Database.Database;
@@ -65,9 +65,9 @@ export namespace SpaceCapabilities {
65
65
  // TODO(wittjosiah): This is leaky.
66
66
  show?: boolean;
67
67
  }) => Effect.Effect<void, Error, Operation.Service>;
68
- export const OnSchemaAdded = Capability.make<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
68
+ export const OnSchemaAdded = Capability.make<OnSchemaAdded>(`${meta.id}.capability.on-schema-added`);
69
69
 
70
70
  // TODO(wittjosiah): Replace with migrations, this is not a sustainable solution.
71
71
  export type HandleRepair = (params: { space: Space; isDefault: boolean }) => Promise<void>;
72
- export const Repair = Capability.make<HandleRepair>(`${meta.id}/capability/repair`);
72
+ export const Repair = Capability.make<HandleRepair>(`${meta.id}.capability.repair`);
73
73
  }
@@ -8,9 +8,9 @@ import { AppActivationEvents } from '@dxos/app-toolkit';
8
8
  import { meta } from '../meta';
9
9
 
10
10
  export namespace SpaceEvents {
11
- export const StateReady = AppActivationEvents.createStateEvent(`${meta.id}/event/state-ready`);
12
- export const SetupSettingsPanel = ActivationEvent.make(`${meta.id}/event/setup-settings-panel`);
13
- export const DefaultSpaceReady = ActivationEvent.make(`${meta.id}/event/default-space-ready`);
14
- export const SpaceCreated = ActivationEvent.make(`${meta.id}/event/space-created`);
15
- export const SchemaAdded = ActivationEvent.make(`${meta.id}/event/schema-added`);
11
+ export const StateReady = AppActivationEvents.createStateEvent(`${meta.id}.event.state-ready`);
12
+ export const SetupSettingsPanel = ActivationEvent.make(`${meta.id}.event.setup-settings-panel`);
13
+ export const DefaultSpaceReady = ActivationEvent.make(`${meta.id}.event.default-space-ready`);
14
+ export const SpaceCreated = ActivationEvent.make(`${meta.id}.event.space-created`);
15
+ export const SchemaAdded = ActivationEvent.make(`${meta.id}.event.schema-added`);
16
16
  }
package/src/types/form.ts CHANGED
@@ -12,7 +12,6 @@ import { EntityKind, SystemTypeAnnotation, createAnnotationHelper, getTypeAnnota
12
12
  export const TypeInputOptions = Schema.Struct({
13
13
  location: Schema.Array(Schema.Literal('database', 'runtime')),
14
14
  kind: Schema.Array(Schema.Literal('system', 'user')),
15
- registered: Schema.Array(Schema.Literal('registered', 'unregistered')),
16
15
  });
17
16
 
18
17
  export type TypeInputOptions = Schema.Schema.Type<typeof TypeInputOptions>;
@@ -29,8 +28,6 @@ export const getTypenames = ({ annotation, space }: { annotation: TypeInputOptio
29
28
  const includeDatabase = annotation.location.includes('database');
30
29
  const includeSystemType = annotation.kind.includes('system');
31
30
  const includeUserType = annotation.kind.includes('user');
32
- const includeRegistered = annotation.registered.includes('registered');
33
- const includeUnregistered = annotation.registered.includes('unregistered');
34
31
 
35
32
  const runtimeTypenames =
36
33
  includeRuntime && space
@@ -50,15 +47,11 @@ export const getTypenames = ({ annotation, space }: { annotation: TypeInputOptio
50
47
 
51
48
  return includeUserType;
52
49
  })
53
- .filter((schema) => {
54
- const registered = space?.properties.staticRecords?.includes(Type.getTypename(schema));
55
- return registered ? includeRegistered : includeUnregistered;
56
- })
57
50
  .map((schema) => Type.getTypename(schema))
58
51
  : [];
59
52
 
60
53
  const databaseTypenames =
61
- includeDatabase && includeRegistered && space
54
+ includeDatabase && space
62
55
  ? space.db.schemaRegistry
63
56
  .query({ location: ['database'] })
64
57
  .runSync()