@dxos/plugin-space 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7
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-WPLUW5HF.mjs +111 -0
- package/dist/lib/browser/CollectionArticle-WPLUW5HF.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-M3NRXGWW.mjs +142 -0
- package/dist/lib/browser/CreateObjectDialog-M3NRXGWW.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-UYS2TMK6.mjs +64 -0
- package/dist/lib/browser/ObjectCardStack-UYS2TMK6.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetails-B2BJLOK5.mjs +43 -0
- package/dist/lib/browser/ObjectDetails-B2BJLOK5.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-BO2XHBFN.mjs} +23 -18
- package/dist/lib/browser/RecordArticle-BO2XHBFN.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-JSCSODPL.mjs +141 -0
- package/dist/lib/browser/SyncStatus-JSCSODPL.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-JORZZE3P.mjs +1203 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.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-3A3FUI2R.mjs +576 -0
- package/dist/lib/browser/chunk-3A3FUI2R.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 +34 -32
- 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 +99 -155
- 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-PI7VTZUZ.mjs → react-root-ARQTOU44.mjs} +9 -9
- package/dist/lib/browser/react-root-ARQTOU44.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-BPE7VWI7.mjs → react-surface-TO4KE77V.mjs} +97 -115
- package/dist/lib/browser/react-surface-TO4KE77V.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-JGVNBX66.mjs +112 -0
- package/dist/lib/node-esm/CollectionArticle-JGVNBX66.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-GCAWIXTK.mjs +143 -0
- package/dist/lib/node-esm/CreateObjectDialog-GCAWIXTK.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-DXBIXQI3.mjs +65 -0
- package/dist/lib/node-esm/ObjectCardStack-DXBIXQI3.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetails-F3JBIK5E.mjs +44 -0
- package/dist/lib/node-esm/ObjectDetails-F3JBIK5E.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-XUIT25PP.mjs} +23 -18
- package/dist/lib/node-esm/RecordArticle-XUIT25PP.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-TPCFGM4S.mjs +142 -0
- package/dist/lib/node-esm/SyncStatus-TPCFGM4S.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-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-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-2KM3ZHSP.mjs +577 -0
- package/dist/lib/node-esm/chunk-2KM3ZHSP.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-HREWB23G.mjs → chunk-XYLDAH5C.mjs} +3 -3
- package/dist/lib/node-esm/cli/index.mjs +34 -32
- 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 +99 -155
- 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-KUXM33JI.mjs → react-root-ZGMTYSXL.mjs} +9 -9
- package/dist/lib/node-esm/react-root-ZGMTYSXL.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-STCQKUZ4.mjs → react-surface-LK26ZXWC.mjs} +97 -115
- package/dist/lib/node-esm/react-surface-LK26ZXWC.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 +67 -66
- package/src/SpacePlugin.ts +75 -63
- 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 +421 -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 +78 -98
- 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/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 +86 -111
- package/src/components/CreateDialog/index.ts +1 -2
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +10 -10
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +5 -5
- package/src/components/ObjectDetails/ForeignKeys.tsx +1 -1
- package/src/components/ObjectDetails/index.ts +2 -3
- package/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.tsx +4 -4
- 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 +133 -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 +29 -27
- 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-XPNA6EHZ.mjs +0 -129
- package/dist/lib/browser/CollectionArticle-XPNA6EHZ.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-3X2EA2OA.mjs +0 -1898
- package/dist/lib/browser/chunk-3X2EA2OA.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-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-PI7VTZUZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-BPE7VWI7.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-WGHNZNO2.mjs +0 -130
- package/dist/lib/node-esm/CollectionArticle-WGHNZNO2.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-EYS3L2NO.mjs +0 -1899
- package/dist/lib/node-esm/chunk-EYS3L2NO.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-KUXM33JI.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-STCQKUZ4.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 -158
- 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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/AwaitingObject/AwaitingObject.tsx", "../../../src/components/CreateDialog/CreateObjectPanel.tsx", "../../../src/components/ObjectDetails/BaseObjectSettings.tsx", "../../../src/components/ObjectDetails/ForeignKeys.tsx", "../../../src/components/ObjectForm/ObjectForm.tsx", "../../../src/components/SyncStatus/save-tracker.ts", "../../../src/components/SyncStatus/status.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { useLayout } from '@dxos/app-toolkit/ui';\nimport { Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, useQuery } from '@dxos/react-client/echo';\nimport { Button, Icon, Toast, useTranslation } from '@dxos/react-ui';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\nimport { SpaceOperation } from '../../types';\n\nconst WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1_000;\nconst TOAST_TIMEOUT = 4 * 60 * 1_000;\n\nexport const AwaitingObject = ({ id }: { id: string }) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const [open, setOpen] = useState(true);\n const [waiting, setWaiting] = useState(true);\n const [found, setFound] = useState(false);\n const layout = useLayout();\n\n const client = useClient();\n const objects = useQuery(client.spaces, Filter.everything());\n\n useEffect(() => {\n if (!id) {\n return;\n }\n\n const timeout = setTimeout(() => setWaiting(false), WAIT_FOR_OBJECT_TIMEOUT);\n return () => clearTimeout(timeout);\n }, [id]);\n\n useEffect(() => {\n if (objects.findIndex((object) => Obj.getDXN(object).toString() === id) > -1) {\n setFound(true);\n if (layout.active.includes(id)) {\n setOpen(false);\n }\n }\n }, [id, objects, layout]);\n\n const handleClose = useCallback(\n async () => invokePromise(SpaceOperation.WaitForObject, { id: undefined }),\n [invokePromise],\n );\n\n const handleNavigate = useCallback(() => {\n void invokePromise(LayoutOperation.Open, { subject: [id] });\n void handleClose();\n }, [id, handleClose, invokePromise]);\n\n return (\n <Toast.Root open={open} duration={TOAST_TIMEOUT} onOpenChange={setOpen}>\n <Toast.Body>\n <Toast.Title classNames='flex items-center gap-2'>\n {found ? (\n <>\n <Icon icon='ph--check-circle--regular' size={5} />\n <span>{t('found object label')}</span>\n </>\n ) : waiting ? (\n <>\n <Icon icon='ph--circle-notch--regular' size={5} classNames='animate-spin' />\n <span>{t('waiting for object label')}</span>\n </>\n ) : (\n <>\n <Icon icon='ph--circle-dashed--regular' size={5} />\n <span>{t('object not found label')}</span>\n </>\n )}\n </Toast.Title>\n <Toast.Description>\n {t(\n found\n ? 'found object description'\n : waiting\n ? 'waiting for object description'\n : 'object not found description',\n )}\n </Toast.Description>\n </Toast.Body>\n <Toast.Actions>\n {found ? (\n <>\n <Toast.Action altText={t('go to object alt')} asChild>\n <Button variant='primary' onClick={handleNavigate}>\n {t('go to object label')}\n </Button>\n </Toast.Action>\n <Toast.Close asChild>\n <Button onClick={handleClose}>{t('close label', { ns: osTranslations })}</Button>\n </Toast.Close>\n </>\n ) : (\n <Toast.Close asChild>\n <Button onClick={handleClose}>\n {t(waiting ? 'close label' : 'confirm label', { ns: osTranslations })}\n </Button>\n </Toast.Close>\n )}\n </Toast.Actions>\n </Toast.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type Database, Obj } from '@dxos/echo';\nimport { type Collection } from '@dxos/echo';\nimport { type AnyProperties } from '@dxos/echo/internal';\nimport { type Space, type SpaceId } from '@dxos/react-client/echo';\nimport { toLocalizedString, useDefaultValue, useTranslation } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type CreateObject } from '../../types';\nimport { getSpaceDisplayName } from '../../util';\n\n/** Display-ready option for the create object search list. */\nexport type CreateObjectOption = {\n id: string;\n label: string;\n icon?: string;\n};\n\nexport type Metadata = {\n createObject: CreateObject;\n inputSchema?: Schema.Schema.AnyNoContext;\n icon?: string;\n};\n\nexport type CreateObjectPanelProps = {\n options: CreateObjectOption[];\n spaces: Space[];\n typename?: string;\n target?: Database.Database | Collection.Collection;\n initialFormValues?: Partial<AnyProperties>;\n defaultSpaceId?: SpaceId;\n resolve?: (typename: string) => Metadata | undefined;\n onTargetChange?: (target: Database.Database) => void;\n onTypenameChange?: (typename: string) => void;\n onCreateObject?: (params: { metadata: Metadata; data?: Record<string, any> }) => MaybePromise<void>;\n};\n\nexport const CreateObjectPanel = ({\n options,\n spaces,\n typename,\n target,\n initialFormValues: initialFormValuesProp,\n defaultSpaceId,\n resolve,\n onTargetChange,\n onTypenameChange,\n onCreateObject,\n}: CreateObjectPanelProps) => {\n const initialFormValues = useDefaultValue(initialFormValuesProp, () => ({}));\n const metadata = typename && resolve?.(typename);\n\n const sortedOptions = useMemo(() => [...options].sort((a, b) => a.label.localeCompare(b.label)), [options]);\n\n const handleCreateObject = useCallback(\n async (props: Record<string, any>) => {\n if (!metadata) {\n return;\n }\n await onCreateObject?.({ metadata, data: props });\n },\n [onCreateObject, metadata],\n );\n\n const handleSelectOption = useCallback(\n async (id: string) => {\n const metadata = resolve?.(id);\n if (metadata && !metadata.inputSchema) {\n await onCreateObject?.({ metadata });\n } else {\n onTypenameChange?.(id);\n }\n },\n [resolve, onCreateObject],\n );\n\n const inputSurfaceLookup = useInputSurfaceLookup({ target });\n\n // TODO(wittjosiah): These inputs should be rolled into a `Form` once it supports the necessary variants.\n if (!metadata) {\n return <SelectType options={sortedOptions} onChange={handleSelectOption} />;\n }\n\n if (!target) {\n return <SelectSpace spaces={spaces} defaultSpaceId={defaultSpaceId} onChange={onTargetChange} />;\n }\n\n if (metadata.inputSchema) {\n return (\n <Form.Root\n testId='create-object-form'\n autoFocus\n schema={omitId(metadata.inputSchema)}\n defaultValues={initialFormValues}\n db={Obj.isObject(target) ? Obj.getDatabase(target) : target}\n fieldProvider={inputSurfaceLookup}\n onSave={handleCreateObject}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n }\n\n return null;\n};\n\nCreateObjectPanel.displayName = 'CreateObjectPanel';\n\nconst SelectSpace = ({\n spaces,\n defaultSpaceId,\n onChange,\n}: { onChange?: (db: Database.Database) => void } & Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'>) => {\n const { t } = useTranslation(meta.id);\n\n const sortedSpaces = useMemo(\n () =>\n [...spaces].sort((a, b) => {\n const labelA = toLocalizedString(\n getSpaceDisplayName(a, {\n personal: a.id === defaultSpaceId,\n }),\n t,\n );\n const labelB = toLocalizedString(\n getSpaceDisplayName(b, {\n personal: b.id === defaultSpaceId,\n }),\n t,\n );\n return labelA.localeCompare(labelB);\n }),\n [spaces, defaultSpaceId, t],\n );\n\n const { results, handleSearch } = useSearchListResults({\n items: sortedSpaces,\n extract: (space) =>\n toLocalizedString(\n getSpaceDisplayName(space, {\n personal: space.id === defaultSpaceId,\n }),\n t,\n ),\n });\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <SearchList.Content>\n <SearchList.Input\n autoFocus\n data-testid='create-object-form.space-input'\n placeholder={t('space input placeholder')}\n />\n <SearchList.Viewport>\n {results.map((space) => (\n <SearchList.Item\n key={space.id}\n value={space.id}\n label={toLocalizedString(\n getSpaceDisplayName(space, {\n personal: space.id === defaultSpaceId,\n }),\n t,\n )}\n onSelect={() => onChange?.(space.db)}\n classNames='flex items-center gap-2'\n />\n ))}\n </SearchList.Viewport>\n </SearchList.Content>\n </SearchList.Root>\n );\n};\n\nconst SelectType = ({ options, onChange }: { options: CreateObjectOption[]; onChange: (id: string) => void }) => {\n const { t } = useTranslation(meta.id);\n\n const { results, handleSearch } = useSearchListResults({\n items: options,\n extract: (option) => option.label,\n });\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <SearchList.Content>\n <SearchList.Input\n autoFocus\n data-testid='create-object-form.schema-input'\n placeholder={t('schema input placeholder')}\n />\n <SearchList.Viewport>\n {results.map((option) => (\n <SearchList.Item\n key={option.id}\n value={option.id}\n label={option.label}\n icon={option.icon ?? 'ph--placeholder--regular'}\n classNames='flex items-center gap-2'\n onSelect={() => onChange(option.id)}\n />\n ))}\n </SearchList.Viewport>\n </SearchList.Content>\n </SearchList.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport React, { type PropsWithChildren, useCallback, useMemo } from 'react';\n\nimport { DXN, Obj, Ref, Tag, Type } from '@dxos/echo';\nimport { type JsonPath, splitJsonPath } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta as pluginMeta } from '../../meta';\n\n// TODO(wittjosiah): Would be nice to control order when extending so this isn't always first/last.\nconst BaseSchema = Schema.Struct({\n tags: Schema.Array(Ref.Ref(Tag.Tag)).pipe(Schema.optional),\n});\n\nexport type BaseObjectSettingsProps = ThemedClassName<\n PropsWithChildren<{\n object: Obj.Unknown;\n }>\n>;\n\n// TODO(wittjosiah): Reconcile w/ ObjectForm.\nexport const BaseObjectSettings = ({ classNames, children, object }: BaseObjectSettingsProps) => {\n const db = Obj.getDatabase(object);\n\n const formSchema = useMemo(() => {\n return Function.pipe(\n Obj.getSchema(object),\n Option.fromNullable,\n Option.map((schema) => BaseSchema.pipe(Schema.extend(schema))),\n Option.getOrUndefined,\n );\n }, [object]);\n\n const meta = Obj.getMeta(object);\n const tags = (meta.tags ?? []).map((tag) => db?.makeRef(DXN.parse(tag))).filter(isNonNullable);\n const values = useMemo(\n () => ({\n tags,\n ...object,\n }),\n [object, tags],\n );\n\n const handleCreate = useCallback((schema: Type.AnyEntity, values: any) => {\n invariant(db);\n invariant(Type.isObjectSchema(schema));\n const newObject = db.add(Obj.make(schema, values));\n if (Obj.instanceOf(Tag.Tag, newObject)) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = [...(Obj.getMeta(obj).tags ?? []), Obj.getDXN(newObject).toString()];\n });\n }\n }, []);\n\n // TODO(wittjosiah): Use FormRootProps type.\n const handleChange = useCallback(\n (\n { tags, ...values }: Schema.Schema.Type<typeof formSchema>,\n { isValid, changed }: { isValid: boolean; changed: Record<JsonPath, boolean> },\n ) => {\n if (!isValid) {\n return;\n }\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n\n // Handle tags separately using Obj.change.\n const hasTagsChange = changedPaths.some((path) => splitJsonPath(path)[0] === 'tags');\n if (hasTagsChange) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = tags?.map((tag: Ref.Ref<Tag.Tag>) => tag.dxn.toString()) ?? [];\n });\n }\n\n // Handle other property changes.\n const nonTagPaths = changedPaths.filter((path) => splitJsonPath(path)[0] !== 'tags');\n if (nonTagPaths.length > 0) {\n Obj.change(object, () => {\n for (const path of nonTagPaths) {\n const parts = splitJsonPath(path);\n const value = Obj.getValue(values, parts);\n Obj.setValue(object, parts, value);\n }\n });\n }\n },\n [object],\n );\n\n if (!formSchema) {\n return null;\n }\n\n return (\n <Form.Root\n schema={omitId(formSchema)}\n defaultValues={values}\n createOptionIcon='ph--plus--regular'\n createOptionLabel={['add tag label', { ns: pluginMeta.id }]}\n createInitialValuePath='label'\n db={db}\n onValuesChanged={handleChange}\n onCreate={handleCreate}\n >\n <Form.Viewport>\n <Form.Content classNames={classNames}>\n <Form.FieldSet />\n {children}\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type Key } from '@dxos/echo';\nimport { IconButton, List, ListItem, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../../meta';\n\nexport type ForeignKeysProps = {\n keys: Key.ForeignKey[];\n onDelete?: (key: Key.ForeignKey) => void;\n};\n\n// TODO(wittjosiah): This is a clone of `TokenManager`. Consider a form variant for arrays of read-only objects.\nexport const ForeignKeys = ({ keys, onDelete }: ForeignKeysProps) => {\n return (\n <List classNames='flex flex-col gap-2'>\n {keys.map((key) => (\n <KeyItem key={key.id} forignKey={key} onDelete={onDelete} />\n ))}\n </List>\n );\n};\n\ntype KeyItemProps = {\n forignKey: Key.ForeignKey;\n onDelete?: (key: Key.ForeignKey) => void;\n};\n\nconst KeyItem = ({ forignKey, onDelete }: KeyItemProps) => {\n const { t } = useTranslation(meta.id);\n\n const handleDelete = useCallback(() => {\n onDelete?.(forignKey);\n }, [forignKey, onDelete]);\n\n return (\n <ListItem.Root classNames='px-2'>\n <ListItem.Heading classNames='flex flex-col grow truncate'>\n <div>{forignKey.source}</div>\n <div className='text-description text-sm truncate'>{forignKey.id}</div>\n </ListItem.Heading>\n <ListItem.Endcap>\n <IconButton iconOnly icon='ph--x--regular' variant='ghost' label={t('delete key')} onClick={handleDelete} />\n </ListItem.Endcap>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { DXN, Obj, Ref, Tag, Type } from '@dxos/echo';\nimport { type JsonPath, splitJsonPath } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta as pluginMeta } from '../../meta';\n\nexport type ObjectFormProps = {\n schema: Schema.Schema.AnyNoContext;\n object: Obj.Unknown;\n};\n\nexport const ObjectForm = ({ object, schema }: ObjectFormProps) => {\n const db = Obj.getDatabase(object);\n\n const formSchema = useMemo(\n () =>\n Schema.Struct({\n tags: Schema.Array(Ref.Ref(Tag.Tag)).pipe(Schema.optional),\n }).pipe(Schema.extend(omitId(schema))),\n [schema],\n );\n\n const meta = Obj.getMeta(object);\n const tags = (meta.tags ?? []).map((tag) => db?.makeRef(DXN.parse(tag))).filter(isNonNullable);\n const values = useMemo(() => ({ tags, ...object }), [object, tags]);\n\n const handleCreate = useCallback((schema: Type.AnyEntity, values: any) => {\n invariant(db);\n invariant(Type.isObjectSchema(schema));\n const newObject = db.add(Obj.make(schema, values));\n if (Obj.instanceOf(Tag.Tag, newObject)) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = [...(Obj.getMeta(obj).tags ?? []), Obj.getDXN(newObject).toString()];\n });\n }\n }, []);\n\n // TODO(wittjosiah): Use FormRootProps type.\n const handleChange = useCallback(\n ({ tags, ...values }: any, { isValid, changed }: { isValid: boolean; changed: Record<JsonPath, boolean> }) => {\n if (!isValid) {\n return;\n }\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n\n // Handle tags separately using Obj.change.\n const hasTagsChange = changedPaths.some((path) => splitJsonPath(path)[0] === 'tags');\n if (hasTagsChange) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = tags?.map((tag: Ref.Ref<Tag.Tag>) => tag.dxn.toString()) ?? [];\n });\n }\n\n // Handle other property changes.\n const nonTagPaths = changedPaths.filter((path) => splitJsonPath(path)[0] !== 'tags');\n if (nonTagPaths.length > 0) {\n Obj.change(object, () => {\n for (const path of nonTagPaths) {\n const parts = splitJsonPath(path);\n const value = Obj.getValue(values, parts);\n Obj.setValue(object, parts, value);\n }\n });\n }\n },\n [object],\n );\n\n return (\n <Form.Root\n schema={omitId(formSchema)}\n defaultValues={values}\n createOptionIcon='ph--plus--regular'\n createOptionLabel={['add tag label', { ns: pluginMeta.id }]}\n createInitialValuePath='label'\n db={db}\n onValuesChanged={handleChange}\n onCreate={handleCreate}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type CleanupFn } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\n\nexport const createClientSaveTracker = (client: Client, cb: (state: 'saved' | 'saving') => void) => {\n const CleanupFns: Record<SpaceId, CleanupFn> = {};\n const state: Record<SpaceId, 'saved' | 'saving'> = {};\n\n const install = (spaces: Space[]) => {\n for (const space of spaces) {\n if (state[space.id]) {\n continue;\n }\n\n state[space.id] = 'saved';\n CleanupFns[space.id] = createSpaceSaveTracker(space, (s) => {\n state[space.id] = s;\n cb(Object.values(state).some((s) => s === 'saving') ? 'saving' : 'saved');\n });\n }\n };\n client.spaces.subscribe((spaces) => {\n install(spaces);\n });\n install(client.spaces.get());\n\n return () => {\n for (const unsubscribe of Object.values(CleanupFns)) {\n unsubscribe();\n }\n };\n};\n\nconst createSpaceSaveTracker = (space: Space, cb: (state: 'saved' | 'saving') => void): CleanupFn => {\n const ctx = new Context();\n\n void space.waitUntilReady().then(() => {\n if (ctx.disposed) {\n return;\n }\n\n let hasUnsavedChanges = false;\n let lastFlushPromise: Promise<void> | undefined;\n space.internal.db.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {\n hasUnsavedChanges = unsavedDocuments.length > 0;\n });\n space.internal.db.saveStateChanged.debounce(500).on(ctx, () => {\n if (hasUnsavedChanges) {\n lastFlushPromise = undefined;\n cb('saving');\n } else {\n const flushPromise = space.db.flush();\n lastFlushPromise = flushPromise;\n void flushPromise.then(() => {\n if (lastFlushPromise === flushPromise) {\n cb('saved');\n }\n });\n }\n });\n });\n\n return () => {\n void ctx.dispose();\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport type Status = 'saving locally' | 'downloading' | 'uploading' | 'offline persisted' | 'remote synced';\n\nexport const getStatus = ({\n offline,\n saved,\n needsToUpload,\n needsToDownload,\n}: {\n offline: boolean;\n saved: boolean;\n needsToUpload: boolean;\n needsToDownload: boolean;\n}): Status => {\n if (!saved) {\n return 'saving locally';\n } else if (!offline && needsToDownload) {\n return 'downloading';\n } else if (!offline && needsToUpload) {\n return 'uploading';\n } else if (offline && !needsToUpload && !needsToDownload) {\n return 'offline persisted';\n } else {\n return 'remote synced';\n }\n};\n\nexport const getIcon = (status: Status) => {\n switch (status) {\n case 'saving locally':\n return 'ph--download--regular';\n case 'downloading':\n return 'ph--cloud-arrow-down--regular';\n case 'uploading':\n return 'ph--cloud-arrow-up--regular';\n case 'offline persisted':\n return 'ph--check-circle--regular';\n case 'remote synced':\n return 'ph--cloud-check--regular';\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useEffect", "useState", "useOperationInvoker", "LayoutOperation", "useLayout", "Obj", "useClient", "Filter", "useQuery", "Button", "Icon", "Toast", "useTranslation", "osTranslations", "WAIT_FOR_OBJECT_TIMEOUT", "TOAST_TIMEOUT", "AwaitingObject", "id", "t", "useTranslation", "meta", "invokePromise", "useOperationInvoker", "open", "setOpen", "useState", "waiting", "setWaiting", "found", "setFound", "layout", "useLayout", "client", "useClient", "objects", "useQuery", "spaces", "Filter", "everything", "useEffect", "timeout", "setTimeout", "clearTimeout", "findIndex", "object", "Obj", "getDXN", "toString", "active", "includes", "handleClose", "useCallback", "SpaceOperation", "WaitForObject", "undefined", "handleNavigate", "LayoutOperation", "Open", "subject", "Toast", "Root", "duration", "onOpenChange", "Body", "Title", "classNames", "Icon", "icon", "size", "span", "Description", "Actions", "Action", "altText", "asChild", "Button", "variant", "onClick", "Close", "ns", "osTranslations", "React", "useCallback", "useMemo", "Obj", "toLocalizedString", "useDefaultValue", "useTranslation", "Form", "omitId", "SearchList", "useSearchListResults", "CreateObjectPanel", "options", "spaces", "typename", "target", "initialFormValues", "initialFormValuesProp", "defaultSpaceId", "resolve", "onTargetChange", "onTypenameChange", "onCreateObject", "useDefaultValue", "metadata", "sortedOptions", "useMemo", "sort", "a", "b", "label", "localeCompare", "handleCreateObject", "useCallback", "props", "data", "handleSelectOption", "id", "inputSchema", "inputSurfaceLookup", "useInputSurfaceLookup", "React", "SelectType", "onChange", "SelectSpace", "Form", "Root", "testId", "autoFocus", "schema", "omitId", "defaultValues", "db", "Obj", "isObject", "getDatabase", "fieldProvider", "onSave", "Viewport", "Content", "FieldSet", "Submit", "displayName", "t", "useTranslation", "meta", "sortedSpaces", "labelA", "toLocalizedString", "getSpaceDisplayName", "personal", "labelB", "results", "handleSearch", "useSearchListResults", "items", "extract", "space", "SearchList", "onSearch", "Input", "data-testid", "placeholder", "map", "Item", "key", "value", "onSelect", "classNames", "option", "icon", "Function", "Option", "Schema", "React", "useCallback", "useMemo", "DXN", "Obj", "Ref", "Tag", "Type", "splitJsonPath", "invariant", "Form", "omitId", "isNonNullable", "BaseSchema", "Struct", "tags", "Array", "Ref", "Tag", "pipe", "optional", "BaseObjectSettings", "classNames", "children", "object", "db", "Obj", "getDatabase", "formSchema", "useMemo", "getSchema", "fromNullable", "map", "schema", "extend", "getOrUndefined", "meta", "getMeta", "tag", "makeRef", "DXN", "parse", "filter", "isNonNullable", "values", "handleCreate", "useCallback", "invariant", "Type", "isObjectSchema", "newObject", "add", "make", "instanceOf", "change", "obj", "getDXN", "toString", "handleChange", "isValid", "changed", "changedPaths", "Object", "keys", "path", "hasTagsChange", "some", "splitJsonPath", "dxn", "nonTagPaths", "length", "parts", "value", "getValue", "setValue", "React", "Form", "Root", "omitId", "defaultValues", "createOptionIcon", "createOptionLabel", "ns", "pluginMeta", "id", "createInitialValuePath", "onValuesChanged", "onCreate", "Viewport", "Content", "FieldSet", "React", "useCallback", "IconButton", "List", "ListItem", "useTranslation", "ForeignKeys", "keys", "onDelete", "React", "List", "classNames", "map", "key", "KeyItem", "id", "forignKey", "t", "useTranslation", "meta", "handleDelete", "useCallback", "ListItem", "Root", "Heading", "div", "source", "className", "Endcap", "IconButton", "iconOnly", "icon", "variant", "label", "onClick", "Schema", "React", "useCallback", "useMemo", "DXN", "Obj", "Ref", "Tag", "Type", "splitJsonPath", "invariant", "Form", "omitId", "isNonNullable", "ObjectForm", "object", "schema", "db", "Obj", "getDatabase", "formSchema", "useMemo", "Struct", "tags", "Array", "Ref", "Tag", "pipe", "optional", "extend", "omitId", "meta", "getMeta", "map", "tag", "makeRef", "DXN", "parse", "filter", "isNonNullable", "values", "handleCreate", "useCallback", "invariant", "Type", "isObjectSchema", "newObject", "add", "make", "instanceOf", "change", "obj", "getDXN", "toString", "handleChange", "isValid", "changed", "changedPaths", "Object", "keys", "path", "hasTagsChange", "some", "splitJsonPath", "dxn", "nonTagPaths", "length", "parts", "value", "getValue", "setValue", "React", "Form", "Root", "defaultValues", "createOptionIcon", "createOptionLabel", "ns", "pluginMeta", "id", "createInitialValuePath", "onValuesChanged", "onCreate", "Viewport", "Content", "FieldSet", "Context", "createClientSaveTracker", "client", "cb", "CleanupFns", "state", "install", "spaces", "space", "id", "createSpaceSaveTracker", "s", "Object", "values", "some", "subscribe", "get", "unsubscribe", "ctx", "waitUntilReady", "then", "disposed", "hasUnsavedChanges", "lastFlushPromise", "internal", "db", "saveStateChanged", "on", "unsavedDocuments", "length", "debounce", "undefined", "flushPromise", "flush", "dispose", "getStatus", "offline", "saved", "needsToUpload", "needsToDownload", "getIcon", "status"]
|
|
7
|
+
}
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getTypenames
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-EVNSLSQS.mjs";
|
|
5
5
|
|
|
6
6
|
// src/hooks/useActiveSpace.ts
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { Capabilities } from "@dxos/app-framework";
|
|
8
|
+
import { AppCapabilities, getSpaceIdFromPath } from "@dxos/app-toolkit";
|
|
9
|
+
import { useLayout } from "@dxos/app-toolkit/ui";
|
|
9
10
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
10
|
-
import {
|
|
11
|
+
import { useSpace } from "@dxos/react-client/echo";
|
|
11
12
|
var getActiveSpace = (capabilities) => {
|
|
12
13
|
const client = capabilities.get(ClientCapabilities.Client);
|
|
13
|
-
const registry = capabilities.get(
|
|
14
|
-
const layoutAtom = capabilities.get(
|
|
14
|
+
const registry = capabilities.get(Capabilities.AtomRegistry);
|
|
15
|
+
const layoutAtom = capabilities.get(AppCapabilities.Layout);
|
|
15
16
|
const layout = registry.get(layoutAtom);
|
|
16
|
-
const
|
|
17
|
+
const spaceId = getSpaceIdFromPath(layout.workspace);
|
|
17
18
|
return spaceId ? client.spaces.get(spaceId) : void 0;
|
|
18
19
|
};
|
|
19
20
|
var useActiveSpace = () => {
|
|
20
21
|
const layout = useLayout();
|
|
21
|
-
const
|
|
22
|
+
const spaceId = getSpaceIdFromPath(layout.workspace);
|
|
22
23
|
return useSpace(spaceId);
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
// src/hooks/useInputSurfaceLookup.tsx
|
|
26
27
|
import React, { useCallback } from "react";
|
|
27
|
-
import { Surface,
|
|
28
|
+
import { Surface, usePluginManager } from "@dxos/app-framework/ui";
|
|
28
29
|
var useInputSurfaceLookup = (baseData) => {
|
|
29
30
|
const pluginManager = usePluginManager();
|
|
30
31
|
return useCallback(({ schema, prop, fieldProps }) => {
|
|
@@ -33,11 +34,11 @@ var useInputSurfaceLookup = (baseData) => {
|
|
|
33
34
|
schema,
|
|
34
35
|
...baseData
|
|
35
36
|
};
|
|
36
|
-
if (
|
|
37
|
+
if (Surface.isAvailable(pluginManager.capabilities, {
|
|
37
38
|
role: "form-input",
|
|
38
39
|
data
|
|
39
40
|
})) {
|
|
40
|
-
return /* @__PURE__ */ React.createElement(Surface, {
|
|
41
|
+
return /* @__PURE__ */ React.createElement(Surface.Surface, {
|
|
41
42
|
role: "form-input",
|
|
42
43
|
data,
|
|
43
44
|
...fieldProps
|
|
@@ -115,4 +116,4 @@ export {
|
|
|
115
116
|
usePath,
|
|
116
117
|
useTypeOptions
|
|
117
118
|
};
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
119
|
+
//# sourceMappingURL=chunk-2OLR2ZKH.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/hooks/useActiveSpace.ts", "../../../src/hooks/useInputSurfaceLookup.tsx", "../../../src/hooks/usePath.ts", "../../../src/hooks/useTypeOptions.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type CapabilityManager } from '@dxos/app-framework';\nimport { AppCapabilities, getSpaceIdFromPath } from '@dxos/app-toolkit';\nimport { useLayout } from '@dxos/app-toolkit/ui';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { useSpace } from '@dxos/react-client/echo';\n\nexport const getActiveSpace = (capabilities: CapabilityManager.CapabilityManager) => {\n const client = capabilities.get(ClientCapabilities.Client);\n const registry = capabilities.get(Capabilities.AtomRegistry);\n const layoutAtom = capabilities.get(AppCapabilities.Layout);\n const layout = registry.get(layoutAtom);\n const spaceId = getSpaceIdFromPath(layout.workspace);\n return spaceId ? client.spaces.get(spaceId) : undefined;\n};\n\nexport const useActiveSpace = () => {\n const layout = useLayout();\n const spaceId = getSpaceIdFromPath(layout.workspace);\n return useSpace(spaceId);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Surface, usePluginManager } from '@dxos/app-framework/ui';\nimport { type FormFieldProvider } from '@dxos/react-ui-form';\n\n/**\n * Creates a surface input component based on plugin context.\n * @param baseData Additional data that will be merged with form data and passed to the surface.\n * This allows providing more context to the surface than what's available from the form itself.\n */\n// TODO(burdon): Factor out?\nexport const useInputSurfaceLookup = (baseData?: Record<string, any>): FormFieldProvider => {\n const pluginManager = usePluginManager();\n return useCallback<FormFieldProvider>(\n ({ schema, prop, fieldProps }) => {\n const data = { prop, schema, ...baseData };\n if (Surface.isAvailable(pluginManager.capabilities, { role: 'form-input', data })) {\n return <Surface.Surface role='form-input' data={data} {...fieldProps} />;\n }\n },\n [pluginManager, baseData],\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport { useEffect, useState } from 'react';\n\nimport { Graph } from '@dxos/plugin-graph';\n\n/**\n * React hook to get a path from the graph.\n *\n * @param graph Graph to find the node in.\n * @param id Id of the node to find a path to.\n * @param timeout Optional timeout in milliseconds to wait for the node to be found.\n * @returns Path if found, undefined otherwise.\n */\n// TODO(wittjosiah): Factor out.\nexport const usePath = (graph: Graph.ReadableGraph, id?: string, timeout?: number): Option.Option<string[]> => {\n const [pathState, setPathState] = useState<Option.Option<string[]>>(\n id ? Graph.getPath(graph, { target: id }) : Option.none(),\n );\n\n useEffect(() => {\n if (!id && pathState) {\n setPathState(Option.none());\n }\n\n if ((Option.isSome(pathState) && pathState.value.at(-1) === id) || !id) {\n return;\n }\n\n // Set timeout did not seem to effectively not block the UI thread.\n const frame = requestAnimationFrame(async () => {\n try {\n const path = await Graph.waitForPath(graph, { target: id }, { timeout });\n if (path) {\n setPathState(Option.some(path));\n }\n } catch {}\n });\n\n return () => cancelAnimationFrame(frame);\n }, [graph, id, timeout, pathState]);\n\n return pathState;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { type TypeInputOptions, getTypenames } from '../types';\n\nexport const useTypeOptions = ({ space, annotation }: { space?: Space; annotation: TypeInputOptions }) => {\n const { t } = useTranslation();\n const typenames = getTypenames({ annotation, space });\n return useMemo(\n () =>\n typenames\n .map((typename) => ({\n value: typename,\n label: t('typename label', { ns: typename, defaultValue: typename }),\n }))\n .toSorted((a, b) => a.label.localeCompare(b.label)),\n [t, typenames],\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SAASA,oBAA4C;AACrD,SAASC,iBAAiBC,0BAA0B;AACpD,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAElB,IAAMC,iBAAiB,CAACC,iBAAAA;AAC7B,QAAMC,SAASD,aAAaE,IAAIC,mBAAmBC,MAAM;AACzD,QAAMC,WAAWL,aAAaE,IAAII,aAAaC,YAAY;AAC3D,QAAMC,aAAaR,aAAaE,IAAIO,gBAAgBC,MAAM;AAC1D,QAAMC,SAASN,SAASH,IAAIM,UAAAA;AAC5B,QAAMI,UAAUC,mBAAmBF,OAAOG,SAAS;AACnD,SAAOF,UAAUX,OAAOc,OAAOb,IAAIU,OAAAA,IAAWI;AAChD;AAEO,IAAMC,iBAAiB,MAAA;AAC5B,QAAMN,SAASO,UAAAA;AACf,QAAMN,UAAUC,mBAAmBF,OAAOG,SAAS;AACnD,SAAOK,SAASP,OAAAA;AAClB;;;ACnBA,OAAOQ,SAASC,mBAAmB;AAEnC,SAASC,SAASC,wBAAwB;AASnC,IAAMC,wBAAwB,CAACC,aAAAA;AACpC,QAAMC,gBAAgBC,iBAAAA;AACtB,SAAOC,YACL,CAAC,EAAEC,QAAQC,MAAMC,WAAU,MAAE;AAC3B,UAAMC,OAAO;MAAEF;MAAMD;MAAQ,GAAGJ;IAAS;AACzC,QAAIQ,QAAQC,YAAYR,cAAcS,cAAc;MAAEC,MAAM;MAAcJ;IAAK,CAAA,GAAI;AACjF,aAAO,sBAAA,cAACC,QAAQA,SAAO;QAACG,MAAK;QAAaJ;QAAa,GAAGD;;IAC5D;EACF,GACA;IAACL;IAAeD;GAAS;AAE7B;;;ACtBA,YAAYY,YAAY;AACxB,SAASC,WAAWC,gBAAgB;AAEpC,SAASC,aAAa;AAWf,IAAMC,UAAU,CAACC,OAA4BC,IAAaC,YAAAA;AAC/D,QAAM,CAACC,WAAWC,YAAAA,IAAgBC,SAChCJ,KAAKK,MAAMC,QAAQP,OAAO;IAAEQ,QAAQP;EAAG,CAAA,IAAYQ,YAAI,CAAA;AAGzDC,YAAU,MAAA;AACR,QAAI,CAACT,MAAME,WAAW;AACpBC,mBAAoBK,YAAI,CAAA;IAC1B;AAEA,QAAYE,cAAOR,SAAAA,KAAcA,UAAUS,MAAMC,GAAG,EAAC,MAAOZ,MAAO,CAACA,IAAI;AACtE;IACF;AAGA,UAAMa,QAAQC,sBAAsB,YAAA;AAClC,UAAI;AACF,cAAMC,OAAO,MAAMV,MAAMW,YAAYjB,OAAO;UAAEQ,QAAQP;QAAG,GAAG;UAAEC;QAAQ,CAAA;AACtE,YAAIc,MAAM;AACRZ,uBAAoBc,YAAKF,IAAAA,CAAAA;QAC3B;MACF,QAAQ;MAAC;IACX,CAAA;AAEA,WAAO,MAAMG,qBAAqBL,KAAAA;EACpC,GAAG;IAACd;IAAOC;IAAIC;IAASC;GAAU;AAElC,SAAOA;AACT;;;AC1CA,SAASiB,eAAe;AAGxB,SAASC,sBAAsB;AAIxB,IAAMC,iBAAiB,CAAC,EAAEC,OAAOC,WAAU,MAAmD;AACnG,QAAM,EAAEC,EAAC,IAAKC,eAAAA;AACd,QAAMC,YAAYC,aAAa;IAAEJ;IAAYD;EAAM,CAAA;AACnD,SAAOM,QACL,MACEF,UACGG,IAAI,CAACC,cAAc;IAClBC,OAAOD;IACPE,OAAOR,EAAE,kBAAkB;MAAES,IAAIH;MAAUI,cAAcJ;IAAS,CAAA;EACpE,EAAA,EACCK,SAAS,CAACC,GAAGC,MAAMD,EAAEJ,MAAMM,cAAcD,EAAEL,KAAK,CAAA,GACrD;IAACR;IAAGE;GAAU;AAElB;",
|
|
6
|
+
"names": ["Capabilities", "AppCapabilities", "getSpaceIdFromPath", "useLayout", "ClientCapabilities", "useSpace", "getActiveSpace", "capabilities", "client", "get", "ClientCapabilities", "Client", "registry", "Capabilities", "AtomRegistry", "layoutAtom", "AppCapabilities", "Layout", "layout", "spaceId", "getSpaceIdFromPath", "workspace", "spaces", "undefined", "useActiveSpace", "useLayout", "useSpace", "React", "useCallback", "Surface", "usePluginManager", "useInputSurfaceLookup", "baseData", "pluginManager", "usePluginManager", "useCallback", "schema", "prop", "fieldProps", "data", "Surface", "isAvailable", "capabilities", "role", "Option", "useEffect", "useState", "Graph", "usePath", "graph", "id", "timeout", "pathState", "setPathState", "useState", "Graph", "getPath", "target", "none", "useEffect", "isSome", "value", "at", "frame", "requestAnimationFrame", "path", "waitForPath", "some", "cancelAnimationFrame", "useMemo", "useTranslation", "useTypeOptions", "space", "annotation", "t", "useTranslation", "typenames", "getTypenames", "useMemo", "map", "typename", "value", "label", "ns", "defaultValue", "toSorted", "a", "b", "localeCompare"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
meta
|
|
4
|
+
} from "./chunk-63N5JJXI.mjs";
|
|
5
|
+
|
|
6
|
+
// src/constants.ts
|
|
7
|
+
var CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;
|
|
8
|
+
var CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;
|
|
9
|
+
var JOIN_DIALOG = `${meta.id}.JoinDialog`;
|
|
10
|
+
var OBJECT_RENAME_POPOVER = `${meta.id}.ObjectRenamePopover`;
|
|
11
|
+
var SPACE_RENAME_POPOVER = `${meta.id}.SpaceRenamePopover`;
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
CREATE_OBJECT_DIALOG,
|
|
15
|
+
CREATE_SPACE_DIALOG,
|
|
16
|
+
JOIN_DIALOG,
|
|
17
|
+
OBJECT_RENAME_POPOVER,
|
|
18
|
+
SPACE_RENAME_POPOVER
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-5KTTTTEX.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/constants.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { meta } from './meta';\n\nexport const CREATE_OBJECT_DIALOG = `${meta.id}
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { meta } from './meta';\n\nexport const CREATE_OBJECT_DIALOG = `${meta.id}.CreateObjectDialog`;\nexport const CREATE_SPACE_DIALOG = `${meta.id}.CreateSpaceDialog`;\nexport const JOIN_DIALOG = `${meta.id}.JoinDialog`;\nexport const OBJECT_RENAME_POPOVER = `${meta.id}.ObjectRenamePopover`;\nexport const SPACE_RENAME_POPOVER = `${meta.id}.SpaceRenamePopover`;\n"],
|
|
5
5
|
"mappings": ";;;;;;AAMO,IAAMA,uBAAuB,GAAGC,KAAKC,EAAE;AACvC,IAAMC,sBAAsB,GAAGF,KAAKC,EAAE;AACtC,IAAME,cAAc,GAAGH,KAAKC,EAAE;AAC9B,IAAMG,wBAAwB,GAAGJ,KAAKC,EAAE;AACxC,IAAMI,uBAAuB,GAAGL,KAAKC,EAAE;",
|
|
6
6
|
"names": ["CREATE_OBJECT_DIALOG", "meta", "id", "CREATE_SPACE_DIALOG", "JOIN_DIALOG", "OBJECT_RENAME_POPOVER", "SPACE_RENAME_POPOVER"]
|
|
7
7
|
}
|
|
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
|
|
|
3
3
|
// src/meta.ts
|
|
4
4
|
import { trim } from "@dxos/util";
|
|
5
5
|
var meta = {
|
|
6
|
-
id: "dxos.
|
|
6
|
+
id: "org.dxos.plugin.space",
|
|
7
7
|
name: "Spaces",
|
|
8
8
|
description: trim`
|
|
9
9
|
Core workspace container system for organizing and sharing collaborative environments.
|
|
@@ -15,4 +15,4 @@ var meta = {
|
|
|
15
15
|
export {
|
|
16
16
|
meta
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-63N5JJXI.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.space',\n name: 'Spaces',\n description: trim`\n Core workspace container system for organizing and sharing collaborative environments.\n Create, manage, and share spaces with granular access control and invitation management.\n `,\n icon: 'ph--planet--regular',\n};\n"],
|
|
5
5
|
"mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;AACR;",
|
|
6
6
|
"names": ["trim", "meta", "id", "name", "description", "trim", "icon"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
SpaceCapabilities
|
|
4
|
+
} from "./chunk-EVNSLSQS.mjs";
|
|
5
|
+
import {
|
|
6
|
+
meta
|
|
7
|
+
} from "./chunk-63N5JJXI.mjs";
|
|
8
|
+
|
|
9
|
+
// src/containers/SpacePresence/SpacePresence.tsx
|
|
10
|
+
import React, { forwardRef, useCallback, useEffect, useState } from "react";
|
|
11
|
+
import { useAtomCapability } from "@dxos/app-framework/ui";
|
|
12
|
+
import { generateName } from "@dxos/display-name";
|
|
13
|
+
import { Obj } from "@dxos/echo";
|
|
14
|
+
import { PublicKey } from "@dxos/react-client";
|
|
15
|
+
import { useMembers, useSpace } from "@dxos/react-client/echo";
|
|
16
|
+
import { useIdentity } from "@dxos/react-client/halo";
|
|
17
|
+
import { Avatar, List, ListItem, Popover, Tooltip, useDefaultValue, useTranslation } from "@dxos/react-ui";
|
|
18
|
+
import { AttentionGlyph, useAttention } from "@dxos/react-ui-attention";
|
|
19
|
+
import { ComplexMap, keyToFallback } from "@dxos/util";
|
|
20
|
+
var REFRESH_INTERVAL = 5e3;
|
|
21
|
+
var ACTIVITY_DURATION = 3e4;
|
|
22
|
+
var noViewers = new ComplexMap(PublicKey.hash);
|
|
23
|
+
var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
|
|
24
|
+
var SpacePresence = ({ object, spaceId }) => {
|
|
25
|
+
const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);
|
|
26
|
+
const identity = useIdentity();
|
|
27
|
+
const db = Obj.getDatabase(object);
|
|
28
|
+
const space = useSpace(spaceId ?? db?.spaceId);
|
|
29
|
+
const spaceMembers = useMembers(spaceId ?? db?.spaceId);
|
|
30
|
+
const [_moment, setMoment] = useState(Date.now());
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
33
|
+
return () => clearInterval(interval);
|
|
34
|
+
}, []);
|
|
35
|
+
const memberOnline = useCallback((member) => member.presence === 1, []);
|
|
36
|
+
const memberIsNotSelf = useCallback((member) => !identity?.identityKey.equals(member.identity.identityKey), [
|
|
37
|
+
identity?.identityKey
|
|
38
|
+
]);
|
|
39
|
+
if (!identity || !ephemeral || !space) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const currentObjectViewers = ephemeral.viewersByObject[Obj.getDXN(object).toString()] ?? noViewers;
|
|
43
|
+
const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
|
|
44
|
+
const objectView = currentObjectViewers.get(member.identity.identityKey);
|
|
45
|
+
const lastSeen = objectView?.lastSeen ?? -Infinity;
|
|
46
|
+
const currentlyAttended = objectView?.currentlyAttended ?? false;
|
|
47
|
+
return {
|
|
48
|
+
...member,
|
|
49
|
+
currentlyAttended,
|
|
50
|
+
lastSeen
|
|
51
|
+
};
|
|
52
|
+
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
53
|
+
return /* @__PURE__ */ React.createElement(FullPresence, {
|
|
54
|
+
members: membersForObject
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
var FullPresence = (props) => {
|
|
58
|
+
const { size = 9, onMemberClick } = props;
|
|
59
|
+
const members = useDefaultValue(props.members, () => []);
|
|
60
|
+
if (members.length === 0) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
64
|
+
className: "dx-avatar-group",
|
|
65
|
+
"data-testid": "spacePlugin.presence"
|
|
66
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
|
|
67
|
+
key: member.identity.identityKey.toHex(),
|
|
68
|
+
side: "bottom",
|
|
69
|
+
content: getName(member.identity),
|
|
70
|
+
className: "grid focus:outline-hidden"
|
|
71
|
+
}, /* @__PURE__ */ React.createElement(PresenceAvatar, {
|
|
72
|
+
identity: member.identity,
|
|
73
|
+
match: member.currentlyAttended,
|
|
74
|
+
index: members.length - i,
|
|
75
|
+
onClick: () => onMemberClick?.(member),
|
|
76
|
+
size
|
|
77
|
+
}))), members.length > 3 && /* @__PURE__ */ React.createElement(Popover.Root, null, /* @__PURE__ */ React.createElement(Popover.Trigger, {
|
|
78
|
+
className: "grid focus:outline-hidden"
|
|
79
|
+
}, /* @__PURE__ */ React.createElement(Avatar.Root, null, /* @__PURE__ */ React.createElement(Avatar.Content, {
|
|
80
|
+
status: "inactive",
|
|
81
|
+
style: {
|
|
82
|
+
zIndex: members.length - 4
|
|
83
|
+
},
|
|
84
|
+
fallback: `+${members.length - 3}`,
|
|
85
|
+
size
|
|
86
|
+
}))), /* @__PURE__ */ React.createElement(Popover.Portal, null, /* @__PURE__ */ React.createElement(Popover.Content, {
|
|
87
|
+
side: "bottom"
|
|
88
|
+
}, /* @__PURE__ */ React.createElement(Popover.Arrow, null), /* @__PURE__ */ React.createElement(Popover.Viewport, {
|
|
89
|
+
classNames: "max-h-56"
|
|
90
|
+
}, /* @__PURE__ */ React.createElement(List, null, members.map((member) => /* @__PURE__ */ React.createElement(ListItem.Root, {
|
|
91
|
+
key: member.identity.identityKey.toHex(),
|
|
92
|
+
classNames: "flex gap-2 items-center cursor-pointer mb-2",
|
|
93
|
+
onClick: () => onMemberClick?.(member),
|
|
94
|
+
"data-testid": "identity-list-item"
|
|
95
|
+
}, /* @__PURE__ */ React.createElement(PresenceAvatar, {
|
|
96
|
+
identity: member.identity,
|
|
97
|
+
size,
|
|
98
|
+
showName: true,
|
|
99
|
+
match: member.currentlyAttended
|
|
100
|
+
})))))))));
|
|
101
|
+
};
|
|
102
|
+
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
|
|
103
|
+
const status = match ? "current" : "active";
|
|
104
|
+
const fallbackValue = keyToFallback(identity.identityKey);
|
|
105
|
+
return /* @__PURE__ */ React.createElement(Avatar.Root, null, /* @__PURE__ */ React.createElement(Avatar.Content, {
|
|
106
|
+
status,
|
|
107
|
+
hue: identity.profile?.data?.hue || fallbackValue.hue,
|
|
108
|
+
"data-testid": "spacePlugin.presence.member",
|
|
109
|
+
"data-status": status,
|
|
110
|
+
size,
|
|
111
|
+
...index ? {
|
|
112
|
+
style: {
|
|
113
|
+
zIndex: index
|
|
114
|
+
}
|
|
115
|
+
} : {},
|
|
116
|
+
onClick,
|
|
117
|
+
fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
|
|
118
|
+
ref: forwardedRef
|
|
119
|
+
}), /* @__PURE__ */ React.createElement(Avatar.Label, {
|
|
120
|
+
classNames: showName ? "text-sm truncate px-2" : "sr-only"
|
|
121
|
+
}, getName(identity)));
|
|
122
|
+
});
|
|
123
|
+
var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
124
|
+
const { hasAttention, isAncestor, isRelated } = useAttention(id);
|
|
125
|
+
const attended = hasAttention || isRelated;
|
|
126
|
+
const containsAttended = isAncestor && !open;
|
|
127
|
+
const getActiveViewers = (viewers2) => {
|
|
128
|
+
const moment = Date.now();
|
|
129
|
+
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
130
|
+
};
|
|
131
|
+
const [activeViewers, setActiveViewers] = useState(viewers ? getActiveViewers(viewers) : []);
|
|
132
|
+
useEffect(() => {
|
|
133
|
+
if (viewers) {
|
|
134
|
+
setActiveViewers(getActiveViewers(viewers));
|
|
135
|
+
const interval = setInterval(() => {
|
|
136
|
+
setActiveViewers(getActiveViewers(viewers));
|
|
137
|
+
}, REFRESH_INTERVAL);
|
|
138
|
+
return () => clearInterval(interval);
|
|
139
|
+
}
|
|
140
|
+
}, [
|
|
141
|
+
viewers
|
|
142
|
+
]);
|
|
143
|
+
return /* @__PURE__ */ React.createElement(SmallPresence, {
|
|
144
|
+
count: activeViewers.length,
|
|
145
|
+
attended,
|
|
146
|
+
containsAttended
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
150
|
+
const { t } = useTranslation(meta.id);
|
|
151
|
+
return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
|
|
152
|
+
asChild: true,
|
|
153
|
+
content: t("presence label", {
|
|
154
|
+
count
|
|
155
|
+
}),
|
|
156
|
+
side: "bottom"
|
|
157
|
+
}, /* @__PURE__ */ React.createElement(AttentionGlyph, {
|
|
158
|
+
attended,
|
|
159
|
+
containsAttended,
|
|
160
|
+
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
161
|
+
classNames: "self-center mx-1"
|
|
162
|
+
}));
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export {
|
|
166
|
+
SpacePresence,
|
|
167
|
+
SmallPresenceLive
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=chunk-EDC2RUJU.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/containers/SpacePresence/SpacePresence.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { forwardRef, useCallback, useEffect, useState } from 'react';\n\nimport { useAtomCapability } from '@dxos/app-framework/ui';\nimport { generateName } from '@dxos/display-name';\nimport { type Key, Obj } from '@dxos/echo';\nimport { PublicKey } from '@dxos/react-client';\nimport { type SpaceMember, useMembers, useSpace } from '@dxos/react-client/echo';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport {\n Avatar,\n type AvatarContentProps,\n type DxAvatar,\n List,\n ListItem,\n Popover,\n type Size,\n type ThemedClassName,\n Tooltip,\n useDefaultValue,\n useTranslation,\n} from '@dxos/react-ui';\nimport { AttentionGlyph, type AttentionGlyphProps, useAttention } from '@dxos/react-ui-attention';\nimport { ComplexMap, keyToFallback } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { type ObjectViewerProps, SpaceCapabilities } from '../../types';\n\n// TODO(thure): Get/derive these values from protocol\nconst REFRESH_INTERVAL = 5000;\nconst ACTIVITY_DURATION = 30_000;\n\n// TODO(thure): This is chiefly meant to satisfy TS & provide an empty map after `deepSignal` interactions.\nconst noViewers = new ComplexMap<PublicKey, ObjectViewerProps>(PublicKey.hash);\n\n// TODO(wittjosiah): Factor out?\nconst getName = (identity: Identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());\n\nexport type SpacePresenceProps = {\n object: Obj.Unknown;\n spaceId?: Key.SpaceId;\n};\n\nexport const SpacePresence = ({ object, spaceId }: SpacePresenceProps) => {\n const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);\n const identity = useIdentity();\n const db = Obj.getDatabase(object);\n const space = useSpace(spaceId ?? db?.spaceId);\n const spaceMembers = useMembers(spaceId ?? db?.spaceId);\n\n const [_moment, setMoment] = useState(Date.now());\n\n // NOTE(thure): This is necessary so Presence updates without any underlying data updating.\n useEffect(() => {\n const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }, []);\n\n const memberOnline = useCallback((member: SpaceMember) => member.presence === 1, []);\n const memberIsNotSelf = useCallback(\n (member: SpaceMember) => !identity?.identityKey.equals(member.identity.identityKey),\n [identity?.identityKey],\n );\n\n // TODO(thure): Could it be a smell to return early when there are interactions with `deepSignal` later, since it\n // prevents reactivity?\n if (!identity || !ephemeral || !space) {\n return null;\n }\n\n const currentObjectViewers = ephemeral.viewersByObject[Obj.getDXN(object).toString()] ?? noViewers;\n\n const membersForObject = spaceMembers\n .filter((member) => memberOnline(member) && memberIsNotSelf(member))\n .filter((member) => currentObjectViewers.has(member.identity.identityKey))\n .map((member) => {\n const objectView = currentObjectViewers.get(member.identity.identityKey);\n const lastSeen = objectView?.lastSeen ?? -Infinity;\n const currentlyAttended = objectView?.currentlyAttended ?? false;\n\n return {\n ...member,\n currentlyAttended,\n lastSeen,\n };\n })\n .toSorted((a, b) => a.lastSeen - b.lastSeen);\n\n return <FullPresence members={membersForObject} />;\n};\n\nexport type Member = SpaceMember & {\n /**\n * Last time a member was seen on this object.\n */\n lastSeen: number;\n currentlyAttended: boolean;\n};\n\nexport type MemberPresenceProps = ThemedClassName<{\n size?: Size;\n members?: Member[];\n showCount?: boolean;\n onMemberClick?: (member: Member) => void;\n}>;\n\nexport const FullPresence = (props: MemberPresenceProps) => {\n const { size = 9, onMemberClick } = props;\n const members = useDefaultValue(props.members, () => []);\n\n if (members.length === 0) {\n return null;\n }\n\n return (\n <div className='dx-avatar-group' data-testid='spacePlugin.presence'>\n {members.slice(0, 3).map((member, i) => (\n <Tooltip.Trigger\n key={member.identity.identityKey.toHex()}\n side='bottom'\n content={getName(member.identity)}\n className='grid focus:outline-hidden'\n >\n <PresenceAvatar\n identity={member.identity}\n match={member.currentlyAttended} // TODO(Zan): Match always true now we're showing 'members viewing current object'.\n index={members.length - i}\n onClick={() => onMemberClick?.(member)}\n size={size}\n />\n </Tooltip.Trigger>\n ))}\n\n {members.length > 3 && (\n <Popover.Root>\n <Popover.Trigger className='grid focus:outline-hidden'>\n <Avatar.Root>\n {/* TODO(wittjosiah): Make text fit. */}\n <Avatar.Content\n status='inactive'\n style={{ zIndex: members.length - 4 }}\n fallback={`+${members.length - 3}`}\n size={size}\n />\n </Avatar.Root>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='bottom'>\n <Popover.Arrow />\n <Popover.Viewport classNames='max-h-56'>\n <List>\n {members.map((member) => (\n <ListItem.Root\n key={member.identity.identityKey.toHex()}\n classNames='flex gap-2 items-center cursor-pointer mb-2'\n onClick={() => onMemberClick?.(member)}\n data-testid='identity-list-item'\n >\n {/* TODO(Zan): Match always true now we're showing 'members viewing current object'. */}\n <PresenceAvatar\n identity={member.identity}\n size={size}\n showName\n match={member.currentlyAttended}\n />\n </ListItem.Root>\n ))}\n </List>\n </Popover.Viewport>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )}\n </div>\n );\n};\n\ntype PresenceAvatarProps = Pick<AvatarContentProps, 'size'> & {\n identity: Identity;\n showName?: boolean;\n match?: boolean;\n index?: number;\n onClick?: () => void;\n};\n\nconst PresenceAvatar = forwardRef<DxAvatar, PresenceAvatarProps>(\n ({ identity, showName, match, index, onClick, size }, forwardedRef) => {\n const status = match ? 'current' : 'active';\n const fallbackValue = keyToFallback(identity.identityKey);\n return (\n <Avatar.Root>\n <Avatar.Content\n status={status}\n hue={identity.profile?.data?.hue || fallbackValue.hue}\n data-testid='spacePlugin.presence.member'\n data-status={status}\n size={size}\n {...(index ? { style: { zIndex: index } } : {})}\n onClick={onClick}\n fallback={identity.profile?.data?.emoji || fallbackValue.emoji}\n ref={forwardedRef}\n />\n <Avatar.Label classNames={showName ? 'text-sm truncate px-2' : 'sr-only'}>{getName(identity)}</Avatar.Label>\n </Avatar.Root>\n );\n },\n);\n\nexport type SmallPresenceLiveProps = {\n id?: string;\n open?: boolean;\n viewers?: ComplexMap<PublicKey, ObjectViewerProps>;\n};\n\nexport const SmallPresenceLive = ({ id, open, viewers }: SmallPresenceLiveProps) => {\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const attended = hasAttention || isRelated;\n const containsAttended = isAncestor && !open;\n const getActiveViewers = (viewers: ComplexMap<PublicKey, ObjectViewerProps>): ObjectViewerProps[] => {\n const moment = Date.now();\n return Array.from<ObjectViewerProps>(viewers.values()).filter(\n (viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION,\n );\n };\n\n const [activeViewers, setActiveViewers] = useState(viewers ? getActiveViewers(viewers) : []);\n\n useEffect(() => {\n if (viewers) {\n setActiveViewers(getActiveViewers(viewers));\n const interval = setInterval(() => {\n setActiveViewers(getActiveViewers(viewers));\n }, REFRESH_INTERVAL);\n return () => clearInterval(interval);\n }\n }, [viewers]);\n\n return <SmallPresence count={activeViewers.length} attended={attended} containsAttended={containsAttended} />;\n};\n\nexport type SmallPresenceProps = {\n count?: number;\n} & Pick<AttentionGlyphProps, 'attended' | 'containsAttended'>;\n\nexport const SmallPresence = ({ count = 0, attended, containsAttended }: SmallPresenceProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <Tooltip.Trigger asChild content={t('presence label', { count })} side='bottom'>\n <AttentionGlyph\n attended={attended}\n containsAttended={containsAttended}\n presence={count > 1 ? 'many' : count === 1 ? 'one' : 'none'}\n classNames='self-center mx-1'\n />\n </Tooltip.Trigger>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "forwardRef", "useCallback", "useEffect", "useState", "useAtomCapability", "generateName", "Obj", "PublicKey", "useMembers", "useSpace", "useIdentity", "Avatar", "List", "ListItem", "Popover", "Tooltip", "useDefaultValue", "useTranslation", "AttentionGlyph", "useAttention", "ComplexMap", "keyToFallback", "REFRESH_INTERVAL", "ACTIVITY_DURATION", "noViewers", "ComplexMap", "PublicKey", "hash", "getName", "identity", "profile", "displayName", "generateName", "identityKey", "toHex", "SpacePresence", "object", "spaceId", "ephemeral", "useAtomCapability", "SpaceCapabilities", "EphemeralState", "useIdentity", "db", "Obj", "getDatabase", "space", "useSpace", "spaceMembers", "useMembers", "_moment", "setMoment", "useState", "Date", "now", "useEffect", "interval", "setInterval", "clearInterval", "memberOnline", "useCallback", "member", "presence", "memberIsNotSelf", "equals", "currentObjectViewers", "viewersByObject", "getDXN", "toString", "membersForObject", "filter", "has", "map", "objectView", "get", "lastSeen", "currentlyAttended", "toSorted", "a", "b", "FullPresence", "members", "props", "size", "onMemberClick", "useDefaultValue", "length", "div", "className", "data-testid", "slice", "i", "Tooltip", "Trigger", "key", "side", "content", "PresenceAvatar", "match", "index", "onClick", "Popover", "Root", "Avatar", "Content", "status", "style", "zIndex", "fallback", "Portal", "Arrow", "Viewport", "classNames", "List", "ListItem", "showName", "forwardRef", "forwardedRef", "fallbackValue", "keyToFallback", "hue", "data", "data-status", "emoji", "ref", "Label", "SmallPresenceLive", "id", "open", "viewers", "hasAttention", "isAncestor", "isRelated", "useAttention", "attended", "containsAttended", "getActiveViewers", "moment", "Array", "from", "values", "viewer", "activeViewers", "setActiveViewers", "SmallPresence", "count", "t", "useTranslation", "meta", "asChild", "AttentionGlyph"]
|
|
7
|
+
}
|