@dxos/plugin-space 0.8.4-staging.60fe92afc8 → 0.9.1-main.c7dcc2e112
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/neutral/{CollectionArticle-S3OF5KJ7.mjs → CollectionArticle-BMH7SZ7Q.mjs} +9 -12
- package/dist/lib/neutral/CollectionArticle-BMH7SZ7Q.mjs.map +7 -0
- package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs → CollectionSection-BLYTGOKH.mjs} +2 -2
- package/dist/lib/neutral/{CollectionSection-A5WRHE5Z.mjs.map → CollectionSection-BLYTGOKH.mjs.map} +3 -3
- package/dist/lib/neutral/{CreateObjectDialog-66R3K6I3.mjs → CreateObjectDialog-4VMOUKM7.mjs} +10 -10
- package/dist/lib/neutral/CreateObjectDialog-4VMOUKM7.mjs.map +7 -0
- package/dist/lib/neutral/{CreateSpaceDialog-CDGSEIJB.mjs → CreateSpaceDialog-WWNUTLVK.mjs} +6 -6
- package/dist/lib/neutral/CreateSpaceDialog-WWNUTLVK.mjs.map +7 -0
- package/dist/lib/neutral/{ImportSpaceDialog-7GKV4OTF.mjs → ImportSpaceDialog-CSSRTFAO.mjs} +4 -4
- package/dist/lib/neutral/ImportSpaceDialog-CSSRTFAO.mjs.map +7 -0
- package/dist/lib/neutral/{InlineSyncStatus-TBJKZCH7.mjs → InlineSyncStatus-UOUTAPCU.mjs} +4 -4
- package/dist/lib/neutral/InlineSyncStatus-UOUTAPCU.mjs.map +7 -0
- package/dist/lib/neutral/{JoinDialog-SSFKRFTJ.mjs → JoinDialog-QZGNRJ4P.mjs} +16 -9
- package/dist/lib/neutral/JoinDialog-QZGNRJ4P.mjs.map +7 -0
- package/dist/lib/neutral/{MembersContainer-KMCQDWCS.mjs → MembersContainer-OWCAMBKS.mjs} +5 -5
- package/dist/lib/neutral/MembersContainer-OWCAMBKS.mjs.map +7 -0
- package/dist/lib/neutral/{MenuFooter-5JT7V5FZ.mjs → MenuFooter-QCNFUIAO.mjs} +6 -6
- package/dist/lib/neutral/MenuFooter-QCNFUIAO.mjs.map +7 -0
- package/dist/lib/neutral/{ObjectCardStack-IXNU3HEN.mjs → ObjectCardStack-DHVDRNRK.mjs} +4 -4
- package/dist/lib/neutral/ObjectCardStack-DHVDRNRK.mjs.map +7 -0
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs +102 -0
- package/dist/lib/neutral/RecordArticle-JSORXRAA.mjs.map +7 -0
- package/dist/lib/neutral/{RelatedArticle-YDNGUDAJ.mjs → RelatedArticle-YRCRBIYU.mjs} +11 -9
- package/dist/lib/neutral/RelatedArticle-YRCRBIYU.mjs.map +7 -0
- package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs +96 -0
- package/dist/lib/neutral/RenamePopover-XBZAKNM7.mjs.map +7 -0
- package/dist/lib/neutral/{SchemaContainer-Q4BP6X2M.mjs → SchemaContainer-2NK5YB5O.mjs} +2 -2
- package/dist/lib/neutral/SchemaContainer-2NK5YB5O.mjs.map +7 -0
- package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs → SmallPresenceLive-L4H7WJOA.mjs} +2 -2
- package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs +78 -0
- package/dist/lib/neutral/SpaceHomeArticle-ZV7EERLS.mjs.map +7 -0
- package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs +83 -0
- package/dist/lib/neutral/SpaceHomeRecent-ZR4LIIUD.mjs.map +7 -0
- package/dist/lib/neutral/SpacePlugin.mjs +1 -1
- package/dist/lib/neutral/SpacePlugin.node.mjs +4 -4
- package/dist/lib/neutral/SpacePlugin.node.mjs.map +3 -3
- package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs → SpacePresence-PDTEDHDE.mjs} +2 -2
- package/dist/lib/neutral/{SpaceSettings-YAHBOY5T.mjs → SpaceSettings-IVTCSLNT.mjs} +6 -6
- package/dist/lib/neutral/SpaceSettings-IVTCSLNT.mjs.map +7 -0
- package/dist/lib/neutral/{SpaceSettingsContainer-IB34TEOB.mjs → SpaceSettingsContainer-QAFQ4LWC.mjs} +8 -8
- package/dist/lib/neutral/SpaceSettingsContainer-QAFQ4LWC.mjs.map +7 -0
- package/dist/lib/neutral/{SyncStatus-CWOXWDDZ.mjs → SyncStatus-J7CHLO5O.mjs} +3 -3
- package/dist/lib/neutral/SyncStatus-J7CHLO5O.mjs.map +7 -0
- package/dist/lib/neutral/{add-object-QYOMCBJA.mjs → add-object-S64XELC3.mjs} +10 -10
- package/dist/lib/neutral/add-object-S64XELC3.mjs.map +7 -0
- package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs → add-relation-GWSE42BU.mjs} +3 -3
- package/dist/lib/neutral/{add-type-CZVKSEIW.mjs → add-type-C3KYE6PI.mjs} +3 -3
- package/dist/lib/neutral/{app-graph-builder-SQGCUCDO.mjs → app-graph-builder-TMAD2ZTH.mjs} +128 -71
- package/dist/lib/neutral/app-graph-builder-TMAD2ZTH.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +13 -15
- package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
- package/dist/lib/neutral/capabilities/node.mjs +2 -2
- package/dist/lib/neutral/{chunk-EEXRKYOD.mjs → chunk-2LTGSUGQ.mjs} +2 -2
- package/dist/lib/neutral/{chunk-EEXRKYOD.mjs.map → chunk-2LTGSUGQ.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-2RPQHHD7.mjs +17 -0
- package/dist/lib/neutral/chunk-2RPQHHD7.mjs.map +7 -0
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs +46 -0
- package/dist/lib/neutral/chunk-5ZZS3KMK.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-K34BPPQE.mjs → chunk-DSYEB2UN.mjs} +29 -17
- package/dist/lib/neutral/chunk-DSYEB2UN.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-YY62663T.mjs → chunk-F2VJ6VBV.mjs} +3 -3
- package/dist/lib/neutral/chunk-F2VJ6VBV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-JHZGRYGS.mjs → chunk-G2KHP7FX.mjs} +2 -2
- package/dist/lib/neutral/{chunk-JHZGRYGS.mjs.map → chunk-G2KHP7FX.mjs.map} +2 -2
- package/dist/lib/neutral/chunk-I5JXVBXX.mjs +8 -0
- package/dist/lib/neutral/{chunk-BBQR23DW.mjs → chunk-LY6XK5MV.mjs} +105 -128
- package/dist/lib/neutral/chunk-LY6XK5MV.mjs.map +7 -0
- package/dist/lib/neutral/{chunk-7WUJENBF.mjs → chunk-PSCIOT7Q.mjs} +4 -4
- package/dist/lib/neutral/chunk-PSCIOT7Q.mjs.map +7 -0
- package/dist/lib/neutral/{close-FGQN37PK.mjs → close-YZHFYPUN.mjs} +3 -3
- package/dist/lib/neutral/components/index.mjs +7 -7
- package/dist/lib/neutral/components/index.mjs.map +3 -3
- package/dist/lib/neutral/containers/index.mjs +23 -21
- package/dist/lib/neutral/containers/index.mjs.map +3 -3
- package/dist/lib/neutral/{create-EPIFSRJA.mjs → create-XKU2W6QC.mjs} +6 -6
- package/dist/lib/neutral/create-XKU2W6QC.mjs.map +7 -0
- package/dist/lib/neutral/{delete-LIA5M3WI.mjs → delete-EFM7CAVO.mjs} +3 -3
- package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs → delete-field-ONAPFFO5.mjs} +3 -3
- package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs → duplicate-object-OJRPFV5I.mjs} +3 -3
- package/dist/lib/neutral/{export-space-VWJHVXWF.mjs → export-space-M5RNVUQX.mjs} +3 -3
- package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs → get-share-link-FUQBJPSQ.mjs} +4 -4
- package/dist/lib/neutral/hooks/index.mjs +16 -4
- package/dist/lib/neutral/hooks/index.mjs.map +3 -3
- package/dist/lib/neutral/{identity-created-57RML5XT.mjs → identity-created-QMV4DANW.mjs} +4 -4
- package/dist/lib/neutral/identity-created-QMV4DANW.mjs.map +7 -0
- package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs → import-space-L3AUIARM.mjs} +3 -3
- package/dist/lib/neutral/index.mjs +12 -6
- package/dist/lib/neutral/{join-Z5K4OAIG.mjs → join-VY3QYBU7.mjs} +4 -4
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/lib/neutral/meta.mjs +1 -1
- package/dist/lib/neutral/{migrate-G7I52UKD.mjs → migrate-WPUISBC4.mjs} +3 -3
- package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs → navigation-handler-IKXZGMII.mjs} +4 -4
- package/dist/lib/neutral/{navigation-resolver-IFVQRCGU.mjs → navigation-resolver-VBPGMFCE.mjs} +7 -7
- package/dist/lib/neutral/navigation-resolver-VBPGMFCE.mjs.map +7 -0
- package/dist/lib/neutral/{open-CPWVZSI4.mjs → open-RRYULTSY.mjs} +3 -3
- package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs → open-create-object-BRUVFZSY.mjs} +4 -4
- package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs → open-create-space-ARLQWW65.mjs} +4 -4
- package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs → open-import-space-65H57JXX.mjs} +4 -4
- package/dist/lib/neutral/{open-members-BEXOSSBS.mjs → open-members-677P6KD3.mjs} +6 -6
- package/dist/lib/neutral/open-members-677P6KD3.mjs.map +7 -0
- package/dist/lib/neutral/{open-settings-RHDBW2K5.mjs → open-settings-PRBSGO6D.mjs} +6 -6
- package/dist/lib/neutral/open-settings-PRBSGO6D.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +3 -3
- package/dist/lib/neutral/plugin.mjs +4 -4
- package/dist/lib/neutral/{react-root-2DJPZQT4.mjs → react-root-YLYRCSAZ.mjs} +2 -2
- package/dist/lib/neutral/{react-root-2DJPZQT4.mjs.map → react-root-YLYRCSAZ.mjs.map} +3 -3
- package/dist/lib/neutral/{react-surface-LYCTOQLY.mjs → react-surface-5EQ6X4CL.mjs} +48 -70
- package/dist/lib/neutral/react-surface-5EQ6X4CL.mjs.map +7 -0
- package/dist/lib/neutral/{remove-objects-OWDMA4IF.mjs → remove-objects-PWJJI36V.mjs} +5 -5
- package/dist/lib/neutral/remove-objects-PWJJI36V.mjs.map +7 -0
- package/dist/lib/neutral/{rename-SR6BBSPU.mjs → rename-4727PKI4.mjs} +8 -7
- package/dist/lib/neutral/rename-4727PKI4.mjs.map +7 -0
- package/dist/lib/neutral/{rename-object-5H6E5AOX.mjs → rename-object-FXUAB5FN.mjs} +8 -7
- package/dist/lib/neutral/rename-object-FXUAB5FN.mjs.map +7 -0
- package/dist/lib/neutral/{repair-PSYRVSJ6.mjs → repair-HMH476U3.mjs} +3 -3
- package/dist/lib/neutral/repair-HMH476U3.mjs.map +7 -0
- package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs → restore-field-3ICSIHGA.mjs} +3 -3
- package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs → restore-objects-V2BTEWN3.mjs} +3 -3
- package/dist/lib/neutral/{settings-Q32EQCHX.mjs → settings-5IBSYBVU.mjs} +3 -3
- package/dist/lib/neutral/{settings-Q32EQCHX.mjs.map → settings-5IBSYBVU.mjs.map} +3 -3
- package/dist/lib/neutral/{share-5Y4NZA75.mjs → share-ZOZPAUGI.mjs} +3 -3
- package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs → snapshot-ZC5PU55W.mjs} +3 -3
- package/dist/lib/neutral/{spaces-ready-GBF72QJH.mjs → spaces-ready-EXPCJD4N.mjs} +11 -11
- package/dist/lib/neutral/spaces-ready-EXPCJD4N.mjs.map +7 -0
- package/dist/lib/neutral/{state-DPBOZRAW.mjs → state-KMH2NUAL.mjs} +2 -2
- package/dist/lib/neutral/state-KMH2NUAL.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +1 -1
- package/dist/lib/neutral/translations.mjs +4 -2
- package/dist/lib/neutral/translations.mjs.map +3 -3
- package/dist/lib/neutral/types/index.mjs +9 -3
- package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs → undo-mappings-P43EAUGI.mjs} +5 -5
- package/dist/lib/neutral/{undo-mappings-OBRQOYN4.mjs.map → undo-mappings-P43EAUGI.mjs.map} +3 -3
- package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs → wait-for-object-WURK2SLQ.mjs} +3 -3
- package/dist/types/dx.config.d.ts +28 -0
- package/dist/types/dx.config.d.ts.map +1 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +12 -0
- package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/database.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +0 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +13 -1
- package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -1
- 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/index.d.ts +10 -54
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts +1 -1
- package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +3 -33
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +2 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/commands/database/add.d.ts.map +1 -1
- package/dist/types/src/commands/queue/query.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts +20 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +1 -2
- package/dist/types/src/constants.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +20 -0
- package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -1
- package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +1 -1
- package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts +12 -0
- package/dist/types/src/containers/RenamePopover/RenamePopover.d.ts.map +1 -0
- package/dist/types/src/containers/RenamePopover/index.d.ts +3 -0
- package/dist/types/src/containers/RenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts +15 -0
- package/dist/types/src/containers/SpaceHomeArticle/SpaceHomeArticle.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeArticle/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts +22 -0
- package/dist/types/src/containers/SpaceHomeRecent/SpaceHomeRecent.d.ts.map +1 -0
- package/dist/types/src/containers/SpaceHomeRecent/index.d.ts +2 -0
- package/dist/types/src/containers/SpaceHomeRecent/index.d.ts.map +1 -0
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +20 -0
- package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +20 -0
- package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +20 -0
- package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +3 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +28 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/add-object.d.ts.map +1 -1
- package/dist/types/src/operations/helpers.d.ts.map +1 -1
- package/dist/types/src/operations/remove-objects.d.ts.map +1 -1
- package/dist/types/src/operations/rename-object.d.ts.map +1 -1
- package/dist/types/src/operations/rename.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +20 -0
- package/dist/types/src/translations.d.ts.map +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 +7 -1
- package/dist/types/src/types/form.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/surface.d.ts +26 -0
- package/dist/types/src/types/surface.d.ts.map +1 -0
- package/dist/types/src/types/types.d.ts +7 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +35 -0
- package/package.json +51 -50
- package/src/SpacePlugin.test.ts +1 -1
- package/src/SpacePlugin.ts +1 -7
- package/src/capabilities/app-graph-builder/extensions/collections.ts +44 -24
- package/src/capabilities/app-graph-builder/extensions/companions.ts +3 -3
- package/src/capabilities/app-graph-builder/extensions/database.ts +17 -14
- package/src/capabilities/app-graph-builder/extensions/settings.ts +9 -9
- package/src/capabilities/app-graph-builder/extensions/shared.ts +5 -20
- package/src/capabilities/app-graph-builder/extensions/spaces.ts +49 -26
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/navigation-resolver.ts +6 -13
- package/src/capabilities/react-root.tsx +1 -1
- package/src/capabilities/react-surface.tsx +58 -88
- package/src/capabilities/repair.ts +4 -2
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/spaces-ready.ts +8 -15
- package/src/capabilities/state.ts +1 -1
- package/src/capabilities/undo-mappings.ts +3 -3
- package/src/commands/database/add.ts +4 -2
- package/src/commands/queue/query.ts +4 -3
- package/src/components/AwaitingObject/AwaitingObject.tsx +1 -1
- package/src/components/CreateObjectPanel/CreateObjectPanel.tsx +2 -2
- package/src/components/ForeignKeys/ForeignKeys.tsx +1 -1
- package/src/components/SpaceSettings/SpaceSettings.tsx +3 -3
- package/src/constants.ts +5 -6
- package/src/containers/CollectionArticle/CollectionArticle.tsx +10 -6
- package/src/containers/CollectionSection/CollectionSection.tsx +1 -1
- package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +10 -7
- package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +5 -5
- package/src/containers/ImportSpaceDialog/ImportSpaceDialog.tsx +3 -3
- package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +3 -3
- package/src/containers/JoinDialog/JoinDialog.tsx +13 -11
- package/src/containers/MembersContainer/MembersContainer.tsx +5 -5
- package/src/containers/MenuFooter/MenuFooter.tsx +3 -3
- package/src/containers/ObjectCardStack/ObjectCardStack.tsx +3 -3
- package/src/containers/RecordArticle/RecordArticle.tsx +67 -8
- package/src/containers/RelatedArticle/RelatedArticle.tsx +17 -13
- package/src/containers/RenamePopover/RenamePopover.tsx +112 -0
- package/src/containers/RenamePopover/index.ts +6 -0
- package/src/containers/SchemaContainer/SchemaContainer.tsx +1 -1
- package/src/containers/SpaceHomeArticle/SpaceHomeArticle.tsx +100 -0
- package/src/containers/SpaceHomeArticle/index.ts +5 -0
- package/src/containers/SpaceHomeRecent/SpaceHomeRecent.tsx +101 -0
- package/src/containers/SpaceHomeRecent/index.ts +5 -0
- package/src/containers/SpacePresence/SpacePresence.tsx +1 -1
- package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +7 -7
- package/src/containers/SyncStatus/SyncStatus.tsx +2 -2
- package/src/containers/index.ts +3 -2
- package/src/hooks/useInputSurfaceLookup.tsx +3 -2
- package/src/hooks/useRelatedObjects.ts +13 -1
- package/src/meta.ts +2 -27
- package/src/operations/add-object.ts +7 -14
- package/src/operations/create.ts +2 -2
- package/src/operations/definitions.ts +1 -1
- package/src/operations/helpers.ts +1 -1
- package/src/operations/open-members.ts +3 -3
- package/src/operations/open-settings.ts +3 -3
- package/src/operations/remove-objects.ts +3 -2
- package/src/operations/rename-object.ts +3 -2
- package/src/operations/rename.ts +3 -2
- package/src/translations.ts +3 -1
- package/src/types/capabilities.ts +8 -8
- package/src/types/events.ts +5 -5
- package/src/types/form.ts +5 -1
- package/src/types/index.ts +1 -0
- package/src/types/surface.ts +31 -0
- package/src/types/types.ts +9 -1
- package/src/util.ts +3 -3
- package/dist/lib/neutral/CollectionArticle-S3OF5KJ7.mjs.map +0 -7
- package/dist/lib/neutral/CreateObjectDialog-66R3K6I3.mjs.map +0 -7
- package/dist/lib/neutral/CreateSpaceDialog-CDGSEIJB.mjs.map +0 -7
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs +0 -59
- package/dist/lib/neutral/EntityRenamePopover-MYSW262F.mjs.map +0 -7
- package/dist/lib/neutral/ImportSpaceDialog-7GKV4OTF.mjs.map +0 -7
- package/dist/lib/neutral/InlineSyncStatus-TBJKZCH7.mjs.map +0 -7
- package/dist/lib/neutral/JoinDialog-SSFKRFTJ.mjs.map +0 -7
- package/dist/lib/neutral/MembersContainer-KMCQDWCS.mjs.map +0 -7
- package/dist/lib/neutral/MenuFooter-5JT7V5FZ.mjs.map +0 -7
- package/dist/lib/neutral/ObjectCardStack-IXNU3HEN.mjs.map +0 -7
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs +0 -51
- package/dist/lib/neutral/RecordArticle-QWGH25NT.mjs.map +0 -7
- package/dist/lib/neutral/RelatedArticle-YDNGUDAJ.mjs.map +0 -7
- package/dist/lib/neutral/SchemaContainer-Q4BP6X2M.mjs.map +0 -7
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs +0 -56
- package/dist/lib/neutral/SpaceRenamePopover-KFWL4CTJ.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettings-YAHBOY5T.mjs.map +0 -7
- package/dist/lib/neutral/SpaceSettingsContainer-IB34TEOB.mjs.map +0 -7
- package/dist/lib/neutral/SyncStatus-CWOXWDDZ.mjs.map +0 -7
- package/dist/lib/neutral/add-object-QYOMCBJA.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-builder-SQGCUCDO.mjs.map +0 -7
- package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs +0 -81
- package/dist/lib/neutral/app-graph-serializer-IBPPU5VR.mjs.map +0 -7
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs +0 -37
- package/dist/lib/neutral/chunk-4RTSNTDC.mjs.map +0 -7
- package/dist/lib/neutral/chunk-7WUJENBF.mjs.map +0 -7
- package/dist/lib/neutral/chunk-B7DBIARR.mjs +0 -8
- package/dist/lib/neutral/chunk-BBQR23DW.mjs.map +0 -7
- package/dist/lib/neutral/chunk-F5MESIRH.mjs +0 -19
- package/dist/lib/neutral/chunk-F5MESIRH.mjs.map +0 -7
- package/dist/lib/neutral/chunk-K34BPPQE.mjs.map +0 -7
- package/dist/lib/neutral/chunk-YY62663T.mjs.map +0 -7
- package/dist/lib/neutral/create-EPIFSRJA.mjs.map +0 -7
- package/dist/lib/neutral/identity-created-57RML5XT.mjs.map +0 -7
- package/dist/lib/neutral/navigation-resolver-IFVQRCGU.mjs.map +0 -7
- package/dist/lib/neutral/open-members-BEXOSSBS.mjs.map +0 -7
- package/dist/lib/neutral/open-settings-RHDBW2K5.mjs.map +0 -7
- package/dist/lib/neutral/react-surface-LYCTOQLY.mjs.map +0 -7
- package/dist/lib/neutral/remove-objects-OWDMA4IF.mjs.map +0 -7
- package/dist/lib/neutral/rename-SR6BBSPU.mjs.map +0 -7
- package/dist/lib/neutral/rename-object-5H6E5AOX.mjs.map +0 -7
- package/dist/lib/neutral/repair-PSYRVSJ6.mjs.map +0 -7
- package/dist/lib/neutral/spaces-ready-GBF72QJH.mjs.map +0 -7
- package/dist/lib/neutral/state-DPBOZRAW.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -5
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/EntityRenamePopover/EntityRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts +0 -2
- package/dist/types/src/containers/EntityRenamePopover/index.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -7
- package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +0 -1
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +0 -2
- package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +0 -1
- package/src/capabilities/app-graph-serializer.ts +0 -85
- package/src/containers/EntityRenamePopover/EntityRenamePopover.tsx +0 -52
- package/src/containers/EntityRenamePopover/index.ts +0 -5
- package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +0 -54
- package/src/containers/SpaceRenamePopover/index.ts +0 -5
- /package/dist/lib/neutral/{SmallPresenceLive-GUF4WLUC.mjs.map → SmallPresenceLive-L4H7WJOA.mjs.map} +0 -0
- /package/dist/lib/neutral/{SpacePresence-ACEXUS3N.mjs.map → SpacePresence-PDTEDHDE.mjs.map} +0 -0
- /package/dist/lib/neutral/{add-relation-HV3VCMJG.mjs.map → add-relation-GWSE42BU.mjs.map} +0 -0
- /package/dist/lib/neutral/{add-type-CZVKSEIW.mjs.map → add-type-C3KYE6PI.mjs.map} +0 -0
- /package/dist/lib/neutral/{chunk-B7DBIARR.mjs.map → chunk-I5JXVBXX.mjs.map} +0 -0
- /package/dist/lib/neutral/{close-FGQN37PK.mjs.map → close-YZHFYPUN.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-LIA5M3WI.mjs.map → delete-EFM7CAVO.mjs.map} +0 -0
- /package/dist/lib/neutral/{delete-field-ZIGFXFHY.mjs.map → delete-field-ONAPFFO5.mjs.map} +0 -0
- /package/dist/lib/neutral/{duplicate-object-X37FM6PW.mjs.map → duplicate-object-OJRPFV5I.mjs.map} +0 -0
- /package/dist/lib/neutral/{export-space-VWJHVXWF.mjs.map → export-space-M5RNVUQX.mjs.map} +0 -0
- /package/dist/lib/neutral/{get-share-link-3LEA5FSK.mjs.map → get-share-link-FUQBJPSQ.mjs.map} +0 -0
- /package/dist/lib/neutral/{import-space-Y5L3QE3C.mjs.map → import-space-L3AUIARM.mjs.map} +0 -0
- /package/dist/lib/neutral/{join-Z5K4OAIG.mjs.map → join-VY3QYBU7.mjs.map} +0 -0
- /package/dist/lib/neutral/{migrate-G7I52UKD.mjs.map → migrate-WPUISBC4.mjs.map} +0 -0
- /package/dist/lib/neutral/{navigation-handler-QQJYEMAS.mjs.map → navigation-handler-IKXZGMII.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-CPWVZSI4.mjs.map → open-RRYULTSY.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-create-object-4LN4PR6N.mjs.map → open-create-object-BRUVFZSY.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-create-space-VPAW3F2T.mjs.map → open-create-space-ARLQWW65.mjs.map} +0 -0
- /package/dist/lib/neutral/{open-import-space-VLQ5V55H.mjs.map → open-import-space-65H57JXX.mjs.map} +0 -0
- /package/dist/lib/neutral/{restore-field-UHDG2ZQM.mjs.map → restore-field-3ICSIHGA.mjs.map} +0 -0
- /package/dist/lib/neutral/{restore-objects-2UD5P6OC.mjs.map → restore-objects-V2BTEWN3.mjs.map} +0 -0
- /package/dist/lib/neutral/{share-5Y4NZA75.mjs.map → share-ZOZPAUGI.mjs.map} +0 -0
- /package/dist/lib/neutral/{snapshot-H3HKOFVP.mjs.map → snapshot-ZC5PU55W.mjs.map} +0 -0
- /package/dist/lib/neutral/{wait-for-object-3TAWUWTP.mjs.map → wait-for-object-WURK2SLQ.mjs.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/SpacePlugin.ts", "raw-loader:/__w/dxos/dxos/packages/plugins/plugin-space/PLUGIN.mdl"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent, ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { Tag } from '@dxos/echo';\nimport { AttentionEvents } from '@dxos/plugin-attention';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { translations as componentsTranslations } from '@dxos/react-ui-components/translations';\nimport { translations as formTranslations } from '@dxos/react-ui-form/translations';\nimport { DataTypes } from '@dxos/schema';\nimport { translations as shellTranslations } from '@dxos/shell/react';\nimport {\n AnchoredTo,\n Employer,\n Event,\n HasConnection,\n HasRelationship,\n HasSubject,\n Organization,\n Person,\n Pipeline,\n Project,\n Task,\n} from '@dxos/types';\n\nimport {\n CreateObject,\n IdentityCreated,\n NavigationHandler,\n NavigationResolver,\n OperationHandler,\n UndoMappings,\n ReactRoot,\n ReactSurface,\n Repair,\n SpaceSettings,\n SpaceState,\n SpacesReady,\n AppGraphBuilder,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { SpaceEvents } from '#types';\nimport { type SpacePluginOptions } from '#types';\n\n// eslint-disable-next-line import/no-relative-packages\nimport pluginSpec from '../PLUGIN.mdl?raw';\n\nexport const SpacePlugin = Plugin.define<SpacePluginOptions>(meta).pipe(\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addNavigationHandlerModule(({ invitationProp }) => ({\n activate: () => NavigationHandler({ invitationProp }),\n })),\n AppPlugin.addNavigationResolverModule({ activatesOn: ClientEvents.ClientReady, activate: NavigationResolver }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addReactRootModule({ activate: ReactRoot }),\n AppPlugin.addSchemaModule({\n schema: [\n ...DataTypes,\n AnchoredTo.AnchoredTo,\n Employer.Employer,\n Event.Event,\n HasConnection.HasConnection,\n HasRelationship.HasRelationship,\n HasSubject.HasSubject,\n Organization.Organization,\n Person.Person,\n Pipeline.Pipeline,\n Project.Project,\n Tag.Tag,\n Task.Task,\n ],\n }),\n AppPlugin.addSettingsModule({ activate: SpaceSettings }),\n AppPlugin.addTranslationsModule({\n translations: [...translations, ...componentsTranslations, ...formTranslations, ...shellTranslations],\n }),\n Plugin.addModule({\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: ActivationEvent.oneOf(AppActivationEvents.SetupSettings, AppActivationEvents.SetupAppGraph),\n firesAfterActivation: [SpaceEvents.StateReady],\n activate: SpaceState,\n }),\n Plugin.addModule(\n ({\n shareableLinkOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost',\n invitationPath = '/',\n invitationProp = 'spaceInvitationCode',\n }) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationPath || '/', shareableLinkOrigin);\n baseUrl.searchParams.set(invitationProp, invitationCode);\n return baseUrl.toString();\n };\n\n return {\n id: Capability.getModuleTag(ReactSurface),\n activatesOn: ActivationEvents.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the settings dialog is loaded when surfaces activation is more granular.\n firesBeforeActivation: [SpaceEvents.SetupSettingsPanel],\n activate: () => ReactSurface({ createInvitationUrl }),\n };\n },\n ),\n Plugin.addModule(\n ({ shareableLinkOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost' }) => ({\n id: Capability.getModuleTag(AppGraphBuilder),\n activatesOn: ActivationEvent.allOf(AppActivationEvents.SetupSettings, AppActivationEvents.SetupAppGraph),\n activate: () => AppGraphBuilder({ shareableLinkOrigin }),\n }),\n ),\n Plugin.addModule(\n ({\n shareableLinkOrigin = typeof window !== 'undefined' ? window.location.origin : 'http://localhost',\n invitationPath = '/',\n invitationProp = 'spaceInvitationCode',\n observability = false,\n }) => {\n const createInvitationUrl = (invitationCode: string) => {\n const baseUrl = new URL(invitationPath || '/', shareableLinkOrigin);\n baseUrl.searchParams.set(invitationProp, invitationCode);\n return baseUrl.toString();\n };\n\n return {\n id: Capability.getModuleTag(UndoMappings),\n activatesOn: ActivationEvents.SetupProcessManager,\n activate: () => UndoMappings({ createInvitationUrl, observability }),\n };\n },\n ),\n Plugin.addModule({\n activatesOn: ClientEvents.IdentityCreated,\n firesAfterActivation: [SpaceEvents.PersonalSpaceReady],\n activate: IdentityCreated,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(\n ActivationEvents.ProcessManagerReady,\n AppActivationEvents.LayoutReady,\n AppActivationEvents.AppGraphReady,\n AttentionEvents.AttentionReady,\n SpaceEvents.StateReady,\n ClientEvents.SpacesReady,\n ),\n activate: SpacesReady,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.SpacesReady,\n activate: Repair,\n }),\n AppPlugin.addPluginAssetModule({\n asset: { pluginId: meta.profile.key, path: 'PLUGIN.mdl', content: pluginSpec, mimeType: 'application/x-mdl' },\n }),\n Plugin.make,\n);\n\nexport default SpacePlugin;\n", "---\nid: org.dxos.plugin.space\nname: SpacePlugin\nversion: 0.1.0\n---\n\nCore workspace container plugin for `DXOS` Composer \u2014 creates, manages, and shares collaborative spaces with full membership control, object lifecycle management, schema registration, and navigation.\n\n## Extensions\n\nThe following extension dialects are used in this document.\nEach extension is defined in the Appendix or resolved via its URI.\n\n| Term | URI |\n|-------------|--------------------------------|\n| `type` | `org.dxos.mdl.type@1.0` |\n| `feat` | `org.dxos.mdl.feat@1.0` |\n| `test` | `org.dxos.mdl.test@1.0` |\n| `component` | `org.dxos.mdl.component@1.0` |\n| `op` | `org.dxos.mdl.op@1.0` |\n\n## Types\n\n```mdl\ntype SpaceForm\n fields:\n name?: string # display name for the space\n icon?: string # phosphor icon identifier\n hue?: string # colour token\n edgeReplication?: boolean # enable EDGE-based replication\n```\n\n```mdl\ntype SpacePluginOptions\n fields:\n shareableLinkOrigin?: string # base URL used for invitation and object copy-links\n invitationPath?: string # path appended to origin; default '/'\n invitationProp?: string # query param name for the invitation code\n observability?: boolean # emit observability events\n```\n\n```mdl\ntype ObjectViewerProps\n fields:\n lastSeen: number # unix timestamp of last observation\n currentlyAttended: boolean # true if the peer is currently viewing this object\n```\n\n```mdl\ntype PluginState\n fields:\n viewersByObject: Record<ObjectId, Map<PublicKey, ObjectViewerProps>>\n viewersByIdentity: Map<PublicKey, Set<ObjectId>>\n awaiting: string | undefined # DXN of an object being waited on\n spaceNames: Record<string, string> # cached names for closed/loading spaces\n sdkMigrationRunning: Record<string, boolean>\n navigableCollections: boolean\n enabledEdgeReplication: boolean\n```\n\n## Components\n\n```mdl\ncomponent CollectionArticle\n desc: Main article view for a Collection \u2014 renders its child objects as an ordered list, supports drag-reorder and per-item actions.\n props:\n subject: Collection\n state:\n selected?: Obj.Unknown\n actions:\n addObject(object: Obj.Unknown)\n removeObject(object: Obj.Unknown)\n reorder(from: number, to: number)\n layout: |\n \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 [toolbar] \u2502\n \u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 object row \u2502\n \u2502 object row \u2502\n \u2502 object row \u2026 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n```mdl\ncomponent CollectionSection\n desc: Compact list of objects belonging to a collection, used inside sidebars and companion panels.\n props:\n collection: Collection\n state:\n expanded: boolean\n actions:\n toggleExpand()\n```\n\n```mdl\ncomponent RecordArticle\n desc: Schema-driven form/detail view for a single ECHO object rendered in an article slot.\n props:\n subject: Obj.Unknown\n actions:\n save()\n discard()\n```\n\n```mdl\ncomponent RelatedArticle\n desc: Companion panel listing objects semantically related to the current subject via ECHO relations.\n props:\n subject: Obj.Unknown\n state:\n relations: Obj.Unknown[]\n```\n\n```mdl\ncomponent CreateObjectDialog\n desc: Modal dialog that lets the user pick a schema type and fill initial fields to create a new ECHO object.\n props:\n target: Database | Collection\n views?: boolean\n typename?: string\n initialFormValues?: Record<string, any>\n navigable?: boolean\n actions:\n confirm(data: Record<string, any>)\n cancel()\n```\n\n```mdl\ncomponent CreateSpaceDialog\n desc: Modal dialog for creating a new space with name, icon, colour, and replication options.\n actions:\n confirm(form: SpaceForm)\n cancel()\n```\n\n```mdl\ncomponent ImportSpaceDialog\n desc: Dialog that accepts a space archive file and imports it as a new space.\n actions:\n confirm(archive: { filename: string; contents: Uint8Array })\n cancel()\n```\n\n```mdl\ncomponent JoinDialog\n desc: Dialog that accepts an invitation code and joins the corresponding space.\n props:\n invitationCode?: string\n actions:\n join(code: string)\n cancel()\n```\n\n```mdl\ncomponent MembersContainer\n desc: Panel showing all members of a space with their presence status and role; allows managing invitations.\n props:\n space: Space\n```\n\n```mdl\ncomponent SpaceSettingsContainer\n desc: Settings panel for a single space \u2014 name, icon, colour, replication toggle, and member management.\n props:\n space: Space\n```\n\n```mdl\ncomponent SchemaContainer\n desc: Browsable table of all registered ECHO schemas in the current space; allows adding new schemas.\n props:\n db: Database\n```\n\n```mdl\ncomponent ViewEditor\n desc: Interactive editor for a View \u2014 reorder, add, and remove fields; configure field display settings.\n props:\n view: View\n```\n\n```mdl\ncomponent SpacePresence\n desc: Avatar cluster indicating which peers are currently attending the active object/space.\n props:\n space: Space\n```\n\n```mdl\ncomponent SyncStatus\n desc: Icon/indicator reflecting the CRDT sync health of the active space.\n props:\n space: Space\n```\n\n## Operations\n\n```mdl\nop SpaceOperation.Create\n desc: Creates a new space with the given display properties.\n input:\n name?: string\n icon?: string\n hue?: string\n edgeReplication?: boolean\n output: { id: string; subject: string[]; space: Space }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.Join\n desc: Joins an existing space by resolving and accepting an invitation code.\n input:\n invitationCode?: string\n output: void\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.Open\n desc: Navigates the layout to the given space.\n input:\n space: Space\n output: void\n effects: [layout:navigate]\n```\n\n```mdl\nop SpaceOperation.Close\n desc: Removes the space from the active navigation context.\n input:\n space: Space\n output: void\n effects: [layout:navigate]\n```\n\n```mdl\nop SpaceOperation.Share\n desc: Creates an invitation observable for sharing a space; supports single-use and multi-use codes.\n input:\n space: Space\n type: Invitation.Type\n authMethod: Invitation.AuthMethod\n multiUse: boolean\n target?: string\n output: CancellableInvitationObservable\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.Rename\n desc: Opens a rename popover for the given space.\n input:\n space: Space\n caller?: string\n output: void\n effects: [layout:dialog]\n```\n\n```mdl\nop SpaceOperation.AddObject\n desc: Adds an existing ECHO object to a database or collection and optionally navigates to it.\n input:\n object: Obj.Unknown\n target: Database | Collection\n hidden?: boolean\n targetNodeId?: string\n output: { id: string; subject: string[]; object: Obj.Unknown }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.RemoveObjects\n desc: Removes one or more objects from a collection; returns undo data.\n input:\n objects: Obj.Unknown[]\n target?: Collection\n output: { objects: Obj.Unknown[]; parentCollection: Collection; indices: number[]; wasActive: string[] }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.RestoreObjects\n desc: Restores previously removed objects to their collection (inverse of RemoveObjects).\n input:\n objects: Obj.Unknown[]\n parentCollection: Collection\n indices: number[]\n wasActive: string[]\n output: void\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.AddSchema\n desc: Registers a new schema type in the space database; optionally makes it visible in the type picker.\n input:\n db: Database\n name?: string\n typename?: string\n version?: string\n schema: Schema.AnyNoContext\n show?: boolean\n output: { id: string; object: Type.PersistentType; schema: Type.RuntimeType }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.AddRelation\n desc: Creates a typed relation between two ECHO objects.\n input:\n db: Database\n schema: Schema.AnyNoContext\n source: Obj.Unknown\n target: Obj.Unknown\n fields?: Record<string, any>\n output: { relation: any }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.DeleteField\n desc: Removes a field from a View; returns undo data.\n input:\n view: View\n fieldId: string\n output: { field: View.FieldSchema; props: any; index: number }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.RestoreField\n desc: Restores a deleted field to a View at its original index (inverse of DeleteField).\n input:\n view: View\n field: View.FieldSchema\n props: any\n index: number\n output: void\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.ImportSpace\n desc: Imports a binary space archive as a brand-new space.\n input:\n archive: { filename: string; contents: Uint8Array }\n tags?: string[]\n output: { space: Space }\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.ExportSpace\n desc: Serialises a space to an archive and triggers a browser download.\n input:\n space: Space\n format: SpaceArchive.Format\n output: void\n effects: [fs:write]\n```\n\n```mdl\nop SpaceOperation.Snapshot\n desc: Captures a point-in-time snapshot of a database or filtered query as a Blob.\n input:\n db: Database\n query?: QueryAST.Query\n output: { snapshot: Blob }\n effects: [echo:read]\n```\n\n```mdl\nop SpaceOperation.Migrate\n desc: Runs registered migrations against a space to bring it to the current schema version.\n input:\n space: Space\n version?: string\n output: boolean # true if any migration ran\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.Reset\n desc: |\n Permanently deletes all objects and truncates feeds in a space via a new epoch.\n This operation is unrecoverable.\n input:\n space: Space\n output: void\n effects: [echo:write]\n```\n\n```mdl\nop SpaceOperation.GetShareLink\n desc: Constructs a shareable URL for a space or specific object; optionally copies it to the clipboard.\n input:\n space: Space\n target?: string\n copyToClipboard?: boolean\n output: string # fully-qualified URL\n effects: [clipboard]\n```\n\n```mdl\nop CollectionOperation.Create\n desc: Creates a new Collection object in the active space.\n input:\n name?: string\n output: { object: Collection }\n effects: [echo:write]\n```\n\n## Features\n\n```mdl\nfeat F-1: Space Lifecycle\n\n req F-1.1: User can create a new space via op:SpaceOperation.Create; the space appears in the navigation graph.\n req F-1.2: User can join a space via op:SpaceOperation.Join with an invitation code.\n req F-1.3: User can close/open spaces; closed spaces remain listed with their cached name.\n req F-1.4:\n when: user triggers op:SpaceOperation.Reset\n then: all objects are deleted and a new epoch is created; the operation is unrecoverable\n```\n\n```mdl\nfeat F-2: Membership and Sharing\n\n req F-2.1:\n when: user triggers op:SpaceOperation.Share\n then: an invitation observable is created; the invitation URL uses the configured shareableLinkOrigin\n\n req F-2.2: MembersContainer shows all current members with their presence status.\n req F-2.3: User can generate single-use or multi-use invitation links.\n req F-2.4: User can get a direct shareable link to a space or object via op:SpaceOperation.GetShareLink.\n```\n\n```mdl\nfeat F-3: Object Lifecycle\n\n req F-3.1:\n when: user opens the create-object dialog\n then: all registered schema types are shown for selection\n\n req F-3.2: op:SpaceOperation.AddObject adds an object to a collection and fires navigation if navigable.\n req F-3.3: op:SpaceOperation.RemoveObjects records undo data; op:SpaceOperation.RestoreObjects reverts the removal.\n req F-3.4: op:SpaceOperation.DuplicateObject creates a shallow copy of an object in the same target.\n```\n\n```mdl\nfeat F-4: Schema Registry\n\n req F-4.1:\n when: a plugin registers a schema via AppPlugin.addSchemaModule\n then: the type is available globally across all spaces\n\n req F-4.2:\n when: user triggers op:SpaceOperation.AddSchema\n then: a StoredSchema entry is persisted in the space database\n\n req F-4.3: SchemaContainer lists all schemas in the active space; user can add a new user-defined schema.\n```\n\n```mdl\nfeat F-5: Collections\n\n req F-5.1: A Collection is an ordered list of references to ECHO objects.\n req F-5.2: CollectionArticle renders collection contents with drag-to-reorder support.\n req F-5.3: op:CollectionOperation.Create creates an empty Collection in the active space.\n```\n\n```mdl\nfeat F-6: Persistence and Migrations\n\n req F-6.1:\n when: client emits SetupMigration\n then: all registered migrations run against every space\n\n req F-6.2:\n when: user triggers op:SpaceOperation.Migrate\n then: the space is migrated to the specified (or latest) version; returns true if work was done\n\n req F-6.3: op:SpaceOperation.ExportSpace serialises a space as a binary archive for backup.\n req F-6.4: op:SpaceOperation.ImportSpace restores an archive as a new space with optional tags.\n```\n\n```mdl\nfeat F-7: View and Field Editing\n\n req F-7.1: op:SpaceOperation.DeleteField removes a field from a View and returns full undo state.\n req F-7.2: op:SpaceOperation.RestoreField reinstates a deleted field at its original position.\n req F-7.3: ViewEditor provides an interactive UI for reordering and configuring View fields.\n```\n\n```mdl\nfeat F-8: Presence and Sync Status\n\n req F-8.1: SpacePresence tracks which peers are viewing which objects via the attention system.\n req F-8.2: SyncStatus reflects CRDT sync health; unsynchronised changes are indicated visually.\n req F-8.3:\n when: a peer starts or stops attending an object\n then: viewersByObject and viewersByIdentity maps are updated in ephemeral plugin state\n```\n\n## Acceptance\n\n```mdl\ntest T-1: Create and open a space\n given: no spaces exist\n when: op:SpaceOperation.Create runs with name \"Acme\"\n then:\n - new Space object is returned with the given name\n - space appears in the navigation graph\n```\n\n```mdl\ntest T-2: Join space via invitation\n given: an invitation URL has been generated for an existing space\n when: op:SpaceOperation.Join runs with the invitation code\n then:\n - space appears in the local client's space list\n - space state transitions to SPACE_READY\n```\n\n```mdl\ntest T-3: Add and remove object with undo\n given: a Collection in an active space\n when: op:SpaceOperation.AddObject adds object X, then op:SpaceOperation.RemoveObjects removes it\n then:\n - RemoveObjects output records the original index and collection\n - op:SpaceOperation.RestoreObjects puts X back at the same index\n```\n\n```mdl\ntest T-4: Export and import space\n given: a space containing 5 objects\n when: op:SpaceOperation.ExportSpace runs, then op:SpaceOperation.ImportSpace loads the archive\n then:\n - the new space contains the same 5 objects\n - the original space is unchanged\n```\n\n```mdl\ntest T-5: Schema registration\n given: an active space with no custom schemas\n when: op:SpaceOperation.AddSchema runs with a new schema definition\n then:\n - a StoredSchema entry exists in the space database\n - the schema is available in the create-object dialog type picker\n```\n\n```mdl\ntest T-6: View field delete and restore\n given: a View with fields [\"name\", \"email\", \"phone\"]\n when: op:SpaceOperation.DeleteField removes \"email\", then op:SpaceOperation.RestoreField restores it\n then:\n - after delete, View has fields [\"name\", \"phone\"]\n - after restore, View has fields [\"name\", \"email\", \"phone\"] in original order\n```\n\n---\n\n## Appendix: Extension Definitions\n\n```mdl\next type\n uri: org.dxos.mdl.type@1.0\n desc: A named data structure with typed fields and optional literals.\n fields:\n desc?: Prose\n fields?: FieldMap\n literals?: UnionList\n extends?: TypeRef[]\n```\n\n```mdl\next feat\n uri: org.dxos.mdl.feat@1.0\n desc: A named feature grouping one or more requirements.\n fields:\n desc?: Prose\n req: RequirementList\n nesting: self\n```\n\n```mdl\next test\n uri: org.dxos.mdl.test@1.0\n desc: An acceptance scenario expressed as given / when / then steps.\n fields:\n given?: Step | Step[]\n when?: Step | Step[]\n then: Step | Step[]\n tags?: TagList\n```\n\n```mdl\next component\n uri: org.dxos.mdl.component@1.0\n desc: A UI component with props, internal state, slots, actions, and events.\n fields:\n desc?: Prose\n props?: FieldMap\n state?: FieldMap\n slots?: FieldMap\n actions?: ActionMap\n emits?: EventMap\n layout?: CodeBlock\n```\n\n```mdl\next op\n uri: org.dxos.mdl.op@1.0\n desc: |\n A named operation with typed inputs, outputs, and declared errors.\n Pure ops have no effects or requires. Effectful ops declare both.\n fields:\n desc?: Prose\n input?: FieldMap\n output?: TypeExpr\n errors?: ErrorMap\n effects?: EffectList\n requires?: ServiceList\n note?: Prose\n```\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ActivationEvent", "ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "Tag", "AttentionEvents", "ClientEvents", "translations", "componentsTranslations", "formTranslations", "DataTypes", "shellTranslations", "AnchoredTo", "Employer", "Event", "HasConnection", "HasRelationship", "HasSubject", "Organization", "Person", "Pipeline", "Project", "Task", "CreateObject", "IdentityCreated", "NavigationHandler", "NavigationResolver", "OperationHandler", "UndoMappings", "ReactRoot", "ReactSurface", "Repair", "SpaceSettings", "SpaceState", "SpacesReady", "AppGraphBuilder", "meta", "SpaceEvents", "SpacePlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addCreateObjectModule", "activate", "CreateObject", "addNavigationHandlerModule", "invitationProp", "NavigationHandler", "addNavigationResolverModule", "activatesOn", "ClientEvents", "ClientReady", "NavigationResolver", "addOperationHandlerModule", "OperationHandler", "addReactRootModule", "ReactRoot", "addSchemaModule", "schema", "DataTypes", "AnchoredTo", "Employer", "Event", "HasConnection", "HasRelationship", "HasSubject", "Organization", "Person", "Pipeline", "Project", "Tag", "Task", "addSettingsModule", "SpaceSettings", "addTranslationsModule", "translations", "componentsTranslations", "formTranslations", "shellTranslations", "addModule", "ActivationEvent", "oneOf", "AppActivationEvents", "SetupSettings", "SetupAppGraph", "firesAfterActivation", "SpaceEvents", "StateReady", "SpaceState", "shareableLinkOrigin", "window", "location", "origin", "invitationPath", "createInvitationUrl", "invitationCode", "baseUrl", "URL", "searchParams", "set", "toString", "id", "Capability", "getModuleTag", "ReactSurface", "ActivationEvents", "SetupReactSurface", "firesBeforeActivation", "SetupSettingsPanel", "AppGraphBuilder", "allOf", "observability", "UndoMappings", "SetupProcessManager", "IdentityCreated", "PersonalSpaceReady", "ProcessManagerReady", "LayoutReady", "AppGraphReady", "AttentionEvents", "AttentionReady", "SpacesReady", "Repair", "addPluginAssetModule", "asset", "pluginId", "profile", "key", "path", "content", "pluginSpec", "mimeType", "make"]
|
|
7
|
+
}
|
|
@@ -8,16 +8,16 @@ import { SpaceOperation } from "#operations";
|
|
|
8
8
|
var PERSONAL_SPACE_LABEL = [
|
|
9
9
|
"personal-space.label",
|
|
10
10
|
{
|
|
11
|
-
ns: meta.
|
|
11
|
+
ns: meta.profile.key
|
|
12
12
|
}
|
|
13
13
|
];
|
|
14
14
|
var UNNAMED_SPACE_LABEL = [
|
|
15
15
|
"unnamed-space.label",
|
|
16
16
|
{
|
|
17
|
-
ns: meta.
|
|
17
|
+
ns: meta.profile.key
|
|
18
18
|
}
|
|
19
19
|
];
|
|
20
|
-
var SPACES = `${meta.
|
|
20
|
+
var SPACES = `${meta.profile.key}-spaces`;
|
|
21
21
|
var makeCreateObjectEntryForDatabaseType = (type) => ({
|
|
22
22
|
id: Type.getTypename(type),
|
|
23
23
|
inputSchema: Type.getSchema(type),
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
makeCreateObjectEntryForDatabaseType,
|
|
40
40
|
getSpaceDisplayName
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-PSCIOT7Q.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { type Space, SpaceState } from '@dxos/client/echo';\nimport { Operation } from '@dxos/compute';\nimport { Obj, Type } from '@dxos/echo';\nimport { type Label } from '@dxos/ui-types/translations';\n\nimport { meta } from '#meta';\nimport { SpaceOperation } from '#operations';\nimport { type SpaceCapabilities } from '#types';\n\n//\n// Constants\n//\n\nconst PERSONAL_SPACE_LABEL: Label = ['personal-space.label', { ns: meta.profile.key }];\nconst UNNAMED_SPACE_LABEL: Label = ['unnamed-space.label', { ns: meta.profile.key }];\n\nexport const SPACES = `${meta.profile.key}-spaces`;\nexport { SHARED } from './types';\n\n//\n// Helpers\n//\n\n/**\n * Creates a synthetic CreateObjectEntry for a database-persisted object schema that has no dedicated plugin capability.\n * Sets inputSchema so the create dialog presents a form for the type's fields.\n */\nexport const makeCreateObjectEntryForDatabaseType = (type: Type.AnyObj): SpaceCapabilities.CreateObjectEntry => ({\n id: Type.getTypename(type),\n inputSchema: Type.getSchema(type),\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Obj.make(type, props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n });\n }),\n});\n\n/** Returns the display label for a space (name, namesCache entry, or fallback). */\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): Label => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name!\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? PERSONAL_SPACE_LABEL\n : UNNAMED_SPACE_LABEL;\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,YAAYA,YAAY;AAExB,SAAqBC,kBAAkB;AACvC,SAASC,iBAAiB;AAC1B,SAASC,KAAKC,YAAY;AAG1B,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAO/B,IAAMC,uBAA8B;EAAC;EAAwB;IAAEC,IAAIH,KAAKI,QAAQC;EAAI;;AACpF,IAAMC,sBAA6B;EAAC;EAAuB;IAAEH,IAAIH,KAAKI,QAAQC;EAAI;;AAE3E,IAAME,SAAS,GAAGP,KAAKI,QAAQC,GAAG;AAWlC,IAAMG,uCAAuC,CAACC,UAA4D;EAC/GC,IAAIX,KAAKY,YAAYF,IAAAA;EACrBG,aAAab,KAAKc,UAAUJ,IAAAA;EAC5BK,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,UAAMC,SAASpB,IAAIqB,KAAKV,MAAMM,KAAAA;AAC9B,WAAO,OAAOlB,UAAUuB,OAAOnB,eAAeoB,WAAW;MACvDH;MACAI,QAAQN,QAAQM;MAChBC,QAAQ;IACV,CAAA;EACF,CAAA;AACJ;AAGO,IAAMC,sBAAsB,CACjCC,OACA,EAAEC,UAAUC,aAAa,CAAC,EAAC,IAAkE,CAAC,MAAC;AAE/F,SAAOF,MAAMG,MAAMC,IAAG,MAAOjC,WAAWkC,gBAAgBL,MAAMM,WAAWC,MAAMC,UAAU,KAAK,IAC1FR,MAAMM,WAAWC,OACjBL,WAAWF,MAAMf,EAAE,IACjBiB,WAAWF,MAAMf,EAAE,IACnBgB,WACExB,uBACAI;AACV;",
|
|
6
|
+
"names": ["Effect", "SpaceState", "Operation", "Obj", "Type", "meta", "SpaceOperation", "PERSONAL_SPACE_LABEL", "ns", "profile", "key", "UNNAMED_SPACE_LABEL", "SPACES", "makeCreateObjectEntryForDatabaseType", "type", "id", "getTypename", "inputSchema", "getSchema", "createObject", "props", "options", "gen", "object", "make", "invoke", "AddObject", "target", "hidden", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "get", "SPACE_READY", "properties", "name", "length"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperation
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
4
|
+
import "./chunk-DSYEB2UN.mjs";
|
|
5
5
|
import "./chunk-J5LGTIGS.mjs";
|
|
6
6
|
|
|
7
7
|
// src/operations/close.ts
|
|
@@ -14,4 +14,4 @@ var close_default = handler;
|
|
|
14
14
|
export {
|
|
15
15
|
close_default as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=close-
|
|
17
|
+
//# sourceMappingURL=close-YZHFYPUN.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getSpaceDisplayName
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-PSCIOT7Q.mjs";
|
|
4
|
+
import "../chunk-DSYEB2UN.mjs";
|
|
5
5
|
import "../chunk-J5LGTIGS.mjs";
|
|
6
6
|
|
|
7
7
|
// src/components/index.ts
|
|
@@ -22,7 +22,7 @@ import { SpaceOperation } from "#operations";
|
|
|
22
22
|
var WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1e3;
|
|
23
23
|
var TOAST_TIMEOUT = 4 * 60 * 1e3;
|
|
24
24
|
var AwaitingObject = ({ id }) => {
|
|
25
|
-
const { t } = useTranslation(meta.
|
|
25
|
+
const { t } = useTranslation(meta.profile.key);
|
|
26
26
|
const { invokePromise } = useOperationInvoker();
|
|
27
27
|
const [open, setOpen] = useState(true);
|
|
28
28
|
const [waiting, setWaiting] = useState(true);
|
|
@@ -187,7 +187,7 @@ var CreateObjectPanel = ({ options, spaces, typename, target, initialFormValues:
|
|
|
187
187
|
};
|
|
188
188
|
CreateObjectPanel.displayName = "CreateObjectPanel";
|
|
189
189
|
var SelectType = ({ options, onChange }) => {
|
|
190
|
-
const { t } = useTranslation2(meta2.
|
|
190
|
+
const { t } = useTranslation2(meta2.profile.key);
|
|
191
191
|
const { results, handleSearch } = useSearchListResults({
|
|
192
192
|
items: options,
|
|
193
193
|
extract: (option) => option.label
|
|
@@ -219,7 +219,7 @@ var SelectType = ({ options, onChange }) => {
|
|
|
219
219
|
}) : option.description))))));
|
|
220
220
|
};
|
|
221
221
|
var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
222
|
-
const { t } = useTranslation2(meta2.
|
|
222
|
+
const { t } = useTranslation2(meta2.profile.key);
|
|
223
223
|
const sortedSpaces = useMemo(() => [
|
|
224
224
|
...spaces
|
|
225
225
|
].sort((a, b) => {
|
|
@@ -278,7 +278,7 @@ var ForeignKeys = ({ keys, onDelete }) => {
|
|
|
278
278
|
})));
|
|
279
279
|
};
|
|
280
280
|
var KeyItem = ({ forignKey, onDelete }) => {
|
|
281
|
-
const { t } = useTranslation3(meta3.
|
|
281
|
+
const { t } = useTranslation3(meta3.profile.key);
|
|
282
282
|
const handleDelete = useCallback3(() => {
|
|
283
283
|
onDelete?.(forignKey);
|
|
284
284
|
}, [
|
|
@@ -389,7 +389,7 @@ var getIcon = (status) => {
|
|
|
389
389
|
};
|
|
390
390
|
|
|
391
391
|
// src/components/index.ts
|
|
392
|
-
var SpaceSettings = lazy(() => import("../SpaceSettings-
|
|
392
|
+
var SpaceSettings = lazy(() => import("../SpaceSettings-IVTCSLNT.mjs"));
|
|
393
393
|
export {
|
|
394
394
|
AwaitingObject,
|
|
395
395
|
CreateObjectPanel,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/index.ts", "../../../../src/components/AwaitingObject/AwaitingObject.tsx", "../../../../src/components/CreateObjectPanel/CreateObjectPanel.tsx", "../../../../src/components/ForeignKeys/ForeignKeys.tsx", "../../../../src/components/SyncStatus/save-tracker.ts", "../../../../src/components/SyncStatus/status.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport * from './AwaitingObject';\nexport * from './CreateObjectPanel';\nexport * from './ForeignKeys';\nexport * from './SyncStatus';\n\nexport const SpaceSettings: ComponentType<any> = lazy(() => import('./SpaceSettings'));\n", "//\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 { Filter, Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { 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 '#operations';\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.getURI(object) === 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 // TODO(burdon): Why are we not using LayoutOperation.AddToast?\n return (\n <Toast.Root open={open} duration={TOAST_TIMEOUT} onOpenChange={setOpen}>\n <Toast.Title classNames='flex items-center gap-2'>\n {found ? (\n <>\n <Icon icon='ph--check-circle--regular' />\n <span>{t('found-object.label')}</span>\n </>\n ) : waiting ? (\n <>\n <Icon icon='ph--circle-notch--regular' classNames='animate-spin' />\n <span>{t('waiting-for-object.label')}</span>\n </>\n ) : (\n <>\n <Icon icon='ph--placeholder--regular' />\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.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 React, { useCallback, useMemo } from 'react';\n\nimport { type Collection, type Database, Obj } from '@dxos/echo';\nimport { type AnyProperties } from '@dxos/echo/internal';\nimport { type SpaceId } from '@dxos/keys';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Column, Icon, toLocalizedString, useDefaultValue, useTranslation } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { Picker } from '@dxos/react-ui-list';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-search';\nimport { getStyles } from '@dxos/ui-theme';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { useInputSurfaceLookup } from '#hooks';\nimport { meta } from '#meta';\nimport { type SpaceCapabilities } from '#types';\n\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 iconHue?: string;\n /** Plugin name shown as \"{{plugin}} Plugin\" subtitle. */\n plugin?: string;\n /** Generic subtitle shown when plugin is not set. */\n description?: string;\n};\n\nexport type Metadata = SpaceCapabilities.CreateObjectEntry;\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 && !metadata.customPanel) {\n await onCreateObject?.({ metadata });\n } else {\n onTypenameChange?.(id);\n }\n },\n [resolve, onCreateObject],\n );\n\n const inputSchema = useMemo(\n () => (metadata && typeof metadata === 'object' && metadata.inputSchema ? omitId(metadata.inputSchema) : undefined),\n [metadata],\n );\n const inputSurfaceLookup = useInputSurfaceLookup({ target });\n\n // TODO(wittjosiah): Extends and use react-ui-form to handle variants.\n\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.customPanel) {\n const CustomPanel = metadata.customPanel;\n return (\n <CustomPanel\n target={target}\n initialFormValues={initialFormValues}\n onCreateObject={(data) => handleCreateObject(data)}\n />\n );\n }\n\n if (metadata.inputSchema) {\n // The host (Dialog.Body) already owns the gutter Column. Use Column.Center to place the form in\n // the same center column as the dialog title — NOT a subgrid wrapper or Form.Viewport's own\n // Column.Root. Subgrid can't propagate through Form.Root's `display: contents` wrapper (the form\n // would fall back to a stray track and inset), and a nested Column.Root would double-gutter it.\n return (\n <Column.Center>\n <Form.Root\n autoFocus\n schema={inputSchema}\n defaultValues={initialFormValues}\n fieldProvider={inputSurfaceLookup}\n db={Obj.isObject(target) ? Obj.getDatabase(target) : target}\n onSave={handleCreateObject}\n testId='create-object-form'\n >\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Root>\n </Column.Center>\n );\n }\n\n return null;\n};\n\nCreateObjectPanel.displayName = 'CreateObjectPanel';\n\ntype SelectTypeProps = Pick<CreateObjectPanelProps, 'options'> & {\n onChange: (id: string) => void;\n};\n\nconst SelectType = ({ options, onChange }: SelectTypeProps) => {\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.Input\n classNames='mb-form-gap'\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 <Picker.Item\n key={option.id}\n value={option.id}\n onSelect={() => onChange(option.id)}\n classNames='flex gap-3 items-center px-2 py-2 rounded-xs'\n >\n <Icon\n icon={option.icon ?? 'ph--circle-dashed--regular'}\n size={8}\n classNames={getIconHueStyles(option.iconHue)}\n />\n <div className='flex flex-col min-w-0 grow gap-0.5'>\n <span className='truncate'>{option.label}</span>\n {(option.plugin || option.description) && (\n <span className='truncate text-description text-xs'>\n {option.plugin ? t('plugin-subtitle.label', { plugin: option.plugin }) : option.description}\n </span>\n )}\n </div>\n </Picker.Item>\n ))}\n </SearchList.Viewport>\n </SearchList.Root>\n );\n};\n\ntype SelectSpaceProps = Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'> & {\n onChange?: (db: Database.Database) => void;\n};\n\nconst SelectSpace = ({ spaces, defaultSpaceId, onChange }: SelectSpaceProps) => {\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.Input\n classNames='mb-form-gap'\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 return (\n <SearchList.Item\n key={space.id}\n value={space.id}\n label={toLocalizedString(getSpaceDisplayName(space, { personal: space.id === defaultSpaceId }), t)}\n onSelect={() => onChange?.(space.db)}\n />\n );\n })}\n </SearchList.Viewport>\n </SearchList.Root>\n );\n};\n\nconst getIconHueStyles = (iconHue?: string): string | undefined => {\n const styles = iconHue ? getStyles(iconHue) : undefined;\n return styles?.text;\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\n iconOnly\n icon='ph--x--regular'\n variant='ghost'\n label={t('delete-key.button')}\n onClick={handleDelete}\n />\n </ListItem.Endcap>\n </ListItem.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 } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\nimport { type SpaceId } from '@dxos/keys';\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": ";;;;;;;AAIA,SAA6BA,YAAY;;;ACAzC,OAAOC,SAASC,aAAaC,WAAWC,gBAAgB;AAExD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,WAAW;AAC5B,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,QAAQC,MAAMC,OAAOC,sBAAsB;AACpD,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAE/B,IAAMC,0BAA0B,IAAI,KAAK;AACzC,IAAMC,gBAAgB,IAAI,KAAK;AAExB,IAAMC,iBAAiB,CAAC,EAAEC,GAAE,MAAkB;AACnD,QAAM,EAAEC,EAAC,IAAKR,eAAeE,
|
|
6
|
-
"names": ["lazy", "React", "useCallback", "useEffect", "useState", "useOperationInvoker", "LayoutOperation", "useLayout", "Filter", "Obj", "useClient", "useQuery", "Button", "Icon", "Toast", "useTranslation", "osTranslations", "meta", "SpaceOperation", "WAIT_FOR_OBJECT_TIMEOUT", "TOAST_TIMEOUT", "AwaitingObject", "id", "t", "invokePromise", "open", "setOpen", "waiting", "setWaiting", "found", "setFound", "layout", "client", "objects", "spaces", "everything", "timeout", "setTimeout", "clearTimeout", "findIndex", "object", "getURI", "active", "includes", "handleClose", "WaitForObject", "undefined", "handleNavigate", "Open", "subject", "Root", "duration", "onOpenChange", "Title", "classNames", "icon", "span", "Description", "Actions", "Action", "altText", "asChild", "variant", "onClick", "Close", "ns", "React", "useCallback", "useMemo", "Obj", "Column", "Icon", "toLocalizedString", "useDefaultValue", "useTranslation", "Form", "omitId", "Picker", "SearchList", "useSearchListResults", "getStyles", "useInputSurfaceLookup", "meta", "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", "customPanel", "omitId", "undefined", "inputSurfaceLookup", "useInputSurfaceLookup", "React", "SelectType", "onChange", "SelectSpace", "CustomPanel", "Column", "Center", "Form", "Root", "autoFocus", "schema", "defaultValues", "fieldProvider", "db", "Obj", "isObject", "getDatabase", "onSave", "testId", "Content", "FieldSet", "Submit", "displayName", "t", "useTranslation", "meta", "results", "handleSearch", "useSearchListResults", "items", "extract", "option", "SearchList", "onSearch", "Input", "classNames", "data-testid", "placeholder", "Viewport", "map", "Picker", "Item", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport * from './AwaitingObject';\nexport * from './CreateObjectPanel';\nexport * from './ForeignKeys';\nexport * from './SyncStatus';\n\nexport const SpaceSettings: ComponentType<any> = lazy(() => import('./SpaceSettings'));\n", "//\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 { Filter, Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { 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 '#operations';\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.profile.key);\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.getURI(object) === 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 // TODO(burdon): Why are we not using LayoutOperation.AddToast?\n return (\n <Toast.Root open={open} duration={TOAST_TIMEOUT} onOpenChange={setOpen}>\n <Toast.Title classNames='flex items-center gap-2'>\n {found ? (\n <>\n <Icon icon='ph--check-circle--regular' />\n <span>{t('found-object.label')}</span>\n </>\n ) : waiting ? (\n <>\n <Icon icon='ph--circle-notch--regular' classNames='animate-spin' />\n <span>{t('waiting-for-object.label')}</span>\n </>\n ) : (\n <>\n <Icon icon='ph--placeholder--regular' />\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.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 React, { useCallback, useMemo } from 'react';\n\nimport { type Collection, type Database, Obj } from '@dxos/echo';\nimport { type AnyProperties } from '@dxos/echo/internal';\nimport { type SpaceId } from '@dxos/keys';\nimport { type Space } from '@dxos/react-client/echo';\nimport { Column, Icon, toLocalizedString, useDefaultValue, useTranslation } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { Picker } from '@dxos/react-ui-list';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-search';\nimport { getStyles } from '@dxos/ui-theme';\nimport { type MaybePromise } from '@dxos/util';\n\nimport { useInputSurfaceLookup } from '#hooks';\nimport { meta } from '#meta';\nimport { type SpaceCapabilities } from '#types';\n\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 iconHue?: string;\n /** Plugin name shown as \"{{plugin}} Plugin\" subtitle. */\n plugin?: string;\n /** Generic subtitle shown when plugin is not set. */\n description?: string;\n};\n\nexport type Metadata = SpaceCapabilities.CreateObjectEntry;\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 && !metadata.customPanel) {\n await onCreateObject?.({ metadata });\n } else {\n onTypenameChange?.(id);\n }\n },\n [resolve, onCreateObject],\n );\n\n const inputSchema = useMemo(\n () => (metadata && typeof metadata === 'object' && metadata.inputSchema ? omitId(metadata.inputSchema) : undefined),\n [metadata],\n );\n const inputSurfaceLookup = useInputSurfaceLookup({ target });\n\n // TODO(wittjosiah): Extends and use react-ui-form to handle variants.\n\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.customPanel) {\n const CustomPanel = metadata.customPanel;\n return (\n <CustomPanel\n target={target}\n initialFormValues={initialFormValues}\n onCreateObject={(data) => handleCreateObject(data)}\n />\n );\n }\n\n if (metadata.inputSchema) {\n // The host (Dialog.Body) already owns the gutter Column. Use Column.Center to place the form in\n // the same center column as the dialog title — NOT a subgrid wrapper or Form.Viewport's own\n // Column.Root. Subgrid can't propagate through Form.Root's `display: contents` wrapper (the form\n // would fall back to a stray track and inset), and a nested Column.Root would double-gutter it.\n return (\n <Column.Center>\n <Form.Root\n autoFocus\n schema={inputSchema}\n defaultValues={initialFormValues}\n fieldProvider={inputSurfaceLookup}\n db={Obj.isObject(target) ? Obj.getDatabase(target) : target}\n onSave={handleCreateObject}\n testId='create-object-form'\n >\n <Form.Content>\n <Form.FieldSet />\n <Form.Submit />\n </Form.Content>\n </Form.Root>\n </Column.Center>\n );\n }\n\n return null;\n};\n\nCreateObjectPanel.displayName = 'CreateObjectPanel';\n\ntype SelectTypeProps = Pick<CreateObjectPanelProps, 'options'> & {\n onChange: (id: string) => void;\n};\n\nconst SelectType = ({ options, onChange }: SelectTypeProps) => {\n const { t } = useTranslation(meta.profile.key);\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.Input\n classNames='mb-form-gap'\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 <Picker.Item\n key={option.id}\n value={option.id}\n onSelect={() => onChange(option.id)}\n classNames='flex gap-3 items-center px-2 py-2 rounded-xs'\n >\n <Icon\n icon={option.icon ?? 'ph--circle-dashed--regular'}\n size={8}\n classNames={getIconHueStyles(option.iconHue)}\n />\n <div className='flex flex-col min-w-0 grow gap-0.5'>\n <span className='truncate'>{option.label}</span>\n {(option.plugin || option.description) && (\n <span className='truncate text-description text-xs'>\n {option.plugin ? t('plugin-subtitle.label', { plugin: option.plugin }) : option.description}\n </span>\n )}\n </div>\n </Picker.Item>\n ))}\n </SearchList.Viewport>\n </SearchList.Root>\n );\n};\n\ntype SelectSpaceProps = Pick<CreateObjectPanelProps, 'spaces' | 'defaultSpaceId'> & {\n onChange?: (db: Database.Database) => void;\n};\n\nconst SelectSpace = ({ spaces, defaultSpaceId, onChange }: SelectSpaceProps) => {\n const { t } = useTranslation(meta.profile.key);\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.Input\n classNames='mb-form-gap'\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 return (\n <SearchList.Item\n key={space.id}\n value={space.id}\n label={toLocalizedString(getSpaceDisplayName(space, { personal: space.id === defaultSpaceId }), t)}\n onSelect={() => onChange?.(space.db)}\n />\n );\n })}\n </SearchList.Viewport>\n </SearchList.Root>\n );\n};\n\nconst getIconHueStyles = (iconHue?: string): string | undefined => {\n const styles = iconHue ? getStyles(iconHue) : undefined;\n return styles?.text;\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.profile.key);\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\n iconOnly\n icon='ph--x--regular'\n variant='ghost'\n label={t('delete-key.button')}\n onClick={handleDelete}\n />\n </ListItem.Endcap>\n </ListItem.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 } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\nimport { type SpaceId } from '@dxos/keys';\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": ";;;;;;;AAIA,SAA6BA,YAAY;;;ACAzC,OAAOC,SAASC,aAAaC,WAAWC,gBAAgB;AAExD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,WAAW;AAC5B,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,QAAQC,MAAMC,OAAOC,sBAAsB;AACpD,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AACrB,SAASC,sBAAsB;AAE/B,IAAMC,0BAA0B,IAAI,KAAK;AACzC,IAAMC,gBAAgB,IAAI,KAAK;AAExB,IAAMC,iBAAiB,CAAC,EAAEC,GAAE,MAAkB;AACnD,QAAM,EAAEC,EAAC,IAAKR,eAAeE,KAAKO,QAAQC,GAAG;AAC7C,QAAM,EAAEC,cAAa,IAAKrB,oBAAAA;AAC1B,QAAM,CAACsB,MAAMC,OAAAA,IAAWxB,SAAS,IAAA;AACjC,QAAM,CAACyB,SAASC,UAAAA,IAAc1B,SAAS,IAAA;AACvC,QAAM,CAAC2B,OAAOC,QAAAA,IAAY5B,SAAS,KAAA;AACnC,QAAM6B,SAAS1B,UAAAA;AAEf,QAAM2B,SAASxB,UAAAA;AACf,QAAMyB,UAAUxB,SAASuB,OAAOE,QAAQ5B,OAAO6B,WAAU,CAAA;AAEzDlC,YAAU,MAAA;AACR,QAAI,CAACmB,IAAI;AACP;IACF;AAEA,UAAMgB,UAAUC,WAAW,MAAMT,WAAW,KAAA,GAAQX,uBAAAA;AACpD,WAAO,MAAMqB,aAAaF,OAAAA;EAC5B,GAAG;IAAChB;GAAG;AAEPnB,YAAU,MAAA;AACR,QAAIgC,QAAQM,UAAU,CAACC,WAAWjC,IAAIkC,OAAOD,MAAAA,MAAYpB,EAAAA,IAAM,IAAI;AACjEU,eAAS,IAAA;AACT,UAAIC,OAAOW,OAAOC,SAASvB,EAAAA,GAAK;AAC9BM,gBAAQ,KAAA;MACV;IACF;EACF,GAAG;IAACN;IAAIa;IAASF;GAAO;AAExB,QAAMa,cAAc5C,YAClB,YAAYwB,cAAcR,eAAe6B,eAAe;IAAEzB,IAAI0B;EAAU,CAAA,GACxE;IAACtB;GAAc;AAGjB,QAAMuB,iBAAiB/C,YAAY,MAAA;AACjC,SAAKwB,cAAcpB,gBAAgB4C,MAAM;MAAEC,SAAS;QAAC7B;;IAAI,CAAA;AACzD,SAAKwB,YAAAA;EACP,GAAG;IAACxB;IAAIwB;IAAapB;GAAc;AAGnC,SACE,sBAAA,cAACZ,MAAMsC,MAAI;IAACzB;IAAY0B,UAAUjC;IAAekC,cAAc1B;KAC7D,sBAAA,cAACd,MAAMyC,OAAK;IAACC,YAAW;KACrBzB,QACC,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAClB,MAAAA;IAAK4C,MAAK;MACX,sBAAA,cAACC,QAAAA,MAAMnC,EAAE,oBAAA,CAAA,CAAA,IAETM,UACF,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAChB,MAAAA;IAAK4C,MAAK;IAA4BD,YAAW;MAClD,sBAAA,cAACE,QAAAA,MAAMnC,EAAE,0BAAA,CAAA,CAAA,IAGX,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAACV,MAAAA;IAAK4C,MAAK;MACX,sBAAA,cAACC,QAAAA,MAAMnC,EAAE,wBAAA,CAAA,CAAA,CAAA,GAIf,sBAAA,cAACT,MAAM6C,aAAW,MACfpC,EACCQ,QACI,6BACAF,UACE,mCACA,8BAAA,CAAA,GAGV,sBAAA,cAACf,MAAM8C,SAAO,MACX7B,QACC,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAACjB,MAAM+C,QAAM;IAACC,SAASvC,EAAE,kBAAA;IAAqBwC,SAAAA;KAC5C,sBAAA,cAACnD,QAAAA;IAAOoD,SAAQ;IAAUC,SAAShB;KAChC1B,EAAE,oBAAA,CAAA,CAAA,GAGP,sBAAA,cAACT,MAAMoD,OAAK;IAACH,SAAAA;KACX,sBAAA,cAACnD,QAAAA;IAAOqD,SAASnB;KAAcvB,EAAE,eAAe;IAAE4C,IAAInD;EAAe,CAAA,CAAA,CAAA,CAAA,IAIzE,sBAAA,cAACF,MAAMoD,OAAK;IAACH,SAAAA;KACX,sBAAA,cAACnD,QAAAA;IAAOqD,SAASnB;KACdvB,EAAEM,UAAU,gBAAgB,iBAAiB;IAAEsC,IAAInD;EAAe,CAAA,CAAA,CAAA,CAAA,CAAA;AAOjF;;;AC5GA,OAAOoD,UAASC,eAAAA,cAAaC,eAAe;AAE5C,SAAyCC,OAAAA,YAAW;AAIpD,SAASC,QAAQC,QAAAA,OAAMC,mBAAmBC,iBAAiBC,kBAAAA,uBAAsB;AACjF,SAASC,MAAMC,cAAc;AAC7B,SAASC,cAAc;AACvB,SAASC,YAAYC,4BAA4B;AACjD,SAASC,iBAAiB;AAG1B,SAASC,6BAA6B;AACtC,SAASC,QAAAA,aAAY;AAgCd,IAAMC,oBAAoB,CAAC,EAChCC,SACAC,QACAC,UACAC,QACAC,mBAAmBC,uBACnBC,gBACAC,SACAC,gBACAC,kBACAC,eAAc,MACS;AACvB,QAAMN,oBAAoBO,gBAAgBN,uBAAuB,OAAO,CAAC,EAAA;AACzE,QAAMO,WAAWV,YAAYK,UAAUL,QAAAA;AAEvC,QAAMW,gBAAgBC,QAAQ,MAAM;OAAId;IAASe,KAAK,CAACC,GAAGC,MAAMD,EAAEE,MAAMC,cAAcF,EAAEC,KAAK,CAAA,GAAI;IAAClB;GAAQ;AAE1G,QAAMoB,qBAAqBC,aACzB,OAAOC,UAAAA;AACL,QAAI,CAACV,UAAU;AACb;IACF;AACA,UAAMF,iBAAiB;MAAEE;MAAUW,MAAMD;IAAM,CAAA;EACjD,GACA;IAACZ;IAAgBE;GAAS;AAG5B,QAAMY,qBAAqBH,aACzB,OAAOI,OAAAA;AACL,UAAMb,YAAWL,UAAUkB,EAAAA;AAC3B,QAAIb,aAAY,CAACA,UAASc,eAAe,CAACd,UAASe,aAAa;AAC9D,YAAMjB,iBAAiB;QAAEE,UAAAA;MAAS,CAAA;IACpC,OAAO;AACLH,yBAAmBgB,EAAAA;IACrB;EACF,GACA;IAAClB;IAASG;GAAe;AAG3B,QAAMgB,cAAcZ,QAClB,MAAOF,YAAY,OAAOA,aAAa,YAAYA,SAASc,cAAcE,OAAOhB,SAASc,WAAW,IAAIG,QACzG;IAACjB;GAAS;AAEZ,QAAMkB,qBAAqBC,sBAAsB;IAAE5B;EAAO,CAAA;AAI1D,MAAI,CAACS,UAAU;AACb,WAAO,gBAAAoB,OAAA,cAACC,YAAAA;MAAWjC,SAASa;MAAeqB,UAAUV;;EACvD;AAEA,MAAI,CAACrB,QAAQ;AACX,WAAO,gBAAA6B,OAAA,cAACG,aAAAA;MAAYlC;MAAgBK;MAAgC4B,UAAU1B;;EAChF;AAEA,MAAII,SAASe,aAAa;AACxB,UAAMS,cAAcxB,SAASe;AAC7B,WACE,gBAAAK,OAAA,cAACI,aAAAA;MACCjC;MACAC;MACAM,gBAAgB,CAACa,SAASH,mBAAmBG,IAAAA;;EAGnD;AAEA,MAAIX,SAASc,aAAa;AAKxB,WACE,gBAAAM,OAAA,cAACK,OAAOC,QAAM,MACZ,gBAAAN,OAAA,cAACO,KAAKC,MAAI;MACRC,WAAAA;MACAC,QAAQhB;MACRiB,eAAevC;MACfwC,eAAed;MACfe,IAAIC,KAAIC,SAAS5C,MAAAA,IAAU2C,KAAIE,YAAY7C,MAAAA,IAAUA;MACrD8C,QAAQ7B;MACR8B,QAAO;OAEP,gBAAAlB,OAAA,cAACO,KAAKY,SAAO,MACX,gBAAAnB,OAAA,cAACO,KAAKa,UAAQ,IAAA,GACd,gBAAApB,OAAA,cAACO,KAAKc,QAAM,IAAA,CAAA,CAAA,CAAA;EAKtB;AAEA,SAAO;AACT;AAEAtD,kBAAkBuD,cAAc;AAMhC,IAAMrB,aAAa,CAAC,EAAEjC,SAASkC,SAAQ,MAAmB;AACxD,QAAM,EAAEqB,EAAC,IAAKC,gBAAeC,MAAKC,QAAQC,GAAG;AAE7C,QAAM,EAAEC,SAASC,aAAY,IAAKC,qBAAqB;IACrDC,OAAO/D;IACPgE,SAAS,CAACC,WAAWA,OAAO/C;EAC9B,CAAA;AAEA,SACE,gBAAAc,OAAA,cAACkC,WAAW1B,MAAI;IAAC2B,UAAUN;KACzB,gBAAA7B,OAAA,cAACkC,WAAWE,OAAK;IACfC,YAAW;IACX5B,WAAAA;IACA6B,eAAY;IACZC,aAAahB,EAAE,0BAAA;MAEjB,gBAAAvB,OAAA,cAACkC,WAAWM,UAAQ,MACjBZ,QAAQa,IAAI,CAACR,WACZ,gBAAAjC,OAAA,cAAC0C,OAAOC,MAAI;IACVhB,KAAKM,OAAOxC;IACZmD,OAAOX,OAAOxC;IACdoD,UAAU,MAAM3C,SAAS+B,OAAOxC,EAAE;IAClC4C,YAAW;KAEX,gBAAArC,OAAA,cAAC8C,OAAAA;IACCC,MAAMd,OAAOc,QAAQ;IACrBC,MAAM;IACNX,YAAYY,iBAAiBhB,OAAOiB,OAAO;MAE7C,gBAAAlD,OAAA,cAACmD,OAAAA;IAAIC,WAAU;KACb,gBAAApD,OAAA,cAACqD,QAAAA;IAAKD,WAAU;KAAYnB,OAAO/C,KAAK,IACtC+C,OAAOqB,UAAUrB,OAAOsB,gBACxB,gBAAAvD,OAAA,cAACqD,QAAAA;IAAKD,WAAU;KACbnB,OAAOqB,SAAS/B,EAAE,yBAAyB;IAAE+B,QAAQrB,OAAOqB;EAAO,CAAA,IAAKrB,OAAOsB,WAAW,CAAA,CAAA,CAAA,CAAA,CAAA;AAS7G;AAMA,IAAMpD,cAAc,CAAC,EAAElC,QAAQK,gBAAgB4B,SAAQ,MAAoB;AACzE,QAAM,EAAEqB,EAAC,IAAKC,gBAAeC,MAAKC,QAAQC,GAAG;AAE7C,QAAM6B,eAAe1E,QACnB,MACE;OAAIb;IAAQc,KAAK,CAACC,GAAGC,MAAAA;AACnB,UAAMwE,SAASC,kBACbC,oBAAoB3E,GAAG;MACrB4E,UAAU5E,EAAES,OAAOnB;IACrB,CAAA,GACAiD,CAAAA;AAEF,UAAMsC,SAASH,kBACbC,oBAAoB1E,GAAG;MACrB2E,UAAU3E,EAAEQ,OAAOnB;IACrB,CAAA,GACAiD,CAAAA;AAEF,WAAOkC,OAAOtE,cAAc0E,MAAAA;EAC9B,CAAA,GACF;IAAC5F;IAAQK;IAAgBiD;GAAE;AAG7B,QAAM,EAAEK,SAASC,aAAY,IAAKC,qBAAqB;IACrDC,OAAOyB;IACPxB,SAAS,CAAC8B,UACRJ,kBACEC,oBAAoBG,OAAO;MACzBF,UAAUE,MAAMrE,OAAOnB;IACzB,CAAA,GACAiD,CAAAA;EAEN,CAAA;AAEA,SACE,gBAAAvB,OAAA,cAACkC,WAAW1B,MAAI;IAAC2B,UAAUN;KACzB,gBAAA7B,OAAA,cAACkC,WAAWE,OAAK;IACfC,YAAW;IACX5B,WAAAA;IACA6B,eAAY;IACZC,aAAahB,EAAE,yBAAA;MAEjB,gBAAAvB,OAAA,cAACkC,WAAWM,UAAQ,MACjBZ,QAAQa,IAAI,CAACqB,UAAAA;AACZ,WACE,gBAAA9D,OAAA,cAACkC,WAAWS,MAAI;MACdhB,KAAKmC,MAAMrE;MACXmD,OAAOkB,MAAMrE;MACbP,OAAOwE,kBAAkBC,oBAAoBG,OAAO;QAAEF,UAAUE,MAAMrE,OAAOnB;MAAe,CAAA,GAAIiD,CAAAA;MAChGsB,UAAU,MAAM3C,WAAW4D,MAAMjD,EAAE;;EAGzC,CAAA,CAAA,CAAA;AAIR;AAEA,IAAMoC,mBAAmB,CAACC,YAAAA;AACxB,QAAMa,SAASb,UAAUc,UAAUd,OAAAA,IAAWrD;AAC9C,SAAOkE,QAAQE;AACjB;;;AC/PA,OAAOC,UAASC,eAAAA,oBAAmB;AAGnC,SAASC,YAAYC,MAAMC,UAAUC,kBAAAA,uBAAsB;AAE3D,SAASC,QAAAA,aAAY;AAQd,IAAMC,cAAc,CAAC,EAAEC,MAAMC,SAAQ,MAAoB;AAC9D,SACE,gBAAAT,OAAA,cAACG,MAAAA;IAAKO,YAAW;KACdF,KAAKG,IAAI,CAACC,QACT,gBAAAZ,OAAA,cAACa,SAAAA;IAAQD,KAAKA,IAAIE;IAAIC,WAAWH;IAAKH;;AAI9C;AAOA,IAAMI,UAAU,CAAC,EAAEE,WAAWN,SAAQ,MAAgB;AACpD,QAAM,EAAEO,EAAC,IAAKX,gBAAeC,MAAKW,QAAQL,GAAG;AAE7C,QAAMM,eAAejB,aAAY,MAAA;AAC/BQ,eAAWM,SAAAA;EACb,GAAG;IAACA;IAAWN;GAAS;AAExB,SACE,gBAAAT,OAAA,cAACI,SAASe,MAAI;IAACT,YAAW;KACxB,gBAAAV,OAAA,cAACI,SAASgB,SAAO;IAACV,YAAW;KAC3B,gBAAAV,OAAA,cAACqB,OAAAA,MAAKN,UAAUO,MAAM,GACtB,gBAAAtB,OAAA,cAACqB,OAAAA;IAAIE,WAAU;KAAqCR,UAAUD,EAAE,CAAA,GAElE,gBAAAd,OAAA,cAACI,SAASoB,QAAM,MACd,gBAAAxB,OAAA,cAACE,YAAAA;IACCuB,UAAAA;IACAC,MAAK;IACLC,SAAQ;IACRC,OAAOZ,EAAE,mBAAA;IACTa,SAASX;;AAKnB;;;ACjDA,SAASY,eAAe;AAGxB,IAAA,eAAaC;AAEX,IAAMC,0BAA8C,CAAA,QAAA,OAAA;AAEpD,QAAMC,aAAWC,CAAAA;QACf,QAAK,CAAMC;kBACLH,CAAK,WAAS;eAChB,SAAA,QAAA;AACF,UAAA,MAAA,MAAA,EAAA,GAAA;AAEAA;MACAI;YACEJ,MAAMG,EAAAA,IAAQ;iBACXE,MAAOC,EAAAA,IAAON,uBAAyB,OAAA,CAAA,MAAY;AACxD,cAAA,MAAA,EAAA,IAAA;AACF,WAAA,OAAA,OAAA,KAAA,EAAA,KAAA,CAAAO,OAAAA,OAAA,QAAA,IAAA,WAAA,OAAA;MACF,CAAA;IACAC;;AAEA,SAAA,OAAA,UAAA,CAAA,WAAA;AACAP,YAAQO,MAAON;EAEf,CAAA;UACE,OAAWO,OAAAA,IAAAA,CAAAA;eACTA;AACF,eAAA,eAAA,OAAA,OAAA,UAAA,GAAA;AACF,kBAAA;IACA;EAEF;;IAGE,yBAAyB,CAAGC,OAAK,OAAA;QAC/B,MAAQC,IAAAA,QAAU,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,GAAA,CAAA;aAChB,eAAA,EAAA,KAAA,MAAA;AACF,QAAA,IAAA,UAAA;AAEIC;IACJ;AACAT,QAAAA,oBAAkBU;QAChBD;AACF,UAAA,SAAA,GAAA,iBAAA,GAAA,KAAA,CAAA,EAAA,iBAAA,MAAA;AACAT,0BAAkBU,iBAAiBC,SAAcC;;mBAE7CC,GAAAA,iBAAmBC,SAAAA,GAAAA,EAAAA,GAAAA,KAAAA,MAAAA;UACnBC,mBAAG;AACL,2BAAO;AACL,WAAA,QAAMC;aACNH;AACA,cAAKG,eAAaT,MAAK,GAAA,MAAA;2BACjBM;0BACC,KAAA,MAAA;AACL,cAAA,qBAAA,cAAA;AACF,eAAA,OAAA;UACF;QACF,CAAA;MACF;IAEA,CAAA;;AAEA,SAAA,MAAA;AACF,SAAA,IAAA,QAAA;;;;;ACjEO,IAAMI,YAAY,CAAC,EACxBC,SACAC,OACAC,eACAC,gBAAe,MAMhB;AACC,MAAI,CAACF,OAAO;AACV,WAAO;EACT,WAAW,CAACD,WAAWG,iBAAiB;AACtC,WAAO;EACT,WAAW,CAACH,WAAWE,eAAe;AACpC,WAAO;EACT,WAAWF,WAAW,CAACE,iBAAiB,CAACC,iBAAiB;AACxD,WAAO;EACT,OAAO;AACL,WAAO;EACT;AACF;AAEO,IAAMC,UAAU,CAACC,WAAAA;AACtB,UAAQA,QAAAA;IACN,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;IACT,KAAK;AACH,aAAO;EACX;AACF;;;ALhCO,IAAMC,gBAAoCC,KAAK,MAAM,OAAO,+BAAA,CAAA;",
|
|
6
|
+
"names": ["lazy", "React", "useCallback", "useEffect", "useState", "useOperationInvoker", "LayoutOperation", "useLayout", "Filter", "Obj", "useClient", "useQuery", "Button", "Icon", "Toast", "useTranslation", "osTranslations", "meta", "SpaceOperation", "WAIT_FOR_OBJECT_TIMEOUT", "TOAST_TIMEOUT", "AwaitingObject", "id", "t", "profile", "key", "invokePromise", "open", "setOpen", "waiting", "setWaiting", "found", "setFound", "layout", "client", "objects", "spaces", "everything", "timeout", "setTimeout", "clearTimeout", "findIndex", "object", "getURI", "active", "includes", "handleClose", "WaitForObject", "undefined", "handleNavigate", "Open", "subject", "Root", "duration", "onOpenChange", "Title", "classNames", "icon", "span", "Description", "Actions", "Action", "altText", "asChild", "variant", "onClick", "Close", "ns", "React", "useCallback", "useMemo", "Obj", "Column", "Icon", "toLocalizedString", "useDefaultValue", "useTranslation", "Form", "omitId", "Picker", "SearchList", "useSearchListResults", "getStyles", "useInputSurfaceLookup", "meta", "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", "customPanel", "omitId", "undefined", "inputSurfaceLookup", "useInputSurfaceLookup", "React", "SelectType", "onChange", "SelectSpace", "CustomPanel", "Column", "Center", "Form", "Root", "autoFocus", "schema", "defaultValues", "fieldProvider", "db", "Obj", "isObject", "getDatabase", "onSave", "testId", "Content", "FieldSet", "Submit", "displayName", "t", "useTranslation", "meta", "profile", "key", "results", "handleSearch", "useSearchListResults", "items", "extract", "option", "SearchList", "onSearch", "Input", "classNames", "data-testid", "placeholder", "Viewport", "map", "Picker", "Item", "value", "onSelect", "Icon", "icon", "size", "getIconHueStyles", "iconHue", "div", "className", "span", "plugin", "description", "sortedSpaces", "labelA", "toLocalizedString", "getSpaceDisplayName", "personal", "labelB", "space", "styles", "getStyles", "text", "React", "useCallback", "IconButton", "List", "ListItem", "useTranslation", "meta", "ForeignKeys", "keys", "onDelete", "classNames", "map", "key", "KeyItem", "id", "forignKey", "t", "profile", "handleDelete", "Root", "Heading", "div", "source", "className", "Endcap", "iconOnly", "icon", "variant", "label", "onClick", "Context", "createClientSaveTracker", "state", "install", "spaces", "space", "CleanupFns", "Object", "values", "s", "client", "unsubscribe", "then", "disposed", "hasUnsavedChanges", "saveStateChanged", "debounce", "on", "lastFlushPromise", "undefined", "cb", "flushPromise", "getStatus", "offline", "saved", "needsToUpload", "needsToDownload", "getIcon", "status", "SpaceSettings", "lazy"]
|
|
7
7
|
}
|
|
@@ -2,33 +2,33 @@ import "../chunk-J5LGTIGS.mjs";
|
|
|
2
2
|
|
|
3
3
|
// src/containers/index.ts
|
|
4
4
|
import { lazy } from "react";
|
|
5
|
-
var CollectionArticle = lazy(() => import("../CollectionArticle-
|
|
6
|
-
var CollectionSection = lazy(() => import("../CollectionSection-
|
|
7
|
-
var CreateObjectDialog = lazy(() => import("../CreateObjectDialog-
|
|
8
|
-
var CreateSpaceDialog = lazy(() => import("../CreateSpaceDialog-
|
|
9
|
-
var ImportSpaceDialog = lazy(() => import("../ImportSpaceDialog-
|
|
10
|
-
var InlineSyncStatus = lazy(() => import("../InlineSyncStatus-
|
|
11
|
-
var JoinDialog = lazy(() => import("../JoinDialog-
|
|
12
|
-
var MembersContainer = lazy(() => import("../MembersContainer-
|
|
13
|
-
var MenuFooter = lazy(() => import("../MenuFooter-
|
|
14
|
-
var ObjectCardStack = lazy(() => import("../ObjectCardStack-
|
|
5
|
+
var CollectionArticle = lazy(() => import("../CollectionArticle-BMH7SZ7Q.mjs"));
|
|
6
|
+
var CollectionSection = lazy(() => import("../CollectionSection-BLYTGOKH.mjs"));
|
|
7
|
+
var CreateObjectDialog = lazy(() => import("../CreateObjectDialog-4VMOUKM7.mjs"));
|
|
8
|
+
var CreateSpaceDialog = lazy(() => import("../CreateSpaceDialog-WWNUTLVK.mjs"));
|
|
9
|
+
var ImportSpaceDialog = lazy(() => import("../ImportSpaceDialog-CSSRTFAO.mjs"));
|
|
10
|
+
var InlineSyncStatus = lazy(() => import("../InlineSyncStatus-UOUTAPCU.mjs"));
|
|
11
|
+
var JoinDialog = lazy(() => import("../JoinDialog-QZGNRJ4P.mjs"));
|
|
12
|
+
var MembersContainer = lazy(() => import("../MembersContainer-OWCAMBKS.mjs"));
|
|
13
|
+
var MenuFooter = lazy(() => import("../MenuFooter-QCNFUIAO.mjs"));
|
|
14
|
+
var ObjectCardStack = lazy(() => import("../ObjectCardStack-DHVDRNRK.mjs"));
|
|
15
15
|
var ObjectProperties = lazy(() => import("../ObjectProperties-BF6KGFFC.mjs"));
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var SchemaContainer = lazy(() => import("../SchemaContainer-
|
|
20
|
-
var SmallPresenceLive = lazy(() => import("../SmallPresenceLive-
|
|
21
|
-
var SpacePresence = lazy(() => import("../SpacePresence-
|
|
22
|
-
var
|
|
23
|
-
var
|
|
24
|
-
var
|
|
16
|
+
var RecordArticle = lazy(() => import("../RecordArticle-JSORXRAA.mjs"));
|
|
17
|
+
var RelatedArticle = lazy(() => import("../RelatedArticle-YRCRBIYU.mjs"));
|
|
18
|
+
var RenamePopover = lazy(() => import("../RenamePopover-XBZAKNM7.mjs"));
|
|
19
|
+
var SchemaContainer = lazy(() => import("../SchemaContainer-2NK5YB5O.mjs"));
|
|
20
|
+
var SmallPresenceLive = lazy(() => import("../SmallPresenceLive-L4H7WJOA.mjs"));
|
|
21
|
+
var SpacePresence = lazy(() => import("../SpacePresence-PDTEDHDE.mjs"));
|
|
22
|
+
var SpaceHomeArticle = lazy(() => import("../SpaceHomeArticle-ZV7EERLS.mjs"));
|
|
23
|
+
var SpaceHomeRecent = lazy(() => import("../SpaceHomeRecent-ZR4LIIUD.mjs"));
|
|
24
|
+
var SpaceSettingsContainer = lazy(() => import("../SpaceSettingsContainer-QAFQ4LWC.mjs"));
|
|
25
|
+
var SyncStatus = lazy(() => import("../SyncStatus-J7CHLO5O.mjs"));
|
|
25
26
|
var ViewEditor = lazy(() => import("../ViewEditor-QXRUOKXR.mjs"));
|
|
26
27
|
export {
|
|
27
28
|
CollectionArticle,
|
|
28
29
|
CollectionSection,
|
|
29
30
|
CreateObjectDialog,
|
|
30
31
|
CreateSpaceDialog,
|
|
31
|
-
EntityRenamePopover,
|
|
32
32
|
ImportSpaceDialog,
|
|
33
33
|
InlineSyncStatus,
|
|
34
34
|
JoinDialog,
|
|
@@ -38,10 +38,12 @@ export {
|
|
|
38
38
|
ObjectProperties,
|
|
39
39
|
RecordArticle,
|
|
40
40
|
RelatedArticle,
|
|
41
|
+
RenamePopover,
|
|
41
42
|
SchemaContainer,
|
|
42
43
|
SmallPresenceLive,
|
|
44
|
+
SpaceHomeArticle,
|
|
45
|
+
SpaceHomeRecent,
|
|
43
46
|
SpacePresence,
|
|
44
|
-
SpaceRenamePopover,
|
|
45
47
|
SpaceSettingsContainer,
|
|
46
48
|
SyncStatus,
|
|
47
49
|
ViewEditor
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/containers/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { CreateObjectDialogProps } from './CreateObjectDialog';\n\nexport const CollectionArticle: ComponentType<any> = lazy(() => import('./CollectionArticle'));\nexport const CollectionSection: ComponentType<any> = lazy(() => import('./CollectionSection'));\nexport const CreateObjectDialog: ComponentType<any> = lazy(() => import('./CreateObjectDialog'));\nexport const CreateSpaceDialog: ComponentType<any> = lazy(() => import('./CreateSpaceDialog'));\nexport const ImportSpaceDialog: ComponentType<any> = lazy(() => import('./ImportSpaceDialog'));\nexport const InlineSyncStatus: ComponentType<any> = lazy(() => import('./InlineSyncStatus'));\nexport const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));\nexport const MembersContainer: ComponentType<any> = lazy(() => import('./MembersContainer'));\nexport const MenuFooter: ComponentType<any> = lazy(() => import('./MenuFooter'));\nexport const ObjectCardStack: ComponentType<any> = lazy(() => import('./ObjectCardStack'));\nexport const ObjectProperties: ComponentType<any> = lazy(() => import('./ObjectProperties'));\nexport const
|
|
5
|
-
"mappings": ";;;AAIA,SAA6BA,YAAY;AAIlC,IAAMC,oBAAwCD,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAME,oBAAwCF,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMG,qBAAyCH,KAAK,MAAM,OAAO,oCAAA,CAAA;AACjE,IAAMI,oBAAwCJ,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMK,oBAAwCL,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMM,mBAAuCN,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMO,aAAiCP,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAMQ,mBAAuCR,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMS,aAAiCT,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAMU,kBAAsCV,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMW,mBAAuCX,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMY,
|
|
6
|
-
"names": ["lazy", "CollectionArticle", "CollectionSection", "CreateObjectDialog", "CreateSpaceDialog", "ImportSpaceDialog", "InlineSyncStatus", "JoinDialog", "MembersContainer", "MenuFooter", "ObjectCardStack", "ObjectProperties", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport type { CreateObjectDialogProps } from './CreateObjectDialog';\n\nexport const CollectionArticle: ComponentType<any> = lazy(() => import('./CollectionArticle'));\nexport const CollectionSection: ComponentType<any> = lazy(() => import('./CollectionSection'));\nexport const CreateObjectDialog: ComponentType<any> = lazy(() => import('./CreateObjectDialog'));\nexport const CreateSpaceDialog: ComponentType<any> = lazy(() => import('./CreateSpaceDialog'));\nexport const ImportSpaceDialog: ComponentType<any> = lazy(() => import('./ImportSpaceDialog'));\nexport const InlineSyncStatus: ComponentType<any> = lazy(() => import('./InlineSyncStatus'));\nexport const JoinDialog: ComponentType<any> = lazy(() => import('./JoinDialog'));\nexport const MembersContainer: ComponentType<any> = lazy(() => import('./MembersContainer'));\nexport const MenuFooter: ComponentType<any> = lazy(() => import('./MenuFooter'));\nexport const ObjectCardStack: ComponentType<any> = lazy(() => import('./ObjectCardStack'));\nexport const ObjectProperties: ComponentType<any> = lazy(() => import('./ObjectProperties'));\nexport const RecordArticle: ComponentType<any> = lazy(() => import('./RecordArticle'));\nexport const RelatedArticle: ComponentType<any> = lazy(() => import('./RelatedArticle'));\nexport const RenamePopover: ComponentType<any> = lazy(() => import('./RenamePopover'));\nexport const SchemaContainer: ComponentType<any> = lazy(() => import('./SchemaContainer'));\nexport const SmallPresenceLive: ComponentType<any> = lazy(() => import('./SmallPresenceLive'));\nexport const SpacePresence: ComponentType<any> = lazy(() => import('./SpacePresence'));\nexport const SpaceHomeArticle: ComponentType<any> = lazy(() => import('./SpaceHomeArticle'));\nexport const SpaceHomeRecent: ComponentType<any> = lazy(() => import('./SpaceHomeRecent'));\nexport const SpaceSettingsContainer: ComponentType<any> = lazy(() => import('./SpaceSettingsContainer'));\nexport const SyncStatus: ComponentType<any> = lazy(() => import('./SyncStatus'));\nexport const ViewEditor: ComponentType<any> = lazy(() => import('./ViewEditor'));\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAA6BA,YAAY;AAIlC,IAAMC,oBAAwCD,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAME,oBAAwCF,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMG,qBAAyCH,KAAK,MAAM,OAAO,oCAAA,CAAA;AACjE,IAAMI,oBAAwCJ,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMK,oBAAwCL,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMM,mBAAuCN,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMO,aAAiCP,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAMQ,mBAAuCR,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMS,aAAiCT,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAMU,kBAAsCV,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMW,mBAAuCX,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMY,gBAAoCZ,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMa,iBAAqCb,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC7D,IAAMc,gBAAoCd,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMe,kBAAsCf,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMgB,oBAAwChB,KAAK,MAAM,OAAO,mCAAA,CAAA;AAChE,IAAMiB,gBAAoCjB,KAAK,MAAM,OAAO,+BAAA,CAAA;AAC5D,IAAMkB,mBAAuClB,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC/D,IAAMmB,kBAAsCnB,KAAK,MAAM,OAAO,iCAAA,CAAA;AAC9D,IAAMoB,yBAA6CpB,KAAK,MAAM,OAAO,wCAAA,CAAA;AACrE,IAAMqB,aAAiCrB,KAAK,MAAM,OAAO,4BAAA,CAAA;AACzD,IAAMsB,aAAiCtB,KAAK,MAAM,OAAO,4BAAA,CAAA;",
|
|
6
|
+
"names": ["lazy", "CollectionArticle", "CollectionSection", "CreateObjectDialog", "CreateSpaceDialog", "ImportSpaceDialog", "InlineSyncStatus", "JoinDialog", "MembersContainer", "MenuFooter", "ObjectCardStack", "ObjectProperties", "RecordArticle", "RelatedArticle", "RenamePopover", "SchemaContainer", "SmallPresenceLive", "SpacePresence", "SpaceHomeArticle", "SpaceHomeRecent", "SpaceSettingsContainer", "SyncStatus", "ViewEditor"]
|
|
7
7
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperationConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-G2KHP7FX.mjs";
|
|
4
4
|
import {
|
|
5
5
|
SpaceOperation
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
7
7
|
import {
|
|
8
8
|
SpaceCapabilities,
|
|
9
9
|
SpaceEvents
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DSYEB2UN.mjs";
|
|
11
11
|
import "./chunk-J5LGTIGS.mjs";
|
|
12
12
|
|
|
13
13
|
// src/operations/create.ts
|
|
14
14
|
import * as Effect from "effect/Effect";
|
|
15
15
|
import { Capability, Plugin } from "@dxos/app-framework";
|
|
16
|
-
import {
|
|
16
|
+
import { AppAnnotation } from "@dxos/app-toolkit";
|
|
17
17
|
import { Operation } from "@dxos/compute";
|
|
18
18
|
import { Annotation, Collection, Obj, Ref } from "@dxos/echo";
|
|
19
19
|
import { MigrationVersionAnnotation, Migrations } from "@dxos/migrations";
|
|
@@ -39,7 +39,7 @@ var handler = SpaceOperation.Create.pipe(Operation.withHandler(Effect.fnUntraced
|
|
|
39
39
|
objects: []
|
|
40
40
|
});
|
|
41
41
|
Obj.update(space.properties, (properties) => {
|
|
42
|
-
Annotation.set(properties, RootCollectionAnnotation, Ref.make(collection));
|
|
42
|
+
Annotation.set(properties, AppAnnotation.RootCollectionAnnotation, Ref.make(collection));
|
|
43
43
|
if (Migrations.targetVersion) {
|
|
44
44
|
Annotation.set(properties, MigrationVersionAnnotation, Migrations.targetVersion);
|
|
45
45
|
}
|
|
@@ -72,4 +72,4 @@ var create_default = handler;
|
|
|
72
72
|
export {
|
|
73
73
|
create_default as default
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=create-
|
|
75
|
+
//# sourceMappingURL=create-XKU2W6QC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright 2025 DXOS.org\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability, Plugin } from '@dxos/app-framework';\nimport { AppAnnotation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Annotation, Collection, Obj, Ref } from '@dxos/echo';\nimport { MigrationVersionAnnotation, Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { ObservabilityOperation } from '@dxos/plugin-observability';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { iconValues } from '@dxos/react-ui-pickers/icons';\nimport { hues } from '@dxos/ui-theme';\n\nimport { SpaceEvents, SpaceCapabilities } from '../types';\nimport { SpaceOperation } from './definitions';\nimport { SpaceOperationConfig } from './helpers';\n\nconst handler: Operation.WithHandler<typeof SpaceOperation.Create> = SpaceOperation.Create.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ name, hue: hue_, icon: icon_, edgeReplication }) {\n const client = yield* Capability.get(ClientCapabilities.Client);\n const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];\n const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];\n const space = yield* Effect.promise(() =>\n client.spaces.create({\n name,\n hue,\n icon,\n }),\n );\n if (edgeReplication) {\n yield* Effect.promise(() => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED));\n }\n yield* Effect.promise(() => space.waitUntilReady());\n\n const collection = Obj.make(Collection.Collection, { objects: [] });\n Obj.update(space.properties, (properties) => {\n Annotation.set(properties, AppAnnotation.RootCollectionAnnotation, Ref.make(collection));\n if (Migrations.targetVersion) {\n Annotation.set(properties, MigrationVersionAnnotation, Migrations.targetVersion);\n }\n });\n\n yield* Plugin.activate(SpaceEvents.SpaceCreated);\n const onCreateSpaceCallbacks = yield* Capability.getAll(SpaceCapabilities.OnCreateSpace);\n yield* Effect.all(\n onCreateSpaceCallbacks.map((onCreateSpace) =>\n onCreateSpace({ space, isDefault: false, rootCollection: collection }),\n ),\n );\n\n const { observability } = yield* Capability.get(SpaceOperationConfig);\n if (observability) {\n yield* Operation.schedule(ObservabilityOperation.SendEvent, {\n name: 'space.create',\n properties: { spaceId: space.id },\n });\n }\n\n return { id: space.id, subject: [space.id], space };\n }),\n ),\n);\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;AAEA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,qBAAqB;AAC9B,SAASC,iBAAiB;AAC1B,SAASC,YAAYC,YAAYC,KAAKC,WAAW;AACjD,SAASC,4BAA4BC,kBAAkB;AACvD,SAASC,0BAA0B;AACnC,SAASC,8BAA8B;AACvC,SAASC,8BAA8B;AACvC,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AAMrB,IAAMC,UAA+DC,eAAeC,OAAOC,KACzFC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,MAAMC,KAAKC,MAAMC,MAAMC,OAAOC,gBAAe,GAAE;AAC5E,QAAMC,SAAS,OAAOC,WAAWC,IAAIC,mBAAmBC,MAAM;AAC9D,QAAMT,MAAMC,QAAQS,KAAKC,KAAKC,MAAMD,KAAKE,OAAM,IAAKH,KAAKI,MAAM,CAAA;AAC/D,QAAMZ,OAAOC,SAASY,WAAWJ,KAAKC,MAAMD,KAAKE,OAAM,IAAKE,WAAWD,MAAM,CAAA;AAC7E,QAAME,QAAQ,OAAcC,eAAQ,MAClCZ,OAAOa,OAAOC,OAAO;IACnBpB;IACAC;IACAE;EACF,CAAA,CAAA;AAEF,MAAIE,iBAAiB;AACnB,WAAca,eAAQ,MAAMD,MAAMI,SAASC,6BAA6BC,uBAAuBC,OAAO,CAAA;EACxG;AACA,SAAcN,eAAQ,MAAMD,MAAMQ,eAAc,CAAA;AAEhD,QAAMC,aAAaC,IAAIC,KAAKC,WAAWA,YAAY;IAAEC,SAAS,CAAA;EAAG,CAAA;AACjEH,MAAII,OAAOd,MAAMe,YAAY,CAACA,eAAAA;AAC5BC,eAAWC,IAAIF,YAAYG,cAAcC,0BAA0BC,IAAIT,KAAKF,UAAAA,CAAAA;AAC5E,QAAIY,WAAWC,eAAe;AAC5BN,iBAAWC,IAAIF,YAAYQ,4BAA4BF,WAAWC,aAAa;IACjF;EACF,CAAA;AAEA,SAAOE,OAAOC,SAASC,YAAYC,YAAY;AAC/C,QAAMC,yBAAyB,OAAOtC,WAAWuC,OAAOC,kBAAkBC,aAAa;AACvF,SAAcC,WACZJ,uBAAuBK,IAAI,CAACC,kBAC1BA,cAAc;IAAElC;IAAOmC,WAAW;IAAOC,gBAAgB3B;EAAW,CAAA,CAAA,CAAA;AAIxE,QAAM,EAAE4B,cAAa,IAAK,OAAO/C,WAAWC,IAAI+C,oBAAAA;AAChD,MAAID,eAAe;AACjB,WAAOzD,UAAU2D,SAASC,uBAAuBC,WAAW;MAC1D1D,MAAM;MACNgC,YAAY;QAAE2B,SAAS1C,MAAM2C;MAAG;IAClC,CAAA;EACF;AAEA,SAAO;IAAEA,IAAI3C,MAAM2C;IAAIC,SAAS;MAAC5C,MAAM2C;;IAAK3C;EAAM;AACpD,CAAA,CAAA,CAAA;AAGJ,IAAA,iBAAexB;",
|
|
6
|
+
"names": ["Effect", "Capability", "Plugin", "AppAnnotation", "Operation", "Annotation", "Collection", "Obj", "Ref", "MigrationVersionAnnotation", "Migrations", "ClientCapabilities", "ObservabilityOperation", "EdgeReplicationSetting", "iconValues", "hues", "handler", "SpaceOperation", "Create", "pipe", "Operation", "withHandler", "fnUntraced", "name", "hue", "hue_", "icon", "icon_", "edgeReplication", "client", "Capability", "get", "ClientCapabilities", "Client", "hues", "Math", "floor", "random", "length", "iconValues", "space", "promise", "spaces", "create", "internal", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "waitUntilReady", "collection", "Obj", "make", "Collection", "objects", "update", "properties", "Annotation", "set", "AppAnnotation", "RootCollectionAnnotation", "Ref", "Migrations", "targetVersion", "MigrationVersionAnnotation", "Plugin", "activate", "SpaceEvents", "SpaceCreated", "onCreateSpaceCallbacks", "getAll", "SpaceCapabilities", "OnCreateSpace", "all", "map", "onCreateSpace", "isDefault", "rootCollection", "observability", "SpaceOperationConfig", "schedule", "ObservabilityOperation", "SendEvent", "spaceId", "id", "subject"]
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperation
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
4
|
+
import "./chunk-DSYEB2UN.mjs";
|
|
5
5
|
import "./chunk-J5LGTIGS.mjs";
|
|
6
6
|
|
|
7
7
|
// src/operations/delete.ts
|
|
@@ -14,4 +14,4 @@ var delete_default = handler;
|
|
|
14
14
|
export {
|
|
15
15
|
delete_default as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=delete-
|
|
17
|
+
//# sourceMappingURL=delete-EFM7CAVO.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperation
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
4
|
+
import "./chunk-DSYEB2UN.mjs";
|
|
5
5
|
import "./chunk-J5LGTIGS.mjs";
|
|
6
6
|
|
|
7
7
|
// src/operations/delete-field.ts
|
|
@@ -39,4 +39,4 @@ var delete_field_default = handler;
|
|
|
39
39
|
export {
|
|
40
40
|
delete_field_default as default
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=delete-field-
|
|
42
|
+
//# sourceMappingURL=delete-field-ONAPFFO5.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperation
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
4
|
+
import "./chunk-DSYEB2UN.mjs";
|
|
5
5
|
import "./chunk-J5LGTIGS.mjs";
|
|
6
6
|
|
|
7
7
|
// src/operations/duplicate-object.ts
|
|
@@ -14,4 +14,4 @@ var duplicate_object_default = handler;
|
|
|
14
14
|
export {
|
|
15
15
|
duplicate_object_default as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=duplicate-object-
|
|
17
|
+
//# sourceMappingURL=duplicate-object-OJRPFV5I.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperation
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
4
|
+
import "./chunk-DSYEB2UN.mjs";
|
|
5
5
|
import "./chunk-J5LGTIGS.mjs";
|
|
6
6
|
|
|
7
7
|
// src/operations/export-space.ts
|
|
@@ -31,4 +31,4 @@ var downloadArchive = (data, filename) => {
|
|
|
31
31
|
export {
|
|
32
32
|
export_space_default as default
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=export-space-
|
|
34
|
+
//# sourceMappingURL=export-space-M5RNVUQX.mjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SpaceOperationConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-G2KHP7FX.mjs";
|
|
4
4
|
import {
|
|
5
5
|
SpaceOperation
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-F2VJ6VBV.mjs";
|
|
7
|
+
import "./chunk-DSYEB2UN.mjs";
|
|
8
8
|
import "./chunk-J5LGTIGS.mjs";
|
|
9
9
|
|
|
10
10
|
// src/operations/get-share-link.ts
|
|
@@ -38,4 +38,4 @@ var get_share_link_default = handler;
|
|
|
38
38
|
export {
|
|
39
39
|
get_share_link_default as default
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=get-share-link-
|
|
41
|
+
//# sourceMappingURL=get-share-link-FUQBJPSQ.mjs.map
|