@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.
- package/dist/lib/browser/{CollectionArticle-WASDM637.mjs → CollectionArticle-WPLUW5HF.mjs} +5 -36
- package/dist/lib/browser/CollectionArticle-WPLUW5HF.mjs.map +7 -0
- package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs → CollectionSection-H2MBNI63.mjs} +2 -2
- package/dist/lib/browser/{CreateObjectDialog-MA6DPYMD.mjs → CreateObjectDialog-YUBUWSEL.mjs} +17 -21
- package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
- package/dist/lib/browser/{CreateSpaceDialog-WCEICWIE.mjs → CreateSpaceDialog-3M2LAWV6.mjs} +7 -7
- package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
- package/dist/lib/browser/{InlineSyncStatus-BT7BRBCO.mjs → InlineSyncStatus-K5MZ3YMZ.mjs} +9 -18
- package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
- package/dist/lib/browser/{JoinDialog-PMCAIRCU.mjs → JoinDialog-PBK2RE5F.mjs} +8 -10
- package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
- package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs → MembersContainer-OGYV2L4M.mjs} +4 -4
- package/dist/lib/browser/{MenuFooter-HYBTNOBT.mjs → MenuFooter-XCBDK7WP.mjs} +3 -4
- package/dist/lib/{node-esm/MenuFooter-2QB3453Y.mjs.map → browser/MenuFooter-XCBDK7WP.mjs.map} +1 -1
- package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs → ObjectCardStack-OMXF2DSG.mjs} +6 -6
- package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs → ObjectDetails-QFTQQN4W.mjs} +6 -6
- package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs → ObjectRenamePopover-JNPJIFIR.mjs} +3 -3
- package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs.map → ObjectRenamePopover-JNPJIFIR.mjs.map} +1 -1
- package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs → RecordArticle-BO2XHBFN.mjs} +2 -2
- package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs → SchemaContainer-QWCSIZBS.mjs} +2 -2
- package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
- package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs → SpacePluginSettings-QGZKNQLK.mjs} +4 -4
- package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
- package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs → SpaceRenamePopover-ZL6RRZ2B.mjs} +3 -3
- package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs.map → SpaceRenamePopover-ZL6RRZ2B.mjs.map} +1 -1
- package/dist/lib/browser/{SpaceSettingsContainer-UBMVKUPR.mjs → SpaceSettingsContainer-MIOOT63N.mjs} +5 -5
- package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
- package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs → SyncStatus-6N7JJ7XF.mjs} +6 -6
- package/dist/lib/browser/{ViewEditor-F74RR542.mjs → ViewEditor-3FX5HDRT.mjs} +4 -7
- package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs +1203 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs → app-graph-serializer-UZWWGLGY.mjs} +5 -5
- package/dist/lib/browser/{chunk-RWOK4F4G.mjs → chunk-2WHUSAHE.mjs} +17 -14
- package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-USN5QKRV.mjs → chunk-6IT5IBB5.mjs} +54 -86
- package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
- package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
- package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PXVKN4LU.mjs → chunk-AUX3RRLY.mjs} +34 -9
- package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
- package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-XIIYC7P5.mjs → chunk-ICXESMDI.mjs} +6 -6
- package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
- package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
- package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-J5F4LUJD.mjs → chunk-SSTUPFZ2.mjs} +3 -3
- package/dist/lib/browser/{chunk-ABCDB5YC.mjs → chunk-UYOJYBGW.mjs} +7 -16
- package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +8 -17
- package/dist/lib/browser/cli/index.mjs.map +3 -3
- package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs → identity-created-ETXNQYR6.mjs} +4 -4
- package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs.map → identity-created-ETXNQYR6.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +33 -53
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-Y3HYRXX7.mjs → operation-resolver-D4LHB4D4.mjs} +64 -88
- package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
- package/dist/lib/browser/{react-root-UYBW5RE7.mjs → react-root-OD2HP63B.mjs} +6 -6
- package/dist/lib/browser/{react-surface-NJ23NZFF.mjs → react-surface-E4TAFED5.mjs} +57 -79
- package/dist/lib/browser/react-surface-E4TAFED5.mjs.map +7 -0
- package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
- package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
- package/dist/lib/browser/{settings-2ELVUFDR.mjs → settings-RUDP2Q56.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-Q6JASPT4.mjs → spaces-ready-B2GYL5IN.mjs} +6 -6
- package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
- package/dist/lib/browser/{state-CTX4WQOM.mjs → state-I6JDZCDE.mjs} +5 -5
- package/dist/lib/browser/{state-CTX4WQOM.mjs.map → state-I6JDZCDE.mjs.map} +2 -2
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{CollectionArticle-A6GGG73Z.mjs → CollectionArticle-JGVNBX66.mjs} +5 -36
- package/dist/lib/node-esm/CollectionArticle-JGVNBX66.mjs.map +7 -0
- package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs → CollectionSection-BI66Y34F.mjs} +2 -2
- package/dist/lib/node-esm/{CreateObjectDialog-4WEFNDDF.mjs → CreateObjectDialog-B6OLP5VQ.mjs} +17 -21
- package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
- package/dist/lib/node-esm/{CreateSpaceDialog-P7QCPB5J.mjs → CreateSpaceDialog-J47M5FPQ.mjs} +7 -7
- package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
- package/dist/lib/node-esm/{InlineSyncStatus-3PCXU7NX.mjs → InlineSyncStatus-BLD57LB5.mjs} +9 -18
- package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
- package/dist/lib/node-esm/{JoinDialog-XEOLJZVN.mjs → JoinDialog-XCOYKSHA.mjs} +8 -10
- package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
- package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs → MembersContainer-4PV3Z4BA.mjs} +4 -4
- package/dist/lib/node-esm/{MenuFooter-2QB3453Y.mjs → MenuFooter-PXG2GV6A.mjs} +3 -4
- package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs → ObjectCardStack-457SNNVF.mjs} +6 -6
- package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs → ObjectDetails-OLF7HSM4.mjs} +6 -6
- package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs → ObjectRenamePopover-BRPKVNVF.mjs} +3 -3
- package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs.map → ObjectRenamePopover-BRPKVNVF.mjs.map} +1 -1
- package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs → RecordArticle-XUIT25PP.mjs} +2 -2
- package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs → SchemaContainer-5G4R3Z6O.mjs} +2 -2
- package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
- package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
- package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs → SpacePluginSettings-PENV4GHL.mjs} +4 -4
- package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
- package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
- package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs → SpaceRenamePopover-XEMTI4PU.mjs} +3 -3
- package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs.map → SpaceRenamePopover-XEMTI4PU.mjs.map} +1 -1
- package/dist/lib/node-esm/{SpaceSettingsContainer-Y62J2L65.mjs → SpaceSettingsContainer-WI4D7RWA.mjs} +5 -5
- package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
- package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs → SyncStatus-YEBGTNSD.mjs} +6 -6
- package/dist/lib/node-esm/{ViewEditor-B2BLYF5U.mjs → ViewEditor-CUQVNM2H.mjs} +4 -7
- package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs +1204 -0
- package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs → app-graph-serializer-RT2RQTV2.mjs} +5 -5
- package/dist/lib/node-esm/{chunk-OSFH2XKO.mjs → chunk-2OLR2ZKH.mjs} +6 -6
- package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
- package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-UJQUBDQS.mjs → chunk-EDC2RUJU.mjs} +7 -16
- package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3DWZCVVQ.mjs → chunk-EVNSLSQS.mjs} +54 -86
- package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
- package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P2AVANDG.mjs → chunk-RYQQXNI7.mjs} +34 -9
- package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GWUPFA7J.mjs → chunk-S5BQUCL4.mjs} +17 -14
- package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S2IELCDF.mjs → chunk-XYLDAH5C.mjs} +3 -3
- package/dist/lib/node-esm/cli/index.mjs +8 -17
- package/dist/lib/node-esm/cli/index.mjs.map +3 -3
- package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs → identity-created-U5LGULVL.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs.map → identity-created-U5LGULVL.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +33 -53
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-IRQ2NVUQ.mjs → operation-resolver-IL2AHNPN.mjs} +64 -88
- package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs → react-root-RILC5MBD.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-UDO3PGH6.mjs → react-surface-SWKRVK4S.mjs} +57 -79
- package/dist/lib/node-esm/react-surface-SWKRVK4S.mjs.map +7 -0
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs +32 -0
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DCTVM2BV.mjs → settings-3EKSEAAG.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-XLGRTJV2.mjs → spaces-ready-QK3EHBOS.mjs} +6 -6
- package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
- package/dist/lib/node-esm/{state-G74V3WZG.mjs → state-W36RRYUO.mjs} +5 -5
- package/dist/lib/node-esm/{state-G74V3WZG.mjs.map → state-W36RRYUO.mjs.map} +2 -2
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -2
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
- package/dist/types/src/cli/commands/database/add.d.ts +0 -1
- package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
- package/dist/types/src/cli/plugin.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
- package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
- package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +0 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +1 -2
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +2 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +1 -0
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -1
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +67 -13
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
- package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +67 -13
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +67 -13
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +1 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +67 -13
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +0 -2
- package/dist/types/src/types/form.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +29 -46
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +4 -161
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -57
- package/src/SpacePlugin.ts +14 -22
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
- package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
- package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
- package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
- package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
- package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
- package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
- package/src/capabilities/app-graph-builder/extensions/types.ts +421 -0
- package/src/capabilities/identity-created/identity-created.ts +3 -3
- package/src/capabilities/operation-resolver/operation-resolver.ts +65 -73
- package/src/capabilities/react-surface/react-surface.tsx +33 -58
- package/src/capabilities/repair/repair.ts +3 -32
- package/src/capabilities/spaces-ready/spaces-ready.ts +2 -2
- package/src/capabilities/state/state.ts +4 -2
- package/src/cli/commands/database/add.ts +0 -1
- package/src/cli/commands/space/close/close.ts +1 -1
- package/src/cli/commands/space/create/create.ts +1 -1
- package/src/cli/commands/space/join/join.ts +1 -1
- package/src/cli/commands/space/open/open.ts +1 -1
- package/src/cli/plugin.ts +0 -1
- package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +2 -2
- package/src/components/AwaitingObject/index.ts +5 -0
- package/src/components/CreateDialog/CreateObjectPanel.tsx +5 -2
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +4 -4
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +4 -4
- package/src/components/ObjectForm/ObjectForm.tsx +6 -4
- package/src/constants.ts +5 -5
- package/src/containers/CollectionArticle/CollectionArticle.tsx +7 -54
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -10
- package/src/containers/CreateObjectDialog/index.ts +2 -3
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -3
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -18
- package/src/containers/JoinDialog/JoinDialog.tsx +4 -4
- package/src/containers/JoinDialog/index.ts +2 -3
- package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +1 -1
- package/src/containers/SmallPresenceLive/index.ts +1 -1
- package/src/containers/SpacePresence/SpacePresence.tsx +4 -16
- package/src/containers/SpacePresence/index.ts +2 -3
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +1 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +2 -2
- package/src/containers/ViewEditor/ViewEditor.tsx +0 -1
- package/src/containers/index.ts +1 -1
- package/src/helpers/query.test.ts +1 -1
- package/src/hooks/useActiveSpace.ts +4 -4
- package/src/meta.ts +1 -1
- package/src/translations.ts +27 -1
- package/src/types/capabilities.ts +7 -7
- package/src/types/events.ts +5 -5
- package/src/types/form.ts +1 -8
- package/src/types/types.ts +36 -58
- package/src/util.ts +82 -0
- package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
- package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
- package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
- package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
- package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
- package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
- package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
- package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
- package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
- package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
- package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
- package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
- package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
- package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
- package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
- package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
- package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
- package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
- package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
- package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
- package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
- package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
- package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
- package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
- package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
- package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
- package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
- package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
- package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
- package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
- package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
- package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
- package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
- package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
- package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
- package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
- package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
- package/src/util.tsx +0 -956
- /package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs.map → CollectionSection-H2MBNI63.mjs.map} +0 -0
- /package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs.map → MembersContainer-OGYV2L4M.mjs.map} +0 -0
- /package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs.map → ObjectCardStack-OMXF2DSG.mjs.map} +0 -0
- /package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs.map → ObjectDetails-QFTQQN4W.mjs.map} +0 -0
- /package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs.map → RecordArticle-BO2XHBFN.mjs.map} +0 -0
- /package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs.map → SchemaContainer-QWCSIZBS.mjs.map} +0 -0
- /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → SmallPresenceLive-AHHLBAUP.mjs.map} +0 -0
- /package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs.map → SpacePluginSettings-QGZKNQLK.mjs.map} +0 -0
- /package/dist/lib/{node-esm/SmallPresenceLive-K4243KXR.mjs.map → browser/SpacePresence-JIWLBUWO.mjs.map} +0 -0
- /package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs.map → SyncStatus-6N7JJ7XF.mjs.map} +0 -0
- /package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs.map → app-graph-serializer-UZWWGLGY.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-J5F4LUJD.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-UYBW5RE7.mjs.map → react-root-OD2HP63B.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-2ELVUFDR.mjs.map → settings-RUDP2Q56.mjs.map} +0 -0
- /package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs.map → CollectionSection-BI66Y34F.mjs.map} +0 -0
- /package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs.map → MembersContainer-4PV3Z4BA.mjs.map} +0 -0
- /package/dist/lib/{browser/MenuFooter-HYBTNOBT.mjs.map → node-esm/MenuFooter-PXG2GV6A.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs.map → ObjectCardStack-457SNNVF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs.map → ObjectDetails-OLF7HSM4.mjs.map} +0 -0
- /package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs.map → RecordArticle-XUIT25PP.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs.map → SchemaContainer-5G4R3Z6O.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs.map → SpacePluginSettings-PENV4GHL.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs.map → SyncStatus-YEBGTNSD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs.map → app-graph-serializer-RT2RQTV2.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-S2IELCDF.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs.map → react-root-RILC5MBD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-DCTVM2BV.mjs.map → settings-3EKSEAAG.mjs.map} +0 -0
- /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
|
@@ -10,15 +10,14 @@ import React, { useCallback } from 'react';
|
|
|
10
10
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
11
11
|
import { Surface, useAtomCapability, useSettingsState } from '@dxos/app-framework/ui';
|
|
12
12
|
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
13
|
-
import { useLayout } from '@dxos/app-toolkit/ui';
|
|
14
13
|
import { Database, Obj, type Ref } from '@dxos/echo';
|
|
15
14
|
import { Collection, type View } from '@dxos/echo';
|
|
16
15
|
import { findAnnotation } from '@dxos/effect';
|
|
17
|
-
import { type Space, SpaceState, getSpace, isSpace,
|
|
16
|
+
import { type Space, SpaceState, getSpace, isSpace, useSpace } from '@dxos/react-client/echo';
|
|
18
17
|
import { Input } from '@dxos/react-ui';
|
|
19
18
|
import { type FormFieldComponentProps, SelectField } from '@dxos/react-ui-form';
|
|
20
19
|
import { HuePicker, IconPicker } from '@dxos/react-ui-pickers';
|
|
21
|
-
import {
|
|
20
|
+
import { ViewAnnotation } from '@dxos/schema';
|
|
22
21
|
import { type JoinPanelProps } from '@dxos/shell/react';
|
|
23
22
|
|
|
24
23
|
import {
|
|
@@ -51,7 +50,7 @@ import {
|
|
|
51
50
|
SyncStatus,
|
|
52
51
|
ViewEditor,
|
|
53
52
|
} from '../../containers';
|
|
54
|
-
import { useTypeOptions } from '../../hooks';
|
|
53
|
+
import { useActiveSpace, useTypeOptions } from '../../hooks';
|
|
55
54
|
import { meta } from '../../meta';
|
|
56
55
|
import {
|
|
57
56
|
HueAnnotationId,
|
|
@@ -70,40 +69,22 @@ export default Capability.makeModule(
|
|
|
70
69
|
Effect.fnUntraced(function* ({ createInvitationUrl }: ReactSurfaceOptions) {
|
|
71
70
|
return Capability.contributes(Capabilities.ReactSurface, [
|
|
72
71
|
Surface.create({
|
|
73
|
-
id: `${meta.id}
|
|
74
|
-
role: 'article',
|
|
75
|
-
filter: (data): data is { subject: Space } =>
|
|
76
|
-
// TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
|
|
77
|
-
isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,
|
|
78
|
-
component: ({ data, role, ...rest }) => (
|
|
79
|
-
<Surface.Surface
|
|
80
|
-
data={{
|
|
81
|
-
id: data.subject.id,
|
|
82
|
-
subject: data.subject.properties[Collection.Collection.typename]?.target,
|
|
83
|
-
}}
|
|
84
|
-
role={role}
|
|
85
|
-
{...rest}
|
|
86
|
-
/>
|
|
87
|
-
),
|
|
88
|
-
}),
|
|
89
|
-
Surface.create({
|
|
90
|
-
id: `${meta.id}/collection-fallback`,
|
|
72
|
+
id: `${meta.id}.collection-fallback`,
|
|
91
73
|
role: 'article',
|
|
92
74
|
position: 'fallback',
|
|
93
|
-
filter: (data): data is { subject: Collection.Collection
|
|
94
|
-
Obj.instanceOf(Collection.Collection, data.subject)
|
|
95
|
-
Obj.instanceOf(ManagedCollection.ManagedCollection, data.subject),
|
|
75
|
+
filter: (data): data is { subject: Collection.Collection } =>
|
|
76
|
+
Obj.instanceOf(Collection.Collection, data.subject),
|
|
96
77
|
component: ({ data }) => <CollectionArticle subject={data.subject} />,
|
|
97
78
|
}),
|
|
98
79
|
Surface.create({
|
|
99
|
-
id: `${meta.id}
|
|
80
|
+
id: `${meta.id}.record-article`,
|
|
100
81
|
role: 'article',
|
|
101
82
|
position: 'fallback',
|
|
102
83
|
filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),
|
|
103
84
|
component: ({ data }) => <RecordArticle subject={data.subject} />,
|
|
104
85
|
}),
|
|
105
86
|
Surface.create({
|
|
106
|
-
id: `${meta.id}
|
|
87
|
+
id: `${meta.id}.plugin-settings`,
|
|
107
88
|
role: 'article',
|
|
108
89
|
filter: (data): data is { subject: AppCapabilities.Settings } =>
|
|
109
90
|
AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
|
|
@@ -113,21 +94,19 @@ export default Capability.makeModule(
|
|
|
113
94
|
},
|
|
114
95
|
}),
|
|
115
96
|
Surface.create({
|
|
116
|
-
id: `${meta.id}
|
|
97
|
+
id: `${meta.id}.companion.object-settings`,
|
|
117
98
|
role: 'article',
|
|
118
99
|
filter: (data): data is { companionTo: Obj.Unknown } =>
|
|
119
100
|
Obj.isObject(data.companionTo) && data.subject === 'settings',
|
|
120
101
|
component: ({ ref, data, role }) => <ObjectDetails subject={data.companionTo} role={role} ref={ref} />,
|
|
121
102
|
}),
|
|
122
103
|
Surface.create({
|
|
123
|
-
id: `${meta.id}
|
|
104
|
+
id: `${meta.id}.space-settings-properties`,
|
|
124
105
|
role: 'article',
|
|
125
|
-
filter: (data): data is { subject: string } => data.subject === `${meta.id}
|
|
106
|
+
filter: (data): data is { subject: string } => data.subject === `${meta.id}.general`,
|
|
126
107
|
component: ({ ref }) => {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
const space = useSpace(spaceId);
|
|
130
|
-
if (!space || !spaceId) {
|
|
108
|
+
const space = useActiveSpace();
|
|
109
|
+
if (!space) {
|
|
131
110
|
return null;
|
|
132
111
|
}
|
|
133
112
|
|
|
@@ -135,15 +114,13 @@ export default Capability.makeModule(
|
|
|
135
114
|
},
|
|
136
115
|
}),
|
|
137
116
|
Surface.create({
|
|
138
|
-
id: `${meta.id}
|
|
117
|
+
id: `${meta.id}.space-settings-members`,
|
|
139
118
|
role: 'article',
|
|
140
119
|
position: 'hoist',
|
|
141
|
-
filter: (data): data is { subject: string } => data.subject === `${meta.id}
|
|
120
|
+
filter: (data): data is { subject: string } => data.subject === `${meta.id}.members`,
|
|
142
121
|
component: () => {
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
const space = useSpace(spaceId);
|
|
146
|
-
if (!space || !spaceId) {
|
|
122
|
+
const space = useActiveSpace();
|
|
123
|
+
if (!space) {
|
|
147
124
|
return null;
|
|
148
125
|
}
|
|
149
126
|
|
|
@@ -151,14 +128,12 @@ export default Capability.makeModule(
|
|
|
151
128
|
},
|
|
152
129
|
}),
|
|
153
130
|
Surface.create({
|
|
154
|
-
id: `${meta.id}
|
|
131
|
+
id: `${meta.id}.space-settings-schema`,
|
|
155
132
|
role: 'article',
|
|
156
|
-
filter: (data): data is { subject: string } => data.subject === `${meta.id}
|
|
133
|
+
filter: (data): data is { subject: string } => data.subject === `${meta.id}.schema`,
|
|
157
134
|
component: () => {
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
const space = useSpace(spaceId);
|
|
161
|
-
if (!space || !spaceId) {
|
|
135
|
+
const space = useActiveSpace();
|
|
136
|
+
if (!space) {
|
|
162
137
|
return null;
|
|
163
138
|
}
|
|
164
139
|
|
|
@@ -166,7 +141,7 @@ export default Capability.makeModule(
|
|
|
166
141
|
},
|
|
167
142
|
}),
|
|
168
143
|
Surface.create({
|
|
169
|
-
id: `${meta.id}
|
|
144
|
+
id: `${meta.id}.selected-objects`,
|
|
170
145
|
role: 'article',
|
|
171
146
|
filter: (
|
|
172
147
|
data,
|
|
@@ -211,7 +186,7 @@ export default Capability.makeModule(
|
|
|
211
186
|
component: ({ data }) => <CreateObjectDialog {...data.props} />,
|
|
212
187
|
}),
|
|
213
188
|
Surface.create({
|
|
214
|
-
id: `${meta.id}
|
|
189
|
+
id: `${meta.id}.create-initial-space-form-[hue]`,
|
|
215
190
|
role: 'form-input',
|
|
216
191
|
filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {
|
|
217
192
|
const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, HueAnnotationId);
|
|
@@ -230,7 +205,7 @@ export default Capability.makeModule(
|
|
|
230
205
|
},
|
|
231
206
|
}),
|
|
232
207
|
Surface.create({
|
|
233
|
-
id: `${meta.id}
|
|
208
|
+
id: `${meta.id}.create-initial-space-form-[icon]`,
|
|
234
209
|
role: 'form-input',
|
|
235
210
|
filter: (data): data is { prop: string; schema: Schema.Schema<any> } => {
|
|
236
211
|
const annotation = findAnnotation<boolean>((data.schema as Schema.Schema.All).ast, IconAnnotationId);
|
|
@@ -254,7 +229,7 @@ export default Capability.makeModule(
|
|
|
254
229
|
},
|
|
255
230
|
}),
|
|
256
231
|
Surface.create({
|
|
257
|
-
id: `${meta.id}
|
|
232
|
+
id: `${meta.id}.typename-form-input`,
|
|
258
233
|
role: 'form-input',
|
|
259
234
|
filter: (
|
|
260
235
|
data,
|
|
@@ -281,7 +256,7 @@ export default Capability.makeModule(
|
|
|
281
256
|
},
|
|
282
257
|
}),
|
|
283
258
|
Surface.create({
|
|
284
|
-
id: `${meta.id}
|
|
259
|
+
id: `${meta.id}.object-settings`,
|
|
285
260
|
role: 'object-settings',
|
|
286
261
|
filter: (data): data is { subject: { view: Ref.Ref<View.View> } } => {
|
|
287
262
|
if (!Obj.isObject(data.subject)) {
|
|
@@ -317,13 +292,13 @@ export default Capability.makeModule(
|
|
|
317
292
|
component: ({ data }) => <ObjectRenamePopover object={data.props} />,
|
|
318
293
|
}),
|
|
319
294
|
Surface.create({
|
|
320
|
-
id: `${meta.id}
|
|
295
|
+
id: `${meta.id}.menu-footer`,
|
|
321
296
|
role: 'menu-footer',
|
|
322
297
|
filter: (data): data is { subject: Obj.Unknown } => Obj.isObject(data.subject),
|
|
323
298
|
component: ({ data }) => <MenuFooter object={data.subject} />,
|
|
324
299
|
}),
|
|
325
300
|
Surface.create({
|
|
326
|
-
id: `${meta.id}
|
|
301
|
+
id: `${meta.id}.navtree-presence`,
|
|
327
302
|
role: 'navtree-item-end',
|
|
328
303
|
filter: (data): data is { id: string; subject: Obj.Unknown; open?: boolean } =>
|
|
329
304
|
typeof data.id === 'string' && Obj.isObject(data.subject),
|
|
@@ -334,7 +309,7 @@ export default Capability.makeModule(
|
|
|
334
309
|
}),
|
|
335
310
|
// TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
|
|
336
311
|
Surface.create({
|
|
337
|
-
id: `${meta.id}
|
|
312
|
+
id: `${meta.id}.navtree-presence-fallback`,
|
|
338
313
|
role: 'navtree-item-end',
|
|
339
314
|
position: 'fallback',
|
|
340
315
|
filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',
|
|
@@ -342,13 +317,13 @@ export default Capability.makeModule(
|
|
|
342
317
|
}),
|
|
343
318
|
// TODO(wittjosiah): Broken?
|
|
344
319
|
Surface.create({
|
|
345
|
-
id: `${meta.id}
|
|
320
|
+
id: `${meta.id}.navtree-sync-status`,
|
|
346
321
|
role: 'navtree-item-end',
|
|
347
322
|
filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),
|
|
348
323
|
component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,
|
|
349
324
|
}),
|
|
350
325
|
Surface.create({
|
|
351
|
-
id: `${meta.id}
|
|
326
|
+
id: `${meta.id}.navbar-presence`,
|
|
352
327
|
role: 'navbar-end',
|
|
353
328
|
position: 'hoist',
|
|
354
329
|
filter: (data): data is { subject: Space | Obj.Unknown } => isSpace(data.subject) || Obj.isObject(data.subject),
|
|
@@ -364,14 +339,14 @@ export default Capability.makeModule(
|
|
|
364
339
|
},
|
|
365
340
|
}),
|
|
366
341
|
Surface.create({
|
|
367
|
-
id: `${meta.id}
|
|
342
|
+
id: `${meta.id}.collection-section`,
|
|
368
343
|
role: 'section',
|
|
369
344
|
filter: (data): data is { subject: Collection.Collection } =>
|
|
370
345
|
Obj.instanceOf(Collection.Collection, data.subject),
|
|
371
346
|
component: ({ data }) => <CollectionSection subject={data.subject} />,
|
|
372
347
|
}),
|
|
373
348
|
Surface.create({
|
|
374
|
-
id: `${meta.id}
|
|
349
|
+
id: `${meta.id}.status`,
|
|
375
350
|
role: 'status',
|
|
376
351
|
component: () => <SyncStatus />,
|
|
377
352
|
}),
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
import * as Effect from 'effect/Effect';
|
|
6
6
|
|
|
7
7
|
import { Capability } from '@dxos/app-framework';
|
|
8
|
-
import { Collection, Obj, Ref
|
|
8
|
+
import { Collection, Obj, Ref } from '@dxos/echo';
|
|
9
9
|
import { type Space } from '@dxos/react-client/echo';
|
|
10
|
-
import { ManagedCollection } from '@dxos/schema';
|
|
11
10
|
|
|
12
11
|
import { SpaceCapabilities } from '../../types';
|
|
13
12
|
|
|
@@ -15,7 +14,6 @@ export default Capability.makeModule(() =>
|
|
|
15
14
|
Effect.succeed(
|
|
16
15
|
Capability.contributes(SpaceCapabilities.Repair, async ({ space }: { space: Space }) => {
|
|
17
16
|
await removeQueryCollections(space);
|
|
18
|
-
await ensureSystemCollection(space);
|
|
19
17
|
}),
|
|
20
18
|
),
|
|
21
19
|
);
|
|
@@ -30,42 +28,15 @@ const removeQueryCollections = async (space: Space) => {
|
|
|
30
28
|
}
|
|
31
29
|
|
|
32
30
|
const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
|
|
33
|
-
const queryCollections = objects.filter((object) => Obj.getTypename(object) === 'dxos.
|
|
31
|
+
const queryCollections = objects.filter((object) => Obj.getTypename(object) === 'org.dxos.type.query-collection');
|
|
34
32
|
if (queryCollections.length === 0) {
|
|
35
33
|
return;
|
|
36
34
|
}
|
|
37
35
|
|
|
38
36
|
Obj.change(rootCollection, (c) => {
|
|
39
37
|
c.objects = objects
|
|
40
|
-
.filter((object) => Obj.getTypename(object) !== 'dxos.
|
|
38
|
+
.filter((object) => Obj.getTypename(object) !== 'org.dxos.type.query-collection')
|
|
41
39
|
.map((object) => Ref.make(object));
|
|
42
40
|
});
|
|
43
41
|
queryCollections.forEach((object) => space.db.remove(object));
|
|
44
42
|
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Ensure the root collection has a system collection for StoredSchema.
|
|
48
|
-
*/
|
|
49
|
-
const ensureSystemCollection = async (space: Space) => {
|
|
50
|
-
const rootCollection: Collection.Collection = await space.properties[Collection.Collection.typename]?.load();
|
|
51
|
-
if (!rootCollection) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
|
|
56
|
-
const records = objects.find(
|
|
57
|
-
(object) =>
|
|
58
|
-
Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&
|
|
59
|
-
object.key === Type.getTypename(Type.PersistentType),
|
|
60
|
-
);
|
|
61
|
-
if (records) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const recordsCollectionRef = Ref.make(
|
|
66
|
-
ManagedCollection.makeManagedCollection({ key: Type.getTypename(Type.PersistentType) }),
|
|
67
|
-
);
|
|
68
|
-
Obj.change(rootCollection, (c) => {
|
|
69
|
-
c.objects.push(recordsCollectionRef);
|
|
70
|
-
});
|
|
71
|
-
};
|
|
@@ -6,7 +6,7 @@ import * as Effect from 'effect/Effect';
|
|
|
6
6
|
import * as Option from 'effect/Option';
|
|
7
7
|
|
|
8
8
|
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
-
import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
|
|
9
|
+
import { AppCapabilities, LayoutOperation, getSpacePath } from '@dxos/app-toolkit';
|
|
10
10
|
import { SubscriptionList } from '@dxos/async';
|
|
11
11
|
import { Filter, Obj } from '@dxos/echo';
|
|
12
12
|
import { log } from '@dxos/log';
|
|
@@ -48,7 +48,7 @@ export default Capability.makeModule(
|
|
|
48
48
|
// Check if deck state indicates we should switch to default space.
|
|
49
49
|
const layout = registry.get(layoutAtom);
|
|
50
50
|
if (layout.workspace === 'default') {
|
|
51
|
-
yield* invoke(LayoutOperation.SwitchWorkspace, { subject: defaultSpace.id });
|
|
51
|
+
yield* invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(defaultSpace.id) });
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
// Initialize space sharing lock in default space.
|
|
@@ -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}
|
|
28
|
+
key: `${meta.id}.state`,
|
|
29
29
|
schema: SpaceCapabilities.StateSchema,
|
|
30
30
|
defaultValue: () => ({ ...defaultSpaceState }),
|
|
31
31
|
});
|
|
@@ -42,7 +42,9 @@ export default Capability.makeModule(
|
|
|
42
42
|
const manager = yield* Capability.get(Capabilities.PluginManager);
|
|
43
43
|
// Update navigableCollections based on plugin state.
|
|
44
44
|
const updateNavigableCollections = () => {
|
|
45
|
-
const enabled =
|
|
45
|
+
const enabled =
|
|
46
|
+
manager.getEnabled().includes('org.dxos.plugin.stack') ||
|
|
47
|
+
manager.getEnabled().includes('org.dxos.plugin.simple-layout');
|
|
46
48
|
const current = registry.get(ephemeralAtom);
|
|
47
49
|
if (enabled !== current.navigableCollections) {
|
|
48
50
|
registry.update(ephemeralAtom, (c) => ({ ...c, navigableCollections: enabled }));
|
|
@@ -19,7 +19,7 @@ export const handler = ({ spaceId }: { spaceId: Key.SpaceId }) =>
|
|
|
19
19
|
const space = yield* getSpace(spaceId);
|
|
20
20
|
|
|
21
21
|
// Flush and sync before closing
|
|
22
|
-
yield* Effect.tryPromise(() => space.db.flush(
|
|
22
|
+
yield* Effect.tryPromise(() => space.db.flush());
|
|
23
23
|
yield* waitForSync(space);
|
|
24
24
|
|
|
25
25
|
yield* Effect.tryPromise(() => space.close());
|
|
@@ -48,7 +48,7 @@ export const handler = Effect.fn(function* ({ name }: { name: Option.Option<stri
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
// Flush and sync before completion
|
|
51
|
-
yield* Effect.tryPromise(() => space.db.flush(
|
|
51
|
+
yield* Effect.tryPromise(() => space.db.flush());
|
|
52
52
|
yield* waitForSync(space);
|
|
53
53
|
});
|
|
54
54
|
|
|
@@ -20,7 +20,7 @@ export const handler = ({ spaceId }: { spaceId: Key.SpaceId }) =>
|
|
|
20
20
|
yield* Effect.tryPromise(() => space.open());
|
|
21
21
|
|
|
22
22
|
// Flush and sync after opening
|
|
23
|
-
yield* Effect.tryPromise(() => space.db.flush(
|
|
23
|
+
yield* Effect.tryPromise(() => space.db.flush());
|
|
24
24
|
yield* waitForSync(space);
|
|
25
25
|
|
|
26
26
|
if (json) {
|
package/src/cli/plugin.ts
CHANGED
|
@@ -41,7 +41,6 @@ export const SpacePlugin = Plugin.define<SpacePluginOptions>(meta).pipe(
|
|
|
41
41
|
id: Collection.Collection.typename,
|
|
42
42
|
metadata: {
|
|
43
43
|
createObject: ((props) => Effect.sync(() => Collection.make(props))) satisfies CreateObject,
|
|
44
|
-
addToCollectionOnCreate: true,
|
|
45
44
|
},
|
|
46
45
|
},
|
|
47
46
|
}),
|
|
@@ -13,8 +13,8 @@ import { Filter, useQuery } from '@dxos/react-client/echo';
|
|
|
13
13
|
import { Button, Icon, Toast, useTranslation } from '@dxos/react-ui';
|
|
14
14
|
import { osTranslations } from '@dxos/ui-theme';
|
|
15
15
|
|
|
16
|
-
import { meta } from '
|
|
17
|
-
import { SpaceOperation } from '
|
|
16
|
+
import { meta } from '../../meta';
|
|
17
|
+
import { SpaceOperation } from '../../types';
|
|
18
18
|
|
|
19
19
|
const WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1_000;
|
|
20
20
|
const TOAST_TIMEOUT = 4 * 60 * 1_000;
|
|
@@ -29,7 +29,6 @@ export type CreateObjectOption = {
|
|
|
29
29
|
export type Metadata = {
|
|
30
30
|
createObject: CreateObject;
|
|
31
31
|
inputSchema?: Schema.Schema.AnyNoContext;
|
|
32
|
-
addToCollectionOnCreate?: boolean;
|
|
33
32
|
icon?: string;
|
|
34
33
|
};
|
|
35
34
|
|
|
@@ -85,6 +84,10 @@ export const CreateObjectPanel = ({
|
|
|
85
84
|
[resolve, onCreateObject],
|
|
86
85
|
);
|
|
87
86
|
|
|
87
|
+
const inputSchema = useMemo(
|
|
88
|
+
() => (metadata && typeof metadata === 'object' && metadata.inputSchema ? omitId(metadata.inputSchema) : undefined),
|
|
89
|
+
[metadata],
|
|
90
|
+
);
|
|
88
91
|
const inputSurfaceLookup = useInputSurfaceLookup({ target });
|
|
89
92
|
|
|
90
93
|
// TODO(wittjosiah): These inputs should be rolled into a `Form` once it supports the necessary variants.
|
|
@@ -101,7 +104,7 @@ export const CreateObjectPanel = ({
|
|
|
101
104
|
<Form.Root
|
|
102
105
|
testId='create-object-form'
|
|
103
106
|
autoFocus
|
|
104
|
-
schema={
|
|
107
|
+
schema={inputSchema}
|
|
105
108
|
defaultValues={initialFormValues}
|
|
106
109
|
db={Obj.isObject(target) ? Obj.getDatabase(target) : target}
|
|
107
110
|
fieldProvider={inputSurfaceLookup}
|
|
@@ -7,8 +7,8 @@ import React, { useEffect, useState } from 'react';
|
|
|
7
7
|
|
|
8
8
|
import { type Obj, Tag } from '@dxos/echo';
|
|
9
9
|
import { useClientStory, withClientProvider } from '@dxos/react-client/testing';
|
|
10
|
-
import { withTheme } from '@dxos/react-ui/testing';
|
|
11
|
-
|
|
10
|
+
import { Loading, withTheme } from '@dxos/react-ui/testing';
|
|
11
|
+
|
|
12
12
|
import { Pipeline } from '@dxos/types';
|
|
13
13
|
|
|
14
14
|
import { translations } from '../../translations';
|
|
@@ -27,7 +27,7 @@ const DefaultStory = () => {
|
|
|
27
27
|
}, [space, object]);
|
|
28
28
|
|
|
29
29
|
if (!object) {
|
|
30
|
-
return
|
|
30
|
+
return <Loading data={{ space: !!space, object: !!object }} />;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
return <BaseObjectSettings object={object} classNames='w-[20rem]' />;
|
|
@@ -36,7 +36,7 @@ const DefaultStory = () => {
|
|
|
36
36
|
const meta = {
|
|
37
37
|
title: 'plugins/plugin-space/components/BaseObjectSettings',
|
|
38
38
|
component: BaseObjectSettings as any,
|
|
39
|
-
render:
|
|
39
|
+
render: DefaultStory,
|
|
40
40
|
decorators: [
|
|
41
41
|
withTheme(),
|
|
42
42
|
withClientProvider({
|
|
@@ -35,7 +35,7 @@ export const BaseObjectSettings = ({ classNames, children, object }: BaseObjectS
|
|
|
35
35
|
return Function.pipe(
|
|
36
36
|
Obj.getSchema(object),
|
|
37
37
|
Option.fromNullable,
|
|
38
|
-
Option.map((schema) => BaseSchema.pipe(Schema.extend(schema))),
|
|
38
|
+
Option.map((schema) => omitId(BaseSchema.pipe(Schema.extend(schema)))),
|
|
39
39
|
Option.getOrUndefined,
|
|
40
40
|
);
|
|
41
41
|
}, [object]);
|
|
@@ -87,7 +87,7 @@ export const BaseObjectSettings = ({ classNames, children, object }: BaseObjectS
|
|
|
87
87
|
Obj.change(object, () => {
|
|
88
88
|
for (const path of nonTagPaths) {
|
|
89
89
|
const parts = splitJsonPath(path);
|
|
90
|
-
const value = Obj.getValue(values, parts);
|
|
90
|
+
const value = Obj.getValue(values as any, parts);
|
|
91
91
|
Obj.setValue(object, parts, value);
|
|
92
92
|
}
|
|
93
93
|
});
|
|
@@ -102,8 +102,8 @@ export const BaseObjectSettings = ({ classNames, children, object }: BaseObjectS
|
|
|
102
102
|
|
|
103
103
|
return (
|
|
104
104
|
<Form.Root
|
|
105
|
-
schema={
|
|
106
|
-
defaultValues={values}
|
|
105
|
+
schema={formSchema}
|
|
106
|
+
defaultValues={values as any}
|
|
107
107
|
createOptionIcon='ph--plus--regular'
|
|
108
108
|
createOptionLabel={['add tag label', { ns: pluginMeta.id }]}
|
|
109
109
|
createInitialValuePath='label'
|
|
@@ -23,9 +23,11 @@ export const ObjectForm = ({ object, schema }: ObjectFormProps) => {
|
|
|
23
23
|
|
|
24
24
|
const formSchema = useMemo(
|
|
25
25
|
() =>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
omitId(
|
|
27
|
+
Schema.Struct({
|
|
28
|
+
tags: Schema.Array(Ref.Ref(Tag.Tag)).pipe(Schema.optional),
|
|
29
|
+
}).pipe(Schema.extend(schema)),
|
|
30
|
+
),
|
|
29
31
|
[schema],
|
|
30
32
|
);
|
|
31
33
|
|
|
@@ -78,7 +80,7 @@ export const ObjectForm = ({ object, schema }: ObjectFormProps) => {
|
|
|
78
80
|
|
|
79
81
|
return (
|
|
80
82
|
<Form.Root
|
|
81
|
-
schema={
|
|
83
|
+
schema={formSchema}
|
|
82
84
|
defaultValues={values}
|
|
83
85
|
createOptionIcon='ph--plus--regular'
|
|
84
86
|
createOptionLabel={['add tag label', { ns: pluginMeta.id }]}
|
package/src/constants.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import { meta } from './meta';
|
|
6
6
|
|
|
7
|
-
export const CREATE_OBJECT_DIALOG = `${meta.id}
|
|
8
|
-
export const CREATE_SPACE_DIALOG = `${meta.id}
|
|
9
|
-
export const JOIN_DIALOG = `${meta.id}
|
|
10
|
-
export const OBJECT_RENAME_POPOVER = `${meta.id}
|
|
11
|
-
export const SPACE_RENAME_POPOVER = `${meta.id}
|
|
7
|
+
export const CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;
|
|
8
|
+
export const CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;
|
|
9
|
+
export const JOIN_DIALOG = `${meta.id}.JoinDialog`;
|
|
10
|
+
export const OBJECT_RENAME_POPOVER = `${meta.id}.ObjectRenamePopover`;
|
|
11
|
+
export const SPACE_RENAME_POPOVER = `${meta.id}.SpaceRenamePopover`;
|
|
@@ -7,15 +7,12 @@ import React, { useCallback, useMemo } from 'react';
|
|
|
7
7
|
import { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';
|
|
8
8
|
import { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';
|
|
9
9
|
import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
|
|
10
|
-
import {
|
|
10
|
+
import { Obj } from '@dxos/echo';
|
|
11
11
|
import { type Collection } from '@dxos/echo';
|
|
12
|
-
import { useClient } from '@dxos/react-client';
|
|
13
|
-
import { getSpace, useQuery } from '@dxos/react-client/echo';
|
|
14
12
|
import { Panel, ScrollArea, Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
15
13
|
import { Card } from '@dxos/react-ui';
|
|
16
14
|
import { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';
|
|
17
15
|
import { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';
|
|
18
|
-
import { ManagedCollection } from '@dxos/schema';
|
|
19
16
|
import { getStyles } from '@dxos/ui-theme';
|
|
20
17
|
|
|
21
18
|
import { meta } from '../../meta';
|
|
@@ -31,9 +28,7 @@ const useMetadataResolver = () => {
|
|
|
31
28
|
/**
|
|
32
29
|
* Article view for collections.
|
|
33
30
|
*/
|
|
34
|
-
export const CollectionArticle = ({
|
|
35
|
-
subject,
|
|
36
|
-
}: SurfaceComponentProps<Collection.Collection | ManagedCollection.ManagedCollection>) => {
|
|
31
|
+
export const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.Collection>) => {
|
|
37
32
|
const { t } = useTranslation(meta.id);
|
|
38
33
|
const resolveMetadata = useMetadataResolver();
|
|
39
34
|
const { items, handleSearch } = useCollectionItems(subject, resolveMetadata);
|
|
@@ -101,58 +96,16 @@ const ObjectTile: MosaicStackTileComponent<ObjectItem> = (props) => {
|
|
|
101
96
|
);
|
|
102
97
|
};
|
|
103
98
|
|
|
104
|
-
/**
|
|
105
|
-
* Hook to get items from a regular collection.
|
|
106
|
-
*/
|
|
107
|
-
const useRegularCollectionItems = (collection: Collection.Collection): Obj.Unknown[] => {
|
|
108
|
-
return useMemo(
|
|
109
|
-
() => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),
|
|
110
|
-
[collection.objects],
|
|
111
|
-
);
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Hook to get items from a managed collection by querying the space.
|
|
116
|
-
*/
|
|
117
|
-
const useManagedCollectionItems = (collection: ManagedCollection.ManagedCollection): Obj.Unknown[] => {
|
|
118
|
-
const client = useClient();
|
|
119
|
-
const space = getSpace(collection);
|
|
120
|
-
const [typename, feedKind] = collection.key.split('~');
|
|
121
|
-
|
|
122
|
-
const schema = useMemo(
|
|
123
|
-
() => client.graph.schemaRegistry.query({ typename, location: ['runtime'] }).runSync()[0],
|
|
124
|
-
[client, typename],
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
const filter = useMemo(
|
|
128
|
-
() =>
|
|
129
|
-
typename === Feed.Feed.typename
|
|
130
|
-
? Filter.type(Feed.Feed, { kind: feedKind })
|
|
131
|
-
: schema
|
|
132
|
-
? Filter.type(schema)
|
|
133
|
-
: Filter.nothing(),
|
|
134
|
-
[typename, schema, feedKind],
|
|
135
|
-
);
|
|
136
|
-
|
|
137
|
-
return useQuery(space?.db, filter);
|
|
138
|
-
};
|
|
139
|
-
|
|
140
99
|
type MetadataResolver = (typename: string) => { icon?: string; iconHue?: string };
|
|
141
100
|
|
|
142
101
|
/**
|
|
143
102
|
* Combined hook to get collection items with search/filter support.
|
|
144
103
|
*/
|
|
145
|
-
const useCollectionItems = (
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// Call both hooks unconditionally to satisfy React's rules of hooks.
|
|
152
|
-
const regularObjects = useRegularCollectionItems(collection as Collection.Collection);
|
|
153
|
-
const managedObjects = useManagedCollectionItems(collection as ManagedCollection.ManagedCollection);
|
|
154
|
-
|
|
155
|
-
const objects = isManaged ? managedObjects : regularObjects;
|
|
104
|
+
const useCollectionItems = (collection: Collection.Collection, resolveMetadata: MetadataResolver) => {
|
|
105
|
+
const objects = useMemo(
|
|
106
|
+
() => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),
|
|
107
|
+
[collection.objects],
|
|
108
|
+
);
|
|
156
109
|
|
|
157
110
|
// Convert objects to items with resolved metadata.
|
|
158
111
|
const items = useMemo(
|