@dxos/plugin-space 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8
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-XGSQDBMS.mjs +115 -0
- package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs.map +7 -0
- package/dist/lib/browser/CollectionSection-H2MBNI63.mjs +23 -0
- package/dist/lib/browser/CollectionSection-H2MBNI63.mjs.map +7 -0
- package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs +142 -0
- package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
- package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs +64 -0
- package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
- package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs +53 -0
- package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
- package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs +115 -0
- package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
- package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs +257 -0
- package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs.map +7 -0
- package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs +37 -0
- package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs.map +7 -0
- package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs +64 -0
- package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetails-ADGND237.mjs +43 -0
- package/dist/lib/browser/ObjectDetails-ADGND237.mjs.map +7 -0
- package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs +70 -0
- package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs.map +7 -0
- package/dist/lib/browser/{RecordArticle-W57QE7QV.mjs → RecordArticle-YXAJ23HH.mjs} +49 -34
- package/dist/lib/browser/RecordArticle-YXAJ23HH.mjs.map +7 -0
- package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs +49 -0
- package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs.map +7 -0
- package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
- package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs.map +7 -0
- package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs +59 -0
- package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs.map +7 -0
- package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
- package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs.map +7 -0
- package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs +62 -0
- package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs.map +7 -0
- package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs +242 -0
- package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
- package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs +141 -0
- package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs.map +7 -0
- package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs +113 -0
- package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs +1201 -0
- package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-7AT7QMSK.mjs → app-graph-serializer-UZWWGLGY.mjs} +11 -10
- package/dist/lib/browser/app-graph-serializer-UZWWGLGY.mjs.map +7 -0
- package/dist/lib/browser/chunk-2WHUSAHE.mjs +579 -0
- package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-CCRSHECL.mjs → chunk-6IT5IBB5.mjs} +74 -105
- 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-ZT2VPYRM.mjs → chunk-AUX3RRLY.mjs} +37 -12
- 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-4WZUGLQQ.mjs → chunk-ICXESMDI.mjs} +13 -12
- 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-SJCNERZI.mjs +115 -0
- package/dist/lib/browser/chunk-SJCNERZI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-AWVAX26X.mjs → chunk-SSTUPFZ2.mjs} +3 -3
- package/dist/lib/browser/chunk-UYOJYBGW.mjs +168 -0
- package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +38 -44
- package/dist/lib/browser/cli/index.mjs.map +3 -3
- package/dist/lib/browser/{identity-created-VCFYLSBB.mjs → identity-created-ETXNQYR6.mjs} +5 -5
- package/dist/lib/browser/identity-created-ETXNQYR6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +104 -159
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-SIRQT36Z.mjs → operation-resolver-D4LHB4D4.mjs} +95 -115
- package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
- package/dist/lib/browser/{react-root-3SPMM45V.mjs → react-root-OD2HP63B.mjs} +9 -9
- package/dist/lib/browser/react-root-OD2HP63B.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-UUS7NDHS.mjs → react-surface-ANV4KTRV.mjs} +98 -115
- package/dist/lib/browser/react-surface-ANV4KTRV.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-ZS2AQ73E.mjs → settings-RUDP2Q56.mjs} +6 -5
- package/dist/lib/browser/settings-RUDP2Q56.mjs.map +7 -0
- package/dist/lib/browser/{spaces-ready-OQDGWUOS.mjs → spaces-ready-B2GYL5IN.mjs} +15 -14
- package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
- package/dist/lib/browser/{state-7YZQB2KY.mjs → state-I6JDZCDE.mjs} +8 -8
- package/dist/lib/browser/state-I6JDZCDE.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{CollectionArticle-V5OOJVJJ.mjs → CollectionArticle-MNLCROOX.mjs} +49 -59
- package/dist/lib/node-esm/CollectionArticle-MNLCROOX.mjs.map +7 -0
- package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs +24 -0
- package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs.map +7 -0
- package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs +143 -0
- package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
- package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs +65 -0
- package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
- package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs +54 -0
- package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
- package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs +116 -0
- package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
- package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs +258 -0
- package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs.map +7 -0
- package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs +38 -0
- package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs +65 -0
- package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs +44 -0
- package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs +71 -0
- package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs.map +7 -0
- package/dist/lib/node-esm/{RecordArticle-SSV74Z46.mjs → RecordArticle-344UK7QP.mjs} +49 -34
- package/dist/lib/node-esm/RecordArticle-344UK7QP.mjs.map +7 -0
- package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs +50 -0
- package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs.map +7 -0
- 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-PENV4GHL.mjs +60 -0
- package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs.map +7 -0
- 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-XEMTI4PU.mjs +63 -0
- package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs.map +7 -0
- package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs +243 -0
- package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
- package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs +142 -0
- package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs.map +7 -0
- package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs +114 -0
- package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs +1202 -0
- package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-WJ2TIQG6.mjs → app-graph-serializer-RT2RQTV2.mjs} +11 -10
- package/dist/lib/node-esm/app-graph-serializer-RT2RQTV2.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JOBIWCBC.mjs → chunk-2OLR2ZKH.mjs} +13 -12
- 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-EDC2RUJU.mjs +169 -0
- package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MPL6NHQX.mjs → chunk-EVNSLSQS.mjs} +74 -105
- 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-IV7VKVGC.mjs +117 -0
- package/dist/lib/node-esm/chunk-IV7VKVGC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2SW6S2BB.mjs → chunk-RYQQXNI7.mjs} +37 -12
- package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-S5BQUCL4.mjs +580 -0
- package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HREWB23G.mjs → chunk-XYLDAH5C.mjs} +3 -3
- package/dist/lib/node-esm/cli/index.mjs +38 -44
- package/dist/lib/node-esm/cli/index.mjs.map +3 -3
- package/dist/lib/node-esm/{identity-created-2SJABVJD.mjs → identity-created-U5LGULVL.mjs} +5 -5
- package/dist/lib/node-esm/identity-created-U5LGULVL.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +104 -159
- 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-ZE3XJL5J.mjs → operation-resolver-IL2AHNPN.mjs} +95 -115
- package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-Y6JTGDTW.mjs → react-root-RILC5MBD.mjs} +9 -9
- package/dist/lib/node-esm/react-root-RILC5MBD.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-SQ4SK3OK.mjs → react-surface-TA5KEWVW.mjs} +98 -115
- package/dist/lib/node-esm/react-surface-TA5KEWVW.mjs.map +7 -0
- package/dist/lib/node-esm/{repair-G3ZW3VG3.mjs → repair-LRZHFPSJ.mjs} +6 -25
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-PVI2VG56.mjs → settings-3EKSEAAG.mjs} +6 -5
- package/dist/lib/node-esm/settings-3EKSEAAG.mjs.map +7 -0
- package/dist/lib/node-esm/{spaces-ready-R744OHQG.mjs → spaces-ready-QK3EHBOS.mjs} +15 -14
- package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
- package/dist/lib/node-esm/{state-XE5YGPHM.mjs → state-W36RRYUO.mjs} +8 -8
- package/dist/lib/node-esm/state-W36RRYUO.mjs.map +7 -0
- 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 +2 -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/app-graph-builder/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair/repair.d.ts +1 -1
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts +1 -1
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings/settings.d.ts +4 -3
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state/state.d.ts +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 +12 -5
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/index.d.ts +1 -2
- package/dist/types/src/components/CreateDialog/index.d.ts.map +1 -1
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.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/ObjectDetails/index.d.ts +2 -2
- package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -1
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectForm/index.d.ts +2 -0
- package/dist/types/src/components/ObjectForm/index.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/index.d.ts +2 -2
- package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -23
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +8 -0
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/containers/CollectionArticle/index.d.ts +3 -0
- package/dist/types/src/containers/CollectionArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts +5 -0
- package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -0
- package/dist/types/src/containers/CollectionSection/index.d.ts +3 -0
- package/dist/types/src/containers/CollectionSection/index.d.ts.map +1 -0
- package/dist/types/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.d.ts +5 -3
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -0
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts +3 -0
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -0
- package/dist/types/src/containers/CreateSpaceDialog/index.d.ts +3 -0
- package/dist/types/src/containers/CreateSpaceDialog/index.d.ts.map +1 -0
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -0
- package/dist/types/src/containers/InlineSyncStatus/index.d.ts +3 -0
- package/dist/types/src/containers/InlineSyncStatus/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/containers/MembersContainer/index.d.ts +3 -0
- package/dist/types/src/containers/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +1 -0
- package/dist/types/src/containers/MenuFooter/index.d.ts +3 -0
- package/dist/types/src/containers/MenuFooter/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/ObjectCardStack/ObjectCardStack.d.ts +4 -1
- package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts.map +1 -1
- package/dist/types/src/{components → containers}/ObjectDetails/ObjectDetails.d.ts +2 -1
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -0
- package/dist/types/src/containers/ObjectDetails/index.d.ts +3 -0
- package/dist/types/src/containers/ObjectDetails/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectRenamePopover/index.d.ts +3 -0
- package/dist/types/src/containers/ObjectRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts +4 -0
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/containers/RecordArticle/index.d.ts +3 -0
- package/dist/types/src/containers/RecordArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -0
- package/dist/types/src/containers/SchemaContainer/index.d.ts +3 -0
- package/dist/types/src/containers/SchemaContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts +2 -0
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/SpacePluginSettings}/SpacePluginSettings.d.ts +1 -1
- package/dist/types/src/containers/SpacePluginSettings/SpacePluginSettings.d.ts.map +1 -0
- package/dist/types/src/containers/SpacePluginSettings/index.d.ts +3 -0
- package/dist/types/src/containers/SpacePluginSettings/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts +67 -13
- package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/index.d.ts +3 -0
- package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +3 -0
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts +10 -0
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts.map +1 -0
- package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts +71 -14
- package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts +3 -0
- package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts +67 -13
- package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/index.d.ts +3 -0
- package/dist/types/src/containers/SyncStatus/index.d.ts.map +1 -0
- package/dist/types/src/{components → containers/ViewEditor}/ViewEditor.d.ts +1 -1
- package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -0
- package/dist/types/src/containers/ViewEditor/index.d.ts +3 -0
- package/dist/types/src/containers/ViewEditor/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +23 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/helpers/query.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/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/capabilities.d.ts +1 -1
- package/dist/types/src/types/capabilities.d.ts.map +1 -1
- package/dist/types/src/types/events.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 +63 -124
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +6 -121
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +68 -66
- package/src/SpacePlugin.ts +83 -70
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +17 -602
- 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 +432 -0
- package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +6 -5
- package/src/capabilities/identity-created/identity-created.ts +4 -4
- package/src/capabilities/operation-resolver/operation-resolver.ts +97 -94
- package/src/capabilities/react-root/react-root.tsx +3 -3
- package/src/capabilities/react-surface/react-surface.tsx +79 -99
- package/src/capabilities/repair/repair.ts +3 -28
- package/src/capabilities/settings/settings.ts +3 -2
- package/src/capabilities/spaces-ready/spaces-ready.ts +8 -7
- package/src/capabilities/state/state.ts +7 -5
- package/src/cli/commands/database/add.ts +8 -10
- package/src/cli/commands/database/query/query.ts +1 -1
- package/src/cli/commands/database/remove.ts +2 -2
- package/src/cli/commands/database/stats.ts +1 -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 +34 -27
- package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +6 -5
- package/src/components/AwaitingObject/index.ts +5 -0
- package/src/components/CreateDialog/CreateObjectPanel.tsx +90 -111
- package/src/components/CreateDialog/index.ts +1 -2
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +10 -10
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +8 -8
- package/src/components/ObjectDetails/ForeignKeys.tsx +1 -1
- package/src/components/ObjectDetails/index.ts +2 -3
- package/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.tsx +9 -7
- package/src/components/{JoinDialog → ObjectForm}/index.ts +1 -1
- package/src/components/SyncStatus/index.ts +2 -2
- package/src/components/index.ts +2 -18
- package/src/constants.ts +5 -5
- package/src/containers/CollectionArticle/CollectionArticle.tsx +139 -0
- package/src/containers/CollectionArticle/index.ts +7 -0
- package/src/{components → containers/CollectionSection}/CollectionSection.tsx +4 -4
- package/src/containers/CollectionSection/index.ts +7 -0
- package/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.tsx +62 -42
- package/src/containers/CreateObjectDialog/index.ts +6 -0
- package/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.tsx +6 -6
- package/src/containers/CreateSpaceDialog/index.ts +7 -0
- package/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.tsx +8 -19
- package/src/containers/InlineSyncStatus/index.ts +7 -0
- package/src/{components → containers}/JoinDialog/JoinDialog.tsx +10 -9
- package/src/containers/JoinDialog/index.ts +6 -0
- package/src/{components → containers}/MembersContainer/MembersContainer.tsx +50 -53
- package/src/containers/MembersContainer/index.ts +7 -0
- package/src/{components → containers/MenuFooter}/MenuFooter.tsx +5 -5
- package/src/containers/MenuFooter/index.ts +7 -0
- package/src/containers/ObjectCardStack/ObjectCardStack.tsx +82 -0
- package/src/containers/ObjectDetails/ObjectDetails.tsx +36 -0
- package/src/containers/ObjectDetails/index.ts +7 -0
- package/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.tsx +4 -4
- package/src/containers/ObjectRenamePopover/index.ts +7 -0
- package/src/{components → containers/RecordArticle}/RecordArticle.tsx +55 -37
- package/src/containers/RecordArticle/index.ts +7 -0
- package/src/{components → containers/SchemaContainer}/SchemaContainer.tsx +22 -18
- package/src/containers/SchemaContainer/index.ts +7 -0
- package/src/containers/SmallPresenceLive/index.ts +5 -0
- package/src/containers/SpacePluginSettings/SpacePluginSettings.tsx +65 -0
- package/src/containers/SpacePluginSettings/index.ts +7 -0
- package/src/{components → containers}/SpacePresence/SpacePresence.stories.tsx +2 -2
- package/src/{components → containers}/SpacePresence/SpacePresence.tsx +11 -22
- package/src/containers/SpacePresence/index.ts +6 -0
- package/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.tsx +4 -4
- package/src/containers/SpaceRenamePopover/index.ts +7 -0
- package/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.tsx +3 -3
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +202 -0
- package/src/containers/SpaceSettingsContainer/index.ts +7 -0
- package/src/{components → containers}/SyncStatus/SyncStatus.stories.tsx +2 -2
- package/src/{components → containers}/SyncStatus/SyncStatus.tsx +5 -7
- package/src/containers/SyncStatus/index.ts +7 -0
- package/src/{components → containers/ViewEditor}/ViewEditor.tsx +11 -10
- package/src/containers/ViewEditor/index.ts +7 -0
- package/src/containers/index.ts +28 -0
- package/src/helpers/query.test.ts +1 -1
- package/src/helpers/query.ts +20 -7
- package/src/hooks/useActiveSpace.ts +8 -7
- package/src/hooks/useInputSurfaceLookup.tsx +3 -3
- package/src/index.ts +2 -1
- package/src/meta.ts +1 -1
- package/src/translations.ts +30 -4
- package/src/types/capabilities.ts +8 -8
- package/src/types/events.ts +7 -6
- package/src/types/form.ts +1 -8
- package/src/types/types.ts +61 -76
- package/src/util.ts +82 -0
- package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs +0 -125
- package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs.map +0 -7
- package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs +0 -148
- package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs +0 -142
- package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs.map +0 -7
- package/dist/lib/browser/RecordArticle-W57QE7QV.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs +0 -523
- package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-7AT7QMSK.mjs.map +0 -7
- package/dist/lib/browser/chunk-4WZUGLQQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
- package/dist/lib/browser/chunk-CCRSHECL.mjs.map +0 -7
- package/dist/lib/browser/chunk-SUI34XSA.mjs +0 -772
- package/dist/lib/browser/chunk-SUI34XSA.mjs.map +0 -7
- package/dist/lib/browser/chunk-TWUMNPG4.mjs +0 -1898
- package/dist/lib/browser/chunk-TWUMNPG4.mjs.map +0 -7
- package/dist/lib/browser/chunk-ZT2VPYRM.mjs.map +0 -7
- package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-SIRQT36Z.mjs.map +0 -7
- package/dist/lib/browser/react-root-3SPMM45V.mjs.map +0 -7
- package/dist/lib/browser/react-surface-UUS7NDHS.mjs.map +0 -7
- package/dist/lib/browser/repair-CJG26D52.mjs +0 -50
- package/dist/lib/browser/repair-CJG26D52.mjs.map +0 -7
- package/dist/lib/browser/settings-ZS2AQ73E.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-OQDGWUOS.mjs.map +0 -7
- package/dist/lib/browser/state-7YZQB2KY.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionArticle-V5OOJVJJ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs +0 -149
- package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs +0 -143
- package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs.map +0 -7
- package/dist/lib/node-esm/RecordArticle-SSV74Z46.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs +0 -524
- package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-WJ2TIQG6.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2SW6S2BB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7KMYUWSR.mjs +0 -773
- package/dist/lib/node-esm/chunk-7KMYUWSR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
- package/dist/lib/node-esm/chunk-FYSBFBSD.mjs +0 -1899
- package/dist/lib/node-esm/chunk-FYSBFBSD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JOBIWCBC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MPL6NHQX.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-ZE3XJL5J.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-Y6JTGDTW.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-SQ4SK3OK.mjs.map +0 -7
- package/dist/lib/node-esm/repair-G3ZW3VG3.mjs.map +0 -7
- package/dist/lib/node-esm/settings-PVI2VG56.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-R744OHQG.mjs.map +0 -7
- package/dist/lib/node-esm/state-XE5YGPHM.mjs.map +0 -7
- package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
- package/dist/types/src/components/CollectionArticle.d.ts +0 -9
- package/dist/types/src/components/CollectionArticle.d.ts.map +0 -1
- package/dist/types/src/components/CollectionSection.d.ts +0 -5
- package/dist/types/src/components/CollectionSection.d.ts.map +0 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +0 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +0 -1604
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog/index.d.ts +0 -2
- package/dist/types/src/components/JoinDialog/index.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +0 -1600
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer/index.d.ts +0 -2
- package/dist/types/src/components/MembersContainer/index.d.ts.map +0 -1
- package/dist/types/src/components/MenuFooter.d.ts.map +0 -1
- package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +0 -1
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +0 -1
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +0 -1
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +0 -2
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +0 -1
- package/dist/types/src/components/RecordArticle.d.ts +0 -5
- package/dist/types/src/components/RecordArticle.d.ts.map +0 -1
- package/dist/types/src/components/RecordArticle.stories.d.ts +0 -1600
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +0 -1
- package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence/index.d.ts +0 -2
- package/dist/types/src/components/SpacePresence/index.d.ts.map +0 -1
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +0 -2
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/index.d.ts +0 -2
- package/dist/types/src/components/SpaceSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +0 -1
- package/dist/types/src/components/ViewEditor.d.ts.map +0 -1
- package/src/components/CollectionArticle.tsx +0 -153
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +0 -91
- package/src/components/MembersContainer/MembersContainer.stories.tsx +0 -56
- package/src/components/MembersContainer/index.ts +0 -5
- package/src/components/ObjectCardStack/ObjectCardStack.tsx +0 -67
- package/src/components/ObjectDetails/ObjectDetails.tsx +0 -32
- package/src/components/ObjectRenamePopover/index.ts +0 -5
- package/src/components/RecordArticle.stories.tsx +0 -115
- package/src/components/SpacePluginSettings.tsx +0 -62
- package/src/components/SpacePresence/index.ts +0 -5
- package/src/components/SpaceRenamePopover/index.ts +0 -5
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +0 -220
- package/src/components/SpaceSettings/index.ts +0 -5
- package/src/util.tsx +0 -779
- /package/dist/lib/browser/{chunk-AWVAX26X.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-HREWB23G.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
- /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
- /package/dist/types/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.d.ts +0 -0
- /package/dist/types/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.d.ts +0 -0
- /package/dist/types/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.d.ts +0 -0
- /package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts +0 -0
- /package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts +0 -0
- /package/dist/types/src/{components → containers/MenuFooter}/MenuFooter.d.ts +0 -0
- /package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts +0 -0
- /package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts +0 -0
- /package/dist/types/src/{components → containers/SchemaContainer}/SchemaContainer.d.ts +0 -0
- /package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts +0 -0
- /package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -0
- /package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts +0 -0
- /package/src/{components → containers}/ObjectCardStack/index.ts +0 -0
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
COMPOSER_SPACE_LOCK,
|
|
3
3
|
SHARED
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-6OA75CWN.mjs";
|
|
5
5
|
import {
|
|
6
6
|
SpaceCapabilities,
|
|
7
7
|
SpaceOperation
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-6IT5IBB5.mjs";
|
|
9
|
+
import "./chunk-CBWGVOJE.mjs";
|
|
10
10
|
|
|
11
11
|
// src/capabilities/spaces-ready/spaces-ready.ts
|
|
12
12
|
import * as Effect from "effect/Effect";
|
|
13
13
|
import * as Option from "effect/Option";
|
|
14
|
-
import {
|
|
14
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
15
|
+
import { AppCapabilities, LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
|
|
15
16
|
import { SubscriptionList } from "@dxos/async";
|
|
16
17
|
import { Filter, Obj } from "@dxos/echo";
|
|
17
18
|
import { log } from "@dxos/log";
|
|
@@ -30,10 +31,10 @@ var ECHO_DXN_LENGTH = 3 + 1 + 4 + 1 + 33 + 1 + 26;
|
|
|
30
31
|
var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
31
32
|
const subscriptions = new SubscriptionList();
|
|
32
33
|
const spaceSubscriptions = new SubscriptionList();
|
|
33
|
-
const { invoke, invokePromise } = yield* Capability.get(
|
|
34
|
-
const { graph } = yield* Capability.get(
|
|
35
|
-
const registry = yield* Capability.get(
|
|
36
|
-
const layoutAtom = yield* Capability.get(
|
|
34
|
+
const { invoke, invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);
|
|
35
|
+
const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
|
|
36
|
+
const registry = yield* Capability.get(Capabilities.AtomRegistry);
|
|
37
|
+
const layoutAtom = yield* Capability.get(AppCapabilities.Layout);
|
|
37
38
|
const attention = yield* Capability.get(AttentionCapabilities.Attention);
|
|
38
39
|
const stateAtom = yield* Capability.get(SpaceCapabilities.State);
|
|
39
40
|
const ephemeralAtom = yield* Capability.get(SpaceCapabilities.EphemeralState);
|
|
@@ -42,8 +43,8 @@ var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* ()
|
|
|
42
43
|
yield* Effect.tryPromise(() => defaultSpace.waitUntilReady());
|
|
43
44
|
const layout = registry.get(layoutAtom);
|
|
44
45
|
if (layout.workspace === "default") {
|
|
45
|
-
yield* invoke(
|
|
46
|
-
subject: defaultSpace.id
|
|
46
|
+
yield* invoke(LayoutOperation.SwitchWorkspace, {
|
|
47
|
+
subject: getSpacePath(defaultSpace.id)
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
50
|
if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== "boolean") {
|
|
@@ -163,7 +164,7 @@ var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* ()
|
|
|
163
164
|
err: err.message
|
|
164
165
|
}, {
|
|
165
166
|
F: __dxlog_file,
|
|
166
|
-
L:
|
|
167
|
+
L: 194,
|
|
167
168
|
S: this,
|
|
168
169
|
C: (f, a) => f(...a)
|
|
169
170
|
});
|
|
@@ -226,12 +227,12 @@ var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* ()
|
|
|
226
227
|
} catch (err) {
|
|
227
228
|
log.catch(err, void 0, {
|
|
228
229
|
F: __dxlog_file,
|
|
229
|
-
L:
|
|
230
|
+
L: 280,
|
|
230
231
|
S: this,
|
|
231
232
|
C: (f, a) => f(...a)
|
|
232
233
|
});
|
|
233
234
|
}
|
|
234
|
-
return Capability.contributes(
|
|
235
|
+
return Capability.contributes(Capabilities.Null, null, () => Effect.sync(() => {
|
|
235
236
|
spaceSubscriptions.clear();
|
|
236
237
|
subscriptions.clear();
|
|
237
238
|
}));
|
|
@@ -239,4 +240,4 @@ var spaces_ready_default = Capability.makeModule(Effect.fnUntraced(function* ()
|
|
|
239
240
|
export {
|
|
240
241
|
spaces_ready_default as default
|
|
241
242
|
};
|
|
242
|
-
//# sourceMappingURL=spaces-ready-
|
|
243
|
+
//# sourceMappingURL=spaces-ready-B2GYL5IN.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/spaces-ready/spaces-ready.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { SubscriptionList } from '@dxos/async';\nimport { Filter, Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Graph } from '@dxos/plugin-graph';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { SPACE_ID_LENGTH, SpaceState, parseId } from '@dxos/react-client/echo';\nimport { Expando } from '@dxos/schema';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities, SpaceOperation } from '../../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 5_000;\n\n// E.g., dxn:echo:BA25QRC2FEWCSAMRP4RZL65LWJ7352CKE:01J00J9B45YHYSGZQTQMSKMGJ6\nconst ECHO_DXN_LENGTH = 3 + 1 + 4 + 1 + 33 + 1 + 26;\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const subscriptions = new SubscriptionList();\n const spaceSubscriptions = new SubscriptionList();\n\n const { invoke, invokePromise } = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const layoutAtom = yield* Capability.get(AppCapabilities.Layout);\n const attention = yield* Capability.get(AttentionCapabilities.Attention);\n const stateAtom = yield* Capability.get(SpaceCapabilities.State);\n const ephemeralAtom = yield* Capability.get(SpaceCapabilities.EphemeralState);\n const client = yield* Capability.get(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n yield* Effect.tryPromise(() => defaultSpace.waitUntilReady());\n\n // Check if deck state indicates we should switch to default space.\n const layout = registry.get(layoutAtom);\n if (layout.workspace === 'default') {\n yield* invoke(LayoutOperation.SwitchWorkspace, { subject: getSpacePath(defaultSpace.id) });\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n Obj.change(defaultSpace.properties, (p) => {\n p[COMPOSER_SPACE_LOCK] = true;\n });\n }\n\n const queryResults = yield* Effect.tryPromise(() =>\n defaultSpace.db.query(Filter.type(Expando.Expando, { key: SHARED })).run(),\n );\n const spacesOrder = queryResults[0];\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(Obj.make(Expando.Expando, { key: SHARED, order: [] }));\n }\n\n // Await missing objects - subscribe to layout atom changes.\n // NOTE: Use immediate: true to check initial state (URL handler may have already set active).\n let lastActiveCleanup: (() => void) | undefined;\n subscriptions.add(\n registry.subscribe(\n layoutAtom,\n (layout) => {\n // Clean up previous effect.\n lastActiveCleanup?.();\n lastActiveCleanup = undefined;\n\n // Determine the ID to check - either from active item or workspace.\n const id = layout.active.length === 1 ? layout.active[0] : layout.workspace;\n if (!id) {\n return;\n }\n\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node && (id.length === ECHO_DXN_LENGTH || id.length === SPACE_ID_LENGTH)) {\n void Graph.initialize(graph, id);\n const timeout = setTimeout(async () => {\n const node = Graph.getNode(graph, id).pipe(Option.getOrNull);\n if (!node) {\n await invokePromise(SpaceOperation.WaitForObject, { id });\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n lastActiveCleanup = () => clearTimeout(timeout);\n }\n },\n { immediate: true },\n ),\n );\n // Also add cleanup for the last effect.\n subscriptions.add(() => lastActiveCleanup?.());\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n const updateSpaceName = () => {\n const name = space.properties.name;\n if (!name) {\n registry.update(stateAtom, (current) => {\n const { [space.id]: _, ...rest } = current.spaceNames;\n return { ...current, spaceNames: rest };\n });\n } else {\n registry.update(stateAtom, (current) => ({\n ...current,\n spaceNames: { ...current.spaceNames, [space.id]: name },\n }));\n }\n };\n updateSpaceName();\n subscriptions.add(Obj.subscribe(space.properties, updateSpaceName));\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space - subscribe to both layout and attention.\n let broadcastCleanup: (() => void) | undefined;\n const setupBroadcast = () => {\n broadcastCleanup?.();\n\n const layout = registry.get(layoutAtom);\n const current = attention.getCurrent();\n const active = layout.active;\n const inactive = layout.inactive;\n\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id: string) => {\n try {\n const { spaceId } = parseId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', {\n err: err.message,\n });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n broadcastCleanup = () => clearInterval(interval);\n };\n\n // Subscribe to layout changes for broadcast.\n subscriptions.add(registry.subscribe(layoutAtom, setupBroadcast));\n // Subscribe to attention.current changes.\n subscriptions.add(attention.subscribeCurrent(() => setupBroadcast()));\n // Initial setup.\n setupBroadcast();\n // Cleanup.\n subscriptions.add(() => broadcastCleanup?.());\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n // TODO(wittjosiah): Stop using (Complex)Map inside reactive object.\n registry.update(ephemeralAtom, (ephemeral) => {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in ephemeral.viewersByObject)) {\n ephemeral.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n ephemeral.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!ephemeral.viewersByIdentity.has(identityKey)) {\n ephemeral.viewersByIdentity.set(identityKey, new Set());\n }\n ephemeral.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n ephemeral.viewersByObject[id]?.delete(identityKey);\n ephemeral.viewersByIdentity.get(identityKey)?.delete(id);\n // It's okay for these to be empty sets/maps, reduces churn.\n }\n });\n\n return { ...ephemeral };\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n yield* Effect.tryPromise(() =>\n Promise.all(\n client.spaces\n .get()\n .map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n ),\n );\n registry.update(stateAtom, (current) => ({ ...current, enabledEdgeReplication: true }));\n } catch (err) {\n log.catch(err);\n }\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n }),\n );\n }),\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "getSpacePath", "SubscriptionList", "Filter", "Obj", "log", "AttentionCapabilities", "ClientCapabilities", "Graph", "EdgeReplicationSetting", "PublicKey", "SPACE_ID_LENGTH", "SpaceState", "parseId", "Expando", "ComplexMap", "reduceGroupBy", "ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "ECHO_DXN_LENGTH", "Capability", "makeModule", "fnUntraced", "subscriptions", "SubscriptionList", "spaceSubscriptions", "invoke", "invokePromise", "get", "Capabilities", "OperationInvoker", "graph", "AppCapabilities", "AppGraph", "registry", "AtomRegistry", "layoutAtom", "Layout", "attention", "AttentionCapabilities", "Attention", "stateAtom", "SpaceCapabilities", "State", "ephemeralAtom", "EphemeralState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "tryPromise", "waitUntilReady", "layout", "workspace", "LayoutOperation", "SwitchWorkspace", "subject", "getSpacePath", "id", "properties", "COMPOSER_SPACE_LOCK", "Obj", "change", "p", "queryResults", "db", "query", "Filter", "type", "Expando", "key", "SHARED", "run", "spacesOrder", "add", "make", "order", "lastActiveCleanup", "subscribe", "undefined", "active", "length", "node", "Graph", "getNode", "pipe", "getOrNull", "SPACE_ID_LENGTH", "initialize", "timeout", "setTimeout", "SpaceOperation", "WaitForObject", "clearTimeout", "immediate", "state", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "updateSpaceName", "name", "update", "current", "_", "rest", "spaceNames", "unsubscribe", "broadcastCleanup", "setupBroadcast", "getCurrent", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "subscribeCurrent", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "ephemeral", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null", "sync"]
|
|
7
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6IT5IBB5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CBWGVOJE.mjs";
|
|
7
7
|
|
|
8
8
|
// src/capabilities/state/state.ts
|
|
9
9
|
import { Atom } from "@effect-atom/atom-react";
|
|
10
10
|
import * as Effect from "effect/Effect";
|
|
11
|
-
import {
|
|
11
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
12
12
|
import { createKvsStore } from "@dxos/effect";
|
|
13
13
|
import { PublicKey } from "@dxos/keys";
|
|
14
14
|
import { ComplexMap } from "@dxos/util";
|
|
@@ -17,9 +17,9 @@ var defaultSpaceState = {
|
|
|
17
17
|
enabledEdgeReplication: false
|
|
18
18
|
};
|
|
19
19
|
var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
20
|
-
const registry = yield* Capability.get(
|
|
20
|
+
const registry = yield* Capability.get(Capabilities.AtomRegistry);
|
|
21
21
|
const stateAtom = createKvsStore({
|
|
22
|
-
key: `${meta.id}
|
|
22
|
+
key: `${meta.id}.state`,
|
|
23
23
|
schema: SpaceCapabilities.StateSchema,
|
|
24
24
|
defaultValue: () => ({
|
|
25
25
|
...defaultSpaceState
|
|
@@ -32,9 +32,9 @@ var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
|
32
32
|
viewersByObject: {},
|
|
33
33
|
viewersByIdentity: new ComplexMap(PublicKey.hash)
|
|
34
34
|
}).pipe(Atom.keepAlive);
|
|
35
|
-
const manager = yield* Capability.get(
|
|
35
|
+
const manager = yield* Capability.get(Capabilities.PluginManager);
|
|
36
36
|
const updateNavigableCollections = () => {
|
|
37
|
-
const enabled = manager.getEnabled().includes("dxos.
|
|
37
|
+
const enabled = manager.getEnabled().includes("org.dxos.plugin.stack") || manager.getEnabled().includes("org.dxos.plugin.simple-layout");
|
|
38
38
|
const current = registry.get(ephemeralAtom);
|
|
39
39
|
if (enabled !== current.navigableCollections) {
|
|
40
40
|
registry.update(ephemeralAtom, (c) => ({
|
|
@@ -55,4 +55,4 @@ var state_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
|
55
55
|
export {
|
|
56
56
|
state_default as default
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=state-
|
|
58
|
+
//# sourceMappingURL=state-I6JDZCDE.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/state/state.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { createKvsStore } from '@dxos/effect';\nimport { PublicKey } from '@dxos/keys';\nimport { ComplexMap } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { SpaceCapabilities } from '../../types';\n\n/** Default persisted state. */\nconst defaultSpaceState: SpaceCapabilities.SpaceState = {\n spaceNames: {},\n enabledEdgeReplication: false,\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n\n // Persisted state using KVS store.\n const stateAtom = createKvsStore({\n key: `${meta.id}.state`,\n schema: SpaceCapabilities.StateSchema,\n defaultValue: () => ({ ...defaultSpaceState }),\n });\n\n // Ephemeral state (not persisted, but kept alive to prevent GC resets).\n const ephemeralAtom = Atom.make<SpaceCapabilities.SpaceEphemeralState>({\n awaiting: undefined,\n sdkMigrationRunning: {},\n navigableCollections: false,\n viewersByObject: {},\n viewersByIdentity: new ComplexMap<PublicKey, Set<string>>(PublicKey.hash),\n }).pipe(Atom.keepAlive);\n\n const manager = yield* Capability.get(Capabilities.PluginManager);\n // Update navigableCollections based on plugin state.\n const updateNavigableCollections = () => {\n const enabled =\n manager.getEnabled().includes('org.dxos.plugin.stack') ||\n manager.getEnabled().includes('org.dxos.plugin.simple-layout');\n const current = registry.get(ephemeralAtom);\n if (enabled !== current.navigableCollections) {\n registry.update(ephemeralAtom, (c) => ({ ...c, navigableCollections: enabled }));\n }\n };\n // Check initial state and subscribe to changes.\n updateNavigableCollections();\n const unsubscribe = registry.subscribe(manager.enabled, updateNavigableCollections);\n\n return [\n Capability.contributes(SpaceCapabilities.State, stateAtom),\n Capability.contributes(SpaceCapabilities.EphemeralState, ephemeralAtom, () =>\n Effect.sync(() => {\n unsubscribe();\n }),\n ),\n ];\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,sBAAsB;AAC/B,SAASC,iBAAiB;AAC1B,SAASC,kBAAkB;AAM3B,IAAMC,oBAAkD;EACtDC,YAAY,CAAC;EACbC,wBAAwB;AAC1B;AAEA,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,aAAaC,YAAY;AAGhE,QAAMC,YAAYC,eAAe;IAC/BC,KAAK,GAAGC,KAAKC,EAAE;IACfC,QAAQC,kBAAkBC;IAC1BC,cAAc,OAAO;MAAE,GAAGlB;IAAkB;EAC9C,CAAA;AAGA,QAAMmB,gBAAgBC,KAAKC,KAA4C;IACrEC,UAAUC;IACVC,qBAAqB,CAAC;IACtBC,sBAAsB;IACtBC,iBAAiB,CAAC;IAClBC,mBAAmB,IAAIC,WAAmCC,UAAUC,IAAI;EAC1E,CAAA,EAAGC,KAAKX,KAAKY,SAAS;AAEtB,QAAMC,UAAU,OAAO9B,WAAWI,IAAIC,aAAa0B,aAAa;AAEhE,QAAMC,6BAA6B,MAAA;AACjC,UAAMC,UACJH,QAAQI,WAAU,EAAGC,SAAS,uBAAA,KAC9BL,QAAQI,WAAU,EAAGC,SAAS,+BAAA;AAChC,UAAMC,UAAUjC,SAASC,IAAIY,aAAAA;AAC7B,QAAIiB,YAAYG,QAAQd,sBAAsB;AAC5CnB,eAASkC,OAAOrB,eAAe,CAACsB,OAAO;QAAE,GAAGA;QAAGhB,sBAAsBW;MAAQ,EAAA;IAC/E;EACF;AAEAD,6BAAAA;AACA,QAAMO,cAAcpC,SAASqC,UAAUV,QAAQG,SAASD,0BAAAA;AAExD,SAAO;IACLhC,WAAWyC,YAAY5B,kBAAkB6B,OAAOnC,SAAAA;IAChDP,WAAWyC,YAAY5B,kBAAkB8B,gBAAgB3B,eAAe,MAC/D4B,YAAK,MAAA;AACVL,kBAAAA;IACF,CAAA,CAAA;;AAGN,CAAA,CAAA;",
|
|
6
|
+
"names": ["Atom", "Effect", "Capabilities", "Capability", "createKvsStore", "PublicKey", "ComplexMap", "defaultSpaceState", "spaceNames", "enabledEdgeReplication", "Capability", "makeModule", "fnUntraced", "registry", "get", "Capabilities", "AtomRegistry", "stateAtom", "createKvsStore", "key", "meta", "id", "schema", "SpaceCapabilities", "StateSchema", "defaultValue", "ephemeralAtom", "Atom", "make", "awaiting", "undefined", "sdkMigrationRunning", "navigableCollections", "viewersByObject", "viewersByIdentity", "ComplexMap", "PublicKey", "hash", "pipe", "keepAlive", "manager", "PluginManager", "updateNavigableCollections", "enabled", "getEnabled", "includes", "current", "update", "c", "unsubscribe", "subscribe", "contributes", "State", "EphemeralState", "sync"]
|
|
7
|
+
}
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
TypeInputOptionsAnnotation,
|
|
14
14
|
TypeInputOptionsAnnotationId,
|
|
15
15
|
getTypenames
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-6IT5IBB5.mjs";
|
|
17
|
+
import "../chunk-CBWGVOJE.mjs";
|
|
18
18
|
export {
|
|
19
19
|
CollectionOperation,
|
|
20
20
|
HueAnnotationId,
|
|
@@ -1,49 +1,53 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
meta
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-63N5JJXI.mjs";
|
|
5
5
|
|
|
6
|
-
// src/
|
|
6
|
+
// src/containers/CollectionArticle/CollectionArticle.tsx
|
|
7
7
|
import React, { useCallback, useMemo } from "react";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { Card, Layout, Mosaic } from "@dxos/react-ui-mosaic";
|
|
8
|
+
import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
|
|
9
|
+
import { AppCapabilities, LayoutOperation, getCollectionObjectPath, getObjectPathFromObject } from "@dxos/app-toolkit";
|
|
10
|
+
import { Obj } from "@dxos/echo";
|
|
11
|
+
import { Panel, ScrollArea, Toolbar, toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
12
|
+
import { Card } from "@dxos/react-ui";
|
|
13
|
+
import { Mosaic } from "@dxos/react-ui-mosaic";
|
|
15
14
|
import { SearchList, useSearchListResults } from "@dxos/react-ui-searchlist";
|
|
16
|
-
import { Collection } from "@dxos/schema";
|
|
17
15
|
import { getStyles } from "@dxos/ui-theme";
|
|
18
16
|
var useMetadataResolver = () => {
|
|
19
|
-
const allMetadata = useCapabilities(
|
|
17
|
+
const allMetadata = useCapabilities(AppCapabilities.Metadata);
|
|
20
18
|
return useCallback((typename) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [
|
|
21
19
|
allMetadata
|
|
22
20
|
]);
|
|
23
21
|
};
|
|
24
|
-
var CollectionArticle = ({ subject }) => {
|
|
22
|
+
var CollectionArticle = ({ subject, attendableId }) => {
|
|
25
23
|
const { t } = useTranslation(meta.id);
|
|
26
24
|
const resolveMetadata = useMetadataResolver();
|
|
27
|
-
const { items, handleSearch } = useCollectionItems(subject, resolveMetadata);
|
|
28
|
-
return /* @__PURE__ */ React.createElement(
|
|
29
|
-
toolbar: true
|
|
30
|
-
}, /* @__PURE__ */ React.createElement(SearchList.Root, {
|
|
25
|
+
const { items, handleSearch } = useCollectionItems(subject, resolveMetadata, attendableId);
|
|
26
|
+
return /* @__PURE__ */ React.createElement(SearchList.Root, {
|
|
31
27
|
onSearch: handleSearch
|
|
28
|
+
}, /* @__PURE__ */ React.createElement(Panel.Root, {
|
|
29
|
+
className: "dx-document"
|
|
30
|
+
}, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
|
|
31
|
+
asChild: true
|
|
32
32
|
}, /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(SearchList.Input, {
|
|
33
33
|
placeholder: t("search placeholder")
|
|
34
|
-
})), /* @__PURE__ */ React.createElement(
|
|
34
|
+
}))), /* @__PURE__ */ React.createElement(Panel.Content, {
|
|
35
|
+
asChild: true
|
|
36
|
+
}, /* @__PURE__ */ React.createElement(SearchList.Content, null, /* @__PURE__ */ React.createElement(Mosaic.Container, {
|
|
35
37
|
asChild: true
|
|
36
|
-
}, /* @__PURE__ */ React.createElement(
|
|
37
|
-
|
|
38
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Root, {
|
|
39
|
+
orientation: "vertical"
|
|
40
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, {
|
|
41
|
+
classNames: "p-2"
|
|
38
42
|
}, /* @__PURE__ */ React.createElement(Mosaic.Stack, {
|
|
39
43
|
items,
|
|
40
44
|
getId: (item) => item.id,
|
|
41
45
|
Tile: ObjectTile
|
|
42
|
-
}))))));
|
|
46
|
+
}))))))));
|
|
43
47
|
};
|
|
44
48
|
var ObjectTile = ({ data: item }) => {
|
|
45
49
|
const { t } = useTranslation(meta.id);
|
|
46
|
-
const {
|
|
50
|
+
const { invokePromise } = useOperationInvoker();
|
|
47
51
|
const typename = Obj.getTypename(item.object) ?? "";
|
|
48
52
|
const label = Obj.getLabel(item.object) ?? toLocalizedString([
|
|
49
53
|
"object name placeholder",
|
|
@@ -53,62 +57,46 @@ var ObjectTile = ({ data: item }) => {
|
|
|
53
57
|
}
|
|
54
58
|
], t);
|
|
55
59
|
const styles = item.iconHue ? getStyles(item.iconHue) : void 0;
|
|
56
|
-
const handleClick = () => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
const handleClick = useCallback(() => void invokePromise(LayoutOperation.Open, {
|
|
61
|
+
subject: [
|
|
62
|
+
item.targetPath
|
|
63
|
+
]
|
|
64
|
+
}), [
|
|
65
|
+
invokePromise,
|
|
66
|
+
item.targetPath
|
|
67
|
+
]);
|
|
63
68
|
return /* @__PURE__ */ React.createElement(Card.Root, {
|
|
64
|
-
fullWidth: true
|
|
69
|
+
fullWidth: true,
|
|
70
|
+
role: "button",
|
|
71
|
+
classNames: "cursor-pointer",
|
|
72
|
+
onClick: handleClick
|
|
65
73
|
}, /* @__PURE__ */ React.createElement(Card.Toolbar, null, /* @__PURE__ */ React.createElement(Card.ToolbarIconButton, {
|
|
66
74
|
variant: "ghost",
|
|
67
75
|
label,
|
|
68
76
|
icon: item.icon,
|
|
69
77
|
iconOnly: true,
|
|
70
|
-
iconClassNames: styles?.
|
|
71
|
-
}), /* @__PURE__ */ React.createElement(Card.Title,
|
|
72
|
-
onClick: handleClick
|
|
73
|
-
}, label), /* @__PURE__ */ React.createElement(Card.Menu, null)));
|
|
78
|
+
iconClassNames: styles?.surfaceText
|
|
79
|
+
}), /* @__PURE__ */ React.createElement(Card.Title, null, label), /* @__PURE__ */ React.createElement(Card.Menu, null)));
|
|
74
80
|
};
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
return useMemo(() => (collection.objects ?? []).map((ref) => ref.target).filter((obj) => Obj.isObject(obj)), [
|
|
81
|
+
var useCollectionItems = (collection, resolveMetadata, attendableId) => {
|
|
82
|
+
const objects = useMemo(() => (collection.objects ?? []).map((ref) => ref.target).filter((obj) => Obj.isObject(obj)), [
|
|
78
83
|
collection.objects
|
|
79
84
|
]);
|
|
80
|
-
};
|
|
81
|
-
var useManagedCollectionItems = (collection) => {
|
|
82
|
-
const client = useClient();
|
|
83
|
-
const space = getSpace(collection);
|
|
84
|
-
const schema = useMemo(() => client.graph.schemaRegistry.query({
|
|
85
|
-
typename: collection.key,
|
|
86
|
-
location: [
|
|
87
|
-
"runtime"
|
|
88
|
-
]
|
|
89
|
-
}).runSync()[0], [
|
|
90
|
-
client,
|
|
91
|
-
collection
|
|
92
|
-
]);
|
|
93
|
-
return useQuery(space?.db, schema ? Filter.type(schema) : Filter.nothing());
|
|
94
|
-
};
|
|
95
|
-
var useCollectionItems = (collection, resolveMetadata) => {
|
|
96
|
-
const isManaged = Obj.instanceOf(Collection.Managed, collection);
|
|
97
|
-
const regularObjects = useRegularCollectionItems(collection);
|
|
98
|
-
const managedObjects = useManagedCollectionItems(collection);
|
|
99
|
-
const objects = isManaged ? managedObjects : regularObjects;
|
|
100
85
|
const items = useMemo(() => objects.map((obj) => {
|
|
101
86
|
const typename = Obj.getTypename(obj);
|
|
102
87
|
const metadata = typename ? resolveMetadata(typename) : {};
|
|
88
|
+
const targetPath = attendableId ? getCollectionObjectPath(attendableId, obj.id) : getObjectPathFromObject(obj);
|
|
103
89
|
return {
|
|
104
90
|
id: Obj.getDXN(obj).toString(),
|
|
105
91
|
object: obj,
|
|
92
|
+
targetPath,
|
|
106
93
|
icon: metadata.icon ?? "ph--placeholder--regular",
|
|
107
94
|
iconHue: metadata.iconHue
|
|
108
95
|
};
|
|
109
96
|
}), [
|
|
110
97
|
objects,
|
|
111
|
-
resolveMetadata
|
|
98
|
+
resolveMetadata,
|
|
99
|
+
attendableId
|
|
112
100
|
]);
|
|
113
101
|
const { results, handleSearch } = useSearchListResults({
|
|
114
102
|
items,
|
|
@@ -119,8 +107,10 @@ var useCollectionItems = (collection, resolveMetadata) => {
|
|
|
119
107
|
handleSearch
|
|
120
108
|
};
|
|
121
109
|
};
|
|
110
|
+
|
|
111
|
+
// src/containers/CollectionArticle/index.ts
|
|
112
|
+
var CollectionArticle_default = CollectionArticle;
|
|
122
113
|
export {
|
|
123
|
-
CollectionArticle,
|
|
124
114
|
CollectionArticle_default as default
|
|
125
115
|
};
|
|
126
|
-
//# sourceMappingURL=CollectionArticle-
|
|
116
|
+
//# sourceMappingURL=CollectionArticle-MNLCROOX.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/CollectionArticle/CollectionArticle.tsx", "../../../src/containers/CollectionArticle/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation, getCollectionObjectPath, getObjectPathFromObject } from '@dxos/app-toolkit';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { type Collection } from '@dxos/echo';\nimport { Panel, ScrollArea, Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { getStyles } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\n/**\n * Hook to resolve metadata (icon, iconHue, etc.) for objects based on their typename.\n */\nconst useMetadataResolver = () => {\n const allMetadata = useCapabilities(AppCapabilities.Metadata);\n return useCallback((typename: string) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [allMetadata]);\n};\n\n/**\n * Article view for collections.\n */\nexport const CollectionArticle = ({ subject, attendableId }: SurfaceComponentProps<Collection.Collection>) => {\n const { t } = useTranslation(meta.id);\n const resolveMetadata = useMetadataResolver();\n const { items, handleSearch } = useCollectionItems(subject, resolveMetadata, attendableId);\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <Panel.Root className='dx-document'>\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <SearchList.Input placeholder={t('search placeholder')} />\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <SearchList.Content>\n <Mosaic.Container asChild>\n <ScrollArea.Root orientation='vertical'>\n <ScrollArea.Viewport classNames='p-2'>\n <Mosaic.Stack items={items} getId={(item) => item.id} Tile={ObjectTile} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Mosaic.Container>\n </SearchList.Content>\n </Panel.Content>\n </Panel.Root>\n </SearchList.Root>\n );\n};\n\ntype ObjectItem = {\n id: string;\n object: Obj.Unknown;\n targetPath: string;\n icon: string;\n iconHue?: string;\n};\n\nconst ObjectTile: MosaicStackTileComponent<ObjectItem> = ({ data: item }) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n\n const typename = Obj.getTypename(item.object) ?? '';\n const label =\n Obj.getLabel(item.object) ??\n toLocalizedString(['object name placeholder', { ns: typename, defaultValue: item.id }], t);\n const styles = item.iconHue ? getStyles(item.iconHue) : undefined;\n\n const handleClick = useCallback(\n () => void invokePromise(LayoutOperation.Open, { subject: [item.targetPath] }),\n [invokePromise, item.targetPath],\n );\n\n return (\n <Card.Root fullWidth role='button' classNames='cursor-pointer' onClick={handleClick}>\n <Card.Toolbar>\n <Card.ToolbarIconButton\n variant='ghost'\n label={label}\n icon={item.icon}\n iconOnly\n iconClassNames={styles?.surfaceText}\n />\n <Card.Title>{label}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n </Card.Root>\n );\n};\n\ntype MetadataResolver = (typename: string) => { icon?: string; iconHue?: string };\n\n/**\n * Combined hook to get collection items with search/filter support.\n */\nconst useCollectionItems = (\n collection: Collection.Collection,\n resolveMetadata: MetadataResolver,\n attendableId?: string,\n) => {\n const objects = useMemo(\n () => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),\n [collection.objects],\n );\n\n const items = useMemo(\n () =>\n objects.map((obj) => {\n const typename = Obj.getTypename(obj);\n const metadata = typename ? resolveMetadata(typename) : {};\n const targetPath = attendableId ? getCollectionObjectPath(attendableId, obj.id) : getObjectPathFromObject(obj);\n\n return {\n id: Obj.getDXN(obj).toString(),\n object: obj,\n targetPath,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n } satisfies ObjectItem;\n }),\n [objects, resolveMetadata, attendableId],\n );\n\n const { results, handleSearch } = useSearchListResults({\n items,\n extract: (item) => Obj.getLabel(item.object) ?? item.id,\n });\n\n return { items: results, handleSearch };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { CollectionArticle } from './CollectionArticle';\n\nexport default CollectionArticle;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useMemo", "useCapabilities", "useOperationInvoker", "AppCapabilities", "LayoutOperation", "getCollectionObjectPath", "getObjectPathFromObject", "Obj", "Panel", "ScrollArea", "Toolbar", "toLocalizedString", "useTranslation", "Card", "Mosaic", "SearchList", "useSearchListResults", "getStyles", "useMetadataResolver", "allMetadata", "useCapabilities", "AppCapabilities", "Metadata", "useCallback", "typename", "find", "m", "id", "metadata", "CollectionArticle", "subject", "attendableId", "t", "useTranslation", "meta", "resolveMetadata", "items", "handleSearch", "useCollectionItems", "SearchList", "Root", "onSearch", "Panel", "className", "Toolbar", "asChild", "Input", "placeholder", "Content", "Mosaic", "Container", "ScrollArea", "orientation", "Viewport", "classNames", "Stack", "getId", "item", "Tile", "ObjectTile", "data", "invokePromise", "useOperationInvoker", "Obj", "getTypename", "object", "label", "getLabel", "toLocalizedString", "ns", "defaultValue", "styles", "iconHue", "getStyles", "undefined", "handleClick", "LayoutOperation", "Open", "targetPath", "Card", "fullWidth", "role", "onClick", "ToolbarIconButton", "variant", "icon", "iconOnly", "iconClassNames", "surfaceText", "Title", "Menu", "collection", "objects", "useMemo", "map", "ref", "target", "filter", "obj", "isObject", "getCollectionObjectPath", "getObjectPathFromObject", "getDXN", "toString", "results", "useSearchListResults", "extract", "CollectionArticle"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
meta
|
|
4
|
+
} from "./chunk-63N5JJXI.mjs";
|
|
5
|
+
|
|
6
|
+
// src/containers/CollectionSection/CollectionSection.tsx
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { useTranslation } from "@dxos/react-ui";
|
|
9
|
+
var CollectionSection = ({ role, subject }) => {
|
|
10
|
+
const { t } = useTranslation(meta.id);
|
|
11
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
12
|
+
role,
|
|
13
|
+
className: "min-h-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
14
|
+
}, /* @__PURE__ */ React.createElement("span", {
|
|
15
|
+
className: "truncate"
|
|
16
|
+
}, subject.name ?? t("unnamed collection label")));
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// src/containers/CollectionSection/index.ts
|
|
20
|
+
var CollectionSection_default = CollectionSection;
|
|
21
|
+
export {
|
|
22
|
+
CollectionSection_default as default
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=CollectionSection-BI66Y34F.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/CollectionSection/CollectionSection.tsx", "../../../src/containers/CollectionSection/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { type Collection } from '@dxos/echo';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport const CollectionSection = ({ role, subject }: SurfaceComponentProps<Collection.Collection>) => {\n const { t } = useTranslation(meta.id);\n\n // TODO(wittjosiah): Better placeholder.\n return (\n <div role={role} className='min-h-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center'>\n <span className='truncate'>{subject.name ?? t('unnamed collection label')}</span>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CollectionSection } from './CollectionSection';\n\nexport default CollectionSection;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,OAAOA,WAAW;AAIlB,SAASC,sBAAsB;AAIxB,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,QAAO,MAAgD;AAC/F,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAGpC,SACE,sBAAA,cAACC,OAAAA;IAAIN;IAAYO,WAAU;KACzB,sBAAA,cAACC,QAAAA;IAAKD,WAAU;KAAYN,QAAQQ,QAAQP,EAAE,0BAAA,CAAA,CAAA;AAGpD;;;ACfA,IAAA,4BAAeQ;",
|
|
6
|
+
"names": ["React", "useTranslation", "CollectionSection", "role", "subject", "t", "useTranslation", "meta", "id", "div", "className", "span", "name", "CollectionSection"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
CreateObjectPanel
|
|
4
|
+
} from "./chunk-S5BQUCL4.mjs";
|
|
5
|
+
import "./chunk-2OLR2ZKH.mjs";
|
|
6
|
+
import "./chunk-GEGWQVZX.mjs";
|
|
7
|
+
import {
|
|
8
|
+
SpaceOperation
|
|
9
|
+
} from "./chunk-EVNSLSQS.mjs";
|
|
10
|
+
import {
|
|
11
|
+
meta
|
|
12
|
+
} from "./chunk-63N5JJXI.mjs";
|
|
13
|
+
|
|
14
|
+
// src/containers/CreateObjectDialog/CreateObjectDialog.tsx
|
|
15
|
+
import * as Effect from "effect/Effect";
|
|
16
|
+
import * as Option from "effect/Option";
|
|
17
|
+
import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
18
|
+
import { Capability } from "@dxos/app-framework";
|
|
19
|
+
import { useOperationInvoker, usePluginManager } from "@dxos/app-framework/ui";
|
|
20
|
+
import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
|
|
21
|
+
import { Collection, Database, Obj, Type } from "@dxos/echo";
|
|
22
|
+
import { runAndForwardErrors } from "@dxos/effect";
|
|
23
|
+
import { invariant } from "@dxos/invariant";
|
|
24
|
+
import { Operation } from "@dxos/operation";
|
|
25
|
+
import { useClient } from "@dxos/react-client";
|
|
26
|
+
import { useSpaces } from "@dxos/react-client/echo";
|
|
27
|
+
import { Dialog, useTranslation } from "@dxos/react-ui";
|
|
28
|
+
import { ViewAnnotation } from "@dxos/schema";
|
|
29
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/containers/CreateObjectDialog/CreateObjectDialog.tsx";
|
|
30
|
+
var CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;
|
|
31
|
+
var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, views, initialFormValues, onCreateObject, shouldNavigate: _shouldNavigate, targetNodeId }) => {
|
|
32
|
+
const manager = usePluginManager();
|
|
33
|
+
const { t } = useTranslation(meta.id);
|
|
34
|
+
const operationInvoker = useOperationInvoker();
|
|
35
|
+
const [target, setTarget] = useState(initialTarget);
|
|
36
|
+
const [typename, setTypename] = useState(initialTypename);
|
|
37
|
+
const client = useClient();
|
|
38
|
+
const spaces = useSpaces();
|
|
39
|
+
const closeRef = useRef(null);
|
|
40
|
+
const resolve = useCallback((id) => {
|
|
41
|
+
const metadata = manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id: entryId }) => entryId === id)?.metadata;
|
|
42
|
+
return metadata?.createObject ? metadata : void 0;
|
|
43
|
+
}, [
|
|
44
|
+
manager
|
|
45
|
+
]);
|
|
46
|
+
const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
|
|
47
|
+
const schemas = db?.schemaRegistry.query({
|
|
48
|
+
location: [
|
|
49
|
+
"runtime"
|
|
50
|
+
],
|
|
51
|
+
includeSystem: false
|
|
52
|
+
}).runSync();
|
|
53
|
+
const viewTypenames = useMemo(() => {
|
|
54
|
+
const set = /* @__PURE__ */ new Set();
|
|
55
|
+
for (const schema of schemas ?? []) {
|
|
56
|
+
if (ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false))) {
|
|
57
|
+
set.add(Type.getTypename(schema));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return set;
|
|
61
|
+
}, [
|
|
62
|
+
schemas
|
|
63
|
+
]);
|
|
64
|
+
const options = useMemo(() => manager.capabilities.getAll(AppCapabilities.Metadata).filter((entry) => entry.metadata?.createObject).filter((entry) => views === true ? viewTypenames.has(entry.id) : true).map((entry) => ({
|
|
65
|
+
id: entry.id,
|
|
66
|
+
label: t("typename label", {
|
|
67
|
+
ns: entry.id,
|
|
68
|
+
defaultValue: entry.id
|
|
69
|
+
}),
|
|
70
|
+
icon: entry.metadata?.icon
|
|
71
|
+
})), [
|
|
72
|
+
manager,
|
|
73
|
+
views,
|
|
74
|
+
viewTypenames,
|
|
75
|
+
t
|
|
76
|
+
]);
|
|
77
|
+
const handleCreateObject = useCallback(({ metadata, data = {} }) => Effect.gen(function* () {
|
|
78
|
+
if (!target) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
closeRef.current?.click();
|
|
82
|
+
const db2 = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);
|
|
83
|
+
invariant(db2, "Missing database", {
|
|
84
|
+
F: __dxlog_file,
|
|
85
|
+
L: 107,
|
|
86
|
+
S: this,
|
|
87
|
+
A: [
|
|
88
|
+
"db",
|
|
89
|
+
"'Missing database'"
|
|
90
|
+
]
|
|
91
|
+
});
|
|
92
|
+
const object = yield* metadata.createObject(data, {
|
|
93
|
+
db: db2
|
|
94
|
+
});
|
|
95
|
+
if (Obj.isObject(object) && !Obj.instanceOf(Type.PersistentType, object)) {
|
|
96
|
+
const { subject } = yield* operationInvoker.invoke(SpaceOperation.AddObject, {
|
|
97
|
+
target,
|
|
98
|
+
object,
|
|
99
|
+
hidden: !Obj.instanceOf(Collection.Collection, object),
|
|
100
|
+
targetNodeId
|
|
101
|
+
});
|
|
102
|
+
const shouldNavigate = _shouldNavigate ?? (() => true);
|
|
103
|
+
if (shouldNavigate(object)) {
|
|
104
|
+
yield* operationInvoker.invoke(LayoutOperation.Open, {
|
|
105
|
+
subject
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
onCreateObject?.(object);
|
|
109
|
+
}
|
|
110
|
+
}).pipe(Effect.provideService(Capability.Service, manager.capabilities), Effect.provideService(Operation.Service, operationInvoker), runAndForwardErrors), [
|
|
111
|
+
target,
|
|
112
|
+
_shouldNavigate,
|
|
113
|
+
onCreateObject,
|
|
114
|
+
manager.capabilities,
|
|
115
|
+
operationInvoker
|
|
116
|
+
]);
|
|
117
|
+
return /* @__PURE__ */ React.createElement(Dialog.Content, null, /* @__PURE__ */ React.createElement(Dialog.Header, null, /* @__PURE__ */ React.createElement(Dialog.Title, null, t("create object dialog title", {
|
|
118
|
+
object: t("typename label", {
|
|
119
|
+
ns: typename,
|
|
120
|
+
defaultValue: views ? "View" : "Object"
|
|
121
|
+
})
|
|
122
|
+
})), /* @__PURE__ */ React.createElement(Dialog.Close, {
|
|
123
|
+
asChild: true
|
|
124
|
+
}, /* @__PURE__ */ React.createElement(Dialog.CloseIconButton, {
|
|
125
|
+
ref: closeRef
|
|
126
|
+
}))), /* @__PURE__ */ React.createElement(Dialog.Body, null, /* @__PURE__ */ React.createElement(CreateObjectPanel, {
|
|
127
|
+
options,
|
|
128
|
+
spaces,
|
|
129
|
+
target,
|
|
130
|
+
typename,
|
|
131
|
+
initialFormValues,
|
|
132
|
+
defaultSpaceId: client.spaces.default.id,
|
|
133
|
+
resolve,
|
|
134
|
+
onTargetChange: setTarget,
|
|
135
|
+
onTypenameChange: setTypename,
|
|
136
|
+
onCreateObject: handleCreateObject
|
|
137
|
+
})));
|
|
138
|
+
};
|
|
139
|
+
export {
|
|
140
|
+
CreateObjectDialog,
|
|
141
|
+
CreateObjectDialog as default
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=CreateObjectDialog-B6OLP5VQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/CreateObjectDialog/CreateObjectDialog.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Capability } from '@dxos/app-framework';\nimport { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation, getObjectPath } from '@dxos/app-toolkit';\nimport { Collection, Database, Obj, Type } from '@dxos/echo';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\nimport { useClient } from '@dxos/react-client';\nimport { useSpaces } from '@dxos/react-client/echo';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ViewAnnotation } from '@dxos/schema';\n\nimport {\n type CreateObjectOption,\n CreateObjectPanel,\n type CreateObjectPanelProps,\n type Metadata,\n} from '../../components';\nimport { meta } from '../../meta';\nimport { SpaceOperation } from '../../types';\n\nexport const CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;\n\nexport type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'initialFormValues'> & {\n views?: boolean;\n onCreateObject?: (object: Obj.Unknown) => void;\n shouldNavigate?: (object: Obj.Unknown) => boolean;\n targetNodeId?: string;\n};\n\nexport const CreateObjectDialog = ({\n target: initialTarget,\n typename: initialTypename,\n views,\n initialFormValues,\n onCreateObject,\n shouldNavigate: _shouldNavigate,\n targetNodeId,\n}: CreateObjectDialogProps) => {\n const manager = usePluginManager();\n const { t } = useTranslation(meta.id);\n const operationInvoker = useOperationInvoker();\n const [target, setTarget] = useState<Database.Database | Collection.Collection | undefined>(initialTarget);\n const [typename, setTypename] = useState<string | undefined>(initialTypename);\n const client = useClient();\n const spaces = useSpaces();\n const closeRef = useRef<HTMLButtonElement | null>(null);\n\n const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(\n (id) => {\n const metadata = manager.capabilities\n .getAll(AppCapabilities.Metadata)\n .find(({ id: entryId }) => entryId === id)?.metadata;\n return metadata?.createObject ? (metadata as Metadata) : undefined;\n },\n [manager],\n );\n\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n // TODO(wittjosiah): Support database schemas.\n const schemas = db?.schemaRegistry.query({ location: ['runtime'], includeSystem: false }).runSync();\n\n const viewTypenames = useMemo(() => {\n const set = new Set<string>();\n for (const schema of schemas ?? []) {\n if (ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false))) {\n set.add(Type.getTypename(schema));\n }\n }\n return set;\n }, [schemas]);\n\n const options = useMemo<CreateObjectOption[]>(\n () =>\n manager.capabilities\n .getAll(AppCapabilities.Metadata)\n .filter((entry) => entry.metadata?.createObject)\n .filter((entry) => (views === true ? viewTypenames.has(entry.id) : true))\n .map((entry) => ({\n id: entry.id,\n label: t('typename label', { ns: entry.id, defaultValue: entry.id }),\n icon: entry.metadata?.icon,\n })),\n [manager, views, viewTypenames, t],\n );\n\n const handleCreateObject = useCallback<NonNullable<CreateObjectPanelProps['onCreateObject']>>(\n ({ metadata, data = {} }) =>\n Effect.gen(function* () {\n if (!target) {\n // TODO(wittjosiah): UI feedback.\n return;\n }\n\n // NOTE: Must close before navigating or attention won't follow object.\n closeRef.current?.click();\n\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n invariant(db, 'Missing database');\n const object = yield* metadata.createObject(data, { db });\n if (Obj.isObject(object) && !Obj.instanceOf(Type.PersistentType, object)) {\n const { subject } = yield* operationInvoker.invoke(SpaceOperation.AddObject, {\n target,\n object,\n hidden: !Obj.instanceOf(Collection.Collection, object),\n targetNodeId,\n });\n const shouldNavigate = _shouldNavigate ?? (() => true);\n if (shouldNavigate(object)) {\n yield* operationInvoker.invoke(LayoutOperation.Open, {\n subject,\n });\n }\n\n onCreateObject?.(object);\n }\n }).pipe(\n Effect.provideService(Capability.Service, manager.capabilities),\n Effect.provideService(Operation.Service, operationInvoker),\n runAndForwardErrors,\n ),\n [target, _shouldNavigate, onCreateObject, manager.capabilities, operationInvoker],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>\n {t('create object dialog title', {\n object: t('typename label', {\n ns: typename,\n defaultValue: views ? 'View' : 'Object',\n }),\n })}\n </Dialog.Title>\n <Dialog.Close asChild>\n <Dialog.CloseIconButton ref={closeRef} />\n </Dialog.Close>\n </Dialog.Header>\n <Dialog.Body>\n <CreateObjectPanel\n options={options}\n spaces={spaces}\n target={target}\n typename={typename}\n initialFormValues={initialFormValues}\n defaultSpaceId={client.spaces.default.id}\n resolve={resolve}\n onTargetChange={setTarget}\n onTypenameChange={setTypename}\n onCreateObject={handleCreateObject}\n />\n </Dialog.Body>\n </Dialog.Content>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Effect", "Option", "React", "useCallback", "useMemo", "useRef", "useState", "Capability", "useOperationInvoker", "usePluginManager", "AppCapabilities", "LayoutOperation", "Collection", "Database", "Obj", "Type", "runAndForwardErrors", "invariant", "Operation", "useClient", "useSpaces", "Dialog", "useTranslation", "ViewAnnotation", "CREATE_OBJECT_DIALOG", "meta", "id", "CreateObjectDialog", "target", "initialTarget", "typename", "initialTypename", "views", "initialFormValues", "onCreateObject", "shouldNavigate", "_shouldNavigate", "targetNodeId", "manager", "usePluginManager", "t", "useTranslation", "operationInvoker", "useOperationInvoker", "setTarget", "useState", "setTypename", "client", "useClient", "spaces", "useSpaces", "closeRef", "useRef", "resolve", "useCallback", "metadata", "capabilities", "getAll", "AppCapabilities", "Metadata", "find", "entryId", "createObject", "undefined", "db", "Database", "isDatabase", "Obj", "getDatabase", "schemas", "schemaRegistry", "query", "location", "includeSystem", "runSync", "viewTypenames", "useMemo", "set", "Set", "schema", "ViewAnnotation", "get", "pipe", "getOrElse", "add", "Type", "getTypename", "options", "filter", "entry", "has", "map", "label", "ns", "defaultValue", "icon", "handleCreateObject", "data", "gen", "current", "click", "invariant", "object", "isObject", "instanceOf", "PersistentType", "subject", "invoke", "SpaceOperation", "AddObject", "hidden", "Collection", "LayoutOperation", "Open", "provideService", "Capability", "Service", "Operation", "runAndForwardErrors", "Dialog", "Content", "Header", "Title", "Close", "asChild", "CloseIconButton", "ref", "Body", "CreateObjectPanel", "defaultSpaceId", "default", "onTargetChange", "onTypenameChange"]
|
|
7
|
+
}
|