@dxos/plugin-space 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{CollectionArticle-WASDM637.mjs → CollectionArticle-WPLUW5HF.mjs} +5 -36
- package/dist/lib/browser/CollectionArticle-WPLUW5HF.mjs.map +7 -0
- package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs → CollectionSection-H2MBNI63.mjs} +2 -2
- package/dist/lib/browser/{CreateObjectDialog-MA6DPYMD.mjs → CreateObjectDialog-YUBUWSEL.mjs} +17 -21
- package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
- package/dist/lib/browser/{CreateSpaceDialog-WCEICWIE.mjs → CreateSpaceDialog-3M2LAWV6.mjs} +7 -7
- package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
- package/dist/lib/browser/{InlineSyncStatus-BT7BRBCO.mjs → InlineSyncStatus-K5MZ3YMZ.mjs} +9 -18
- package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
- package/dist/lib/browser/{JoinDialog-PMCAIRCU.mjs → JoinDialog-PBK2RE5F.mjs} +8 -10
- package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
- package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs → MembersContainer-OGYV2L4M.mjs} +4 -4
- package/dist/lib/browser/{MenuFooter-HYBTNOBT.mjs → MenuFooter-XCBDK7WP.mjs} +3 -4
- package/dist/lib/{node-esm/MenuFooter-2QB3453Y.mjs.map → browser/MenuFooter-XCBDK7WP.mjs.map} +1 -1
- package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs → ObjectCardStack-OMXF2DSG.mjs} +6 -6
- package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs → ObjectDetails-QFTQQN4W.mjs} +6 -6
- package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs → ObjectRenamePopover-JNPJIFIR.mjs} +3 -3
- package/dist/lib/browser/{ObjectRenamePopover-RQUOVPFH.mjs.map → ObjectRenamePopover-JNPJIFIR.mjs.map} +1 -1
- package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs → RecordArticle-BO2XHBFN.mjs} +2 -2
- package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs → SchemaContainer-QWCSIZBS.mjs} +2 -2
- package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
- package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs → SpacePluginSettings-QGZKNQLK.mjs} +4 -4
- package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
- package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs → SpaceRenamePopover-ZL6RRZ2B.mjs} +3 -3
- package/dist/lib/browser/{SpaceRenamePopover-SAKMPDLX.mjs.map → SpaceRenamePopover-ZL6RRZ2B.mjs.map} +1 -1
- package/dist/lib/browser/{SpaceSettingsContainer-UBMVKUPR.mjs → SpaceSettingsContainer-MIOOT63N.mjs} +5 -5
- package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
- package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs → SyncStatus-6N7JJ7XF.mjs} +6 -6
- package/dist/lib/browser/{ViewEditor-F74RR542.mjs → ViewEditor-3FX5HDRT.mjs} +4 -7
- package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs +1203 -0
- package/dist/lib/browser/app-graph-builder-JORZZE3P.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs → app-graph-serializer-UZWWGLGY.mjs} +5 -5
- package/dist/lib/browser/{chunk-RWOK4F4G.mjs → chunk-2WHUSAHE.mjs} +17 -14
- package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-USN5QKRV.mjs → chunk-6IT5IBB5.mjs} +54 -86
- package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
- package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
- package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PXVKN4LU.mjs → chunk-AUX3RRLY.mjs} +34 -9
- package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
- package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-XIIYC7P5.mjs → chunk-ICXESMDI.mjs} +6 -6
- package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
- package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
- package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-J5F4LUJD.mjs → chunk-SSTUPFZ2.mjs} +3 -3
- package/dist/lib/browser/{chunk-ABCDB5YC.mjs → chunk-UYOJYBGW.mjs} +7 -16
- package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +8 -17
- package/dist/lib/browser/cli/index.mjs.map +3 -3
- package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs → identity-created-ETXNQYR6.mjs} +4 -4
- package/dist/lib/browser/{identity-created-VKLIZOXJ.mjs.map → identity-created-ETXNQYR6.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +33 -53
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{operation-resolver-Y3HYRXX7.mjs → operation-resolver-D4LHB4D4.mjs} +64 -88
- package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
- package/dist/lib/browser/{react-root-UYBW5RE7.mjs → react-root-OD2HP63B.mjs} +6 -6
- package/dist/lib/browser/{react-surface-NJ23NZFF.mjs → react-surface-E4TAFED5.mjs} +57 -79
- package/dist/lib/browser/react-surface-E4TAFED5.mjs.map +7 -0
- package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
- package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
- package/dist/lib/browser/{settings-2ELVUFDR.mjs → settings-RUDP2Q56.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-Q6JASPT4.mjs → spaces-ready-B2GYL5IN.mjs} +6 -6
- package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
- package/dist/lib/browser/{state-CTX4WQOM.mjs → state-I6JDZCDE.mjs} +5 -5
- package/dist/lib/browser/{state-CTX4WQOM.mjs.map → state-I6JDZCDE.mjs.map} +2 -2
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{CollectionArticle-A6GGG73Z.mjs → CollectionArticle-JGVNBX66.mjs} +5 -36
- package/dist/lib/node-esm/CollectionArticle-JGVNBX66.mjs.map +7 -0
- package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs → CollectionSection-BI66Y34F.mjs} +2 -2
- package/dist/lib/node-esm/{CreateObjectDialog-4WEFNDDF.mjs → CreateObjectDialog-B6OLP5VQ.mjs} +17 -21
- package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
- package/dist/lib/node-esm/{CreateSpaceDialog-P7QCPB5J.mjs → CreateSpaceDialog-J47M5FPQ.mjs} +7 -7
- package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
- package/dist/lib/node-esm/{InlineSyncStatus-3PCXU7NX.mjs → InlineSyncStatus-BLD57LB5.mjs} +9 -18
- package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
- package/dist/lib/node-esm/{JoinDialog-XEOLJZVN.mjs → JoinDialog-XCOYKSHA.mjs} +8 -10
- package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
- package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs → MembersContainer-4PV3Z4BA.mjs} +4 -4
- package/dist/lib/node-esm/{MenuFooter-2QB3453Y.mjs → MenuFooter-PXG2GV6A.mjs} +3 -4
- package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs → ObjectCardStack-457SNNVF.mjs} +6 -6
- package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs → ObjectDetails-OLF7HSM4.mjs} +6 -6
- package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs → ObjectRenamePopover-BRPKVNVF.mjs} +3 -3
- package/dist/lib/node-esm/{ObjectRenamePopover-EHTP76G7.mjs.map → ObjectRenamePopover-BRPKVNVF.mjs.map} +1 -1
- package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs → RecordArticle-XUIT25PP.mjs} +2 -2
- package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs → SchemaContainer-5G4R3Z6O.mjs} +2 -2
- package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
- package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
- package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs → SpacePluginSettings-PENV4GHL.mjs} +4 -4
- package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
- package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
- package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs → SpaceRenamePopover-XEMTI4PU.mjs} +3 -3
- package/dist/lib/node-esm/{SpaceRenamePopover-WHM632OT.mjs.map → SpaceRenamePopover-XEMTI4PU.mjs.map} +1 -1
- package/dist/lib/node-esm/{SpaceSettingsContainer-Y62J2L65.mjs → SpaceSettingsContainer-WI4D7RWA.mjs} +5 -5
- package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
- package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs → SyncStatus-YEBGTNSD.mjs} +6 -6
- package/dist/lib/node-esm/{ViewEditor-B2BLYF5U.mjs → ViewEditor-CUQVNM2H.mjs} +4 -7
- package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs +1204 -0
- package/dist/lib/node-esm/app-graph-builder-WTM6SSX7.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs → app-graph-serializer-RT2RQTV2.mjs} +5 -5
- package/dist/lib/node-esm/{chunk-OSFH2XKO.mjs → chunk-2OLR2ZKH.mjs} +6 -6
- package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
- package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-UJQUBDQS.mjs → chunk-EDC2RUJU.mjs} +7 -16
- package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3DWZCVVQ.mjs → chunk-EVNSLSQS.mjs} +54 -86
- package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
- package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P2AVANDG.mjs → chunk-RYQQXNI7.mjs} +34 -9
- package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GWUPFA7J.mjs → chunk-S5BQUCL4.mjs} +17 -14
- package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S2IELCDF.mjs → chunk-XYLDAH5C.mjs} +3 -3
- package/dist/lib/node-esm/cli/index.mjs +8 -17
- package/dist/lib/node-esm/cli/index.mjs.map +3 -3
- package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs → identity-created-U5LGULVL.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-EGSTETJ5.mjs.map → identity-created-U5LGULVL.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +33 -53
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{operation-resolver-IRQ2NVUQ.mjs → operation-resolver-IL2AHNPN.mjs} +64 -88
- package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
- package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs → react-root-RILC5MBD.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-UDO3PGH6.mjs → react-surface-SWKRVK4S.mjs} +57 -79
- package/dist/lib/node-esm/react-surface-SWKRVK4S.mjs.map +7 -0
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs +32 -0
- package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DCTVM2BV.mjs → settings-3EKSEAAG.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-XLGRTJV2.mjs → spaces-ready-QK3EHBOS.mjs} +6 -6
- package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
- package/dist/lib/node-esm/{state-G74V3WZG.mjs → state-W36RRYUO.mjs} +5 -5
- package/dist/lib/node-esm/{state-G74V3WZG.mjs.map → state-W36RRYUO.mjs.map} +2 -2
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -2
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
- package/dist/types/src/cli/commands/database/add.d.ts +0 -1
- package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
- package/dist/types/src/cli/plugin.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
- package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
- package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +0 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -1
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +1 -2
- package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +2 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
- package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
- package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +1 -0
- package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -1
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
- package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +67 -13
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
- package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +67 -13
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +67 -13
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +1 -1
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +67 -13
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +0 -2
- package/dist/types/src/types/form.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +29 -46
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +4 -161
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -57
- package/src/SpacePlugin.ts +14 -22
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
- package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
- package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
- package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
- package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
- package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
- package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
- package/src/capabilities/app-graph-builder/extensions/types.ts +421 -0
- package/src/capabilities/identity-created/identity-created.ts +3 -3
- package/src/capabilities/operation-resolver/operation-resolver.ts +65 -73
- package/src/capabilities/react-surface/react-surface.tsx +33 -58
- package/src/capabilities/repair/repair.ts +3 -32
- package/src/capabilities/spaces-ready/spaces-ready.ts +2 -2
- package/src/capabilities/state/state.ts +4 -2
- package/src/cli/commands/database/add.ts +0 -1
- package/src/cli/commands/space/close/close.ts +1 -1
- package/src/cli/commands/space/create/create.ts +1 -1
- package/src/cli/commands/space/join/join.ts +1 -1
- package/src/cli/commands/space/open/open.ts +1 -1
- package/src/cli/plugin.ts +0 -1
- package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +2 -2
- package/src/components/AwaitingObject/index.ts +5 -0
- package/src/components/CreateDialog/CreateObjectPanel.tsx +5 -2
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +4 -4
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +4 -4
- package/src/components/ObjectForm/ObjectForm.tsx +6 -4
- package/src/constants.ts +5 -5
- package/src/containers/CollectionArticle/CollectionArticle.tsx +7 -54
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -10
- package/src/containers/CreateObjectDialog/index.ts +2 -3
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -3
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +7 -18
- package/src/containers/JoinDialog/JoinDialog.tsx +4 -4
- package/src/containers/JoinDialog/index.ts +2 -3
- package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +1 -1
- package/src/containers/SmallPresenceLive/index.ts +1 -1
- package/src/containers/SpacePresence/SpacePresence.tsx +4 -16
- package/src/containers/SpacePresence/index.ts +2 -3
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +1 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +2 -2
- package/src/containers/ViewEditor/ViewEditor.tsx +0 -1
- package/src/containers/index.ts +1 -1
- package/src/helpers/query.test.ts +1 -1
- package/src/hooks/useActiveSpace.ts +4 -4
- package/src/meta.ts +1 -1
- package/src/translations.ts +27 -1
- package/src/types/capabilities.ts +7 -7
- package/src/types/events.ts +5 -5
- package/src/types/form.ts +1 -8
- package/src/types/types.ts +36 -58
- package/src/util.ts +82 -0
- package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
- package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
- package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
- package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
- package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
- package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
- package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
- package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
- package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
- package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
- package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
- package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
- package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
- package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
- package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
- package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
- package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
- package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
- package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
- package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
- package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
- package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
- package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
- package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
- package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
- package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
- package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
- package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
- package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
- package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
- package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
- package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
- package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
- package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
- package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
- package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
- package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
- package/src/util.tsx +0 -956
- /package/dist/lib/browser/{CollectionSection-LK4O6QDD.mjs.map → CollectionSection-H2MBNI63.mjs.map} +0 -0
- /package/dist/lib/browser/{MembersContainer-MMFCXLVZ.mjs.map → MembersContainer-OGYV2L4M.mjs.map} +0 -0
- /package/dist/lib/browser/{ObjectCardStack-CHWNLUYQ.mjs.map → ObjectCardStack-OMXF2DSG.mjs.map} +0 -0
- /package/dist/lib/browser/{ObjectDetails-YUGVDNSA.mjs.map → ObjectDetails-QFTQQN4W.mjs.map} +0 -0
- /package/dist/lib/browser/{RecordArticle-ONWKYM3Z.mjs.map → RecordArticle-BO2XHBFN.mjs.map} +0 -0
- /package/dist/lib/browser/{SchemaContainer-62AJXKAF.mjs.map → SchemaContainer-QWCSIZBS.mjs.map} +0 -0
- /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → SmallPresenceLive-AHHLBAUP.mjs.map} +0 -0
- /package/dist/lib/browser/{SpacePluginSettings-BRJTADV5.mjs.map → SpacePluginSettings-QGZKNQLK.mjs.map} +0 -0
- /package/dist/lib/{node-esm/SmallPresenceLive-K4243KXR.mjs.map → browser/SpacePresence-JIWLBUWO.mjs.map} +0 -0
- /package/dist/lib/browser/{SyncStatus-5UQ7CIII.mjs.map → SyncStatus-6N7JJ7XF.mjs.map} +0 -0
- /package/dist/lib/browser/{app-graph-serializer-KTQOBYUF.mjs.map → app-graph-serializer-UZWWGLGY.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-J5F4LUJD.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-UYBW5RE7.mjs.map → react-root-OD2HP63B.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-2ELVUFDR.mjs.map → settings-RUDP2Q56.mjs.map} +0 -0
- /package/dist/lib/node-esm/{CollectionSection-WWKDOAAT.mjs.map → CollectionSection-BI66Y34F.mjs.map} +0 -0
- /package/dist/lib/node-esm/{MembersContainer-UQZLW3YA.mjs.map → MembersContainer-4PV3Z4BA.mjs.map} +0 -0
- /package/dist/lib/{browser/MenuFooter-HYBTNOBT.mjs.map → node-esm/MenuFooter-PXG2GV6A.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ObjectCardStack-UXEWG6RV.mjs.map → ObjectCardStack-457SNNVF.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ObjectDetails-26PVHUQL.mjs.map → ObjectDetails-OLF7HSM4.mjs.map} +0 -0
- /package/dist/lib/node-esm/{RecordArticle-APY2WKUW.mjs.map → RecordArticle-XUIT25PP.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SchemaContainer-XR2D6MYX.mjs.map → SchemaContainer-5G4R3Z6O.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SpacePluginSettings-VEB5IGG7.mjs.map → SpacePluginSettings-PENV4GHL.mjs.map} +0 -0
- /package/dist/lib/node-esm/{SyncStatus-XTJAVHPN.mjs.map → SyncStatus-YEBGTNSD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-GXQYSQAZ.mjs.map → app-graph-serializer-RT2RQTV2.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-S2IELCDF.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-UEN3LLJD.mjs.map → react-root-RILC5MBD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-DCTVM2BV.mjs.map → settings-3EKSEAAG.mjs.map} +0 -0
- /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
package/src/types/types.ts
CHANGED
|
@@ -17,11 +17,9 @@ import { type ComplexMap } from '@dxos/util';
|
|
|
17
17
|
|
|
18
18
|
import { meta } from '../meta';
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
export const SPACE_DIRECTORY_HANDLE = `${meta.id}.directory`;
|
|
21
21
|
|
|
22
|
-
export const
|
|
23
|
-
|
|
24
|
-
export const SPACE_TYPE = 'dxos.org/type/Space';
|
|
22
|
+
export const SPACE_TYPE = 'org.dxos.type.space';
|
|
25
23
|
|
|
26
24
|
export type SpacePluginOptions = {
|
|
27
25
|
/**
|
|
@@ -144,11 +142,11 @@ export const SpaceForm = Schema.Struct({
|
|
|
144
142
|
edgeReplication: Schema.optional(Schema.Boolean.annotations({ title: 'Enable EDGE Replication' })),
|
|
145
143
|
});
|
|
146
144
|
|
|
147
|
-
const COLLECTION_OPERATION = 'dxos.
|
|
145
|
+
const COLLECTION_OPERATION = 'org.dxos.plugin.collection.operation';
|
|
148
146
|
|
|
149
147
|
export namespace CollectionOperation {
|
|
150
148
|
export const Create = Operation.make({
|
|
151
|
-
meta: { key: `${COLLECTION_OPERATION}
|
|
149
|
+
meta: { key: `${COLLECTION_OPERATION}.create`, name: 'Create Collection' },
|
|
152
150
|
services: [Capability.Service],
|
|
153
151
|
schema: {
|
|
154
152
|
input: Schema.Struct({
|
|
@@ -161,7 +159,7 @@ export namespace CollectionOperation {
|
|
|
161
159
|
});
|
|
162
160
|
}
|
|
163
161
|
|
|
164
|
-
const SPACE_OPERATION = `${meta.id}
|
|
162
|
+
const SPACE_OPERATION = `${meta.id}.operation`;
|
|
165
163
|
|
|
166
164
|
/**
|
|
167
165
|
* Operations for the Space plugin.
|
|
@@ -169,7 +167,7 @@ const SPACE_OPERATION = `${meta.id}/operation`;
|
|
|
169
167
|
export namespace SpaceOperation {
|
|
170
168
|
export const Create = Operation.make({
|
|
171
169
|
meta: {
|
|
172
|
-
key: `${SPACE_OPERATION}
|
|
170
|
+
key: `${SPACE_OPERATION}.create`,
|
|
173
171
|
name: 'Create Space',
|
|
174
172
|
description: 'Create a new space.',
|
|
175
173
|
},
|
|
@@ -186,7 +184,7 @@ export namespace SpaceOperation {
|
|
|
186
184
|
|
|
187
185
|
export const Join = Operation.make({
|
|
188
186
|
meta: {
|
|
189
|
-
key: `${SPACE_OPERATION}
|
|
187
|
+
key: `${SPACE_OPERATION}.join`,
|
|
190
188
|
name: 'Join Space',
|
|
191
189
|
description: 'Join a space via invitation.',
|
|
192
190
|
},
|
|
@@ -202,7 +200,7 @@ export namespace SpaceOperation {
|
|
|
202
200
|
|
|
203
201
|
export const Open = Operation.make({
|
|
204
202
|
meta: {
|
|
205
|
-
key: `${SPACE_OPERATION}
|
|
203
|
+
key: `${SPACE_OPERATION}.open`,
|
|
206
204
|
name: 'Open Space',
|
|
207
205
|
description: 'Open a space.',
|
|
208
206
|
},
|
|
@@ -217,7 +215,7 @@ export namespace SpaceOperation {
|
|
|
217
215
|
|
|
218
216
|
export const Close = Operation.make({
|
|
219
217
|
meta: {
|
|
220
|
-
key: `${SPACE_OPERATION}
|
|
218
|
+
key: `${SPACE_OPERATION}.close`,
|
|
221
219
|
name: 'Close Space',
|
|
222
220
|
description: 'Close a space.',
|
|
223
221
|
},
|
|
@@ -232,7 +230,7 @@ export namespace SpaceOperation {
|
|
|
232
230
|
|
|
233
231
|
export const Share = Operation.make({
|
|
234
232
|
meta: {
|
|
235
|
-
key: `${SPACE_OPERATION}
|
|
233
|
+
key: `${SPACE_OPERATION}.share`,
|
|
236
234
|
name: 'Share Space',
|
|
237
235
|
description: 'Share a space.',
|
|
238
236
|
},
|
|
@@ -252,7 +250,7 @@ export namespace SpaceOperation {
|
|
|
252
250
|
// TODO(wittjosiah): This appears to be unused.
|
|
253
251
|
export const Lock = Operation.make({
|
|
254
252
|
meta: {
|
|
255
|
-
key: `${SPACE_OPERATION}
|
|
253
|
+
key: `${SPACE_OPERATION}.lock`,
|
|
256
254
|
name: 'Lock Space',
|
|
257
255
|
description: 'Lock a space to prevent modifications.',
|
|
258
256
|
},
|
|
@@ -268,7 +266,7 @@ export namespace SpaceOperation {
|
|
|
268
266
|
// TODO(wittjosiah): This appears to be unused.
|
|
269
267
|
export const Unlock = Operation.make({
|
|
270
268
|
meta: {
|
|
271
|
-
key: `${SPACE_OPERATION}
|
|
269
|
+
key: `${SPACE_OPERATION}.unlock`,
|
|
272
270
|
name: 'Unlock Space',
|
|
273
271
|
description: 'Unlock a space to allow modifications.',
|
|
274
272
|
},
|
|
@@ -283,7 +281,7 @@ export namespace SpaceOperation {
|
|
|
283
281
|
|
|
284
282
|
export const OpenSettings = Operation.make({
|
|
285
283
|
meta: {
|
|
286
|
-
key: `${SPACE_OPERATION}
|
|
284
|
+
key: `${SPACE_OPERATION}.open-settings`,
|
|
287
285
|
name: 'Open Space Settings',
|
|
288
286
|
description: 'Open space settings.',
|
|
289
287
|
},
|
|
@@ -298,7 +296,7 @@ export namespace SpaceOperation {
|
|
|
298
296
|
|
|
299
297
|
export const WaitForObject = Operation.make({
|
|
300
298
|
meta: {
|
|
301
|
-
key: `${SPACE_OPERATION}
|
|
299
|
+
key: `${SPACE_OPERATION}.wait-for-object`,
|
|
302
300
|
name: 'Wait For Object',
|
|
303
301
|
description: 'Wait for an object to be available.',
|
|
304
302
|
},
|
|
@@ -313,7 +311,7 @@ export namespace SpaceOperation {
|
|
|
313
311
|
|
|
314
312
|
export const AddObject = Operation.make({
|
|
315
313
|
meta: {
|
|
316
|
-
key: `${SPACE_OPERATION}
|
|
314
|
+
key: `${SPACE_OPERATION}.add-object`,
|
|
317
315
|
name: 'Add Object',
|
|
318
316
|
description: 'Add an object to a space.',
|
|
319
317
|
},
|
|
@@ -325,6 +323,9 @@ export namespace SpaceOperation {
|
|
|
325
323
|
description: 'The database or collection to add to.',
|
|
326
324
|
}),
|
|
327
325
|
hidden: Schema.optional(Schema.Boolean),
|
|
326
|
+
targetNodeId: Schema.optional(
|
|
327
|
+
Schema.String.annotations({ description: 'Qualified graph node ID of the target collection.' }),
|
|
328
|
+
),
|
|
328
329
|
}),
|
|
329
330
|
output: Schema.Struct({
|
|
330
331
|
id: Schema.String,
|
|
@@ -350,7 +351,7 @@ export namespace SpaceOperation {
|
|
|
350
351
|
|
|
351
352
|
export const RemoveObjects = Operation.make({
|
|
352
353
|
meta: {
|
|
353
|
-
key: `${SPACE_OPERATION}
|
|
354
|
+
key: `${SPACE_OPERATION}.remove-objects`,
|
|
354
355
|
name: 'Remove Objects',
|
|
355
356
|
description: 'Remove objects from a space.',
|
|
356
357
|
},
|
|
@@ -375,7 +376,7 @@ export namespace SpaceOperation {
|
|
|
375
376
|
|
|
376
377
|
export const DeleteField = Operation.make({
|
|
377
378
|
meta: {
|
|
378
|
-
key: `${SPACE_OPERATION}
|
|
379
|
+
key: `${SPACE_OPERATION}.delete-field`,
|
|
379
380
|
name: 'Delete Field',
|
|
380
381
|
description: 'Delete a field from a view.',
|
|
381
382
|
},
|
|
@@ -391,7 +392,7 @@ export namespace SpaceOperation {
|
|
|
391
392
|
|
|
392
393
|
export const OpenCreateObject = Operation.make({
|
|
393
394
|
meta: {
|
|
394
|
-
key: `${SPACE_OPERATION}
|
|
395
|
+
key: `${SPACE_OPERATION}.open-create-object`,
|
|
395
396
|
name: 'Open Create Object Dialog',
|
|
396
397
|
description: 'Open the create object dialog.',
|
|
397
398
|
},
|
|
@@ -405,6 +406,9 @@ export namespace SpaceOperation {
|
|
|
405
406
|
typename: Schema.optional(Schema.String),
|
|
406
407
|
initialFormValues: Schema.optional(Schema.Any),
|
|
407
408
|
navigable: Schema.optional(Schema.Boolean),
|
|
409
|
+
targetNodeId: Schema.optional(
|
|
410
|
+
Schema.String.annotations({ description: 'Qualified graph node ID of the target collection.' }),
|
|
411
|
+
),
|
|
408
412
|
// TODO(wittjosiah): This is a function, is there a better way to handle this?
|
|
409
413
|
onCreateObject: Schema.optional(Schema.Any),
|
|
410
414
|
}),
|
|
@@ -414,7 +418,7 @@ export namespace SpaceOperation {
|
|
|
414
418
|
|
|
415
419
|
export const OpenCreateSpace = Operation.make({
|
|
416
420
|
meta: {
|
|
417
|
-
key: `${SPACE_OPERATION}
|
|
421
|
+
key: `${SPACE_OPERATION}.open-create-space`,
|
|
418
422
|
name: 'Open Create Space Dialog',
|
|
419
423
|
description: 'Open the create space dialog.',
|
|
420
424
|
},
|
|
@@ -427,7 +431,7 @@ export namespace SpaceOperation {
|
|
|
427
431
|
|
|
428
432
|
export const Migrate = Operation.make({
|
|
429
433
|
meta: {
|
|
430
|
-
key: `${SPACE_OPERATION}
|
|
434
|
+
key: `${SPACE_OPERATION}.migrate`,
|
|
431
435
|
name: 'Migrate Space',
|
|
432
436
|
description: 'Migrate a space to a new version.',
|
|
433
437
|
},
|
|
@@ -443,7 +447,7 @@ export namespace SpaceOperation {
|
|
|
443
447
|
|
|
444
448
|
export const Snapshot = Operation.make({
|
|
445
449
|
meta: {
|
|
446
|
-
key: `${SPACE_OPERATION}
|
|
450
|
+
key: `${SPACE_OPERATION}.snapshot`,
|
|
447
451
|
name: 'Create Snapshot',
|
|
448
452
|
description: 'Create a snapshot of the space.',
|
|
449
453
|
},
|
|
@@ -461,7 +465,7 @@ export namespace SpaceOperation {
|
|
|
461
465
|
|
|
462
466
|
export const Rename = Operation.make({
|
|
463
467
|
meta: {
|
|
464
|
-
key: `${SPACE_OPERATION}
|
|
468
|
+
key: `${SPACE_OPERATION}.rename`,
|
|
465
469
|
name: 'Rename Space',
|
|
466
470
|
description: 'Rename a space.',
|
|
467
471
|
},
|
|
@@ -477,7 +481,7 @@ export namespace SpaceOperation {
|
|
|
477
481
|
|
|
478
482
|
export const RenameObject = Operation.make({
|
|
479
483
|
meta: {
|
|
480
|
-
key: `${SPACE_OPERATION}
|
|
484
|
+
key: `${SPACE_OPERATION}.rename-object`,
|
|
481
485
|
name: 'Rename Object',
|
|
482
486
|
description: 'Rename an object.',
|
|
483
487
|
},
|
|
@@ -493,7 +497,7 @@ export namespace SpaceOperation {
|
|
|
493
497
|
|
|
494
498
|
export const OpenMembers = Operation.make({
|
|
495
499
|
meta: {
|
|
496
|
-
key: `${SPACE_OPERATION}
|
|
500
|
+
key: `${SPACE_OPERATION}.open-members`,
|
|
497
501
|
name: 'Open Members',
|
|
498
502
|
description: 'Open the members panel for a space.',
|
|
499
503
|
},
|
|
@@ -508,7 +512,7 @@ export namespace SpaceOperation {
|
|
|
508
512
|
|
|
509
513
|
export const GetShareLink = Operation.make({
|
|
510
514
|
meta: {
|
|
511
|
-
key: `${SPACE_OPERATION}
|
|
515
|
+
key: `${SPACE_OPERATION}.get-share-link`,
|
|
512
516
|
name: 'Get Share Link',
|
|
513
517
|
description: 'Get a shareable link for a space.',
|
|
514
518
|
},
|
|
@@ -525,37 +529,11 @@ export namespace SpaceOperation {
|
|
|
525
529
|
|
|
526
530
|
export const StoredSchemaForm = Schema.Struct({
|
|
527
531
|
name: Schema.optional(Schema.String),
|
|
528
|
-
typename: Schema.String.pipe(
|
|
529
|
-
Schema.annotations({ title: 'Select type (leave blank to create a new type)' }),
|
|
530
|
-
TypeInputOptionsAnnotation.set({
|
|
531
|
-
location: ['runtime'],
|
|
532
|
-
kind: ['user'],
|
|
533
|
-
registered: ['unregistered'],
|
|
534
|
-
}),
|
|
535
|
-
Schema.optional,
|
|
536
|
-
),
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
export const UseStaticSchema = Operation.make({
|
|
540
|
-
meta: {
|
|
541
|
-
key: `${SPACE_OPERATION}/use-static-schema`,
|
|
542
|
-
name: 'Use Static Schema',
|
|
543
|
-
description: 'Use a static schema in the space.',
|
|
544
|
-
},
|
|
545
|
-
services: [Capability.Service, Plugin.Service],
|
|
546
|
-
schema: {
|
|
547
|
-
input: Schema.Struct({
|
|
548
|
-
db: Database.Database,
|
|
549
|
-
typename: Schema.String,
|
|
550
|
-
show: Schema.optional(Schema.Boolean),
|
|
551
|
-
}),
|
|
552
|
-
output: Schema.Struct({}),
|
|
553
|
-
},
|
|
554
532
|
});
|
|
555
533
|
|
|
556
534
|
export const AddSchema = Operation.make({
|
|
557
535
|
meta: {
|
|
558
|
-
key: `${SPACE_OPERATION}
|
|
536
|
+
key: `${SPACE_OPERATION}.add-schema`,
|
|
559
537
|
name: 'Add Schema',
|
|
560
538
|
description: 'Add a schema to the space.',
|
|
561
539
|
},
|
|
@@ -580,7 +558,7 @@ export namespace SpaceOperation {
|
|
|
580
558
|
|
|
581
559
|
export const AddRelation = Operation.make({
|
|
582
560
|
meta: {
|
|
583
|
-
key: `${SPACE_OPERATION}
|
|
561
|
+
key: `${SPACE_OPERATION}.add-relation`,
|
|
584
562
|
name: 'Add Relation',
|
|
585
563
|
description: 'Add a relation between objects.',
|
|
586
564
|
},
|
|
@@ -604,7 +582,7 @@ export namespace SpaceOperation {
|
|
|
604
582
|
// TODO(wittjosiah): This appears to be unused.
|
|
605
583
|
export const DuplicateObject = Operation.make({
|
|
606
584
|
meta: {
|
|
607
|
-
key: `${SPACE_OPERATION}
|
|
585
|
+
key: `${SPACE_OPERATION}.duplicate-object`,
|
|
608
586
|
name: 'Duplicate Object',
|
|
609
587
|
description: 'Duplicate an object.',
|
|
610
588
|
},
|
|
@@ -623,7 +601,7 @@ export namespace SpaceOperation {
|
|
|
623
601
|
*/
|
|
624
602
|
export const RestoreField = Operation.make({
|
|
625
603
|
meta: {
|
|
626
|
-
key: `${SPACE_OPERATION}
|
|
604
|
+
key: `${SPACE_OPERATION}.restore-field`,
|
|
627
605
|
name: 'Restore Field',
|
|
628
606
|
description: 'Restore a deleted field to a view.',
|
|
629
607
|
},
|
|
@@ -645,7 +623,7 @@ export namespace SpaceOperation {
|
|
|
645
623
|
*/
|
|
646
624
|
export const RestoreObjects = Operation.make({
|
|
647
625
|
meta: {
|
|
648
|
-
key: `${SPACE_OPERATION}
|
|
626
|
+
key: `${SPACE_OPERATION}.restore-objects`,
|
|
649
627
|
name: 'Restore Objects',
|
|
650
628
|
description: 'Restore deleted objects to a space.',
|
|
651
629
|
},
|
package/src/util.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Space, SpaceState } from '@dxos/client/echo';
|
|
6
|
+
import { type Database, Obj, Type } from '@dxos/echo';
|
|
7
|
+
import { invariant } from '@dxos/invariant';
|
|
8
|
+
import { Expando } from '@dxos/schema';
|
|
9
|
+
import { type Label } from '@dxos/ui-types';
|
|
10
|
+
|
|
11
|
+
import { meta } from './meta';
|
|
12
|
+
|
|
13
|
+
//
|
|
14
|
+
// Constants
|
|
15
|
+
//
|
|
16
|
+
|
|
17
|
+
const META_NS: { ns: string } = { ns: meta.id };
|
|
18
|
+
const PERSONAL_SPACE_LABEL: Label = ['personal space label', META_NS];
|
|
19
|
+
const UNNAMED_SPACE_LABEL: Label = ['unnamed space label', META_NS];
|
|
20
|
+
|
|
21
|
+
export const SPACES = `${meta.id}-spaces`;
|
|
22
|
+
export const COMPOSER_SPACE_LOCK = `${meta.id}.lock`;
|
|
23
|
+
// TODO(wittjosiah): Remove.
|
|
24
|
+
export const SHARED = 'shared-spaces';
|
|
25
|
+
|
|
26
|
+
//
|
|
27
|
+
// Helpers
|
|
28
|
+
//
|
|
29
|
+
|
|
30
|
+
/** Returns the display label for a space (name, namesCache entry, or fallback). */
|
|
31
|
+
export const getSpaceDisplayName = (
|
|
32
|
+
space: Space,
|
|
33
|
+
{ personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},
|
|
34
|
+
): Label => {
|
|
35
|
+
return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0
|
|
36
|
+
? space.properties.name!
|
|
37
|
+
: namesCache[space.id]
|
|
38
|
+
? namesCache[space.id]
|
|
39
|
+
: personal
|
|
40
|
+
? PERSONAL_SPACE_LABEL
|
|
41
|
+
: UNNAMED_SPACE_LABEL;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//
|
|
45
|
+
// Deprecated
|
|
46
|
+
//
|
|
47
|
+
|
|
48
|
+
/** @deprecated This is a temporary solution. */
|
|
49
|
+
export const getNestedObjects = async (
|
|
50
|
+
object: Obj.Unknown,
|
|
51
|
+
resolve: (typename: string) => Record<string, any>,
|
|
52
|
+
): Promise<Obj.Unknown[]> => {
|
|
53
|
+
const type = Obj.getTypename(object);
|
|
54
|
+
if (!type) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const metadata = resolve(type);
|
|
59
|
+
const loadReferences = metadata?.loadReferences;
|
|
60
|
+
if (typeof loadReferences !== 'function') {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const objects: Obj.Unknown[] = await loadReferences(object);
|
|
65
|
+
const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
|
|
66
|
+
return [...objects, ...nested.flat()];
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/** @deprecated Workaround for ECHO not supporting clone. */
|
|
70
|
+
export const cloneObject = async (
|
|
71
|
+
object: Obj.Unknown,
|
|
72
|
+
resolve: (typename: string) => Record<string, any>,
|
|
73
|
+
newDb: Database.Database,
|
|
74
|
+
): Promise<Obj.Unknown> => {
|
|
75
|
+
const schema = Obj.getSchema(object);
|
|
76
|
+
const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.Expando.typename;
|
|
77
|
+
const metadata = resolve(typename);
|
|
78
|
+
const serializer = metadata.serializer;
|
|
79
|
+
invariant(serializer, `No serializer for type: ${typename}`);
|
|
80
|
+
const content = await serializer.serialize({ object });
|
|
81
|
+
return serializer.deserialize({ content, db: newDb, newId: true });
|
|
82
|
+
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/CollectionArticle/CollectionArticle.tsx", "../../../src/containers/CollectionArticle/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Feed, Filter, Obj } from '@dxos/echo';\nimport { type Collection } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Panel, ScrollArea, Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui';\nimport { Mosaic, type MosaicStackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { ManagedCollection } from '@dxos/schema';\nimport { getStyles } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\n/**\n * Hook to resolve metadata (icon, iconHue, etc.) for objects based on their typename.\n */\nconst useMetadataResolver = () => {\n const allMetadata = useCapabilities(AppCapabilities.Metadata);\n return useCallback((typename: string) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [allMetadata]);\n};\n\n/**\n * Article view for collections.\n */\nexport const CollectionArticle = ({\n subject,\n}: SurfaceComponentProps<Collection.Collection | ManagedCollection.ManagedCollection>) => {\n const { t } = useTranslation(meta.id);\n const resolveMetadata = useMetadataResolver();\n const { items, handleSearch } = useCollectionItems(subject, resolveMetadata);\n\n return (\n <SearchList.Root onSearch={handleSearch}>\n <Panel.Root className='dx-article'>\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <SearchList.Input placeholder={t('search placeholder')} />\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content asChild>\n <SearchList.Content>\n <Mosaic.Container asChild>\n <ScrollArea.Root orientation='vertical'>\n <ScrollArea.Viewport classNames='p-2'>\n <Mosaic.Stack items={items} getId={(item) => item.id} Tile={ObjectTile} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Mosaic.Container>\n </SearchList.Content>\n </Panel.Content>\n </Panel.Root>\n </SearchList.Root>\n );\n};\n\ntype ObjectItem = {\n id: string;\n object: Obj.Unknown;\n icon: string;\n iconHue?: string;\n};\n\nconst ObjectTile: MosaicStackTileComponent<ObjectItem> = (props) => {\n const item = props.data;\n const { t } = useTranslation(meta.id);\n const { invokeSync } = useOperationInvoker();\n\n const typename = Obj.getTypename(item.object) ?? '';\n const label =\n Obj.getLabel(item.object) ??\n toLocalizedString(['object name placeholder', { ns: typename, defaultValue: item.id }], t);\n const styles = item.iconHue ? getStyles(item.iconHue) : undefined;\n\n const handleClick = () => {\n invokeSync(LayoutOperation.Open, { subject: [item.id] });\n };\n\n return (\n <Card.Root fullWidth>\n <Card.Toolbar>\n <Card.ToolbarIconButton\n variant='ghost'\n label={label}\n icon={item.icon}\n iconOnly\n iconClassNames={styles?.surfaceText}\n />\n <Card.Title onClick={handleClick}>{label}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n </Card.Root>\n );\n};\n\n/**\n * Hook to get items from a regular collection.\n */\nconst useRegularCollectionItems = (collection: Collection.Collection): Obj.Unknown[] => {\n return useMemo(\n () => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),\n [collection.objects],\n );\n};\n\n/**\n * Hook to get items from a managed collection by querying the space.\n */\nconst useManagedCollectionItems = (collection: ManagedCollection.ManagedCollection): Obj.Unknown[] => {\n const client = useClient();\n const space = getSpace(collection);\n const [typename, feedKind] = collection.key.split('~');\n\n const schema = useMemo(\n () => client.graph.schemaRegistry.query({ typename, location: ['runtime'] }).runSync()[0],\n [client, typename],\n );\n\n const filter = useMemo(\n () =>\n typename === Feed.Feed.typename\n ? Filter.type(Feed.Feed, { kind: feedKind })\n : schema\n ? Filter.type(schema)\n : Filter.nothing(),\n [typename, schema, feedKind],\n );\n\n return useQuery(space?.db, filter);\n};\n\ntype MetadataResolver = (typename: string) => { icon?: string; iconHue?: string };\n\n/**\n * Combined hook to get collection items with search/filter support.\n */\nconst useCollectionItems = (\n collection: Collection.Collection | ManagedCollection.ManagedCollection,\n resolveMetadata: MetadataResolver,\n) => {\n const isManaged = Obj.instanceOf(ManagedCollection.ManagedCollection, collection);\n\n // Call both hooks unconditionally to satisfy React's rules of hooks.\n const regularObjects = useRegularCollectionItems(collection as Collection.Collection);\n const managedObjects = useManagedCollectionItems(collection as ManagedCollection.ManagedCollection);\n\n const objects = isManaged ? managedObjects : regularObjects;\n\n // Convert objects to items with resolved metadata.\n const items = useMemo(\n () =>\n objects.map((obj) => {\n const typename = Obj.getTypename(obj);\n const metadata = typename ? resolveMetadata(typename) : {};\n return {\n id: Obj.getDXN(obj).toString(),\n object: obj,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n } satisfies ObjectItem;\n }),\n [objects, resolveMetadata],\n );\n\n // Use searchlist results for filtering.\n const { results, handleSearch } = useSearchListResults({\n items,\n extract: (item) => Obj.getLabel(item.object) ?? item.id,\n });\n\n return { items: results, handleSearch };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { CollectionArticle } from './CollectionArticle';\n\nexport default CollectionArticle;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useMemo", "useCapabilities", "useOperationInvoker", "AppCapabilities", "LayoutOperation", "Feed", "Filter", "Obj", "useClient", "getSpace", "useQuery", "Panel", "ScrollArea", "Toolbar", "toLocalizedString", "useTranslation", "Card", "Mosaic", "SearchList", "useSearchListResults", "ManagedCollection", "getStyles", "useMetadataResolver", "allMetadata", "useCapabilities", "AppCapabilities", "Metadata", "useCallback", "typename", "find", "m", "id", "metadata", "CollectionArticle", "subject", "t", "useTranslation", "meta", "resolveMetadata", "items", "handleSearch", "useCollectionItems", "SearchList", "Root", "onSearch", "Panel", "className", "Toolbar", "asChild", "Input", "placeholder", "Content", "Mosaic", "Container", "ScrollArea", "orientation", "Viewport", "classNames", "Stack", "getId", "item", "Tile", "ObjectTile", "props", "data", "invokeSync", "useOperationInvoker", "Obj", "getTypename", "object", "label", "getLabel", "toLocalizedString", "ns", "defaultValue", "styles", "iconHue", "getStyles", "undefined", "handleClick", "LayoutOperation", "Open", "Card", "fullWidth", "ToolbarIconButton", "variant", "icon", "iconOnly", "iconClassNames", "surfaceText", "Title", "onClick", "Menu", "useRegularCollectionItems", "collection", "useMemo", "objects", "map", "ref", "target", "filter", "obj", "isObject", "useManagedCollectionItems", "client", "useClient", "space", "getSpace", "feedKind", "key", "split", "schema", "graph", "schemaRegistry", "query", "location", "runSync", "Feed", "Filter", "type", "kind", "nothing", "useQuery", "db", "isManaged", "instanceOf", "ManagedCollection", "regularObjects", "managedObjects", "getDXN", "toString", "results", "useSearchListResults", "extract", "CollectionArticle"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/CreateObjectDialog/CreateObjectDialog.tsx", "../../../src/containers/CreateObjectDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { Capability } from '@dxos/app-framework';\nimport { useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { Database, Obj, Type } from '@dxos/echo';\nimport { type Collection } from '@dxos/echo';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { invariant } from '@dxos/invariant';\nimport { Operation } from '@dxos/operation';\nimport { useClient } from '@dxos/react-client';\nimport { useSpaces } from '@dxos/react-client/echo';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ViewAnnotation } from '@dxos/schema';\n\nimport {\n type CreateObjectOption,\n CreateObjectPanel,\n type CreateObjectPanelProps,\n type Metadata,\n} from '../../components';\nimport { meta } from '../../meta';\nimport { SpaceOperation } from '../../types';\n\nexport const CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;\n\nexport type CreateObjectDialogProps = Pick<CreateObjectPanelProps, 'target' | 'typename' | 'initialFormValues'> & {\n views?: boolean;\n onCreateObject?: (object: Obj.Unknown) => void;\n shouldNavigate?: (object: Obj.Unknown) => boolean;\n};\n\nexport const CreateObjectDialog = ({\n target: initialTarget,\n typename: initialTypename,\n views,\n initialFormValues,\n onCreateObject,\n shouldNavigate: _shouldNavigate,\n}: CreateObjectDialogProps) => {\n const manager = usePluginManager();\n const { t } = useTranslation(meta.id);\n const operationInvoker = useOperationInvoker();\n const [target, setTarget] = useState<Database.Database | Collection.Collection | undefined>(initialTarget);\n const [typename, setTypename] = useState<string | undefined>(initialTypename);\n const client = useClient();\n const spaces = useSpaces();\n const closeRef = useRef<HTMLButtonElement | null>(null);\n\n const resolve = useCallback<NonNullable<CreateObjectPanelProps['resolve']>>(\n (id) => {\n const metadata = manager.capabilities\n .getAll(AppCapabilities.Metadata)\n .find(({ id: entryId }) => entryId === id)?.metadata;\n return metadata?.createObject ? (metadata as Metadata) : undefined;\n },\n [manager],\n );\n\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n // TODO(wittjosiah): Support database schemas.\n const schemas = db?.schemaRegistry.query({ location: ['runtime'], includeSystem: false }).runSync();\n\n const viewTypenames = useMemo(() => {\n const set = new Set<string>();\n for (const schema of schemas ?? []) {\n if (ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false))) {\n set.add(Type.getTypename(schema));\n }\n }\n return set;\n }, [schemas]);\n\n const options = useMemo<CreateObjectOption[]>(\n () =>\n manager.capabilities\n .getAll(AppCapabilities.Metadata)\n .filter((entry) => entry.metadata?.createObject)\n .filter((entry) => (views === true ? viewTypenames.has(entry.id) : !viewTypenames.has(entry.id)))\n .map((entry) => ({\n id: entry.id,\n label: t('typename label', { ns: entry.id, defaultValue: entry.id }),\n icon: entry.metadata?.icon,\n })),\n [manager, views, viewTypenames, t],\n );\n\n const handleCreateObject = useCallback<NonNullable<CreateObjectPanelProps['onCreateObject']>>(\n ({ metadata, data = {} }) =>\n Effect.gen(function* () {\n if (!target) {\n // TODO(wittjosiah): UI feedback.\n return;\n }\n\n // NOTE: Must close before navigating or attention won't follow object.\n closeRef.current?.click();\n\n const db = Database.isDatabase(target) ? target : target && Obj.getDatabase(target);\n invariant(db, 'Missing database');\n const object = yield* metadata.createObject(data, { db });\n if (Obj.isObject(object) && !Obj.instanceOf(Type.PersistentType, object)) {\n // TODO(wittjosiah): Selection in navtree isn't working as expected when hidden typenames evals to true.\n const hidden = !metadata.addToCollectionOnCreate;\n yield* operationInvoker.invoke(SpaceOperation.AddObject, {\n target,\n object,\n hidden,\n });\n const shouldNavigate = _shouldNavigate ?? (() => true);\n if (shouldNavigate(object)) {\n yield* operationInvoker.invoke(LayoutOperation.Open, {\n subject: [Obj.getDXN(object).toString()],\n });\n }\n\n onCreateObject?.(object);\n }\n }).pipe(\n Effect.provideService(Capability.Service, manager.capabilities),\n Effect.provideService(Operation.Service, operationInvoker),\n runAndForwardErrors,\n ),\n [target, _shouldNavigate, onCreateObject, manager.capabilities, operationInvoker],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>\n {t('create object dialog title', {\n object: t('typename label', {\n ns: typename,\n defaultValue: views ? 'View' : 'Object',\n }),\n })}\n </Dialog.Title>\n <Dialog.Close asChild>\n <Dialog.CloseIconButton ref={closeRef} />\n </Dialog.Close>\n </Dialog.Header>\n <Dialog.Body>\n <CreateObjectPanel\n options={options}\n spaces={spaces}\n target={target}\n typename={typename}\n initialFormValues={initialFormValues}\n defaultSpaceId={client.spaces.default.id}\n resolve={resolve}\n onTargetChange={setTarget}\n onTypenameChange={setTypename}\n onCreateObject={handleCreateObject}\n />\n </Dialog.Body>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CreateObjectDialog } from './CreateObjectDialog';\n\nexport default CreateObjectDialog;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Effect", "Option", "React", "useCallback", "useMemo", "useRef", "useState", "Capability", "useOperationInvoker", "usePluginManager", "AppCapabilities", "LayoutOperation", "Database", "Obj", "Type", "runAndForwardErrors", "invariant", "Operation", "useClient", "useSpaces", "Dialog", "useTranslation", "ViewAnnotation", "CREATE_OBJECT_DIALOG", "meta", "id", "CreateObjectDialog", "target", "initialTarget", "typename", "initialTypename", "views", "initialFormValues", "onCreateObject", "shouldNavigate", "_shouldNavigate", "manager", "usePluginManager", "t", "useTranslation", "operationInvoker", "useOperationInvoker", "setTarget", "useState", "setTypename", "client", "useClient", "spaces", "useSpaces", "closeRef", "useRef", "resolve", "useCallback", "metadata", "capabilities", "getAll", "AppCapabilities", "Metadata", "find", "entryId", "createObject", "undefined", "db", "Database", "isDatabase", "Obj", "getDatabase", "schemas", "schemaRegistry", "query", "location", "includeSystem", "runSync", "viewTypenames", "useMemo", "set", "Set", "schema", "ViewAnnotation", "get", "pipe", "getOrElse", "add", "Type", "getTypename", "options", "filter", "entry", "has", "map", "label", "ns", "defaultValue", "icon", "handleCreateObject", "data", "gen", "current", "click", "invariant", "object", "isObject", "instanceOf", "PersistentType", "hidden", "addToCollectionOnCreate", "invoke", "SpaceOperation", "AddObject", "LayoutOperation", "Open", "subject", "getDXN", "toString", "provideService", "Capability", "Service", "Operation", "runAndForwardErrors", "Dialog", "Content", "Header", "Title", "Close", "asChild", "CloseIconButton", "ref", "Body", "CreateObjectPanel", "defaultSpaceId", "default", "onTargetChange", "onTypenameChange", "CreateObjectDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx", "../../../src/containers/CreateSpaceDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport type * as Schema from 'effect/Schema';\nimport React, { useCallback, useRef } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { runAndForwardErrors } from '@dxos/effect';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\n\nimport { useInputSurfaceLookup } from '../../hooks';\nimport { meta } from '../../meta';\nimport { SpaceForm, SpaceOperation } from '../../types';\n\nexport const CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;\n\ntype FormValues = Schema.Schema.Type<typeof SpaceForm>;\nconst initialValues: FormValues = { edgeReplication: true };\n\nexport const CreateSpaceDialog = () => {\n const closeRef = useRef<HTMLButtonElement | null>(null);\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n\n const inputSurfaceLookup = useInputSurfaceLookup();\n\n const handleCreateSpace = useCallback(\n async (data: FormValues) => {\n const program = Effect.gen(function* () {\n const { data: result } = yield* Effect.promise(() => invokePromise(SpaceOperation.Create, data));\n if (result?.space) {\n yield* Effect.promise(() => invokePromise(LayoutOperation.SwitchWorkspace, { subject: result.space.id }));\n yield* Effect.promise(() => invokePromise(LayoutOperation.UpdateDialog, { state: false }));\n }\n });\n await runAndForwardErrors(program);\n },\n [invokePromise],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Header>\n <Dialog.Title>{t('create space dialog title')}</Dialog.Title>\n <Dialog.Close asChild>\n <Dialog.CloseIconButton ref={closeRef} />\n </Dialog.Close>\n </Dialog.Header>\n <Form.Root\n testId='create-space-form'\n autoFocus\n schema={SpaceForm}\n defaultValues={initialValues}\n fieldProvider={inputSurfaceLookup}\n onSave={handleCreateSpace}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { CreateSpaceDialog } from './CreateSpaceDialog';\n\nexport default CreateSpaceDialog;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,OAAOC,SAASC,aAAaC,cAAc;AAE3C,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,2BAA2B;AACpC,SAASC,QAAQC,sBAAsB;AACvC,SAASC,YAAY;AAMd,IAAMC,sBAAsB,GAAGC,KAAKC,EAAE;AAG7C,IAAMC,gBAA4B;EAAEC,iBAAiB;AAAK;AAEnD,IAAMC,oBAAoB,MAAA;AAC/B,QAAMC,WAAWC,OAAiC,IAAA;AAClD,QAAM,EAAEC,EAAC,IAAKC,eAAeR,KAAKC,EAAE;AACpC,QAAM,EAAEQ,cAAa,IAAKC,oBAAAA;AAE1B,QAAMC,qBAAqBC,sBAAAA;AAE3B,QAAMC,oBAAoBC,YACxB,OAAOC,SAAAA;AACL,UAAMC,UAAiBC,WAAI,aAAA;AACzB,YAAM,EAAEF,MAAMG,OAAM,IAAK,OAAcC,eAAQ,MAAMV,cAAcW,eAAeC,QAAQN,IAAAA,CAAAA;AAC1F,UAAIG,QAAQI,OAAO;AACjB,eAAcH,eAAQ,MAAMV,cAAcc,gBAAgBC,iBAAiB;UAAEC,SAASP,OAAOI,MAAMrB;QAAG,CAAA,CAAA;AACtG,eAAckB,eAAQ,MAAMV,cAAcc,gBAAgBG,cAAc;UAAEC,OAAO;QAAM,CAAA,CAAA;MACzF;IACF,CAAA;AACA,UAAMC,oBAAoBZ,OAAAA;EAC5B,GACA;IAACP;GAAc;AAGjB,SACE,sBAAA,cAACoB,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,QAAM,MACZ,sBAAA,cAACF,OAAOG,OAAK,MAAEzB,EAAE,2BAAA,CAAA,GACjB,sBAAA,cAACsB,OAAOI,OAAK;IAACC,SAAAA;KACZ,sBAAA,cAACL,OAAOM,iBAAe;IAACC,KAAK/B;QAGjC,sBAAA,cAACgC,KAAKC,MAAI;IACRC,QAAO;IACPC,WAAAA;IACAC,QAAQC;IACRC,eAAezC;IACf0C,eAAejC;IACfkC,QAAQhC;KAER,sBAAA,cAACwB,KAAKS,UAAQ,MACZ,sBAAA,cAACT,KAAKP,SAAO,MACX,sBAAA,cAACO,KAAKU,UAAQ,IAAA,GACd,sBAAA,cAACV,KAAKW,QAAM,IAAA,CAAA,CAAA,CAAA,CAAA;AAMxB;;;AC/DA,IAAA,4BAAeC;",
|
|
6
|
-
"names": ["Effect", "React", "useCallback", "useRef", "useOperationInvoker", "LayoutOperation", "runAndForwardErrors", "Dialog", "useTranslation", "Form", "CREATE_SPACE_DIALOG", "meta", "id", "initialValues", "edgeReplication", "CreateSpaceDialog", "closeRef", "useRef", "t", "useTranslation", "invokePromise", "useOperationInvoker", "inputSurfaceLookup", "useInputSurfaceLookup", "handleCreateSpace", "useCallback", "data", "program", "gen", "result", "promise", "SpaceOperation", "Create", "space", "LayoutOperation", "SwitchWorkspace", "subject", "UpdateDialog", "state", "runAndForwardErrors", "Dialog", "Content", "Header", "Title", "Close", "asChild", "CloseIconButton", "ref", "Form", "Root", "testId", "autoFocus", "schema", "SpaceForm", "defaultValues", "fieldProvider", "onSave", "Viewport", "FieldSet", "Submit", "CreateSpaceDialog"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/InlineSyncStatus/InlineSyncStatus.tsx", "../../../src/containers/InlineSyncStatus/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport React, { useEffect, useState } from 'react';\n\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, useSpaceSyncState } from '@dxos/react-client/echo';\nimport { Tooltip, useTranslation } from '@dxos/react-ui';\nimport { AttentionGlyph, useAttended, useAttention } from '@dxos/react-ui-attention';\n\nimport { usePath } from '../../hooks';\nimport { meta } from '../../meta';\n\nconst useEdgeStatus = (): EdgeStatus.ConnectionState => {\n const [status, setStatus] = useState(EdgeStatus.ConnectionState.NOT_CONNECTED);\n const client = useClient();\n useEffect(() => {\n client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status }) => {\n setStatus(status.state);\n });\n }, [client]);\n\n return status;\n};\n\nexport const InlineSyncStatus = ({ space, open }: { space: Space; open?: boolean }) => {\n const { t } = useTranslation(meta.id);\n const id = space.id;\n const { hasAttention, isAncestor, isRelated } = useAttention(id);\n const isAttended = hasAttention || isAncestor || isRelated;\n\n // TODO(wittjosiah): If the attended node is deep in the graph and the graph is not fully loaded\n // this will result in an empty path until the graph is connected.\n // TODO(wittjosiah): Consider using this indicator for all open nodes instead of just attended.\n const { graph } = useAppGraph();\n const attended = useAttended();\n const startOfAttention = attended.at(-1);\n const path = usePath(graph, startOfAttention);\n const containsAttended = !open && !isAttended && id && Option.isSome(path) ? path.value.includes(id) : false;\n\n const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;\n // TODO(wittjosiah): This is not reactive.\n const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED;\n const syncState = useSpaceSyncState(space);\n const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;\n\n return (\n <Tooltip.Trigger asChild content={t('syncing label')} side='bottom'>\n <AttentionGlyph\n syncing={syncing}\n attended={isAttended}\n containsAttended={containsAttended}\n classNames='self-center mx-1'\n />\n </Tooltip.Trigger>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { InlineSyncStatus } from './InlineSyncStatus';\n\nexport default InlineSyncStatus;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,SAASC,WAAWC,gBAAgB;AAE3C,SAASC,mBAAmB;AAC5B,SAASC,kBAAkB;AAC3B,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAAqBC,yBAAyB;AAC9C,SAASC,SAASC,sBAAsB;AACxC,SAASC,gBAAgBC,aAAaC,oBAAoB;AAK1D,IAAMC,gBAAgB,MAAA;AACpB,QAAM,CAACC,QAAQC,SAAAA,IAAaC,SAASC,WAAWC,gBAAgBC,aAAa;AAC7E,QAAMC,SAASC,UAAAA;AACfC,YAAU,MAAA;AACRF,WAAOG,SAASA,SAASC,kBAAkBC,gBAAAA,EAAkBC,UAAU,CAAC,EAAEZ,QAAAA,QAAM,MAAE;AAChFC,gBAAUD,QAAOa,KAAK;IACxB,CAAA;EACF,GAAG;IAACP;GAAO;AAEX,SAAON;AACT;AAEO,IAAMc,mBAAmB,CAAC,EAAEC,OAAOC,KAAI,MAAoC;AAChF,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAMA,KAAKL,MAAMK;AACjB,QAAM,EAAEC,cAAcC,YAAYC,UAAS,IAAKC,aAAaJ,EAAAA;AAC7D,QAAMK,aAAaJ,gBAAgBC,cAAcC;AAKjD,QAAM,EAAEG,MAAK,IAAKC,YAAAA;AAClB,QAAMC,WAAWC,YAAAA;AACjB,QAAMC,mBAAmBF,SAASG,GAAG,EAAC;AACtC,QAAMC,OAAOC,QAAQP,OAAOI,gBAAAA;AAC5B,QAAMI,mBAAmB,CAAClB,QAAQ,CAACS,cAAcL,MAAae,cAAOH,IAAAA,IAAQA,KAAKI,MAAMC,SAASjB,EAAAA,IAAM;AAEvG,QAAMkB,kBAAkBvC,cAAAA,MAAoBI,WAAWC,gBAAgBmC;AAEvE,QAAMC,kBAAkBzB,MAAM0B,SAASC,KAAKC,oBAAoBC,uBAAuBC;AACvF,QAAMC,YAAYC,kBAAkBhC,KAAAA;AACpC,QAAMiC,UAAUV,mBAAmBE,mBAAmBM,aAAaA,UAAUG,iBAAiB;AAE9F,SACE,sBAAA,cAACC,QAAQC,SAAO;IAACC,SAAAA;IAAQC,SAASpC,EAAE,eAAA;IAAkBqC,MAAK;KACzD,sBAAA,cAACC,gBAAAA;IACCP;IACApB,UAAUH;IACVS;IACAsB,YAAW;;AAInB;;;ACvDA,IAAA,2BAAeC;",
|
|
6
|
-
"names": ["Option", "React", "useEffect", "useState", "useAppGraph", "EdgeStatus", "EdgeReplicationSetting", "useClient", "useSpaceSyncState", "Tooltip", "useTranslation", "AttentionGlyph", "useAttended", "useAttention", "useEdgeStatus", "status", "setStatus", "useState", "EdgeStatus", "ConnectionState", "NOT_CONNECTED", "client", "useClient", "useEffect", "services", "EdgeAgentService", "queryEdgeStatus", "subscribe", "state", "InlineSyncStatus", "space", "open", "t", "useTranslation", "meta", "id", "hasAttention", "isAncestor", "isRelated", "useAttention", "isAttended", "graph", "useAppGraph", "attended", "useAttended", "startOfAttention", "at", "path", "usePath", "containsAttended", "isSome", "value", "includes", "connectedToEdge", "CONNECTED", "edgeSyncEnabled", "internal", "data", "edgeReplication", "EdgeReplicationSetting", "ENABLED", "syncState", "useSpaceSyncState", "syncing", "missingOnLocal", "Tooltip", "Trigger", "asChild", "content", "side", "AttentionGlyph", "classNames", "InlineSyncStatus"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/JoinDialog/JoinDialog.tsx", "../../../src/containers/JoinDialog/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { useAppGraph } from '@dxos/app-toolkit/ui';\nimport { Trigger } from '@dxos/async';\nimport { Graph } from '@dxos/plugin-graph';\nimport { ObservabilityOperation } from '@dxos/plugin-observability/types';\nimport { useClient } from '@dxos/react-client';\nimport { type Space } from '@dxos/react-client/echo';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nexport const JOIN_DIALOG = `${meta.id}/JoinDialog`;\n\nexport type JoinDialogProps = JoinPanelProps & {\n navigableCollections?: boolean;\n};\n\nexport const JoinDialog = ({ navigableCollections, onDone, ...props }: JoinDialogProps) => {\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n const { graph } = useAppGraph();\n const { t } = useTranslation(meta.id);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n const spaceKey = result?.spaceKey;\n if (!spaceKey) {\n return;\n }\n\n await Promise.all([\n invokePromise(LayoutOperation.AddToast, {\n id: `${meta.id}/join-success`,\n duration: 5_000,\n title: ['join success label', { ns: meta.id }],\n closeLabel: ['dismiss label', { ns: meta.id }],\n }),\n invokePromise(LayoutOperation.UpdateDialog, { state: false }),\n ]);\n\n let space = client.spaces.get(spaceKey);\n if (!space) {\n // TODO(wittjosiah): Add api to wait for a space.\n const trigger = new Trigger<Space>();\n client.spaces.subscribe(() => {\n const space = client.spaces.get(spaceKey);\n if (space) {\n trigger.wake(space);\n }\n });\n space = await trigger.wait();\n }\n\n await invokePromise(LayoutOperation.SwitchWorkspace, { subject: space.id });\n\n // TODO(wittjosiah): If navigableCollections is false and there's no target,\n // should try to navigate to the first object of the space replicates.\n // Potentially this could also be done on the inviters side to ensure there's always a target.\n const target = result?.target || (navigableCollections ? space?.id : undefined);\n if (target) {\n // Wait before navigating to the target node.\n // If the target has not yet replicated, this will trigger a loading toast.\n await Graph.waitForPath(graph, { target }).catch(() => {});\n await Promise.all([\n invokePromise(LayoutOperation.Open, { subject: [target] }),\n invokePromise(LayoutOperation.Expose, { subject: target }),\n ]);\n }\n\n await onDone?.(result);\n\n if (space) {\n await invokePromise(ObservabilityOperation.SendEvent, {\n name: 'space.join',\n properties: {\n spaceId: space.id,\n },\n });\n }\n },\n [invokePromise, client, graph, navigableCollections, onDone],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: osTranslations })}</Dialog.Title>\n <JoinPanel\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { JoinDialog } from './JoinDialog';\n\nexport default JoinDialog;\n"],
|
|
5
|
-
"mappings": ";;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,mBAAmB;AAC5B,SAASC,eAAe;AACxB,SAASC,aAAa;AACtB,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAG1B,SAASC,QAAQC,sBAAsB;AACvC,SAASC,iBAAsC;AAC/C,SAASC,sBAAsB;AAIxB,IAAMC,cAAc,GAAGC,KAAKC,EAAE;AAM9B,IAAMC,aAAa,CAAC,EAAEC,sBAAsBC,QAAQ,GAAGC,MAAAA,MAAwB;AACpF,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,SAASC,UAAAA;AACf,QAAM,EAAEC,MAAK,IAAKC,YAAAA;AAClB,QAAM,EAAEC,EAAC,IAAKC,eAAeb,KAAKC,EAAE;AAEpC,QAAMa,aAAaC,YACjB,OAAOC,WAAAA;AACL,UAAMC,WAAWD,QAAQC;AACzB,QAAI,CAACA,UAAU;AACb;IACF;AAEA,UAAMC,QAAQC,IAAI;MAChBb,cAAcc,gBAAgBC,UAAU;QACtCpB,IAAI,GAAGD,KAAKC,EAAE;QACdqB,UAAU;QACVC,OAAO;UAAC;UAAsB;YAAEC,IAAIxB,KAAKC;UAAG;;QAC5CwB,YAAY;UAAC;UAAiB;YAAED,IAAIxB,KAAKC;UAAG;;MAC9C,CAAA;MACAK,cAAcc,gBAAgBM,cAAc;QAAEC,OAAO;MAAM,CAAA;KAC5D;AAED,QAAIC,QAAQpB,OAAOqB,OAAOC,IAAIb,QAAAA;AAC9B,QAAI,CAACW,OAAO;AAEV,YAAMG,UAAU,IAAIC,QAAAA;AACpBxB,aAAOqB,OAAOI,UAAU,MAAA;AACtB,cAAML,SAAQpB,OAAOqB,OAAOC,IAAIb,QAAAA;AAChC,YAAIW,QAAO;AACTG,kBAAQG,KAAKN,MAAAA;QACf;MACF,CAAA;AACAA,cAAQ,MAAMG,QAAQI,KAAI;IAC5B;AAEA,UAAM7B,cAAcc,gBAAgBgB,iBAAiB;MAAEC,SAAST,MAAM3B;IAAG,CAAA;AAKzE,UAAMqC,SAAStB,QAAQsB,WAAWnC,uBAAuByB,OAAO3B,KAAKsC;AACrE,QAAID,QAAQ;AAGV,YAAME,MAAMC,YAAY/B,OAAO;QAAE4B;MAAO,CAAA,EAAGI,MAAM,MAAA;MAAO,CAAA;AACxD,YAAMxB,QAAQC,IAAI;QAChBb,cAAcc,gBAAgBuB,MAAM;UAAEN,SAAS;YAACC;;QAAQ,CAAA;QACxDhC,cAAcc,gBAAgBwB,QAAQ;UAAEP,SAASC;QAAO,CAAA;OACzD;IACH;AAEA,UAAMlC,SAASY,MAAAA;AAEf,QAAIY,OAAO;AACT,YAAMtB,cAAcuC,uBAAuBC,WAAW;QACpDC,MAAM;QACNC,YAAY;UACVC,SAASrB,MAAM3B;QACjB;MACF,CAAA;IACF;EACF,GACA;IAACK;IAAeE;IAAQE;IAAOP;IAAsBC;GAAO;AAG9D,SACE,sBAAA,cAAC8C,OAAOC,SAAO,MACb,sBAAA,cAACD,OAAOE,OAAK;IAACC,YAAW;KAAWzC,EAAE,oBAAoB;IAAEY,IAAI8B;EAAe,CAAA,CAAA,GAC/E,sBAAA,cAACC,WAAAA;IACE,GAAGlD;IACJmD,kBAAkB,sBAAA,cAACN,OAAOO,OAAK;MAACC,SAAAA;;IAChCC,kBAAkB,sBAAA,cAACT,OAAOO,OAAK;MAACC,SAAAA;;IAChCtD,QAAQU;;AAIhB;;;AClGA,IAAA,qBAAe8C;",
|
|
6
|
-
"names": ["React", "useCallback", "useOperationInvoker", "LayoutOperation", "useAppGraph", "Trigger", "Graph", "ObservabilityOperation", "useClient", "Dialog", "useTranslation", "JoinPanel", "osTranslations", "JOIN_DIALOG", "meta", "id", "JoinDialog", "navigableCollections", "onDone", "props", "invokePromise", "useOperationInvoker", "client", "useClient", "graph", "useAppGraph", "t", "useTranslation", "handleDone", "useCallback", "result", "spaceKey", "Promise", "all", "LayoutOperation", "AddToast", "duration", "title", "ns", "closeLabel", "UpdateDialog", "state", "space", "spaces", "get", "trigger", "Trigger", "subscribe", "wake", "wait", "SwitchWorkspace", "subject", "target", "undefined", "Graph", "waitForPath", "catch", "Open", "Expose", "ObservabilityOperation", "SendEvent", "name", "properties", "spaceId", "Dialog", "Content", "Title", "classNames", "osTranslations", "JoinPanel", "exitActionParent", "Close", "asChild", "doneActionParent", "JoinDialog"]
|
|
7
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SmallPresenceLive
|
|
3
|
-
} from "./chunk-ABCDB5YC.mjs";
|
|
4
|
-
import "./chunk-XIIYC7P5.mjs";
|
|
5
|
-
import "./chunk-USN5QKRV.mjs";
|
|
6
|
-
import "./chunk-HSMQFM57.mjs";
|
|
7
|
-
export {
|
|
8
|
-
SmallPresenceLive as default
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=SmallPresenceLive-LZD2NGKK.mjs.map
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SpacePresence
|
|
3
|
-
} from "./chunk-ABCDB5YC.mjs";
|
|
4
|
-
import "./chunk-XIIYC7P5.mjs";
|
|
5
|
-
import "./chunk-USN5QKRV.mjs";
|
|
6
|
-
import "./chunk-HSMQFM57.mjs";
|
|
7
|
-
|
|
8
|
-
// src/containers/SpacePresence/index.ts
|
|
9
|
-
var SpacePresence_default = SpacePresence;
|
|
10
|
-
export {
|
|
11
|
-
SpacePresence_default as default
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=SpacePresence-MLU576L6.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/SpacePresence/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { SpacePresence } from './SpacePresence';\n\nexport default SpacePresence;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAMA,IAAA,wBAAeA;",
|
|
6
|
-
"names": ["SpacePresence"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx", "../../../src/containers/SpaceSettingsContainer/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, SpaceState } from '@dxos/react-client/echo';\nimport { Button, Input, useFileDownload, useMulticastObservable, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldMap, Settings } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\n\nimport { meta } from '../../meta';\nimport { SpaceCapabilities, SpaceForm, SpaceOperation } from '../../types';\n\nconst SpaceFormSchema = SpaceForm.pipe(\n Schema.extend(\n Schema.Struct({\n archived: Schema.Boolean.annotations({ title: 'Archive Space' }),\n }),\n ),\n);\n\nexport type SpaceSettingsContainerProps = {\n space: Space;\n};\n\n// TODO(wittjosiah): Handle space migrations here?\nexport const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;\n const [edgeReplication, setEdgeReplication] = useState(\n space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED,\n );\n const toggleEdgeReplication = useCallback(\n async (next: boolean) => {\n setEdgeReplication(next);\n await space?.internal\n .setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED)\n .catch((err: unknown) => {\n log.catch(err);\n setEdgeReplication(!next);\n });\n },\n [space],\n );\n\n const handleValuesChanged = useCallback(\n (newValues: Partial<Schema.Schema.Type<typeof SpaceFormSchema>>, meta: { changed?: Record<string, boolean> }) => {\n const changed = meta.changed ?? {};\n if (changed['edgeReplication']) {\n void toggleEdgeReplication(newValues.edgeReplication ?? false);\n }\n\n if (changed['name'] || changed['icon'] || changed['hue']) {\n Obj.change(space.properties, (p) => {\n if (changed['name'] && newValues.name !== undefined) {\n p.name = newValues.name;\n }\n if (changed['icon']) {\n p.icon = newValues.icon;\n }\n if (changed['hue']) {\n p.hue = newValues.hue;\n }\n });\n }\n\n if (changed['archived']) {\n if (newValues.archived && !archived) {\n void invokePromise(SpaceOperation.Close, { space });\n void invokePromise(LayoutOperation.SwitchWorkspace, {\n subject: client.spaces.default.id,\n });\n } else if (!newValues.archived && archived) {\n void invokePromise(SpaceOperation.Open, { space });\n }\n }\n },\n [space, client, archived, invokePromise, toggleEdgeReplication],\n );\n\n const values = useMemo(\n () => ({\n name: space.properties.name,\n icon: space.properties.icon,\n hue: space.properties.hue,\n edgeReplication,\n archived,\n }),\n [space.properties.name, space.properties.icon, space.properties.hue, edgeReplication, archived],\n );\n\n const fieldMap = useMemo<FormFieldMap>(\n () => ({\n name: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n return (\n <Settings.ItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-w-64'\n />\n </Settings.ItemInput>\n );\n },\n icon: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((icon: string) => onValueChange(type, icon), [onValueChange, type]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <Settings.Item title={label} description={t('icon description')}>\n <IconPicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleReset}\n classNames='justify-self-end'\n />\n </Settings.Item>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <Settings.Item title={label} description={t('hue description')}>\n <HuePicker value={getValue()} onChange={handleChange} onReset={handleReset} classNames='justify-self-end' />\n </Settings.Item>\n );\n },\n edgeReplication: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((checked: boolean) => onValueChange(type, checked), [onValueChange, type]);\n return (\n <Settings.ItemInput title={label} description={t('edge replication description')}>\n <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />\n </Settings.ItemInput>\n );\n },\n archived: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(() => onValueChange(type, !getValue()), [onValueChange, type, getValue]);\n return (\n <Settings.ItemInput title={label} description={t('archive space description')}>\n <Button\n disabled={space === client.spaces.default}\n variant={getValue() ? 'default' : 'destructive'}\n onClick={handleChange}\n >\n {getValue() ? t('unarchive space label') : t('archive space label')}\n </Button>\n </Settings.ItemInput>\n );\n },\n }),\n [t, space, client],\n );\n\n const download = useFileDownload();\n const handleBackup = useCallback(async () => {\n const archive = await space.internal.export();\n download(new Blob([archive.contents as Uint8Array<ArrayBuffer>]), archive.filename);\n }, [space, download]);\n\n const repairs = useCapabilities(SpaceCapabilities.Repair);\n const handleRepair = useCallback(async () => {\n await Promise.all(repairs.map((repair) => repair({ space, isDefault: client.spaces.default === space })));\n }, [client, space, repairs]);\n\n return (\n <Settings.Root>\n <Settings.Section\n title={t('space properties settings verbose label')}\n description={t('space properties settings description', { ns: meta.id })}\n >\n <Form.Root fieldMap={fieldMap} schema={SpaceFormSchema} values={values} onValuesChanged={handleValuesChanged}>\n <Form.FieldSet />\n </Form.Root>\n </Settings.Section>\n <Settings.Section title={t('space controls title')} description={t('space controls description')}>\n <Settings.ItemInput title={t('backup space title')} description={t('backup space description')}>\n <Button onClick={handleBackup}>{t('download backup label')}</Button>\n </Settings.ItemInput>\n <Settings.ItemInput title={t('repair space title')} description={t('repair space description')}>\n <Button onClick={handleRepair}>{t('repair space label')}</Button>\n </Settings.ItemInput>\n </Settings.Section>\n </Settings.Root>\n );\n};\n\nSpaceSettingsContainer.displayName = 'SpaceSettingsContainer';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SpaceSettingsContainer } from './SpaceSettingsContainer';\n\nexport default SpaceSettingsContainer;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Schema", "React", "useCallback", "useMemo", "useState", "useCapabilities", "useOperationInvoker", "LayoutOperation", "Obj", "log", "EdgeReplicationSetting", "useClient", "SpaceState", "Button", "Input", "useFileDownload", "useMulticastObservable", "useTranslation", "Form", "Settings", "HuePicker", "IconPicker", "SpaceFormSchema", "SpaceForm", "pipe", "extend", "Struct", "archived", "Boolean", "annotations", "title", "SpaceSettingsContainer", "space", "t", "useTranslation", "meta", "id", "invokePromise", "useOperationInvoker", "client", "useClient", "useMulticastObservable", "state", "SpaceState", "SPACE_INACTIVE", "edgeReplication", "setEdgeReplication", "useState", "internal", "data", "EdgeReplicationSetting", "ENABLED", "toggleEdgeReplication", "useCallback", "next", "setEdgeReplicationPreference", "DISABLED", "catch", "err", "log", "handleValuesChanged", "newValues", "changed", "Obj", "change", "properties", "p", "name", "undefined", "icon", "hue", "SpaceOperation", "Close", "LayoutOperation", "SwitchWorkspace", "subject", "spaces", "default", "Open", "values", "useMemo", "fieldMap", "type", "label", "getValue", "onValueChange", "handleChange", "target", "value", "Settings", "ItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "handleReset", "Item", "IconPicker", "onReset", "nextHue", "HuePicker", "checked", "Switch", "onCheckedChange", "Button", "disabled", "variant", "onClick", "download", "useFileDownload", "handleBackup", "archive", "export", "Blob", "contents", "filename", "repairs", "useCapabilities", "SpaceCapabilities", "Repair", "handleRepair", "Promise", "all", "map", "repair", "isDefault", "Root", "Section", "ns", "Form", "schema", "onValuesChanged", "FieldSet", "displayName", "SpaceSettingsContainer"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/containers/ViewEditor/ViewEditor.tsx", "../../../src/containers/ViewEditor/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { DXN, Filter, JsonSchema, Obj, Query, type QueryAST, Tag, Type } from '@dxos/echo';\nimport { type View } from '@dxos/echo';\nimport { type Mutable } from '@dxos/echo/internal';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\nimport { ViewEditor as NaturalViewEditor } from '@dxos/react-ui-form';\nimport { ViewModel } from '@dxos/schema';\n\nimport { resolveSchemaWithRegistry } from '../../helpers';\nimport { useTypeOptions } from '../../hooks';\nimport { SpaceOperation } from '../../types';\n\nexport type ViewEditorProps = { view: View.View };\n\nexport const ViewEditor = ({ view }: ViewEditorProps) => {\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n const space = getSpace(view);\n const [schema, setSchema] = useState<Schema.Schema.AnyNoContext>(() => Schema.Struct({}));\n const tags = useQuery(space?.db, Filter.type(Tag.Tag));\n const types = useTypeOptions({\n space,\n annotation: {\n location: ['database', 'runtime'],\n kind: ['user'],\n registered: ['registered'],\n },\n });\n\n useAsyncEffect(async () => {\n if (!view?.query || !space) {\n return;\n }\n\n const foundSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, view.query.ast);\n if (foundSchema && foundSchema !== schema) {\n setSchema(() => foundSchema);\n }\n }, [client, space, view, schema]);\n\n const handleQueryChanged = useCallback(\n async (newQuery: QueryAST.Query, target?: string) => {\n if (!view || !space) {\n return;\n }\n\n const queue = target && DXN.tryParse(target) ? target : undefined;\n const query = queue ? Query.fromAst(newQuery).from({ queues: [queue] }) : Query.fromAst(newQuery);\n Obj.change(view, (v) => {\n v.query.ast = query.ast as Mutable<typeof query.ast>;\n });\n const newSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);\n if (!newSchema) {\n return;\n }\n\n const newView = ViewModel.make({\n query,\n jsonSchema: JsonSchema.toJsonSchema(newSchema),\n });\n Obj.change(view, (v) => {\n v.projection = Obj.getSnapshot(newView).projection as Mutable<typeof v.projection>;\n });\n\n setSchema(() => newSchema);\n },\n [view, schema],\n );\n\n const handleDelete = useCallback(\n (fieldId: string) => {\n void invokePromise(SpaceOperation.DeleteField, { view, fieldId });\n },\n [invokePromise, view],\n );\n\n if (!space || !schema) {\n return null;\n }\n\n return (\n <NaturalViewEditor\n registry={space.db.schemaRegistry}\n schema={schema}\n view={view}\n mode='tag'\n db={space.db}\n tags={tags}\n types={types}\n onQueryChanged={handleQueryChanged}\n onDelete={Type.isMutable(schema) ? handleDelete : undefined}\n />\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ViewEditor } from './ViewEditor';\n\nexport default ViewEditor;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,2BAA2B;AACpC,SAASC,KAAKC,QAAQC,YAAYC,KAAKC,OAAsBC,KAAKC,YAAY;AAG9E,SAASC,iBAAiB;AAC1B,SAASC,UAAUC,gBAAgB;AACnC,SAASC,sBAAsB;AAC/B,SAASC,cAAcC,yBAAyB;AAChD,SAASC,iBAAiB;AAQnB,IAAMC,aAAa,CAAC,EAAEC,KAAI,MAAmB;AAClD,QAAM,EAAEC,cAAa,IAAKC,oBAAAA;AAC1B,QAAMC,SAASC,UAAAA;AACf,QAAMC,QAAQC,SAASN,IAAAA;AACvB,QAAM,CAACO,QAAQC,SAAAA,IAAaC,SAAqC,MAAaC,cAAO,CAAC,CAAA,CAAA;AACtF,QAAMC,OAAOC,SAASP,OAAOQ,IAAIC,OAAOC,KAAKC,IAAIA,GAAG,CAAA;AACpD,QAAMC,QAAQC,eAAe;IAC3Bb;IACAc,YAAY;MACVC,UAAU;QAAC;QAAY;;MACvBC,MAAM;QAAC;;MACPC,YAAY;QAAC;;IACf;EACF,CAAA;AAEAC,iBAAe,YAAA;AACb,QAAI,CAACvB,MAAMwB,SAAS,CAACnB,OAAO;AAC1B;IACF;AAEA,UAAMoB,cAAc,MAAMC,0BAA0BrB,MAAMQ,GAAGc,gBAAgB3B,KAAKwB,MAAMI,GAAG;AAC3F,QAAIH,eAAeA,gBAAgBlB,QAAQ;AACzCC,gBAAU,MAAMiB,WAAAA;IAClB;EACF,GAAG;IAACtB;IAAQE;IAAOL;IAAMO;GAAO;AAEhC,QAAMsB,qBAAqBC,YACzB,OAAOC,UAA0BC,WAAAA;AAC/B,QAAI,CAAChC,QAAQ,CAACK,OAAO;AACnB;IACF;AAEA,UAAM4B,QAAQD,UAAUE,IAAIC,SAASH,MAAAA,IAAUA,SAASI;AACxD,UAAMZ,QAAQS,QAAQI,MAAMC,QAAQP,QAAAA,EAAUQ,KAAK;MAAEC,QAAQ;QAACP;;IAAO,CAAA,IAAKI,MAAMC,QAAQP,QAAAA;AACxFU,QAAIC,OAAO1C,MAAM,CAAC2C,MAAAA;AAChBA,QAAEnB,MAAMI,MAAMJ,MAAMI;IACtB,CAAA;AACA,UAAMgB,YAAY,MAAMlB,0BAA0BrB,MAAMQ,GAAGc,gBAAgBH,MAAMI,GAAG;AACpF,QAAI,CAACgB,WAAW;AACd;IACF;AAEA,UAAMC,UAAUC,UAAUC,KAAK;MAC7BvB;MACAwB,YAAYC,WAAWC,aAAaN,SAAAA;IACtC,CAAA;AACAH,QAAIC,OAAO1C,MAAM,CAAC2C,MAAAA;AAChBA,QAAEQ,aAAaV,IAAIW,YAAYP,OAAAA,EAASM;IAC1C,CAAA;AAEA3C,cAAU,MAAMoC,SAAAA;EAClB,GACA;IAAC5C;IAAMO;GAAO;AAGhB,QAAM8C,eAAevB,YACnB,CAACwB,YAAAA;AACC,SAAKrD,cAAcsD,eAAeC,aAAa;MAAExD;MAAMsD;IAAQ,CAAA;EACjE,GACA;IAACrD;IAAeD;GAAK;AAGvB,MAAI,CAACK,SAAS,CAACE,QAAQ;AACrB,WAAO;EACT;AAEA,SACE,sBAAA,cAACkD,mBAAAA;IACCC,UAAUrD,MAAMQ,GAAGc;IACnBpB;IACAP;IACA2D,MAAK;IACL9C,IAAIR,MAAMQ;IACVF;IACAM;IACA2C,gBAAgB/B;IAChBgC,UAAUC,KAAKC,UAAUxD,MAAAA,IAAU8C,eAAejB;;AAGxD;;;AChGA,IAAA,qBAAe4B;",
|
|
6
|
-
"names": ["Schema", "React", "useCallback", "useState", "useOperationInvoker", "DXN", "Filter", "JsonSchema", "Obj", "Query", "Tag", "Type", "useClient", "getSpace", "useQuery", "useAsyncEffect", "ViewEditor", "NaturalViewEditor", "ViewModel", "ViewEditor", "view", "invokePromise", "useOperationInvoker", "client", "useClient", "space", "getSpace", "schema", "setSchema", "useState", "Struct", "tags", "useQuery", "db", "Filter", "type", "Tag", "types", "useTypeOptions", "annotation", "location", "kind", "registered", "useAsyncEffect", "query", "foundSchema", "resolveSchemaWithRegistry", "schemaRegistry", "ast", "handleQueryChanged", "useCallback", "newQuery", "target", "queue", "DXN", "tryParse", "undefined", "Query", "fromAst", "from", "queues", "Obj", "change", "v", "newSchema", "newView", "ViewModel", "make", "jsonSchema", "JsonSchema", "toJsonSchema", "projection", "getSnapshot", "handleDelete", "fieldId", "SpaceOperation", "DeleteField", "NaturalViewEditor", "registry", "mode", "onQueryChanged", "onDelete", "Type", "isMutable", "ViewEditor"]
|
|
7
|
-
}
|