@dxos/plugin-space 0.8.1-staging.391c573 → 0.8.1-staging.97aedb1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs → app-graph-builder-GMFCSOLG.mjs} +33 -6
- package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs → app-graph-serializer-DSF2U3A5.mjs} +7 -7
- package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs.map → app-graph-serializer-DSF2U3A5.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-UDWHTKB5.mjs → chunk-5BDV575R.mjs} +22 -16
- package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ULA2UQJ4.mjs → chunk-AYW4IDRT.mjs} +15 -65
- package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-OWVFWTX4.mjs → chunk-JZXWPMLA.mjs} +853 -588
- package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NU7WDVGN.mjs → chunk-KVRYWFZU.mjs} +3 -3
- package/dist/lib/browser/chunk-KVRYWFZU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-23RVI5FZ.mjs → chunk-LO5UL6RU.mjs} +49 -16
- package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-PTKYMZWO.mjs} +1 -1
- package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-FYGS6TBH.mjs → identity-created-JR7BNXFH.mjs} +3 -3
- package/dist/lib/browser/index.mjs +34 -45
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-7PY5WDYC.mjs → intent-resolver-RKYILWWQ.mjs} +69 -44
- package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-EP4XP4IK.mjs → react-root-6H7NX2M2.mjs} +6 -6
- package/dist/lib/browser/{react-surface-VNNI5POA.mjs → react-surface-7AGLOVMK.mjs} +39 -38
- package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
- package/dist/lib/browser/{schema-5W3DSY2E.mjs → schema-FHTA26SW.mjs} +3 -3
- package/dist/lib/browser/{schema-tools-6J5ZEDBC.mjs → schema-tools-YAXPRIXP.mjs} +3 -3
- package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
- package/dist/lib/browser/{settings-PHPCXX33.mjs → settings-PJPTJUPE.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs → spaces-ready-BSSP7HHG.mjs} +8 -8
- package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
- package/dist/lib/browser/{state-INJ63O57.mjs → state-X7VLCC6E.mjs} +5 -3
- package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -10
- package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs → app-graph-builder-DPY7AUZE.cjs} +73 -46
- package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs → app-graph-serializer-JELGJUAY.cjs} +21 -21
- package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs.map → app-graph-serializer-JELGJUAY.cjs.map} +2 -2
- package/dist/lib/node/{chunk-53J7HLYX.cjs → chunk-3GKCNADA.cjs} +915 -656
- package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
- package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-6P2DB4QQ.cjs} +4 -4
- package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-6P2DB4QQ.cjs.map} +2 -2
- package/dist/lib/node/{chunk-YZKNRFHU.cjs → chunk-IKIDS6XF.cjs} +10 -10
- package/dist/lib/node/chunk-IKIDS6XF.cjs.map +7 -0
- package/dist/lib/node/{chunk-U6DYXAR3.cjs → chunk-PU2EYH4E.cjs} +27 -21
- package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
- package/dist/lib/node/{chunk-OVGKWJOC.cjs → chunk-TUZWEPGX.cjs} +99 -66
- package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
- package/dist/lib/node/{chunk-WAJKBO3J.cjs → chunk-WDEIFDTX.cjs} +19 -73
- package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
- package/dist/lib/node/{identity-created-AXI64BLE.cjs → identity-created-XU4HFV2T.cjs} +7 -7
- package/dist/lib/node/index.cjs +102 -113
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-QEIKJ5FR.cjs → intent-resolver-VJ7YV74L.cjs} +133 -107
- package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-OW5NTN2U.cjs → react-root-TEL5RW3N.cjs} +12 -12
- package/dist/lib/node/{react-surface-JTIQUBHB.cjs → react-surface-2H3S5TY5.cjs} +78 -76
- package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
- package/dist/lib/node/{schema-YN7WVFRX.cjs → schema-PPJ5BZ3A.cjs} +7 -7
- package/dist/lib/node/{schema-tools-OZS4OC6X.cjs → schema-tools-BLIMOZYY.cjs} +5 -5
- package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
- package/dist/lib/node/{settings-5QYFWNH7.cjs → settings-WVFP2UEP.cjs} +8 -8
- package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs → spaces-ready-7DNZSUOG.cjs} +16 -16
- package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
- package/dist/lib/node/{state-57UE3DYE.cjs → state-5KX6WBJH.cjs} +10 -8
- package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +13 -21
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs → app-graph-builder-42IGWRPL.mjs} +33 -6
- package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs → app-graph-serializer-FXONFKOE.mjs} +7 -7
- package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs.map → app-graph-serializer-FXONFKOE.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-2TQ2AJEZ.mjs → chunk-3ZOUV4DF.mjs} +22 -16
- package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FDVNOFE3.mjs → chunk-BEWBZ4Q4.mjs} +853 -588
- package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TRNZQEEN.mjs → chunk-FC4UHDPL.mjs} +15 -65
- package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-MSWEFAPD.mjs} +1 -1
- package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs → chunk-PIYAWT5N.mjs} +3 -3
- package/dist/lib/node-esm/chunk-PIYAWT5N.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs → chunk-ZGLK25WQ.mjs} +49 -16
- package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs → identity-created-WJKAS2PV.mjs} +3 -3
- package/dist/lib/node-esm/index.mjs +34 -45
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-7EYVRN3R.mjs → intent-resolver-ZFNSA4CM.mjs} +69 -44
- package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-RCKGZSZB.mjs → react-root-PRBJMWLQ.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-WKKBE5V4.mjs → react-surface-RCZG2PNF.mjs} +39 -38
- package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-LOR2EVGY.mjs → schema-OUZKVYM5.mjs} +3 -3
- package/dist/lib/node-esm/{schema-tools-KJVXGDBO.mjs → schema-tools-IU7EX5A5.mjs} +3 -3
- package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-H6MXTEQM.mjs → settings-FJZPC2TV.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs → spaces-ready-7X5PGB2V.mjs} +8 -8
- package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
- package/dist/lib/node-esm/{state-VYA6OFHD.mjs → state-Z6E2YTNC.mjs} +5 -3
- package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -10
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +4 -3
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +0 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts +7 -0
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer.stories.d.ts +8 -0
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts +8 -0
- package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts +8 -0
- package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/index.d.ts +2 -0
- package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
- package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +9 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/index.d.ts +2 -2
- package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -5
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +53 -36
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +92 -197
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +10 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +12 -0
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +44 -42
- package/src/SpacePlugin.tsx +6 -11
- package/src/capabilities/app-graph-builder.ts +20 -0
- package/src/capabilities/app-graph-serializer.ts +2 -2
- package/src/capabilities/capabilities.ts +3 -3
- package/src/capabilities/intent-resolver.ts +66 -38
- package/src/capabilities/react-surface.tsx +30 -28
- package/src/capabilities/schema-tools.ts +2 -2
- package/src/capabilities/spaces-ready.ts +3 -3
- package/src/capabilities/state.ts +2 -0
- package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -6
- package/src/components/CreateDialog/CreateObjectPanel.tsx +6 -6
- package/src/components/JoinDialog.tsx +43 -27
- package/src/components/MembersContainer.stories.tsx +34 -0
- package/src/components/MembersContainer.tsx +257 -0
- package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
- package/src/components/ObjectSettingsContainer/BaseObjectSettings.tsx +47 -0
- package/src/components/ObjectSettingsContainer/ObjectSettingsContainer.tsx +36 -0
- package/src/components/ObjectSettingsContainer/index.ts +5 -0
- package/src/components/PopoverRenameObject.tsx +1 -1
- package/src/components/SpacePresence.tsx +25 -23
- package/src/components/SpaceSettings/{SpaceSettingsPanel.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
- package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +63 -0
- package/src/components/SpaceSettings/index.ts +2 -2
- package/src/components/SyncStatus/SyncStatus.tsx +1 -1
- package/src/components/SyncStatus/save-tracker.ts +5 -5
- package/src/components/index.ts +2 -2
- package/src/events.ts +2 -2
- package/src/meta.ts +2 -2
- package/src/translations.ts +21 -12
- package/src/types/thread.ts +2 -56
- package/src/types/types.ts +15 -6
- package/src/util.tsx +30 -9
- package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +0 -7
- package/dist/lib/browser/chunk-OWVFWTX4.mjs.map +0 -7
- package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +0 -7
- package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +0 -7
- package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-7PY5WDYC.mjs.map +0 -7
- package/dist/lib/browser/react-surface-VNNI5POA.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-6J5ZEDBC.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-K47RR7N2.mjs.map +0 -7
- package/dist/lib/browser/state-INJ63O57.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +0 -7
- package/dist/lib/node/chunk-53J7HLYX.cjs.map +0 -7
- package/dist/lib/node/chunk-OVGKWJOC.cjs.map +0 -7
- package/dist/lib/node/chunk-U6DYXAR3.cjs.map +0 -7
- package/dist/lib/node/chunk-WAJKBO3J.cjs.map +0 -7
- package/dist/lib/node/chunk-YZKNRFHU.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-QEIKJ5FR.cjs.map +0 -7
- package/dist/lib/node/react-surface-JTIQUBHB.cjs.map +0 -7
- package/dist/lib/node/schema-tools-OZS4OC6X.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-FQNAKR7G.cjs.map +0 -7
- package/dist/lib/node/state-57UE3DYE.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FDVNOFE3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-7EYVRN3R.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-WKKBE5V4.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KJVXGDBO.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs.map +0 -7
- package/dist/lib/node-esm/state-VYA6OFHD.mjs.map +0 -7
- package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +0 -1
- package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +0 -2
- package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/BaseObjectSettings.d.ts +0 -7
- package/dist/types/src/components/BaseObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +0 -11
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +0 -1
- package/src/components/AdvancedObjectSettings/index.ts +0 -5
- package/src/components/BaseObjectSettings.tsx +0 -40
- package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +0 -43
- package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +0 -120
- package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +0 -83
- /package/dist/lib/browser/{identity-created-FYGS6TBH.mjs.map → identity-created-JR7BNXFH.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-EP4XP4IK.mjs.map → react-root-6H7NX2M2.mjs.map} +0 -0
- /package/dist/lib/browser/{schema-5W3DSY2E.mjs.map → schema-FHTA26SW.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-PHPCXX33.mjs.map → settings-PJPTJUPE.mjs.map} +0 -0
- /package/dist/lib/node/{identity-created-AXI64BLE.cjs.map → identity-created-XU4HFV2T.cjs.map} +0 -0
- /package/dist/lib/node/{react-root-OW5NTN2U.cjs.map → react-root-TEL5RW3N.cjs.map} +0 -0
- /package/dist/lib/node/{schema-YN7WVFRX.cjs.map → schema-PPJ5BZ3A.cjs.map} +0 -0
- /package/dist/lib/node/{settings-5QYFWNH7.cjs.map → settings-WVFP2UEP.cjs.map} +0 -0
- /package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs.map → identity-created-WJKAS2PV.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-RCKGZSZB.mjs.map → react-root-PRBJMWLQ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{schema-LOR2EVGY.mjs.map → schema-OUZKVYM5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-H6MXTEQM.mjs.map → settings-FJZPC2TV.mjs.map} +0 -0
- /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
- /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
- /package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
|
@@ -26,13 +26,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
31
|
-
AdvancedObjectSettings: () => AdvancedObjectSettings,
|
|
29
|
+
var chunk_3GKCNADA_exports = {};
|
|
30
|
+
__export(chunk_3GKCNADA_exports, {
|
|
32
31
|
AppGraphBuilder: () => AppGraphBuilder,
|
|
33
32
|
AppGraphSerializer: () => AppGraphSerializer,
|
|
34
33
|
AwaitingObject: () => AwaitingObject,
|
|
35
|
-
BaseObjectSettings: () => BaseObjectSettings,
|
|
36
34
|
CREATE_OBJECT_DIALOG: () => CREATE_OBJECT_DIALOG,
|
|
37
35
|
CREATE_SPACE_DIALOG: () => CREATE_SPACE_DIALOG,
|
|
38
36
|
CollectionMain: () => CollectionMain,
|
|
@@ -45,7 +43,9 @@ __export(chunk_53J7HLYX_exports, {
|
|
|
45
43
|
IntentResolver: () => IntentResolver,
|
|
46
44
|
JOIN_DIALOG: () => JOIN_DIALOG,
|
|
47
45
|
JoinDialog: () => JoinDialog,
|
|
46
|
+
MembersContainer: () => MembersContainer,
|
|
48
47
|
MenuFooter: () => MenuFooter,
|
|
48
|
+
ObjectSettingsContainer: () => ObjectSettingsContainer,
|
|
49
49
|
POPOVER_ADD_SPACE: () => POPOVER_ADD_SPACE,
|
|
50
50
|
POPOVER_RENAME_OBJECT: () => POPOVER_RENAME_OBJECT,
|
|
51
51
|
POPOVER_RENAME_SPACE: () => POPOVER_RENAME_SPACE,
|
|
@@ -63,9 +63,9 @@ __export(chunk_53J7HLYX_exports, {
|
|
|
63
63
|
SmallPresenceLive: () => SmallPresenceLive,
|
|
64
64
|
SpacePluginSettings: () => SpacePluginSettings,
|
|
65
65
|
SpacePresence: () => SpacePresence,
|
|
66
|
+
SpacePropertiesForm: () => SpacePropertiesForm,
|
|
66
67
|
SpaceSettings: () => SpaceSettings,
|
|
67
|
-
|
|
68
|
-
SpaceSettingsPanel: () => SpaceSettingsPanel,
|
|
68
|
+
SpaceSettingsContainer: () => SpaceSettingsContainer,
|
|
69
69
|
SpaceState: () => SpaceState,
|
|
70
70
|
SpacesReady: () => SpacesReady,
|
|
71
71
|
SyncStatus: () => SyncStatus,
|
|
@@ -73,224 +73,161 @@ __export(chunk_53J7HLYX_exports, {
|
|
|
73
73
|
SyncStatusIndicator: () => SyncStatusIndicator,
|
|
74
74
|
Tools: () => Tools
|
|
75
75
|
});
|
|
76
|
-
module.exports = __toCommonJS(
|
|
77
|
-
var
|
|
78
|
-
var
|
|
79
|
-
var
|
|
80
|
-
var
|
|
81
|
-
var import_react =
|
|
82
|
-
var import_echo_schema = require("@dxos/echo-schema");
|
|
83
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
84
|
-
var import_react_ui = require("@dxos/react-ui");
|
|
85
|
-
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
76
|
+
module.exports = __toCommonJS(chunk_3GKCNADA_exports);
|
|
77
|
+
var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
|
|
78
|
+
var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
|
|
79
|
+
var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
|
|
80
|
+
var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
|
|
81
|
+
var import_react = require("@phosphor-icons/react");
|
|
86
82
|
var import_react2 = __toESM(require("react"));
|
|
87
|
-
var import_react_ui2 = require("@dxos/react-ui");
|
|
88
|
-
var import_react3 = require("@phosphor-icons/react");
|
|
89
|
-
var import_react4 = __toESM(require("react"));
|
|
90
83
|
var import_app_framework = require("@dxos/app-framework");
|
|
91
84
|
var import_react_client = require("@dxos/react-client");
|
|
92
|
-
var
|
|
93
|
-
var
|
|
85
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
86
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
94
87
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
95
|
-
var import_react5 = __toESM(require("react"));
|
|
96
|
-
var import_react_ui4 = require("@dxos/react-ui");
|
|
97
88
|
var import_effect = require("effect");
|
|
98
|
-
var
|
|
89
|
+
var import_react3 = __toESM(require("react"));
|
|
99
90
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
100
91
|
var import_invariant = require("@dxos/invariant");
|
|
101
92
|
var import_react_client2 = require("@dxos/react-client");
|
|
102
|
-
var
|
|
103
|
-
var
|
|
104
|
-
var
|
|
93
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
94
|
+
var import_react_ui2 = require("@dxos/react-ui");
|
|
95
|
+
var import_react4 = __toESM(require("react"));
|
|
105
96
|
var import_app_framework3 = require("@dxos/app-framework");
|
|
106
|
-
var
|
|
97
|
+
var import_echo_schema = require("@dxos/echo-schema");
|
|
107
98
|
var import_invariant2 = require("@dxos/invariant");
|
|
108
|
-
var
|
|
109
|
-
var
|
|
99
|
+
var import_react_ui3 = require("@dxos/react-ui");
|
|
100
|
+
var import_react_ui_form = require("@dxos/react-ui-form");
|
|
110
101
|
var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
|
|
111
102
|
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
112
103
|
var import_util = require("@dxos/util");
|
|
113
104
|
var import_app_framework4 = require("@dxos/app-framework");
|
|
114
105
|
var import_effect2 = require("effect");
|
|
115
|
-
var
|
|
106
|
+
var import_react5 = __toESM(require("react"));
|
|
116
107
|
var import_app_framework5 = require("@dxos/app-framework");
|
|
117
|
-
var
|
|
118
|
-
var
|
|
119
|
-
var
|
|
120
|
-
var
|
|
108
|
+
var import_react_ui4 = require("@dxos/react-ui");
|
|
109
|
+
var import_react_ui_form2 = require("@dxos/react-ui-form");
|
|
110
|
+
var import_react6 = __toESM(require("react"));
|
|
111
|
+
var import_react_ui5 = require("@dxos/react-ui");
|
|
121
112
|
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
122
|
-
var
|
|
123
|
-
var
|
|
124
|
-
var
|
|
113
|
+
var import_react7 = __toESM(require("react"));
|
|
114
|
+
var import_react_ui6 = require("@dxos/react-ui");
|
|
115
|
+
var import_react8 = __toESM(require("react"));
|
|
125
116
|
var import_app_framework6 = require("@dxos/app-framework");
|
|
126
|
-
var
|
|
117
|
+
var import_async = require("@dxos/async");
|
|
127
118
|
var import_types = require("@dxos/plugin-observability/types");
|
|
128
119
|
var import_react_client3 = require("@dxos/react-client");
|
|
129
|
-
var
|
|
120
|
+
var import_react_ui7 = require("@dxos/react-ui");
|
|
121
|
+
var import_react9 = require("@dxos/shell/react");
|
|
122
|
+
var import_react10 = require("@phosphor-icons/react");
|
|
123
|
+
var import_react11 = __toESM(require("react"));
|
|
124
|
+
var import_react_qr_rounded = require("react-qr-rounded");
|
|
125
|
+
var import_log = require("@dxos/log");
|
|
126
|
+
var import_react_client4 = require("@dxos/react-client");
|
|
127
|
+
var import_echo3 = require("@dxos/react-client/echo");
|
|
128
|
+
var import_invitations = require("@dxos/react-client/invitations");
|
|
129
|
+
var import_react_ui8 = require("@dxos/react-ui");
|
|
130
|
+
var import_react_ui_form3 = require("@dxos/react-ui-form");
|
|
131
|
+
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
132
|
+
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
130
133
|
var import_react12 = require("@dxos/shell/react");
|
|
134
|
+
var import_util2 = require("@dxos/util");
|
|
131
135
|
var import_react13 = require("@phosphor-icons/react");
|
|
132
136
|
var import_react14 = __toESM(require("react"));
|
|
133
137
|
var import_echo4 = require("@dxos/client/echo");
|
|
134
|
-
var
|
|
135
|
-
var
|
|
136
|
-
var import_react15 = require("
|
|
138
|
+
var import_react_client5 = require("@dxos/react-client");
|
|
139
|
+
var import_react_ui9 = require("@dxos/react-ui");
|
|
140
|
+
var import_react15 = __toESM(require("react"));
|
|
141
|
+
var import_app_framework7 = require("@dxos/app-framework");
|
|
142
|
+
var import_react_ui10 = require("@dxos/react-ui");
|
|
143
|
+
var import_react_ui_stack2 = require("@dxos/react-ui-stack");
|
|
137
144
|
var import_react16 = __toESM(require("react"));
|
|
138
|
-
var
|
|
139
|
-
var
|
|
140
|
-
var
|
|
145
|
+
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
146
|
+
var import_echo5 = require("@dxos/react-client/echo");
|
|
147
|
+
var import_react_ui11 = require("@dxos/react-ui");
|
|
148
|
+
var import_react_ui_form4 = require("@dxos/react-ui-form");
|
|
141
149
|
var import_react17 = __toESM(require("react"));
|
|
142
|
-
var
|
|
143
|
-
var import_react_ui13 = require("@dxos/react-ui");
|
|
150
|
+
var import_react_ui12 = require("@dxos/react-ui");
|
|
144
151
|
var import_react18 = __toESM(require("react"));
|
|
145
|
-
var
|
|
146
|
-
var
|
|
147
|
-
var import_react19 =
|
|
148
|
-
var import_react_ui15 = require("@dxos/react-ui");
|
|
152
|
+
var import_react_ui13 = require("@dxos/react-ui");
|
|
153
|
+
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
|
154
|
+
var import_react19 = require("@phosphor-icons/react");
|
|
149
155
|
var import_react20 = __toESM(require("react"));
|
|
156
|
+
var import_async2 = require("@dxos/async");
|
|
157
|
+
var import_react_ui14 = require("@dxos/react-ui");
|
|
158
|
+
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
159
|
+
var import_react21 = __toESM(require("react"));
|
|
150
160
|
var import_app_framework8 = require("@dxos/app-framework");
|
|
161
|
+
var import_react_ui15 = require("@dxos/react-ui");
|
|
162
|
+
var import_react22 = __toESM(require("react"));
|
|
163
|
+
var import_log2 = require("@dxos/log");
|
|
151
164
|
var import_react_ui16 = require("@dxos/react-ui");
|
|
152
|
-
var
|
|
165
|
+
var import_react23 = __toESM(require("react"));
|
|
166
|
+
var import_react_ui17 = require("@dxos/react-ui");
|
|
167
|
+
var import_react24 = __toESM(require("react"));
|
|
153
168
|
var import_app_framework9 = require("@dxos/app-framework");
|
|
169
|
+
var import_react_ui18 = require("@dxos/react-ui");
|
|
170
|
+
var import_react25 = __toESM(require("react"));
|
|
171
|
+
var import_app_framework10 = require("@dxos/app-framework");
|
|
154
172
|
var import_display_name = require("@dxos/display-name");
|
|
155
|
-
var
|
|
156
|
-
var
|
|
173
|
+
var import_react_client6 = require("@dxos/react-client");
|
|
174
|
+
var import_echo6 = require("@dxos/react-client/echo");
|
|
157
175
|
var import_halo = require("@dxos/react-client/halo");
|
|
158
|
-
var
|
|
176
|
+
var import_react_ui19 = require("@dxos/react-ui");
|
|
159
177
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
160
|
-
var
|
|
161
|
-
var
|
|
162
|
-
var
|
|
163
|
-
var
|
|
164
|
-
var
|
|
165
|
-
var
|
|
178
|
+
var import_util3 = require("@dxos/util");
|
|
179
|
+
var import_react26 = require("react");
|
|
180
|
+
var import_react27 = __toESM(require("react"));
|
|
181
|
+
var import_react_ui20 = require("@dxos/react-ui");
|
|
182
|
+
var import_react_ui_form5 = require("@dxos/react-ui-form");
|
|
183
|
+
var import_react28 = __toESM(require("react"));
|
|
166
184
|
var import_log3 = require("@dxos/log");
|
|
167
185
|
var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
|
|
168
|
-
var
|
|
169
|
-
var
|
|
170
|
-
var import_react_ui_form5 = require("@dxos/react-ui-form");
|
|
186
|
+
var import_react_ui21 = require("@dxos/react-ui");
|
|
187
|
+
var import_react_ui_form6 = require("@dxos/react-ui-form");
|
|
171
188
|
var import_react_ui_pickers = require("@dxos/react-ui-pickers");
|
|
172
|
-
var
|
|
173
|
-
var import_app_framework10 = require("@dxos/app-framework");
|
|
174
|
-
var import_react_client7 = require("@dxos/react-client");
|
|
175
|
-
var import_react_ui20 = require("@dxos/react-ui");
|
|
176
|
-
var import_react_ui_tabs = require("@dxos/react-ui-tabs");
|
|
177
|
-
var import_react26 = require("@dxos/shell/react");
|
|
178
|
-
var import_react27 = __toESM(require("react"));
|
|
189
|
+
var import_react29 = __toESM(require("react"));
|
|
179
190
|
var import_app_framework11 = require("@dxos/app-framework");
|
|
191
|
+
var import_react_ui22 = require("@dxos/react-ui");
|
|
192
|
+
var import_react_ui_form7 = require("@dxos/react-ui-form");
|
|
193
|
+
var import_react_ui_list = require("@dxos/react-ui-list");
|
|
194
|
+
var import_react_ui_stack3 = require("@dxos/react-ui-stack");
|
|
195
|
+
var import_util4 = require("@dxos/util");
|
|
196
|
+
var import_react30 = __toESM(require("react"));
|
|
197
|
+
var import_app_framework12 = require("@dxos/app-framework");
|
|
180
198
|
var import_services = require("@dxos/protocols/proto/dxos/client/services");
|
|
181
199
|
var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
|
|
182
|
-
var
|
|
183
|
-
var
|
|
200
|
+
var import_react_client7 = require("@dxos/react-client");
|
|
201
|
+
var import_react_ui23 = require("@dxos/react-ui");
|
|
184
202
|
var import_react_ui_attention2 = require("@dxos/react-ui-attention");
|
|
185
|
-
var
|
|
203
|
+
var import_react31 = require("react");
|
|
186
204
|
var import_context = require("@dxos/context");
|
|
187
205
|
var import_protocols = require("@dxos/protocols");
|
|
188
|
-
var
|
|
189
|
-
var
|
|
206
|
+
var import_react_client8 = require("@dxos/react-client");
|
|
207
|
+
var import_react32 = __toESM(require("react"));
|
|
190
208
|
var import_plugin_status_bar = require("@dxos/plugin-status-bar");
|
|
191
|
-
var
|
|
192
|
-
var
|
|
209
|
+
var import_react_client9 = require("@dxos/react-client");
|
|
210
|
+
var import_react_ui24 = require("@dxos/react-ui");
|
|
193
211
|
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
194
|
-
var
|
|
195
|
-
var
|
|
196
|
-
var
|
|
197
|
-
var
|
|
198
|
-
var
|
|
199
|
-
var
|
|
212
|
+
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
|
213
|
+
var import_react33 = __toESM(require("react"));
|
|
214
|
+
var import_react_client10 = require("@dxos/react-client");
|
|
215
|
+
var import_echo7 = require("@dxos/react-client/echo");
|
|
216
|
+
var import_react_ui25 = require("@dxos/react-ui");
|
|
217
|
+
var import_react_ui_theme8 = require("@dxos/react-ui-theme");
|
|
200
218
|
var import_context2 = require("@dxos/context");
|
|
201
|
-
var ForeignKeys = ({ keys, onDelete }) => {
|
|
202
|
-
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.List, {
|
|
203
|
-
classNames: "flex flex-col gap-2"
|
|
204
|
-
}, keys.map((key) => /* @__PURE__ */ import_react2.default.createElement(KeyItem, {
|
|
205
|
-
key: key.id,
|
|
206
|
-
forignKey: key,
|
|
207
|
-
onDelete
|
|
208
|
-
})));
|
|
209
|
-
};
|
|
210
|
-
var KeyItem = ({ forignKey, onDelete }) => {
|
|
211
|
-
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
|
|
212
|
-
const handleDelete = (0, import_react2.useCallback)(() => {
|
|
213
|
-
onDelete?.(forignKey);
|
|
214
|
-
}, [
|
|
215
|
-
forignKey,
|
|
216
|
-
onDelete
|
|
217
|
-
]);
|
|
218
|
-
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Root, {
|
|
219
|
-
classNames: "px-2"
|
|
220
|
-
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Heading, {
|
|
221
|
-
classNames: "flex flex-col grow truncate"
|
|
222
|
-
}, /* @__PURE__ */ import_react2.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
223
|
-
className: "text-description text-sm truncate"
|
|
224
|
-
}, forignKey.id)), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Endcap, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.IconButton, {
|
|
225
|
-
iconOnly: true,
|
|
226
|
-
icon: "ph--x--regular",
|
|
227
|
-
variant: "ghost",
|
|
228
|
-
label: t("delete key"),
|
|
229
|
-
onClick: handleDelete
|
|
230
|
-
})));
|
|
231
|
-
};
|
|
232
|
-
var initialValues = {
|
|
233
|
-
source: "",
|
|
234
|
-
id: ""
|
|
235
|
-
};
|
|
236
|
-
var AdvancedObjectSettings = ({ object }) => {
|
|
237
|
-
const { t } = (0, import_react_ui.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
|
|
238
|
-
const [adding, setAdding] = (0, import_react.useState)(false);
|
|
239
|
-
const keys = (0, import_echo.getMeta)(object).keys;
|
|
240
|
-
const handleNew = (0, import_react.useCallback)(() => setAdding(true), []);
|
|
241
|
-
const handleCancel = (0, import_react.useCallback)(() => setAdding(false), []);
|
|
242
|
-
const handleSave = (0, import_react.useCallback)((key) => {
|
|
243
|
-
const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
|
|
244
|
-
if (index === -1) {
|
|
245
|
-
keys.push(key);
|
|
246
|
-
}
|
|
247
|
-
setAdding(false);
|
|
248
|
-
}, [
|
|
249
|
-
keys
|
|
250
|
-
]);
|
|
251
|
-
const handleDelete = (0, import_react.useCallback)((key) => {
|
|
252
|
-
const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
|
|
253
|
-
if (index !== -1) {
|
|
254
|
-
keys.splice(index, 1);
|
|
255
|
-
}
|
|
256
|
-
}, [
|
|
257
|
-
keys
|
|
258
|
-
]);
|
|
259
|
-
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Separator, null), /* @__PURE__ */ import_react.default.createElement("div", {
|
|
260
|
-
className: "p-2 flex flex-col gap-4"
|
|
261
|
-
}, /* @__PURE__ */ import_react.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react.default.createElement("div", {
|
|
262
|
-
className: "flex items-center"
|
|
263
|
-
}, /* @__PURE__ */ import_react.default.createElement("h3", {
|
|
264
|
-
className: "text-sm font-semibold"
|
|
265
|
-
}, t("foreign keys")), /* @__PURE__ */ import_react.default.createElement("div", {
|
|
266
|
-
className: "grow"
|
|
267
|
-
}), /* @__PURE__ */ import_react.default.createElement(import_react_ui.IconButton, {
|
|
268
|
-
classNames: adding && "invisible",
|
|
269
|
-
icon: "ph--plus--regular",
|
|
270
|
-
label: t("add key"),
|
|
271
|
-
onClick: handleNew
|
|
272
|
-
})), !adding && /* @__PURE__ */ import_react.default.createElement(ForeignKeys, {
|
|
273
|
-
keys,
|
|
274
|
-
onDelete: handleDelete
|
|
275
|
-
})), adding && /* @__PURE__ */ import_react.default.createElement(import_react_ui_form.Form, {
|
|
276
|
-
schema: import_echo_schema.ForeignKeySchema,
|
|
277
|
-
values: initialValues,
|
|
278
|
-
onSave: handleSave,
|
|
279
|
-
onCancel: handleCancel
|
|
280
|
-
}));
|
|
281
|
-
};
|
|
282
219
|
var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
|
|
283
220
|
var TOAST_TIMEOUT = 24e4;
|
|
284
221
|
var AwaitingObject = ({ id }) => {
|
|
285
|
-
const [open, setOpen] = (0,
|
|
286
|
-
const [waiting, setWaiting] = (0,
|
|
287
|
-
const [found, setFound] = (0,
|
|
288
|
-
const { t } = (0,
|
|
222
|
+
const [open, setOpen] = (0, import_react2.useState)(true);
|
|
223
|
+
const [waiting, setWaiting] = (0, import_react2.useState)(true);
|
|
224
|
+
const [found, setFound] = (0, import_react2.useState)(false);
|
|
225
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
289
226
|
const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
|
|
290
227
|
const layout = (0, import_app_framework.useLayout)();
|
|
291
228
|
const client = (0, import_react_client.useClient)();
|
|
292
|
-
const objects = (0,
|
|
293
|
-
(0,
|
|
229
|
+
const objects = (0, import_echo.useQuery)(client.spaces, import_echo.Filter.all());
|
|
230
|
+
(0, import_react2.useEffect)(() => {
|
|
294
231
|
if (!id) {
|
|
295
232
|
return;
|
|
296
233
|
}
|
|
@@ -301,8 +238,8 @@ var AwaitingObject = ({ id }) => {
|
|
|
301
238
|
}, [
|
|
302
239
|
id
|
|
303
240
|
]);
|
|
304
|
-
(0,
|
|
305
|
-
if (objects.findIndex((object) => (0,
|
|
241
|
+
(0, import_react2.useEffect)(() => {
|
|
242
|
+
if (objects.findIndex((object) => (0, import_echo.fullyQualifiedId)(object) === id) > -1) {
|
|
306
243
|
setFound(true);
|
|
307
244
|
if (layout.active.includes(id)) {
|
|
308
245
|
setOpen(false);
|
|
@@ -313,12 +250,12 @@ var AwaitingObject = ({ id }) => {
|
|
|
313
250
|
objects,
|
|
314
251
|
layout
|
|
315
252
|
]);
|
|
316
|
-
const handleClose = (0,
|
|
253
|
+
const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
|
|
317
254
|
id: void 0
|
|
318
255
|
})), [
|
|
319
256
|
dispatch
|
|
320
257
|
]);
|
|
321
|
-
const handleNavigate = (0,
|
|
258
|
+
const handleNavigate = (0, import_react2.useCallback)(() => {
|
|
322
259
|
void dispatch((0, import_app_framework.createIntent)(import_app_framework.LayoutAction.Open, {
|
|
323
260
|
part: "main",
|
|
324
261
|
subject: [
|
|
@@ -331,62 +268,42 @@ var AwaitingObject = ({ id }) => {
|
|
|
331
268
|
handleClose,
|
|
332
269
|
dispatch
|
|
333
270
|
]);
|
|
334
|
-
return /* @__PURE__ */
|
|
271
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Root, {
|
|
335
272
|
open,
|
|
336
273
|
duration: TOAST_TIMEOUT,
|
|
337
274
|
onOpenChange: setOpen
|
|
338
|
-
}, /* @__PURE__ */
|
|
275
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Body, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Title, {
|
|
339
276
|
classNames: "flex items-center gap-2"
|
|
340
|
-
}, found ? /* @__PURE__ */
|
|
277
|
+
}, found ? /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react.CheckCircle, {
|
|
341
278
|
className: (0, import_react_ui_theme.getSize)(5)
|
|
342
|
-
}), /* @__PURE__ */
|
|
279
|
+
}), /* @__PURE__ */ import_react2.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react.CircleNotch, {
|
|
343
280
|
className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(5), "animate-spin")
|
|
344
|
-
}), /* @__PURE__ */
|
|
281
|
+
}), /* @__PURE__ */ import_react2.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react.CircleDashed, {
|
|
345
282
|
className: (0, import_react_ui_theme.getSize)(5)
|
|
346
|
-
}), /* @__PURE__ */
|
|
283
|
+
}), /* @__PURE__ */ import_react2.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Actions, null, found ? /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Action, {
|
|
347
284
|
altText: t("go to object alt"),
|
|
348
285
|
asChild: true
|
|
349
|
-
}, /* @__PURE__ */
|
|
286
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
|
|
350
287
|
variant: "primary",
|
|
351
288
|
onClick: handleNavigate
|
|
352
|
-
}, t("go to object label"))), /* @__PURE__ */
|
|
289
|
+
}, t("go to object label"))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Close, {
|
|
353
290
|
asChild: true
|
|
354
|
-
}, /* @__PURE__ */
|
|
291
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
|
|
355
292
|
onClick: handleClose
|
|
356
293
|
}, t("close label", {
|
|
357
294
|
ns: "appkit"
|
|
358
|
-
})))) : /* @__PURE__ */
|
|
295
|
+
})))) : /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Close, {
|
|
359
296
|
asChild: true
|
|
360
|
-
}, /* @__PURE__ */
|
|
297
|
+
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
|
|
361
298
|
onClick: handleClose
|
|
362
299
|
}, t(waiting ? "close label" : "confirm label", {
|
|
363
300
|
ns: "appkit"
|
|
364
301
|
})))));
|
|
365
302
|
};
|
|
366
|
-
var BaseObjectSettings = ({ object }) => {
|
|
367
|
-
const { t } = (0, import_react_ui4.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
|
|
368
|
-
const inputRef = import_react5.default.useRef(null);
|
|
369
|
-
return /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
370
|
-
role: "form",
|
|
371
|
-
className: "flex flex-col w-full p-2 gap-1"
|
|
372
|
-
}, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Input.Root, null, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Input.Label, null, t("name label")), /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Input.TextInput, {
|
|
373
|
-
ref: inputRef,
|
|
374
|
-
placeholder: t("name placeholder"),
|
|
375
|
-
value: object.name ?? "",
|
|
376
|
-
onChange: (event) => {
|
|
377
|
-
object.name = event.target.value;
|
|
378
|
-
},
|
|
379
|
-
onKeyDown: (event) => {
|
|
380
|
-
if (event.key === "Enter") {
|
|
381
|
-
inputRef.current?.blur();
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
})));
|
|
385
|
-
};
|
|
386
303
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
|
|
387
304
|
var useInputSurfaceLookup = (baseData) => {
|
|
388
305
|
const pluginManager = (0, import_app_framework3.usePluginManager)();
|
|
389
|
-
return (0,
|
|
306
|
+
return (0, import_react4.useCallback)(({ prop, schema, inputProps }) => {
|
|
390
307
|
const composedData = {
|
|
391
308
|
prop,
|
|
392
309
|
schema,
|
|
@@ -398,7 +315,7 @@ var useInputSurfaceLookup = (baseData) => {
|
|
|
398
315
|
})) {
|
|
399
316
|
return void 0;
|
|
400
317
|
}
|
|
401
|
-
return /* @__PURE__ */
|
|
318
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_app_framework3.Surface, {
|
|
402
319
|
role: "form-input",
|
|
403
320
|
data: composedData,
|
|
404
321
|
...inputProps
|
|
@@ -409,11 +326,11 @@ var useInputSurfaceLookup = (baseData) => {
|
|
|
409
326
|
]);
|
|
410
327
|
};
|
|
411
328
|
var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
|
|
412
|
-
const { t } = (0,
|
|
413
|
-
const [typename, setTypename] = (0,
|
|
414
|
-
const [target, setTarget] = (0,
|
|
415
|
-
const form = forms.find((form2) => (0,
|
|
416
|
-
const options = forms.map((form2) => (0,
|
|
329
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
330
|
+
const [typename, setTypename] = (0, import_react4.useState)(initialTypename);
|
|
331
|
+
const [target, setTarget] = (0, import_react4.useState)(initialTarget);
|
|
332
|
+
const form = forms.find((form2) => (0, import_echo_schema.getTypeAnnotation)(form2.objectSchema)?.typename === typename);
|
|
333
|
+
const options = forms.map((form2) => (0, import_echo_schema.getTypeAnnotation)(form2.objectSchema)).filter(import_util.isNonNullable).sort((a, b) => {
|
|
417
334
|
const nameA = t("typename label", {
|
|
418
335
|
ns: a.typename,
|
|
419
336
|
defaultValue: a.typename
|
|
@@ -424,7 +341,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
424
341
|
});
|
|
425
342
|
return nameA.localeCompare(nameB);
|
|
426
343
|
});
|
|
427
|
-
const handleCreateObject = (0,
|
|
344
|
+
const handleCreateObject = (0, import_react4.useCallback)(async (props) => {
|
|
428
345
|
if (!form || !target) {
|
|
429
346
|
return;
|
|
430
347
|
}
|
|
@@ -438,7 +355,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
438
355
|
form,
|
|
439
356
|
target
|
|
440
357
|
]);
|
|
441
|
-
const handleSetTypename = (0,
|
|
358
|
+
const handleSetTypename = (0, import_react4.useCallback)(async (typename2) => {
|
|
442
359
|
(0, import_invariant2.invariant)(target, "target is required", {
|
|
443
360
|
F: __dxlog_file,
|
|
444
361
|
L: 94,
|
|
@@ -448,7 +365,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
448
365
|
"'target is required'"
|
|
449
366
|
]
|
|
450
367
|
});
|
|
451
|
-
const form2 = forms.find((form3) => (0,
|
|
368
|
+
const form2 = forms.find((form3) => (0, import_echo_schema.getTypeAnnotation)(form3.objectSchema)?.typename === typename2);
|
|
452
369
|
if (form2 && !form2.formSchema) {
|
|
453
370
|
await onCreateObject?.({
|
|
454
371
|
form: form2,
|
|
@@ -465,18 +382,18 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
465
382
|
const inputSurfaceLookup = useInputSurfaceLookup({
|
|
466
383
|
target
|
|
467
384
|
});
|
|
468
|
-
return /* @__PURE__ */
|
|
385
|
+
return /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
469
386
|
role: "form",
|
|
470
387
|
className: (0, import_react_ui_theme2.mx)("flex flex-col gap-2", classNames)
|
|
471
|
-
}, !form ? /* @__PURE__ */
|
|
388
|
+
}, !form ? /* @__PURE__ */ import_react4.default.createElement(SelectSchema, {
|
|
472
389
|
options,
|
|
473
390
|
resolve,
|
|
474
391
|
onChange: handleSetTypename
|
|
475
|
-
}) : !target ? /* @__PURE__ */
|
|
392
|
+
}) : !target ? /* @__PURE__ */ import_react4.default.createElement(SelectSpace, {
|
|
476
393
|
spaces,
|
|
477
394
|
defaultSpaceId,
|
|
478
395
|
onChange: setTarget
|
|
479
|
-
}) : form.formSchema ? /* @__PURE__ */
|
|
396
|
+
}) : form.formSchema ? /* @__PURE__ */ import_react4.default.createElement(import_react_ui_form.Form, {
|
|
480
397
|
classNames: "!p-0",
|
|
481
398
|
autoFocus: true,
|
|
482
399
|
values: {
|
|
@@ -489,51 +406,51 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
489
406
|
}) : void 0);
|
|
490
407
|
};
|
|
491
408
|
var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
492
|
-
const { t } = (0,
|
|
493
|
-
return /* @__PURE__ */
|
|
409
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
410
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Root, {
|
|
494
411
|
label: t("space input label"),
|
|
495
412
|
classNames: "flex flex-col grow overflow-hidden"
|
|
496
|
-
}, /* @__PURE__ */
|
|
413
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Input, {
|
|
497
414
|
autoFocus: true,
|
|
498
415
|
"data-testid": "create-object-form.space-input",
|
|
499
416
|
placeholder: t("space input placeholder"),
|
|
500
417
|
classNames: "px-1 my-2"
|
|
501
|
-
}), /* @__PURE__ */
|
|
418
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
|
|
502
419
|
classNames: "max-bs-[24rem] overflow-auto"
|
|
503
420
|
}, spaces.sort((a, b) => {
|
|
504
|
-
const aName = (0,
|
|
421
|
+
const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(a, {
|
|
505
422
|
personal: a.id === defaultSpaceId
|
|
506
423
|
}), t);
|
|
507
|
-
const bName = (0,
|
|
424
|
+
const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(b, {
|
|
508
425
|
personal: b.id === defaultSpaceId
|
|
509
426
|
}), t);
|
|
510
427
|
return aName.localeCompare(bName);
|
|
511
|
-
}).map((space) => /* @__PURE__ */
|
|
428
|
+
}).map((space) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
|
|
512
429
|
key: space.id,
|
|
513
|
-
value: (0,
|
|
430
|
+
value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
514
431
|
personal: space.id === defaultSpaceId
|
|
515
432
|
}), t),
|
|
516
433
|
onSelect: () => onChange(space),
|
|
517
434
|
classNames: "flex items-center gap-2"
|
|
518
|
-
}, /* @__PURE__ */
|
|
435
|
+
}, /* @__PURE__ */ import_react4.default.createElement("span", {
|
|
519
436
|
className: "grow truncate"
|
|
520
|
-
}, (0,
|
|
437
|
+
}, (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
521
438
|
personal: space.id === defaultSpaceId
|
|
522
439
|
}), t))))));
|
|
523
440
|
};
|
|
524
441
|
var SelectSchema = ({ options, resolve, onChange }) => {
|
|
525
|
-
const { t } = (0,
|
|
526
|
-
return /* @__PURE__ */
|
|
442
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
443
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Root, {
|
|
527
444
|
label: t("schema input label"),
|
|
528
445
|
classNames: "flex flex-col grow overflow-hidden"
|
|
529
|
-
}, /* @__PURE__ */
|
|
446
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Input, {
|
|
530
447
|
autoFocus: true,
|
|
531
448
|
"data-testid": "create-object-form.schema-input",
|
|
532
449
|
placeholder: t("schema input placeholder"),
|
|
533
450
|
classNames: "px-1 my-2"
|
|
534
|
-
}), /* @__PURE__ */
|
|
451
|
+
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
|
|
535
452
|
classNames: "max-bs-[24rem] overflow-auto"
|
|
536
|
-
}, options.map((option) => /* @__PURE__ */
|
|
453
|
+
}, options.map((option) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
|
|
537
454
|
key: option.typename,
|
|
538
455
|
value: t("typename label", {
|
|
539
456
|
ns: option.typename,
|
|
@@ -541,9 +458,9 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
541
458
|
}),
|
|
542
459
|
onSelect: () => onChange(option.typename),
|
|
543
460
|
classNames: "flex items-center gap-2"
|
|
544
|
-
}, /* @__PURE__ */
|
|
461
|
+
}, /* @__PURE__ */ import_react4.default.createElement("span", {
|
|
545
462
|
className: "flex gap-2 items-center grow truncate"
|
|
546
|
-
}, /* @__PURE__ */
|
|
463
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
|
|
547
464
|
icon: resolve?.(option.typename).icon ?? "ph--placeholder--regular",
|
|
548
465
|
size: 5
|
|
549
466
|
}), t("typename label", {
|
|
@@ -551,40 +468,39 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
551
468
|
defaultValue: option.typename
|
|
552
469
|
}))))));
|
|
553
470
|
};
|
|
554
|
-
var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-
|
|
555
|
-
var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-
|
|
556
|
-
var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-
|
|
557
|
-
var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-
|
|
558
|
-
var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-
|
|
559
|
-
var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-
|
|
560
|
-
var Schema = (0, import_app_framework4.lazy)(() => import("./schema-
|
|
561
|
-
var Tools = (0, import_app_framework4.lazy)(() => import("./schema-tools-
|
|
562
|
-
var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-
|
|
563
|
-
var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-
|
|
564
|
-
var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-
|
|
471
|
+
var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-DPY7AUZE.cjs"));
|
|
472
|
+
var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-JELGJUAY.cjs"));
|
|
473
|
+
var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-XU4HFV2T.cjs"));
|
|
474
|
+
var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-VJ7YV74L.cjs"));
|
|
475
|
+
var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-TEL5RW3N.cjs"));
|
|
476
|
+
var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-2H3S5TY5.cjs"));
|
|
477
|
+
var Schema = (0, import_app_framework4.lazy)(() => import("./schema-PPJ5BZ3A.cjs"));
|
|
478
|
+
var Tools = (0, import_app_framework4.lazy)(() => import("./schema-tools-BLIMOZYY.cjs"));
|
|
479
|
+
var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-WVFP2UEP.cjs"));
|
|
480
|
+
var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-5KX6WBJH.cjs"));
|
|
481
|
+
var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-7DNZSUOG.cjs"));
|
|
565
482
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
|
|
566
|
-
var CREATE_OBJECT_DIALOG = `${
|
|
483
|
+
var CREATE_OBJECT_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateObjectDialog`;
|
|
567
484
|
var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
|
|
568
|
-
const closeRef = (0,
|
|
485
|
+
const closeRef = (0, import_react3.useRef)(null);
|
|
569
486
|
const manager = (0, import_app_framework2.usePluginManager)();
|
|
570
|
-
const { t } = (0,
|
|
487
|
+
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
571
488
|
const client = (0, import_react_client2.useClient)();
|
|
572
|
-
const spaces = (0,
|
|
489
|
+
const spaces = (0, import_echo2.useSpaces)();
|
|
573
490
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
574
|
-
const forms = (0, import_app_framework2.useCapabilities)(
|
|
575
|
-
const resolve = (0,
|
|
491
|
+
const forms = (0, import_app_framework2.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.ObjectForm);
|
|
492
|
+
const resolve = (0, import_react3.useCallback)((typename2) => manager.context.requestCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
|
|
576
493
|
manager
|
|
577
494
|
]);
|
|
578
|
-
const handleCreateObject = (0,
|
|
579
|
-
const target2 = (0, import_echo3.isSpace)(_target) ? _target.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target : _target;
|
|
495
|
+
const handleCreateObject = (0, import_react3.useCallback)(async ({ form, target: target2, data = {} }) => {
|
|
580
496
|
if (!target2) {
|
|
581
497
|
return;
|
|
582
498
|
}
|
|
583
499
|
closeRef.current?.click();
|
|
584
|
-
const space = (0,
|
|
500
|
+
const space = (0, import_echo2.isSpace)(target2) ? target2 : (0, import_echo2.getSpace)(target2);
|
|
585
501
|
(0, import_invariant.invariant)(space, "Missing space", {
|
|
586
502
|
F: __dxlog_file2,
|
|
587
|
-
L:
|
|
503
|
+
L: 72,
|
|
588
504
|
S: void 0,
|
|
589
505
|
A: [
|
|
590
506
|
"space",
|
|
@@ -595,10 +511,11 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
|
|
|
595
511
|
space
|
|
596
512
|
}));
|
|
597
513
|
const object = result.data?.object;
|
|
598
|
-
if ((0,
|
|
599
|
-
const addObjectIntent = (0, import_app_framework2.createIntent)(
|
|
514
|
+
if ((0, import_echo2.isReactiveObject)(object)) {
|
|
515
|
+
const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_WDEIFDTX.SpaceAction.AddObject, {
|
|
600
516
|
target: target2,
|
|
601
|
-
object
|
|
517
|
+
object,
|
|
518
|
+
hidden: form.hidden
|
|
602
519
|
});
|
|
603
520
|
const shouldNavigate = _shouldNavigate ?? (() => true);
|
|
604
521
|
if (shouldNavigate(object)) {
|
|
@@ -616,22 +533,22 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
|
|
|
616
533
|
return (
|
|
617
534
|
// TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
|
|
618
535
|
// Consider factoring it out to the tabs package.
|
|
619
|
-
/* @__PURE__ */
|
|
536
|
+
/* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Content, {
|
|
620
537
|
classNames: "p-0 bs-content max-bs-full md:max-is-[40rem] overflow-hidden"
|
|
621
|
-
}, /* @__PURE__ */
|
|
538
|
+
}, /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
622
539
|
role: "none",
|
|
623
540
|
className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
|
|
624
|
-
}, /* @__PURE__ */
|
|
541
|
+
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Title, null, t("create object dialog title")), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Close, {
|
|
625
542
|
asChild: true
|
|
626
|
-
}, /* @__PURE__ */
|
|
543
|
+
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Button, {
|
|
627
544
|
ref: closeRef,
|
|
628
545
|
density: "fine",
|
|
629
546
|
variant: "ghost",
|
|
630
547
|
autoFocus: true
|
|
631
|
-
}, /* @__PURE__ */
|
|
548
|
+
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Icon, {
|
|
632
549
|
icon: "ph--x--regular",
|
|
633
550
|
size: 4
|
|
634
|
-
})))), /* @__PURE__ */
|
|
551
|
+
})))), /* @__PURE__ */ import_react3.default.createElement(CreateObjectPanel, {
|
|
635
552
|
classNames: "p-4",
|
|
636
553
|
forms,
|
|
637
554
|
spaces,
|
|
@@ -644,22 +561,22 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
|
|
|
644
561
|
}))
|
|
645
562
|
);
|
|
646
563
|
};
|
|
647
|
-
var CREATE_SPACE_DIALOG = `${
|
|
648
|
-
var
|
|
564
|
+
var CREATE_SPACE_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateSpaceDialog`;
|
|
565
|
+
var initialValues = {
|
|
649
566
|
edgeReplication: true
|
|
650
567
|
};
|
|
651
568
|
var CreateSpaceDialog = () => {
|
|
652
|
-
const closeRef = (0,
|
|
653
|
-
const { t } = (0,
|
|
569
|
+
const closeRef = (0, import_react5.useRef)(null);
|
|
570
|
+
const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
654
571
|
const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
|
|
655
|
-
const handleCreateSpace = (0,
|
|
572
|
+
const handleCreateSpace = (0, import_react5.useCallback)(async (data) => {
|
|
656
573
|
const program = import_effect2.Effect.gen(function* () {
|
|
657
|
-
const { space } = yield* dispatch((0, import_app_framework5.createIntent)(
|
|
574
|
+
const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Create, data));
|
|
658
575
|
yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
|
|
659
576
|
part: "workspace",
|
|
660
577
|
subject: space.id
|
|
661
578
|
}));
|
|
662
|
-
yield* dispatch((0, import_app_framework5.createIntent)(
|
|
579
|
+
yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateObject, {
|
|
663
580
|
target: space
|
|
664
581
|
}));
|
|
665
582
|
});
|
|
@@ -670,98 +587,100 @@ var CreateSpaceDialog = () => {
|
|
|
670
587
|
return (
|
|
671
588
|
// TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
|
|
672
589
|
// Consider factoring it out to the tabs package.
|
|
673
|
-
/* @__PURE__ */
|
|
590
|
+
/* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Content, {
|
|
674
591
|
classNames: "p-0 bs-content min-bs-[16rem] max-bs-full md:max-is-[32rem] overflow-hidden"
|
|
675
|
-
}, /* @__PURE__ */
|
|
592
|
+
}, /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
676
593
|
role: "none",
|
|
677
594
|
className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
|
|
678
|
-
}, /* @__PURE__ */
|
|
595
|
+
}, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Close, {
|
|
679
596
|
asChild: true
|
|
680
|
-
}, /* @__PURE__ */
|
|
597
|
+
}, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Button, {
|
|
681
598
|
ref: closeRef,
|
|
682
599
|
density: "fine",
|
|
683
600
|
variant: "ghost",
|
|
684
601
|
autoFocus: true
|
|
685
|
-
}, /* @__PURE__ */
|
|
602
|
+
}, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Icon, {
|
|
686
603
|
icon: "ph--x--regular",
|
|
687
604
|
size: 4
|
|
688
|
-
})))), /* @__PURE__ */
|
|
605
|
+
})))), /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
689
606
|
className: "p-4"
|
|
690
|
-
}, /* @__PURE__ */
|
|
607
|
+
}, /* @__PURE__ */ import_react5.default.createElement(import_react_ui_form2.Form, {
|
|
691
608
|
testId: "create-space-form",
|
|
692
609
|
classNames: "!p-0",
|
|
693
610
|
autoFocus: true,
|
|
694
|
-
values:
|
|
695
|
-
schema:
|
|
611
|
+
values: initialValues,
|
|
612
|
+
schema: import_chunk_WDEIFDTX.SpaceForm,
|
|
696
613
|
onSave: handleCreateSpace
|
|
697
614
|
})))
|
|
698
615
|
);
|
|
699
616
|
};
|
|
700
617
|
var CollectionMain = ({ collection }) => {
|
|
701
|
-
const { t } = (0,
|
|
702
|
-
return /* @__PURE__ */
|
|
618
|
+
const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
619
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
703
620
|
role: "none",
|
|
704
621
|
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
|
|
705
622
|
"data-testid": "composer.firstRunMessage"
|
|
706
|
-
}, /* @__PURE__ */
|
|
623
|
+
}, /* @__PURE__ */ import_react6.default.createElement("p", {
|
|
707
624
|
role: "alert",
|
|
708
625
|
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
|
|
709
626
|
}, collection.name ?? t("unnamed collection label")));
|
|
710
627
|
};
|
|
711
628
|
var CollectionSection = ({ collection }) => {
|
|
712
|
-
const { t } = (0,
|
|
713
|
-
return /* @__PURE__ */
|
|
629
|
+
const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
630
|
+
return /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
714
631
|
className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
715
|
-
}, /* @__PURE__ */
|
|
632
|
+
}, /* @__PURE__ */ import_react7.default.createElement("span", {
|
|
716
633
|
className: "truncate"
|
|
717
634
|
}, collection.name ?? t("unnamed collection label")));
|
|
718
635
|
};
|
|
719
|
-
var
|
|
720
|
-
var JOIN_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/JoinDialog`;
|
|
636
|
+
var JOIN_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/JoinDialog`;
|
|
721
637
|
var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
722
638
|
const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
|
|
723
639
|
const client = (0, import_react_client3.useClient)();
|
|
724
640
|
const { graph } = (0, import_app_framework6.useAppGraph)();
|
|
725
|
-
const { t } = (0,
|
|
726
|
-
const handleDone = (0,
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
part: "toast",
|
|
731
|
-
subject: {
|
|
732
|
-
id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/join-success`,
|
|
733
|
-
duration: 5e3,
|
|
734
|
-
title: [
|
|
735
|
-
"join success label",
|
|
736
|
-
{
|
|
737
|
-
ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
|
|
738
|
-
}
|
|
739
|
-
],
|
|
740
|
-
closeLabel: [
|
|
741
|
-
"dismiss label",
|
|
742
|
-
{
|
|
743
|
-
ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
|
|
744
|
-
}
|
|
745
|
-
]
|
|
746
|
-
}
|
|
747
|
-
})),
|
|
748
|
-
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
|
|
749
|
-
part: "dialog",
|
|
750
|
-
options: {
|
|
751
|
-
state: false
|
|
752
|
-
}
|
|
753
|
-
}))
|
|
754
|
-
]);
|
|
641
|
+
const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
642
|
+
const handleDone = (0, import_react8.useCallback)(async (result) => {
|
|
643
|
+
const spaceKey = result?.spaceKey;
|
|
644
|
+
if (!spaceKey) {
|
|
645
|
+
return;
|
|
755
646
|
}
|
|
756
|
-
|
|
647
|
+
await Promise.all([
|
|
648
|
+
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.AddToast, {
|
|
649
|
+
part: "toast",
|
|
650
|
+
subject: {
|
|
651
|
+
id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/join-success`,
|
|
652
|
+
duration: 5e3,
|
|
653
|
+
title: [
|
|
654
|
+
"join success label",
|
|
655
|
+
{
|
|
656
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
657
|
+
}
|
|
658
|
+
],
|
|
659
|
+
closeLabel: [
|
|
660
|
+
"dismiss label",
|
|
661
|
+
{
|
|
662
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
663
|
+
}
|
|
664
|
+
]
|
|
665
|
+
}
|
|
666
|
+
})),
|
|
667
|
+
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
|
|
668
|
+
part: "dialog",
|
|
669
|
+
options: {
|
|
670
|
+
state: false
|
|
671
|
+
}
|
|
672
|
+
}))
|
|
673
|
+
]);
|
|
674
|
+
let space = client.spaces.get(spaceKey);
|
|
757
675
|
if (!space) {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
676
|
+
const trigger = new import_async.Trigger();
|
|
677
|
+
client.spaces.subscribe(() => {
|
|
678
|
+
const space2 = client.spaces.get(spaceKey);
|
|
679
|
+
if (space2) {
|
|
680
|
+
trigger.wake(space2);
|
|
681
|
+
}
|
|
763
682
|
});
|
|
764
|
-
|
|
683
|
+
space = await trigger.wait();
|
|
765
684
|
}
|
|
766
685
|
await dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.SwitchWorkspace, {
|
|
767
686
|
part: "workspace",
|
|
@@ -800,29 +719,235 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
800
719
|
client,
|
|
801
720
|
graph
|
|
802
721
|
]);
|
|
803
|
-
return /* @__PURE__ */
|
|
722
|
+
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Content, null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Title, {
|
|
804
723
|
classNames: "sr-only"
|
|
805
724
|
}, t("join space label", {
|
|
806
725
|
ns: "os"
|
|
807
|
-
})), /* @__PURE__ */
|
|
726
|
+
})), /* @__PURE__ */ import_react8.default.createElement(import_react9.JoinPanel, {
|
|
808
727
|
...props,
|
|
809
|
-
exitActionParent: /* @__PURE__ */
|
|
728
|
+
exitActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
|
|
810
729
|
asChild: true
|
|
811
730
|
}),
|
|
812
|
-
doneActionParent: /* @__PURE__ */
|
|
731
|
+
doneActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
|
|
813
732
|
asChild: true
|
|
814
733
|
}),
|
|
815
734
|
onDone: handleDone
|
|
816
735
|
}));
|
|
817
736
|
};
|
|
737
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer.tsx";
|
|
738
|
+
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
739
|
+
var handleInvitationEvent = (invitation, subscription) => {
|
|
740
|
+
const invitationCode = import_invitations.InvitationEncoder.encode(invitation);
|
|
741
|
+
if (invitation.state === import_invitations.Invitation.State.CONNECTING) {
|
|
742
|
+
import_log.log.info(JSON.stringify({
|
|
743
|
+
invitationCode,
|
|
744
|
+
authCode: invitation.authCode
|
|
745
|
+
}), void 0, {
|
|
746
|
+
F: __dxlog_file3,
|
|
747
|
+
L: 38,
|
|
748
|
+
S: void 0,
|
|
749
|
+
C: (f, a) => f(...a)
|
|
750
|
+
});
|
|
751
|
+
subscription.unsubscribe();
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
755
|
+
const { t } = (0, import_react_ui8.useTranslation)("os");
|
|
756
|
+
const config = (0, import_react_client4.useConfig)();
|
|
757
|
+
const invitations = (0, import_echo3.useSpaceInvitations)(space.key);
|
|
758
|
+
const visibleInvitations = invitations?.filter((invitation) => ![
|
|
759
|
+
import_invitations.Invitation.State.CANCELLED
|
|
760
|
+
].includes(invitation.get().state));
|
|
761
|
+
const [activeAction, setInternalActiveAction] = (0, import_react11.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
|
|
762
|
+
const setActiveAction = (nextAction) => {
|
|
763
|
+
setInternalActiveAction(nextAction);
|
|
764
|
+
localStorage.setItem(activeActionKey, nextAction);
|
|
765
|
+
};
|
|
766
|
+
const target = space.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target?.objects[0]?.target;
|
|
767
|
+
const inviteActions = (0, import_react11.useMemo)(() => ({
|
|
768
|
+
inviteOne: {
|
|
769
|
+
label: t("invite one label"),
|
|
770
|
+
description: t("invite one description"),
|
|
771
|
+
icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
|
|
772
|
+
icon: "ph--user-plus--regular",
|
|
773
|
+
size: 5
|
|
774
|
+
}),
|
|
775
|
+
testId: "membersContainer.inviteOne",
|
|
776
|
+
onClick: () => {
|
|
777
|
+
const invitation = space.share?.({
|
|
778
|
+
type: import_invitations.Invitation.Type.INTERACTIVE,
|
|
779
|
+
authMethod: import_invitations.Invitation.AuthMethod.SHARED_SECRET,
|
|
780
|
+
multiUse: false,
|
|
781
|
+
target: target && (0, import_echo3.fullyQualifiedId)(target)
|
|
782
|
+
});
|
|
783
|
+
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
784
|
+
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
},
|
|
788
|
+
inviteMany: {
|
|
789
|
+
label: t("invite many label"),
|
|
790
|
+
description: t("invite many description"),
|
|
791
|
+
icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
|
|
792
|
+
icon: "ph--users-three--regular",
|
|
793
|
+
size: 5
|
|
794
|
+
}),
|
|
795
|
+
testId: "membersContainer.inviteMany",
|
|
796
|
+
onClick: () => {
|
|
797
|
+
const invitation = space.share?.({
|
|
798
|
+
type: import_invitations.Invitation.Type.DELEGATED,
|
|
799
|
+
authMethod: import_invitations.Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
|
|
800
|
+
multiUse: true,
|
|
801
|
+
target: target && (0, import_echo3.fullyQualifiedId)(target)
|
|
802
|
+
});
|
|
803
|
+
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
804
|
+
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
}), [
|
|
809
|
+
t,
|
|
810
|
+
space,
|
|
811
|
+
target
|
|
812
|
+
]);
|
|
813
|
+
const [selectedInvitation, setSelectedInvitation] = (0, import_react11.useState)(null);
|
|
814
|
+
const handleSend = (event) => {
|
|
815
|
+
setSelectedInvitation(event.invitation);
|
|
816
|
+
};
|
|
817
|
+
const handleBack = () => {
|
|
818
|
+
setSelectedInvitation(null);
|
|
819
|
+
};
|
|
820
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
821
|
+
classNames: "p-2 block overflow-y-auto"
|
|
822
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlSection, {
|
|
823
|
+
title: t("members verbose label", {
|
|
824
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
825
|
+
}),
|
|
826
|
+
description: t("members description", {
|
|
827
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
828
|
+
})
|
|
829
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
|
|
830
|
+
title: t("members label", {
|
|
831
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
832
|
+
})
|
|
833
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react12.SpaceMemberList, {
|
|
834
|
+
spaceKey: space.key,
|
|
835
|
+
includeSelf: true
|
|
836
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
|
|
837
|
+
title: t("invitations label", {
|
|
838
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
839
|
+
})
|
|
840
|
+
}, selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(InvitationSection, {
|
|
841
|
+
...selectedInvitation,
|
|
842
|
+
onBack: handleBack
|
|
843
|
+
}), !selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
|
|
844
|
+
className: "text-description mbe-2"
|
|
845
|
+
}, t("space invitation description", {
|
|
846
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
847
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react12.InvitationList, {
|
|
848
|
+
className: "mb-2",
|
|
849
|
+
send: handleSend,
|
|
850
|
+
invitations: visibleInvitations ?? [],
|
|
851
|
+
onClickRemove: (invitation) => invitation.cancel(),
|
|
852
|
+
createInvitationUrl
|
|
853
|
+
}), /* @__PURE__ */ import_react11.default.createElement(import_react12.BifurcatedAction, {
|
|
854
|
+
actions: inviteActions,
|
|
855
|
+
activeAction,
|
|
856
|
+
onChangeActiveAction: setActiveAction,
|
|
857
|
+
"data-testid": "membersContainer.createInvitation"
|
|
858
|
+
})))))));
|
|
859
|
+
};
|
|
860
|
+
var InvitationSection = ({ state = import_invitations.Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
|
|
861
|
+
const activeView = state < 0 ? "init" : state >= import_invitations.Invitation.State.CANCELLED ? "complete" : state >= import_invitations.Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
|
|
862
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Root, {
|
|
863
|
+
activeView
|
|
864
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Views, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
|
|
865
|
+
id: "init"
|
|
866
|
+
}), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
|
|
867
|
+
id: "complete"
|
|
868
|
+
}, /* @__PURE__ */ import_react11.default.createElement(InvitationComplete, {
|
|
869
|
+
statusValue: state
|
|
870
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
|
|
871
|
+
id: "auth-code"
|
|
872
|
+
}, /* @__PURE__ */ import_react11.default.createElement(InvitationAuthCode, {
|
|
873
|
+
id: invitationId,
|
|
874
|
+
code: authCode ?? "never",
|
|
875
|
+
onCancel: onBack
|
|
876
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
|
|
877
|
+
id: "qr-code"
|
|
878
|
+
}, /* @__PURE__ */ import_react11.default.createElement(InvitationQR, {
|
|
879
|
+
id: invitationId,
|
|
880
|
+
url,
|
|
881
|
+
onCancel: onBack
|
|
882
|
+
}))));
|
|
883
|
+
};
|
|
884
|
+
var InvitationQR = ({ id, url, onCancel }) => {
|
|
885
|
+
const { t } = (0, import_react_ui8.useTranslation)("os");
|
|
886
|
+
const qrLabel = (0, import_react_ui8.useId)("members-container__qr-code");
|
|
887
|
+
const emoji = (0, import_util2.hexToEmoji)(id);
|
|
888
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
|
|
889
|
+
className: "text-description"
|
|
890
|
+
}, t("qr code description", {
|
|
891
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
892
|
+
})), /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
893
|
+
role: "group",
|
|
894
|
+
className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
|
|
895
|
+
}, /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
896
|
+
role: "none",
|
|
897
|
+
className: "is-full aspect-square relative text-description"
|
|
898
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react_qr_rounded.QR, {
|
|
899
|
+
rounding: 100,
|
|
900
|
+
backgroundColor: "transparent",
|
|
901
|
+
color: "currentColor",
|
|
902
|
+
"aria-labelledby": qrLabel,
|
|
903
|
+
errorCorrectionLevel: "Q",
|
|
904
|
+
cutout: true
|
|
905
|
+
}, url ?? "never"), /* @__PURE__ */ import_react11.default.createElement(import_react12.Centered, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
|
|
906
|
+
text: emoji
|
|
907
|
+
}))), /* @__PURE__ */ import_react11.default.createElement("span", {
|
|
908
|
+
id: qrLabel,
|
|
909
|
+
className: "sr-only"
|
|
910
|
+
}, t("qr label")), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Button, {
|
|
911
|
+
value: url ?? "never"
|
|
912
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
|
|
913
|
+
variant: "ghost",
|
|
914
|
+
onClick: onCancel
|
|
915
|
+
}, t("cancel label")));
|
|
916
|
+
};
|
|
917
|
+
var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
918
|
+
const { t } = (0, import_react_ui8.useTranslation)("os");
|
|
919
|
+
const emoji = (0, import_util2.hexToEmoji)(id);
|
|
920
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
|
|
921
|
+
className: "text-description"
|
|
922
|
+
}, t("auth other device emoji message")), emoji && /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
|
|
923
|
+
text: emoji,
|
|
924
|
+
className: "mli-auto mlb-2 text-center"
|
|
925
|
+
}), /* @__PURE__ */ import_react11.default.createElement("p", {
|
|
926
|
+
className: "text-description"
|
|
927
|
+
}, t("auth code message")), /* @__PURE__ */ import_react11.default.createElement(import_react12.AuthCode, {
|
|
928
|
+
code,
|
|
929
|
+
large: true,
|
|
930
|
+
classNames: "mli-auto mlb-2 text-center grow"
|
|
931
|
+
}), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
|
|
932
|
+
variant: "ghost",
|
|
933
|
+
onClick: onCancel
|
|
934
|
+
}, t("cancel label")));
|
|
935
|
+
};
|
|
936
|
+
var InvitationComplete = ({ statusValue }) => {
|
|
937
|
+
return statusValue > 0 ? /* @__PURE__ */ import_react11.default.createElement(import_react10.Check, {
|
|
938
|
+
className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
|
|
939
|
+
}) : /* @__PURE__ */ import_react11.default.createElement(import_react10.X, {
|
|
940
|
+
className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
|
|
941
|
+
});
|
|
942
|
+
};
|
|
818
943
|
var MenuFooter = ({ object }) => {
|
|
819
|
-
const { t } = (0,
|
|
820
|
-
const client = (0,
|
|
944
|
+
const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
945
|
+
const client = (0, import_react_client5.useClient)();
|
|
821
946
|
const space = (0, import_echo4.getSpace)(object);
|
|
822
|
-
const spaceName = space ? (0,
|
|
947
|
+
const spaceName = space ? (0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
823
948
|
personal: client.spaces.default === space
|
|
824
949
|
}) : "";
|
|
825
|
-
return space ? /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(
|
|
950
|
+
return space ? /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui9.DropdownMenu.Separator, null), /* @__PURE__ */ import_react14.default.createElement(import_react_ui9.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react14.default.createElement("dl", {
|
|
826
951
|
className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
|
|
827
952
|
}, /* @__PURE__ */ import_react14.default.createElement("dt", {
|
|
828
953
|
className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
|
|
@@ -830,7 +955,130 @@ var MenuFooter = ({ object }) => {
|
|
|
830
955
|
className: "line-clamp-3"
|
|
831
956
|
}, /* @__PURE__ */ import_react14.default.createElement(import_react13.Planet, {
|
|
832
957
|
className: "inline-block mie-1"
|
|
833
|
-
}), (0,
|
|
958
|
+
}), (0, import_react_ui9.toLocalizedString)(spaceName, t)))) : null;
|
|
959
|
+
};
|
|
960
|
+
var ForeignKeys = ({ keys, onDelete }) => {
|
|
961
|
+
return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.List, {
|
|
962
|
+
classNames: "flex flex-col gap-2"
|
|
963
|
+
}, keys.map((key) => /* @__PURE__ */ import_react17.default.createElement(KeyItem, {
|
|
964
|
+
key: key.id,
|
|
965
|
+
forignKey: key,
|
|
966
|
+
onDelete
|
|
967
|
+
})));
|
|
968
|
+
};
|
|
969
|
+
var KeyItem = ({ forignKey, onDelete }) => {
|
|
970
|
+
const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
971
|
+
const handleDelete = (0, import_react17.useCallback)(() => {
|
|
972
|
+
onDelete?.(forignKey);
|
|
973
|
+
}, [
|
|
974
|
+
forignKey,
|
|
975
|
+
onDelete
|
|
976
|
+
]);
|
|
977
|
+
return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Root, {
|
|
978
|
+
classNames: "px-2"
|
|
979
|
+
}, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Heading, {
|
|
980
|
+
classNames: "flex flex-col grow truncate"
|
|
981
|
+
}, /* @__PURE__ */ import_react17.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react17.default.createElement("div", {
|
|
982
|
+
className: "text-description text-sm truncate"
|
|
983
|
+
}, forignKey.id)), /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Endcap, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.IconButton, {
|
|
984
|
+
iconOnly: true,
|
|
985
|
+
icon: "ph--x--regular",
|
|
986
|
+
variant: "ghost",
|
|
987
|
+
label: t("delete key"),
|
|
988
|
+
onClick: handleDelete
|
|
989
|
+
})));
|
|
990
|
+
};
|
|
991
|
+
var initialValues2 = {
|
|
992
|
+
source: "",
|
|
993
|
+
id: ""
|
|
994
|
+
};
|
|
995
|
+
var AdvancedObjectSettings = ({ object }) => {
|
|
996
|
+
const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
997
|
+
const [adding, setAdding] = (0, import_react16.useState)(false);
|
|
998
|
+
const keys = (0, import_echo5.getMeta)(object).keys;
|
|
999
|
+
const handleNew = (0, import_react16.useCallback)(() => setAdding(true), []);
|
|
1000
|
+
const handleCancel = (0, import_react16.useCallback)(() => setAdding(false), []);
|
|
1001
|
+
const handleSave = (0, import_react16.useCallback)((key) => {
|
|
1002
|
+
const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
|
|
1003
|
+
if (index === -1) {
|
|
1004
|
+
keys.push(key);
|
|
1005
|
+
}
|
|
1006
|
+
setAdding(false);
|
|
1007
|
+
}, [
|
|
1008
|
+
keys
|
|
1009
|
+
]);
|
|
1010
|
+
const handleDelete = (0, import_react16.useCallback)((key) => {
|
|
1011
|
+
const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
|
|
1012
|
+
if (index !== -1) {
|
|
1013
|
+
keys.splice(index, 1);
|
|
1014
|
+
}
|
|
1015
|
+
}, [
|
|
1016
|
+
keys
|
|
1017
|
+
]);
|
|
1018
|
+
return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement("div", {
|
|
1019
|
+
className: "p-2 flex flex-col gap-4"
|
|
1020
|
+
}, /* @__PURE__ */ import_react16.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react16.default.createElement("div", {
|
|
1021
|
+
className: "flex items-center"
|
|
1022
|
+
}, /* @__PURE__ */ import_react16.default.createElement("h3", {
|
|
1023
|
+
className: "text-sm font-semibold"
|
|
1024
|
+
}, t("foreign keys")), /* @__PURE__ */ import_react16.default.createElement("div", {
|
|
1025
|
+
className: "grow"
|
|
1026
|
+
}), /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.IconButton, {
|
|
1027
|
+
classNames: adding && "invisible",
|
|
1028
|
+
icon: "ph--plus--regular",
|
|
1029
|
+
label: t("add key"),
|
|
1030
|
+
onClick: handleNew
|
|
1031
|
+
})), !adding && /* @__PURE__ */ import_react16.default.createElement(ForeignKeys, {
|
|
1032
|
+
keys,
|
|
1033
|
+
onDelete: handleDelete
|
|
1034
|
+
})), adding && /* @__PURE__ */ import_react16.default.createElement(import_react_ui_form4.Form, {
|
|
1035
|
+
schema: import_echo_schema2.ForeignKeySchema,
|
|
1036
|
+
values: initialValues2,
|
|
1037
|
+
onSave: handleSave,
|
|
1038
|
+
onCancel: handleCancel
|
|
1039
|
+
}));
|
|
1040
|
+
};
|
|
1041
|
+
var BaseObjectSettings = ({ classNames, children, object }) => {
|
|
1042
|
+
const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6P2DB4QQ.meta.id);
|
|
1043
|
+
const inputRef = (0, import_react18.useRef)(null);
|
|
1044
|
+
return /* @__PURE__ */ import_react18.default.createElement("form", {
|
|
1045
|
+
className: (0, import_react_ui_theme5.mx)("flex flex-col p-2 gap-2", classNames)
|
|
1046
|
+
}, /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.Label, null, t("name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.TextInput, {
|
|
1047
|
+
ref: inputRef,
|
|
1048
|
+
placeholder: t("name placeholder"),
|
|
1049
|
+
value: object.name ?? "",
|
|
1050
|
+
onChange: (event) => {
|
|
1051
|
+
object.name = event.target.value;
|
|
1052
|
+
},
|
|
1053
|
+
onKeyDown: (event) => {
|
|
1054
|
+
if (event.key === "Enter") {
|
|
1055
|
+
inputRef.current?.blur();
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
})), children);
|
|
1059
|
+
};
|
|
1060
|
+
var ObjectSettingsContainer = ({ object, role }) => {
|
|
1061
|
+
const data = (0, import_react15.useMemo)(() => ({
|
|
1062
|
+
subject: object
|
|
1063
|
+
}), [
|
|
1064
|
+
object
|
|
1065
|
+
]);
|
|
1066
|
+
return /* @__PURE__ */ import_react15.default.createElement(import_react_ui10.Clipboard.Provider, null, /* @__PURE__ */ import_react15.default.createElement(import_react_ui_stack2.StackItem.Content, {
|
|
1067
|
+
toolbar: false,
|
|
1068
|
+
role
|
|
1069
|
+
}, /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
1070
|
+
className: "flex flex-col overflow-y-auto divide-y divide-separator"
|
|
1071
|
+
}, /* @__PURE__ */ import_react15.default.createElement(BaseObjectSettings, {
|
|
1072
|
+
object
|
|
1073
|
+
}, /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
|
|
1074
|
+
role: "base-object-settings",
|
|
1075
|
+
data
|
|
1076
|
+
})), /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
|
|
1077
|
+
role: "object-settings",
|
|
1078
|
+
data
|
|
1079
|
+
}), /* @__PURE__ */ import_react15.default.createElement(AdvancedObjectSettings, {
|
|
1080
|
+
object
|
|
1081
|
+
}))));
|
|
834
1082
|
};
|
|
835
1083
|
var Status;
|
|
836
1084
|
(function(Status2) {
|
|
@@ -839,12 +1087,12 @@ var Status;
|
|
|
839
1087
|
Status2[Status2["ERROR"] = 2] = "ERROR";
|
|
840
1088
|
})(Status || (Status = {}));
|
|
841
1089
|
var PersistenceStatus = ({ db }) => {
|
|
842
|
-
const { t } = (0,
|
|
843
|
-
const [displayMessage, setDisplayMessage] = (0,
|
|
844
|
-
const [status, naturalSetStatus] = (0,
|
|
845
|
-
const [prevStatus, setPrevStatus] = (0,
|
|
846
|
-
const _setStatus = (0,
|
|
847
|
-
(0,
|
|
1090
|
+
const { t } = (0, import_react_ui14.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1091
|
+
const [displayMessage, setDisplayMessage] = (0, import_react20.useState)(false);
|
|
1092
|
+
const [status, naturalSetStatus] = (0, import_react20.useState)(0);
|
|
1093
|
+
const [prevStatus, setPrevStatus] = (0, import_react20.useState)(0);
|
|
1094
|
+
const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
|
|
1095
|
+
(0, import_react20.useEffect)(() => {
|
|
848
1096
|
setPrevStatus(status);
|
|
849
1097
|
if (prevStatus !== status && status === 0) {
|
|
850
1098
|
setDisplayMessage(true);
|
|
@@ -856,49 +1104,49 @@ var PersistenceStatus = ({ db }) => {
|
|
|
856
1104
|
]);
|
|
857
1105
|
switch (status) {
|
|
858
1106
|
case 2:
|
|
859
|
-
return /* @__PURE__ */
|
|
1107
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
860
1108
|
className: "flex items-center"
|
|
861
|
-
}, /* @__PURE__ */
|
|
862
|
-
className: (0,
|
|
863
|
-
}), /* @__PURE__ */
|
|
864
|
-
className: (0,
|
|
1109
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.Warning, {
|
|
1110
|
+
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
1111
|
+
}), /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1112
|
+
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
|
|
865
1113
|
}, t("persistence error label")));
|
|
866
1114
|
case 1:
|
|
867
|
-
return /* @__PURE__ */
|
|
1115
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
868
1116
|
className: "flex items-center"
|
|
869
|
-
}, /* @__PURE__ */
|
|
870
|
-
className: (0,
|
|
871
|
-
}), /* @__PURE__ */
|
|
872
|
-
className: (0,
|
|
1117
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.ArrowsCounterClockwise, {
|
|
1118
|
+
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
1119
|
+
}), /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1120
|
+
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
|
|
873
1121
|
}, t("persistence pending label")));
|
|
874
1122
|
case 0:
|
|
875
1123
|
default:
|
|
876
|
-
return /* @__PURE__ */
|
|
1124
|
+
return /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Root, {
|
|
877
1125
|
delayDuration: 400
|
|
878
|
-
}, /* @__PURE__ */
|
|
1126
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Trigger, {
|
|
879
1127
|
role: "status",
|
|
880
1128
|
className: "flex items-center"
|
|
881
|
-
}, /* @__PURE__ */
|
|
882
|
-
className: (0,
|
|
883
|
-
}), displayMessage && /* @__PURE__ */
|
|
884
|
-
className: (0,
|
|
885
|
-
}, t("persisted locally label"))), /* @__PURE__ */
|
|
1129
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.CheckCircle, {
|
|
1130
|
+
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
1131
|
+
}), displayMessage && /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1132
|
+
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
|
|
1133
|
+
}, t("persisted locally label"))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Content, null, t("persisted locally message"), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
|
|
886
1134
|
}
|
|
887
1135
|
};
|
|
888
|
-
var POPOVER_ADD_SPACE = `${
|
|
1136
|
+
var POPOVER_ADD_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
|
|
889
1137
|
var PopoverAddSpace = () => {
|
|
890
|
-
const { t } = (0,
|
|
891
|
-
const { dispatchPromise: dispatch } = (0,
|
|
892
|
-
return /* @__PURE__ */
|
|
1138
|
+
const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1139
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
|
|
1140
|
+
return /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
893
1141
|
role: "none",
|
|
894
1142
|
className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
|
|
895
|
-
}, /* @__PURE__ */
|
|
1143
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
|
|
896
1144
|
variant: "ghost",
|
|
897
1145
|
label: t("create space label"),
|
|
898
1146
|
icon: "ph--plus--regular",
|
|
899
1147
|
onClick: () => {
|
|
900
|
-
void dispatch((0,
|
|
901
|
-
void dispatch((0,
|
|
1148
|
+
void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateSpace));
|
|
1149
|
+
void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
|
|
902
1150
|
part: "popover",
|
|
903
1151
|
options: {
|
|
904
1152
|
anchorId: "",
|
|
@@ -907,13 +1155,13 @@ var PopoverAddSpace = () => {
|
|
|
907
1155
|
}));
|
|
908
1156
|
},
|
|
909
1157
|
"data-testid": "spacePlugin.createSpace"
|
|
910
|
-
}), /* @__PURE__ */
|
|
1158
|
+
}), /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
|
|
911
1159
|
variant: "ghost",
|
|
912
1160
|
label: t("join space label"),
|
|
913
1161
|
icon: "ph--sign-in--regular",
|
|
914
1162
|
onClick: () => {
|
|
915
|
-
void dispatch((0,
|
|
916
|
-
void dispatch((0,
|
|
1163
|
+
void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Join));
|
|
1164
|
+
void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
|
|
917
1165
|
part: "popover",
|
|
918
1166
|
options: {
|
|
919
1167
|
anchorId: "",
|
|
@@ -925,13 +1173,13 @@ var PopoverAddSpace = () => {
|
|
|
925
1173
|
}));
|
|
926
1174
|
};
|
|
927
1175
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
928
|
-
var POPOVER_RENAME_OBJECT = `${
|
|
1176
|
+
var POPOVER_RENAME_OBJECT = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameObject`;
|
|
929
1177
|
var PopoverRenameObject = ({ object: obj }) => {
|
|
930
|
-
const { t } = (0,
|
|
931
|
-
const doneButton = (0,
|
|
1178
|
+
const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1179
|
+
const doneButton = (0, import_react22.useRef)(null);
|
|
932
1180
|
const object = obj;
|
|
933
|
-
const [name, setName] = (0,
|
|
934
|
-
const handleDone = (0,
|
|
1181
|
+
const [name, setName] = (0, import_react22.useState)(object.name || object.title || "");
|
|
1182
|
+
const handleDone = (0, import_react22.useCallback)(() => {
|
|
935
1183
|
try {
|
|
936
1184
|
object.name = name;
|
|
937
1185
|
} catch {
|
|
@@ -952,23 +1200,23 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
952
1200
|
object,
|
|
953
1201
|
name
|
|
954
1202
|
]);
|
|
955
|
-
return /* @__PURE__ */
|
|
1203
|
+
return /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
956
1204
|
role: "none",
|
|
957
1205
|
className: "p-1 flex gap-2"
|
|
958
|
-
}, /* @__PURE__ */
|
|
1206
|
+
}, /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
959
1207
|
role: "none",
|
|
960
1208
|
className: "flex-1"
|
|
961
|
-
}, /* @__PURE__ */
|
|
1209
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Label, {
|
|
962
1210
|
srOnly: true
|
|
963
|
-
}, t("object name label")), /* @__PURE__ */
|
|
964
|
-
placeholder: t("object
|
|
1211
|
+
}, t("object name label")), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.TextInput, {
|
|
1212
|
+
placeholder: t("object placeholder"),
|
|
965
1213
|
value: name,
|
|
966
1214
|
"data-testid": "spacePlugin.renameObject.input",
|
|
967
1215
|
onChange: ({ target: { value } }) => setName(value),
|
|
968
1216
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
969
|
-
}))), /* @__PURE__ */
|
|
1217
|
+
}))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Close, {
|
|
970
1218
|
asChild: true
|
|
971
|
-
}, /* @__PURE__ */
|
|
1219
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Button, {
|
|
972
1220
|
ref: doneButton,
|
|
973
1221
|
classNames: "self-stretch",
|
|
974
1222
|
onClick: handleDone
|
|
@@ -976,35 +1224,35 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
976
1224
|
ns: "os"
|
|
977
1225
|
}))));
|
|
978
1226
|
};
|
|
979
|
-
var POPOVER_RENAME_SPACE = `${
|
|
1227
|
+
var POPOVER_RENAME_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
|
|
980
1228
|
var PopoverRenameSpace = ({ space }) => {
|
|
981
|
-
const { t } = (0,
|
|
982
|
-
const doneButton = (0,
|
|
983
|
-
const [name, setName] = (0,
|
|
984
|
-
const handleDone = (0,
|
|
1229
|
+
const { t } = (0, import_react_ui17.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1230
|
+
const doneButton = (0, import_react23.useRef)(null);
|
|
1231
|
+
const [name, setName] = (0, import_react23.useState)(space.properties.name ?? "");
|
|
1232
|
+
const handleDone = (0, import_react23.useCallback)(() => {
|
|
985
1233
|
space.properties.name = name;
|
|
986
1234
|
}, [
|
|
987
1235
|
space,
|
|
988
1236
|
name
|
|
989
1237
|
]);
|
|
990
|
-
return /* @__PURE__ */
|
|
1238
|
+
return /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
991
1239
|
role: "none",
|
|
992
1240
|
className: "p-1 flex gap-2"
|
|
993
|
-
}, /* @__PURE__ */
|
|
1241
|
+
}, /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
994
1242
|
role: "none",
|
|
995
1243
|
className: "flex-1"
|
|
996
|
-
}, /* @__PURE__ */
|
|
1244
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Label, {
|
|
997
1245
|
srOnly: true
|
|
998
|
-
}, t("space name label")), /* @__PURE__ */
|
|
1246
|
+
}, t("space name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.TextInput, {
|
|
999
1247
|
defaultValue: space.properties.name ?? "",
|
|
1000
1248
|
placeholder: t("unnamed space label"),
|
|
1001
1249
|
onChange: ({ target: { value } }) => setName(value),
|
|
1002
1250
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1003
1251
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1004
1252
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1005
|
-
}))), /* @__PURE__ */
|
|
1253
|
+
}))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Popover.Close, {
|
|
1006
1254
|
asChild: true
|
|
1007
|
-
}, /* @__PURE__ */
|
|
1255
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
|
|
1008
1256
|
ref: doneButton,
|
|
1009
1257
|
classNames: "self-stretch",
|
|
1010
1258
|
onClick: handleDone
|
|
@@ -1013,16 +1261,16 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1013
1261
|
}))));
|
|
1014
1262
|
};
|
|
1015
1263
|
var ShareSpaceButton = ({ space }) => {
|
|
1016
|
-
const { dispatchPromise: dispatch } = (0,
|
|
1017
|
-
return /* @__PURE__ */
|
|
1018
|
-
onClick: () => dispatch((0,
|
|
1264
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
|
|
1265
|
+
return /* @__PURE__ */ import_react24.default.createElement(ShareSpaceButtonImpl, {
|
|
1266
|
+
onClick: () => dispatch((0, import_app_framework9.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Share, {
|
|
1019
1267
|
space
|
|
1020
1268
|
}))
|
|
1021
1269
|
});
|
|
1022
1270
|
};
|
|
1023
1271
|
var ShareSpaceButtonImpl = ({ onClick }) => {
|
|
1024
|
-
const { t } = (0,
|
|
1025
|
-
return /* @__PURE__ */
|
|
1272
|
+
const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1273
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.IconButton, {
|
|
1026
1274
|
"data-testid": "spacePlugin.shareSpaceButton",
|
|
1027
1275
|
icon: "ph--users--regular",
|
|
1028
1276
|
label: t("share space label"),
|
|
@@ -1030,10 +1278,10 @@ var ShareSpaceButtonImpl = ({ onClick }) => {
|
|
|
1030
1278
|
});
|
|
1031
1279
|
};
|
|
1032
1280
|
var usePath = (graph, id, timeout) => {
|
|
1033
|
-
const [pathState, setPathState] = (0,
|
|
1281
|
+
const [pathState, setPathState] = (0, import_react26.useState)(id ? graph.getPath({
|
|
1034
1282
|
target: id
|
|
1035
1283
|
}) : void 0);
|
|
1036
|
-
(0,
|
|
1284
|
+
(0, import_react26.useEffect)(() => {
|
|
1037
1285
|
if (!id && pathState) {
|
|
1038
1286
|
setPathState(void 0);
|
|
1039
1287
|
}
|
|
@@ -1064,27 +1312,27 @@ var usePath = (graph, id, timeout) => {
|
|
|
1064
1312
|
};
|
|
1065
1313
|
var REFRESH_INTERVAL = 5e3;
|
|
1066
1314
|
var ACTIVITY_DURATION = 3e4;
|
|
1067
|
-
var noViewers = new
|
|
1315
|
+
var noViewers = new import_util3.ComplexMap(import_react_client6.PublicKey.hash);
|
|
1068
1316
|
var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
|
|
1069
1317
|
var SpacePresence = ({ object, spaceKey }) => {
|
|
1070
|
-
const spaceState = (0,
|
|
1071
|
-
const client = (0,
|
|
1318
|
+
const spaceState = (0, import_app_framework10.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
|
|
1319
|
+
const client = (0, import_react_client6.useClient)();
|
|
1072
1320
|
const identity = (0, import_halo.useIdentity)();
|
|
1073
|
-
const space = spaceKey ? client.spaces.get(spaceKey) : (0,
|
|
1074
|
-
const spaceMembers = (0,
|
|
1075
|
-
const [_moment, setMoment] = (0,
|
|
1076
|
-
(0,
|
|
1321
|
+
const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo6.getSpace)(object);
|
|
1322
|
+
const spaceMembers = (0, import_echo6.useMembers)(space?.key);
|
|
1323
|
+
const [_moment, setMoment] = (0, import_react25.useState)(Date.now());
|
|
1324
|
+
(0, import_react25.useEffect)(() => {
|
|
1077
1325
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1078
1326
|
return () => clearInterval(interval);
|
|
1079
1327
|
}, []);
|
|
1080
|
-
const memberOnline = (0,
|
|
1081
|
-
const memberIsNotSelf = (0,
|
|
1328
|
+
const memberOnline = (0, import_react25.useCallback)((member) => member.presence === 1, []);
|
|
1329
|
+
const memberIsNotSelf = (0, import_react25.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
|
|
1082
1330
|
identity?.identityKey
|
|
1083
1331
|
]);
|
|
1084
1332
|
if (!identity || !spaceState || !space) {
|
|
1085
1333
|
return null;
|
|
1086
1334
|
}
|
|
1087
|
-
const currentObjectViewers = spaceState.viewersByObject[(0,
|
|
1335
|
+
const currentObjectViewers = spaceState.viewersByObject[(0, import_echo6.fullyQualifiedId)(object)] ?? noViewers;
|
|
1088
1336
|
const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
|
|
1089
1337
|
const objectView = currentObjectViewers.get(member.identity.identityKey);
|
|
1090
1338
|
const lastSeen = objectView?.lastSeen ?? -Infinity;
|
|
@@ -1095,79 +1343,76 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1095
1343
|
lastSeen
|
|
1096
1344
|
};
|
|
1097
1345
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1098
|
-
return /* @__PURE__ */
|
|
1346
|
+
return /* @__PURE__ */ import_react25.default.createElement(FullPresence, {
|
|
1099
1347
|
members: membersForObject
|
|
1100
1348
|
});
|
|
1101
1349
|
};
|
|
1102
1350
|
var FullPresence = (props) => {
|
|
1103
1351
|
const { size = 9, onMemberClick } = props;
|
|
1104
|
-
const members = (0,
|
|
1352
|
+
const members = (0, import_react_ui19.useDefaultValue)(props.members, () => []);
|
|
1105
1353
|
if (members.length === 0) {
|
|
1106
1354
|
return null;
|
|
1107
1355
|
}
|
|
1108
|
-
return /* @__PURE__ */
|
|
1109
|
-
|
|
1110
|
-
classNames: "mbs-2 mie-4",
|
|
1356
|
+
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1357
|
+
className: "dx-avatar-group",
|
|
1111
1358
|
"data-testid": "spacePlugin.presence"
|
|
1112
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1359
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, {
|
|
1113
1360
|
key: member.identity.identityKey.toHex()
|
|
1114
|
-
}, /* @__PURE__ */
|
|
1361
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
|
|
1115
1362
|
identity: member.identity,
|
|
1116
|
-
group: true,
|
|
1117
1363
|
match: member.currentlyAttended,
|
|
1118
1364
|
index: members.length - i,
|
|
1119
|
-
onClick: () => onMemberClick?.(member)
|
|
1120
|
-
|
|
1365
|
+
onClick: () => onMemberClick?.(member),
|
|
1366
|
+
size
|
|
1367
|
+
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
|
|
1121
1368
|
side: "bottom"
|
|
1122
|
-
}, /* @__PURE__ */
|
|
1123
|
-
status: "inactive"
|
|
1124
|
-
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Frame, {
|
|
1369
|
+
}, /* @__PURE__ */ import_react25.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
|
|
1370
|
+
status: "inactive",
|
|
1125
1371
|
style: {
|
|
1126
1372
|
zIndex: members.length - 4
|
|
1127
|
-
}
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
})))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
|
|
1373
|
+
},
|
|
1374
|
+
fallback: `+${members.length - 3}`
|
|
1375
|
+
}))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
|
|
1131
1376
|
side: "bottom"
|
|
1132
|
-
}, /* @__PURE__ */
|
|
1377
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.List, {
|
|
1133
1378
|
classNames: "max-h-56 overflow-y-auto"
|
|
1134
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1379
|
+
}, members.map((member) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.ListItem.Root, {
|
|
1135
1380
|
key: member.identity.identityKey.toHex(),
|
|
1136
1381
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1137
1382
|
onClick: () => onMemberClick?.(member),
|
|
1138
1383
|
"data-testid": "identity-list-item"
|
|
1139
|
-
}, /* @__PURE__ */
|
|
1384
|
+
}, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
|
|
1140
1385
|
identity: member.identity,
|
|
1386
|
+
size,
|
|
1141
1387
|
showName: true,
|
|
1142
1388
|
match: member.currentlyAttended
|
|
1143
1389
|
}))))))));
|
|
1144
1390
|
};
|
|
1145
|
-
var PrensenceAvatar = ({ identity, showName, match,
|
|
1146
|
-
const Root = group ? import_react_ui17.AvatarGroupItem.Root : import_react_ui17.Avatar.Root;
|
|
1391
|
+
var PrensenceAvatar = ({ identity, showName, match, index, onClick, size }) => {
|
|
1147
1392
|
const status = match ? "current" : "active";
|
|
1148
|
-
const fallbackValue = (0,
|
|
1149
|
-
return /* @__PURE__ */
|
|
1393
|
+
const fallbackValue = (0, import_util3.keyToFallback)(identity.identityKey);
|
|
1394
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
|
|
1150
1395
|
status,
|
|
1151
|
-
hue: identity.profile?.data?.hue || fallbackValue.hue
|
|
1152
|
-
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Frame, {
|
|
1396
|
+
hue: identity.profile?.data?.hue || fallbackValue.hue,
|
|
1153
1397
|
"data-testid": "spacePlugin.presence.member",
|
|
1154
1398
|
"data-status": status,
|
|
1399
|
+
size,
|
|
1400
|
+
classNames: "mbs-2 mie-4",
|
|
1155
1401
|
...index ? {
|
|
1156
1402
|
style: {
|
|
1157
1403
|
zIndex: index
|
|
1158
1404
|
}
|
|
1159
1405
|
} : {},
|
|
1160
|
-
onClick: () => onClick?.()
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
classNames: "text-sm truncate pli-2"
|
|
1406
|
+
onClick: () => onClick?.(),
|
|
1407
|
+
fallback: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
1408
|
+
}), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Label, {
|
|
1409
|
+
classNames: showName ? "text-sm truncate pli-2" : "sr-only"
|
|
1165
1410
|
}, getName(identity)));
|
|
1166
1411
|
};
|
|
1167
1412
|
var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
1168
1413
|
const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
|
|
1169
1414
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
1170
|
-
const { graph } = (0,
|
|
1415
|
+
const { graph } = (0, import_app_framework10.useAppGraph)();
|
|
1171
1416
|
const attended = (0, import_react_ui_attention.useAttended)();
|
|
1172
1417
|
const startOfAttention = attended.at(-1);
|
|
1173
1418
|
const path = usePath(graph, startOfAttention);
|
|
@@ -1176,8 +1421,8 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1176
1421
|
const moment = Date.now();
|
|
1177
1422
|
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
1178
1423
|
};
|
|
1179
|
-
const [activeViewers, setActiveViewers] = (0,
|
|
1180
|
-
(0,
|
|
1424
|
+
const [activeViewers, setActiveViewers] = (0, import_react25.useState)(viewers ? getActiveViewers(viewers) : []);
|
|
1425
|
+
(0, import_react25.useEffect)(() => {
|
|
1181
1426
|
if (viewers) {
|
|
1182
1427
|
setActiveViewers(getActiveViewers(viewers));
|
|
1183
1428
|
const interval = setInterval(() => {
|
|
@@ -1188,48 +1433,46 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1188
1433
|
}, [
|
|
1189
1434
|
viewers
|
|
1190
1435
|
]);
|
|
1191
|
-
return /* @__PURE__ */
|
|
1436
|
+
return /* @__PURE__ */ import_react25.default.createElement(SmallPresence, {
|
|
1192
1437
|
count: activeViewers.length,
|
|
1193
1438
|
attended: isAttended,
|
|
1194
1439
|
containsAttended
|
|
1195
1440
|
});
|
|
1196
1441
|
};
|
|
1197
1442
|
var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
1198
|
-
const { t } = (0,
|
|
1199
|
-
return /* @__PURE__ */
|
|
1443
|
+
const { t } = (0, import_react_ui19.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1444
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, {
|
|
1200
1445
|
asChild: true
|
|
1201
|
-
}, /* @__PURE__ */
|
|
1446
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention.AttentionGlyph, {
|
|
1202
1447
|
attended,
|
|
1203
1448
|
containsAttended,
|
|
1204
1449
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
1205
1450
|
classNames: "self-center mie-1"
|
|
1206
|
-
})), /* @__PURE__ */
|
|
1451
|
+
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
|
|
1207
1452
|
side: "bottom"
|
|
1208
|
-
}, /* @__PURE__ */
|
|
1453
|
+
}, /* @__PURE__ */ import_react25.default.createElement("span", null, t("presence label", {
|
|
1209
1454
|
count
|
|
1210
|
-
})), /* @__PURE__ */
|
|
1455
|
+
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
|
|
1211
1456
|
};
|
|
1212
1457
|
var SpacePluginSettings = ({ settings }) => {
|
|
1213
|
-
const { t } = (0,
|
|
1214
|
-
return /* @__PURE__ */
|
|
1458
|
+
const { t } = (0, import_react_ui20.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1459
|
+
return /* @__PURE__ */ import_react27.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
|
|
1215
1460
|
label: t("show hidden spaces label")
|
|
1216
|
-
}, /* @__PURE__ */
|
|
1461
|
+
}, /* @__PURE__ */ import_react27.default.createElement(import_react_ui20.Input.Switch, {
|
|
1217
1462
|
checked: settings.showHidden,
|
|
1218
1463
|
onCheckedChange: (checked) => settings.showHidden = !!checked
|
|
1219
1464
|
})));
|
|
1220
1465
|
};
|
|
1221
|
-
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/
|
|
1222
|
-
var
|
|
1223
|
-
const { t } = (0,
|
|
1224
|
-
const
|
|
1225
|
-
const
|
|
1226
|
-
const [edgeReplication, setEdgeReplication] = (0, import_react24.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
|
|
1227
|
-
const toggleEdgeReplication = (0, import_react24.useCallback)(async (next) => {
|
|
1466
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpacePropertiesForm.tsx";
|
|
1467
|
+
var SpacePropertiesForm = ({ space }) => {
|
|
1468
|
+
const { t } = (0, import_react_ui21.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1469
|
+
const [edgeReplication, setEdgeReplication] = (0, import_react28.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
|
|
1470
|
+
const toggleEdgeReplication = (0, import_react28.useCallback)(async (next) => {
|
|
1228
1471
|
setEdgeReplication(next);
|
|
1229
1472
|
await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1230
1473
|
import_log3.log.catch(err, void 0, {
|
|
1231
1474
|
F: __dxlog_file5,
|
|
1232
|
-
L:
|
|
1475
|
+
L: 34,
|
|
1233
1476
|
S: void 0,
|
|
1234
1477
|
C: (f, a) => f(...a)
|
|
1235
1478
|
});
|
|
@@ -1238,131 +1481,147 @@ var SpaceSettingsPanel = ({ space }) => {
|
|
|
1238
1481
|
}, [
|
|
1239
1482
|
space
|
|
1240
1483
|
]);
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
value: space.properties.name ?? "",
|
|
1246
|
-
onChange: (event) => {
|
|
1247
|
-
space.properties.name = event.target.value;
|
|
1484
|
+
const handleSave = (0, import_react28.useCallback)((properties) => {
|
|
1485
|
+
void toggleEdgeReplication(properties.edgeReplication);
|
|
1486
|
+
if (properties.name !== space.properties.name) {
|
|
1487
|
+
space.properties.name = properties.name;
|
|
1248
1488
|
}
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Toolbar.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.IconPicker, {
|
|
1252
|
-
value: space.properties.icon,
|
|
1253
|
-
onChange: (nextIcon) => space.properties.icon = nextIcon,
|
|
1254
|
-
onReset: () => {
|
|
1255
|
-
space.properties.icon = void 0;
|
|
1489
|
+
if (properties.icon !== space.properties.icon) {
|
|
1490
|
+
space.properties.icon = properties.icon;
|
|
1256
1491
|
}
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Toolbar.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.HuePicker, {
|
|
1260
|
-
value: space.properties.hue,
|
|
1261
|
-
onChange: (nextHue) => space.properties.hue = nextHue,
|
|
1262
|
-
onReset: () => {
|
|
1263
|
-
space.properties.hue = void 0;
|
|
1492
|
+
if (properties.hue !== space.properties.hue) {
|
|
1493
|
+
space.properties.hue = properties.hue;
|
|
1264
1494
|
}
|
|
1265
|
-
}
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1495
|
+
}, [
|
|
1496
|
+
space,
|
|
1497
|
+
toggleEdgeReplication
|
|
1498
|
+
]);
|
|
1499
|
+
const values = (0, import_react28.useMemo)(() => ({
|
|
1500
|
+
name: space.properties.name,
|
|
1501
|
+
icon: space.properties.icon,
|
|
1502
|
+
hue: space.properties.hue,
|
|
1503
|
+
edgeReplication
|
|
1504
|
+
}), [
|
|
1505
|
+
space.properties.name,
|
|
1506
|
+
space.properties.icon,
|
|
1507
|
+
space.properties.hue,
|
|
1508
|
+
edgeReplication
|
|
1509
|
+
]);
|
|
1510
|
+
const customElements = (0, import_react28.useMemo)(() => ({
|
|
1511
|
+
name: ({ type, label, getValue, onValueChange }) => {
|
|
1512
|
+
const handleChange = (0, import_react28.useCallback)(({ target: { value } }) => onValueChange(type, value), [
|
|
1513
|
+
onValueChange,
|
|
1514
|
+
type
|
|
1515
|
+
]);
|
|
1516
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
|
|
1517
|
+
title: label,
|
|
1518
|
+
description: t("display name description")
|
|
1519
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.TextInput, {
|
|
1520
|
+
value: getValue(),
|
|
1521
|
+
onChange: handleChange,
|
|
1522
|
+
placeholder: t("display name input placeholder"),
|
|
1523
|
+
classNames: "min-is-64"
|
|
1524
|
+
}));
|
|
1525
|
+
},
|
|
1526
|
+
icon: ({ type, label, getValue, onValueChange }) => {
|
|
1527
|
+
const handleChange = (0, import_react28.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
|
|
1528
|
+
onValueChange,
|
|
1529
|
+
type
|
|
1530
|
+
]);
|
|
1531
|
+
const handleEmojiReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
|
|
1532
|
+
onValueChange,
|
|
1533
|
+
type
|
|
1534
|
+
]);
|
|
1535
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
|
|
1536
|
+
title: label,
|
|
1537
|
+
description: t("icon description")
|
|
1538
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.IconPicker, {
|
|
1539
|
+
value: getValue(),
|
|
1540
|
+
onChange: handleChange,
|
|
1541
|
+
onReset: handleEmojiReset,
|
|
1542
|
+
classNames: "justify-self-end",
|
|
1543
|
+
iconSize: 5
|
|
1544
|
+
}));
|
|
1545
|
+
},
|
|
1546
|
+
hue: ({ type, label, getValue, onValueChange }) => {
|
|
1547
|
+
const handleChange = (0, import_react28.useCallback)((nextHue) => onValueChange(type, nextHue), [
|
|
1548
|
+
onValueChange,
|
|
1549
|
+
type
|
|
1550
|
+
]);
|
|
1551
|
+
const handleHueReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
|
|
1552
|
+
onValueChange,
|
|
1553
|
+
type
|
|
1554
|
+
]);
|
|
1555
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
|
|
1556
|
+
title: label,
|
|
1557
|
+
description: t("hue description")
|
|
1558
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.HuePicker, {
|
|
1559
|
+
value: getValue(),
|
|
1560
|
+
onChange: handleChange,
|
|
1561
|
+
onReset: handleHueReset,
|
|
1562
|
+
classNames: "[--hue-preview-size:1.25rem] justify-self-end"
|
|
1563
|
+
}));
|
|
1564
|
+
},
|
|
1565
|
+
edgeReplication: ({ type, label, getValue, onValueChange }) => {
|
|
1566
|
+
const handleChange = (0, import_react28.useCallback)((checked) => onValueChange(type, checked), [
|
|
1567
|
+
onValueChange,
|
|
1568
|
+
type
|
|
1569
|
+
]);
|
|
1570
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
|
|
1571
|
+
title: label,
|
|
1572
|
+
description: t("edge replication description")
|
|
1573
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Switch, {
|
|
1574
|
+
checked: getValue(),
|
|
1575
|
+
onCheckedChange: handleChange,
|
|
1576
|
+
classNames: "justify-self-end"
|
|
1577
|
+
}));
|
|
1578
|
+
}
|
|
1579
|
+
}), [
|
|
1580
|
+
t
|
|
1581
|
+
]);
|
|
1582
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.Form, {
|
|
1583
|
+
schema: import_chunk_WDEIFDTX.SpaceForm,
|
|
1584
|
+
values,
|
|
1585
|
+
autoSave: true,
|
|
1586
|
+
onSave: handleSave,
|
|
1587
|
+
Custom: customElements,
|
|
1588
|
+
classNames: 'p-0 container-max-width [&_[role="form"]]:grid [&_[role="form"]]:grid-cols-1 md:[&_[role="form"]]:grid-cols-[1fr_min-content] [&_[role="form"]]:gap-4'
|
|
1282
1589
|
});
|
|
1283
|
-
|
|
1284
|
-
|
|
1590
|
+
};
|
|
1591
|
+
var SPACE_SETTINGS_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/SpaceSettingsDialog`;
|
|
1592
|
+
var SpaceSettingsContainer = ({ space }) => {
|
|
1593
|
+
const { t } = (0, import_react_ui22.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1594
|
+
const state = (0, import_app_framework11.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
|
|
1595
|
+
const items = (0, import_app_framework11.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.SettingsSection).toSorted(import_util4.byPosition);
|
|
1596
|
+
const data = (0, import_react29.useMemo)(() => ({
|
|
1285
1597
|
subject: space
|
|
1286
1598
|
}), [
|
|
1287
1599
|
space
|
|
1288
1600
|
]);
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
density: "fine",
|
|
1314
|
-
variant: "ghost",
|
|
1315
|
-
autoFocus: true
|
|
1316
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Icon, {
|
|
1317
|
-
icon: "ph--x--regular",
|
|
1318
|
-
size: 4
|
|
1319
|
-
})))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Root, {
|
|
1320
|
-
orientation: "vertical",
|
|
1321
|
-
value: selected,
|
|
1322
|
-
onValueChange: setSelected,
|
|
1323
|
-
activePart: tabsActivePart,
|
|
1324
|
-
onActivePartChange: setTabsActivePart,
|
|
1325
|
-
classNames: "flex flex-col flex-1 mbs-2"
|
|
1326
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Viewport, {
|
|
1327
|
-
classNames: "flex-1 min-bs-0"
|
|
1328
|
-
}, /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1329
|
-
role: "none",
|
|
1330
|
-
className: "overflow-y-auto pli-3 @md:pis-2 @md:pie-0 mbe-4 border-r border-separator"
|
|
1331
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tablist, {
|
|
1332
|
-
classNames: "flex flex-col max-bs-none min-is-[200px] gap-4 overflow-y-auto"
|
|
1333
|
-
}, /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1334
|
-
role: "none",
|
|
1335
|
-
className: "flex flex-col ml-1"
|
|
1336
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
|
|
1337
|
-
value: "settings"
|
|
1338
|
-
}, t("settings tab label")), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
|
|
1339
|
-
value: "members",
|
|
1340
|
-
disabled: locked
|
|
1341
|
-
}, t("members tab label")), panels.map((panel) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
|
|
1342
|
-
key: panel.id,
|
|
1343
|
-
value: panel.id
|
|
1344
|
-
}, (0, import_react_ui20.toLocalizedString)(panel.label, t)))))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
|
|
1345
|
-
value: "settings",
|
|
1346
|
-
classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
|
|
1347
|
-
}, /* @__PURE__ */ import_react25.default.createElement(SpaceSettingsPanel, {
|
|
1348
|
-
space
|
|
1349
|
-
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
|
|
1350
|
-
value: "members",
|
|
1351
|
-
classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
|
|
1352
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Clipboard.Provider, null, /* @__PURE__ */ import_react25.default.createElement(import_react26.SpacePanel, {
|
|
1353
|
-
space,
|
|
1354
|
-
hideHeading: true,
|
|
1355
|
-
target,
|
|
1356
|
-
createInvitationUrl
|
|
1357
|
-
}))), panels.map((panel) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
|
|
1358
|
-
key: panel.id,
|
|
1359
|
-
value: panel.id,
|
|
1360
|
-
classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
|
|
1361
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_app_framework10.Surface, {
|
|
1362
|
-
role: `space-settings--${panel.id}`,
|
|
1363
|
-
data
|
|
1364
|
-
}))))))
|
|
1365
|
-
);
|
|
1601
|
+
const handleOpenSectionChange = (0, import_react29.useCallback)((sections) => {
|
|
1602
|
+
state.spaceSettingsOpenSections.splice(0, state.spaceSettingsOpenSections.length, ...sections);
|
|
1603
|
+
}, [
|
|
1604
|
+
state
|
|
1605
|
+
]);
|
|
1606
|
+
return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_stack3.StackItem.Content, {
|
|
1607
|
+
classNames: "p-2 block overflow-y-auto"
|
|
1608
|
+
}, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.Root, {
|
|
1609
|
+
items,
|
|
1610
|
+
value: state.spaceSettingsOpenSections,
|
|
1611
|
+
onValueChange: handleOpenSectionChange
|
|
1612
|
+
}, ({ items: items2 }) => /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, items2.map((item) => /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.Item, {
|
|
1613
|
+
key: item.id,
|
|
1614
|
+
item,
|
|
1615
|
+
classNames: "container-max-width"
|
|
1616
|
+
}, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.ItemHeader, {
|
|
1617
|
+
classNames: "pie-6",
|
|
1618
|
+
asChild: true
|
|
1619
|
+
}, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlSectionHeading, {
|
|
1620
|
+
title: (0, import_react_ui22.toLocalizedString)(item.label, t)
|
|
1621
|
+
})), /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.ItemBody, null, /* @__PURE__ */ import_react29.default.createElement(import_app_framework11.Surface, {
|
|
1622
|
+
role: `space-settings--${item.id}`,
|
|
1623
|
+
data
|
|
1624
|
+
})))))));
|
|
1366
1625
|
};
|
|
1367
1626
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
|
|
1368
1627
|
var createEmptyEdgeSyncState = () => ({
|
|
@@ -1384,9 +1643,9 @@ var getSyncSummary = (syncMap) => {
|
|
|
1384
1643
|
};
|
|
1385
1644
|
var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
|
|
1386
1645
|
var useSyncState = () => {
|
|
1387
|
-
const client = (0,
|
|
1388
|
-
const [spaceState, setSpaceState] = (0,
|
|
1389
|
-
(0,
|
|
1646
|
+
const client = (0, import_react_client8.useClient)();
|
|
1647
|
+
const [spaceState, setSpaceState] = (0, import_react31.useState)({});
|
|
1648
|
+
(0, import_react31.useEffect)(() => {
|
|
1390
1649
|
const ctx = new import_context.Context(void 0, {
|
|
1391
1650
|
F: __dxlog_file6,
|
|
1392
1651
|
L: 48
|
|
@@ -1420,8 +1679,8 @@ var useSyncState = () => {
|
|
|
1420
1679
|
return spaceState;
|
|
1421
1680
|
};
|
|
1422
1681
|
var useSpaceSyncState = (space) => {
|
|
1423
|
-
const [spaceState, setSpaceState] = (0,
|
|
1424
|
-
(0,
|
|
1682
|
+
const [spaceState, setSpaceState] = (0, import_react31.useState)();
|
|
1683
|
+
(0, import_react31.useEffect)(() => {
|
|
1425
1684
|
const ctx = new import_context.Context(void 0, {
|
|
1426
1685
|
F: __dxlog_file6,
|
|
1427
1686
|
L: 87
|
|
@@ -1441,9 +1700,9 @@ var useSpaceSyncState = (space) => {
|
|
|
1441
1700
|
return spaceState;
|
|
1442
1701
|
};
|
|
1443
1702
|
var useEdgeStatus = () => {
|
|
1444
|
-
const [status, setStatus] = (0,
|
|
1445
|
-
const client = (0,
|
|
1446
|
-
(0,
|
|
1703
|
+
const [status, setStatus] = (0, import_react30.useState)(import_services.QueryEdgeStatusResponse.EdgeStatus.NOT_CONNECTED);
|
|
1704
|
+
const client = (0, import_react_client7.useClient)();
|
|
1705
|
+
(0, import_react30.useEffect)(() => {
|
|
1447
1706
|
client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
|
|
1448
1707
|
setStatus(status2);
|
|
1449
1708
|
});
|
|
@@ -1453,11 +1712,11 @@ var useEdgeStatus = () => {
|
|
|
1453
1712
|
return status;
|
|
1454
1713
|
};
|
|
1455
1714
|
var InlineSyncStatus = ({ space, open }) => {
|
|
1456
|
-
const { t } = (0,
|
|
1715
|
+
const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1457
1716
|
const id = space.id;
|
|
1458
1717
|
const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention2.useAttention)(id);
|
|
1459
1718
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
1460
|
-
const { graph } = (0,
|
|
1719
|
+
const { graph } = (0, import_app_framework12.useAppGraph)();
|
|
1461
1720
|
const attended = (0, import_react_ui_attention2.useAttended)();
|
|
1462
1721
|
const startOfAttention = attended.at(-1);
|
|
1463
1722
|
const path = usePath(graph, startOfAttention);
|
|
@@ -1466,17 +1725,17 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1466
1725
|
const edgeSyncEnabled = space.internal.data.edgeReplication === import_metadata2.EdgeReplicationSetting.ENABLED;
|
|
1467
1726
|
const syncState = useSpaceSyncState(space);
|
|
1468
1727
|
const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
|
|
1469
|
-
return /* @__PURE__ */
|
|
1728
|
+
return /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Trigger, {
|
|
1470
1729
|
asChild: true
|
|
1471
|
-
}, /* @__PURE__ */
|
|
1730
|
+
}, /* @__PURE__ */ import_react30.default.createElement(import_react_ui_attention2.AttentionGlyph, {
|
|
1472
1731
|
syncing,
|
|
1473
1732
|
attended: isAttended,
|
|
1474
1733
|
containsAttended,
|
|
1475
1734
|
classNames: "self-center mie-1"
|
|
1476
|
-
})), /* @__PURE__ */
|
|
1735
|
+
})), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Content, {
|
|
1477
1736
|
side: "bottom",
|
|
1478
1737
|
classNames: "z-[70]"
|
|
1479
|
-
}, /* @__PURE__ */
|
|
1738
|
+
}, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Arrow, null))));
|
|
1480
1739
|
};
|
|
1481
1740
|
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1482
1741
|
var styles = {
|
|
@@ -1485,9 +1744,9 @@ var styles = {
|
|
|
1485
1744
|
barHover: "dark:hover:bg-green-500"
|
|
1486
1745
|
};
|
|
1487
1746
|
var useActive = (count) => {
|
|
1488
|
-
const [current, setCurrent] = (0,
|
|
1489
|
-
const [active, setActive] = (0,
|
|
1490
|
-
(0,
|
|
1747
|
+
const [current, setCurrent] = (0, import_react33.useState)(count);
|
|
1748
|
+
const [active, setActive] = (0, import_react33.useState)(false);
|
|
1749
|
+
(0, import_react33.useEffect)(() => {
|
|
1491
1750
|
let t;
|
|
1492
1751
|
if (count !== current) {
|
|
1493
1752
|
setActive(true);
|
|
@@ -1508,16 +1767,16 @@ var useActive = (count) => {
|
|
|
1508
1767
|
return active;
|
|
1509
1768
|
};
|
|
1510
1769
|
var SpaceRowContainer = ({ spaceId, state }) => {
|
|
1511
|
-
const { t } = (0,
|
|
1512
|
-
const client = (0,
|
|
1513
|
-
const space = (0,
|
|
1770
|
+
const { t } = (0, import_react_ui25.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1771
|
+
const client = (0, import_react_client10.useClient)();
|
|
1772
|
+
const space = (0, import_echo7.useSpace)(spaceId);
|
|
1514
1773
|
if (!space) {
|
|
1515
1774
|
return null;
|
|
1516
1775
|
}
|
|
1517
|
-
const spaceName = (0,
|
|
1776
|
+
const spaceName = (0, import_react_ui25.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
1518
1777
|
personal: space === client.spaces.default
|
|
1519
1778
|
}), t);
|
|
1520
|
-
return /* @__PURE__ */
|
|
1779
|
+
return /* @__PURE__ */ import_react33.default.createElement(SpaceRow, {
|
|
1521
1780
|
spaceId,
|
|
1522
1781
|
spaceName,
|
|
1523
1782
|
state
|
|
@@ -1526,19 +1785,19 @@ var SpaceRowContainer = ({ spaceId, state }) => {
|
|
|
1526
1785
|
var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
|
|
1527
1786
|
const downActive = useActive(localDocumentCount);
|
|
1528
1787
|
const upActive = useActive(remoteDocumentCount);
|
|
1529
|
-
return /* @__PURE__ */
|
|
1788
|
+
return /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1530
1789
|
className: "flex items-center mx-0.5 gap-0.5 cursor-pointer",
|
|
1531
1790
|
title: spaceId,
|
|
1532
1791
|
onClick: () => {
|
|
1533
1792
|
void navigator.clipboard.writeText(spaceId);
|
|
1534
1793
|
}
|
|
1535
|
-
}, /* @__PURE__ */
|
|
1794
|
+
}, /* @__PURE__ */ import_react33.default.createElement("span", {
|
|
1536
1795
|
className: "is-1/2 truncate"
|
|
1537
|
-
}, spaceName), /* @__PURE__ */
|
|
1796
|
+
}, spaceName), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
|
|
1538
1797
|
icon: "ph--arrow-fat-line-left--regular",
|
|
1539
1798
|
size: 3,
|
|
1540
|
-
classNames: (0,
|
|
1541
|
-
}), /* @__PURE__ */
|
|
1799
|
+
classNames: (0, import_react_ui_theme8.mx)(downActive && "animate-[pulse_1s_infinite]")
|
|
1800
|
+
}), /* @__PURE__ */ import_react33.default.createElement(Candle, {
|
|
1542
1801
|
up: {
|
|
1543
1802
|
count: remoteDocumentCount,
|
|
1544
1803
|
total: remoteDocumentCount + missingOnRemote
|
|
@@ -1548,43 +1807,43 @@ var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumen
|
|
|
1548
1807
|
total: localDocumentCount + missingOnLocal
|
|
1549
1808
|
},
|
|
1550
1809
|
title: spaceId
|
|
1551
|
-
}), /* @__PURE__ */
|
|
1810
|
+
}), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
|
|
1552
1811
|
icon: "ph--arrow-fat-line-right--regular",
|
|
1553
1812
|
size: 3,
|
|
1554
|
-
classNames: (0,
|
|
1813
|
+
classNames: (0, import_react_ui_theme8.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
|
|
1555
1814
|
}));
|
|
1556
1815
|
};
|
|
1557
1816
|
var Candle = ({ classNames, up, down }) => {
|
|
1558
|
-
return /* @__PURE__ */
|
|
1559
|
-
className: (0,
|
|
1560
|
-
}, /* @__PURE__ */
|
|
1817
|
+
return /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1818
|
+
className: (0, import_react_ui_theme8.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
|
|
1819
|
+
}, /* @__PURE__ */ import_react33.default.createElement(Bar, {
|
|
1561
1820
|
classNames: "justify-end",
|
|
1562
1821
|
...up
|
|
1563
|
-
}), /* @__PURE__ */
|
|
1822
|
+
}), /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1564
1823
|
className: "relative"
|
|
1565
|
-
}, /* @__PURE__ */
|
|
1566
|
-
className: (0,
|
|
1567
|
-
}, up.total)), /* @__PURE__ */
|
|
1824
|
+
}, /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1825
|
+
className: (0, import_react_ui_theme8.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
|
|
1826
|
+
}, up.total)), /* @__PURE__ */ import_react33.default.createElement(Bar, down));
|
|
1568
1827
|
};
|
|
1569
1828
|
var Bar = ({ classNames, count, total }) => {
|
|
1570
1829
|
let p = count / total * 100;
|
|
1571
1830
|
if (count < total) {
|
|
1572
1831
|
p = Math.min(p, 95);
|
|
1573
1832
|
}
|
|
1574
|
-
return /* @__PURE__ */
|
|
1575
|
-
className: (0,
|
|
1576
|
-
}, /* @__PURE__ */
|
|
1577
|
-
className: (0,
|
|
1833
|
+
return /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1834
|
+
className: (0, import_react_ui_theme8.mx)("relative flex w-full", styles.barBg, classNames)
|
|
1835
|
+
}, /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1836
|
+
className: (0, import_react_ui_theme8.mx)("shrink-0", styles.barFg),
|
|
1578
1837
|
style: {
|
|
1579
1838
|
width: `${p}%`
|
|
1580
1839
|
}
|
|
1581
|
-
}), count !== total && /* @__PURE__ */
|
|
1840
|
+
}), count !== total && /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1582
1841
|
className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
|
|
1583
1842
|
}, count));
|
|
1584
1843
|
};
|
|
1585
1844
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
|
|
1586
1845
|
var createClientSaveTracker = (client, cb) => {
|
|
1587
|
-
const
|
|
1846
|
+
const CleanupFns = {};
|
|
1588
1847
|
const state = {};
|
|
1589
1848
|
const install = (spaces) => {
|
|
1590
1849
|
for (const space of spaces) {
|
|
@@ -1592,7 +1851,7 @@ var createClientSaveTracker = (client, cb) => {
|
|
|
1592
1851
|
continue;
|
|
1593
1852
|
}
|
|
1594
1853
|
state[space.id] = "saved";
|
|
1595
|
-
|
|
1854
|
+
CleanupFns[space.id] = createSpaceSaveTracker(space, (s) => {
|
|
1596
1855
|
state[space.id] = s;
|
|
1597
1856
|
cb(Object.values(state).some((s2) => s2 === "saving") ? "saving" : "saved");
|
|
1598
1857
|
});
|
|
@@ -1603,7 +1862,7 @@ var createClientSaveTracker = (client, cb) => {
|
|
|
1603
1862
|
});
|
|
1604
1863
|
install(client.spaces.get());
|
|
1605
1864
|
return () => {
|
|
1606
|
-
for (const unsubscribe of Object.values(
|
|
1865
|
+
for (const unsubscribe of Object.values(CleanupFns)) {
|
|
1607
1866
|
unsubscribe();
|
|
1608
1867
|
}
|
|
1609
1868
|
};
|
|
@@ -1669,21 +1928,21 @@ var getIcon = (status) => {
|
|
|
1669
1928
|
}
|
|
1670
1929
|
};
|
|
1671
1930
|
var SyncStatus = () => {
|
|
1672
|
-
const client = (0,
|
|
1931
|
+
const client = (0, import_react_client9.useClient)();
|
|
1673
1932
|
const state = useSyncState();
|
|
1674
|
-
const [saved, setSaved] = (0,
|
|
1675
|
-
(0,
|
|
1933
|
+
const [saved, setSaved] = (0, import_react32.useState)(true);
|
|
1934
|
+
(0, import_react32.useEffect)(() => {
|
|
1676
1935
|
return createClientSaveTracker(client, (state2) => {
|
|
1677
1936
|
setSaved(state2 === "saved");
|
|
1678
1937
|
});
|
|
1679
1938
|
}, []);
|
|
1680
|
-
return /* @__PURE__ */
|
|
1939
|
+
return /* @__PURE__ */ import_react32.default.createElement(SyncStatusIndicator, {
|
|
1681
1940
|
state,
|
|
1682
1941
|
saved
|
|
1683
1942
|
});
|
|
1684
1943
|
};
|
|
1685
1944
|
var SyncStatusIndicator = ({ state, saved }) => {
|
|
1686
|
-
const { t } = (0,
|
|
1945
|
+
const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1687
1946
|
const summary = getSyncSummary(state);
|
|
1688
1947
|
const offline = Object.values(state).length === 0;
|
|
1689
1948
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
@@ -1694,8 +1953,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1694
1953
|
needsToUpload,
|
|
1695
1954
|
needsToDownload
|
|
1696
1955
|
});
|
|
1697
|
-
const [classNames, setClassNames] = (0,
|
|
1698
|
-
(0,
|
|
1956
|
+
const [classNames, setClassNames] = (0, import_react32.useState)();
|
|
1957
|
+
(0, import_react32.useEffect)(() => {
|
|
1699
1958
|
setClassNames(void 0);
|
|
1700
1959
|
if (offline || !needsToUpload && !needsToDownload) {
|
|
1701
1960
|
return;
|
|
@@ -1710,68 +1969,66 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1710
1969
|
needsToDownload
|
|
1711
1970
|
]);
|
|
1712
1971
|
const title = t(`${status} label`);
|
|
1713
|
-
const icon = /* @__PURE__ */
|
|
1972
|
+
const icon = /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Icon, {
|
|
1714
1973
|
icon: getIcon(status),
|
|
1715
1974
|
size: 4,
|
|
1716
1975
|
classNames
|
|
1717
1976
|
});
|
|
1718
1977
|
if (offline) {
|
|
1719
|
-
return /* @__PURE__ */
|
|
1978
|
+
return /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Item, {
|
|
1720
1979
|
title
|
|
1721
1980
|
}, icon);
|
|
1722
1981
|
} else {
|
|
1723
|
-
return /* @__PURE__ */
|
|
1982
|
+
return /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Trigger, {
|
|
1724
1983
|
asChild: true
|
|
1725
|
-
}, /* @__PURE__ */
|
|
1984
|
+
}, /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Button, {
|
|
1726
1985
|
title
|
|
1727
|
-
}, icon)), /* @__PURE__ */
|
|
1986
|
+
}, icon)), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Portal, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Content, null, /* @__PURE__ */ import_react32.default.createElement(SyncStatusDetail, {
|
|
1728
1987
|
state,
|
|
1729
1988
|
summary,
|
|
1730
1989
|
debug: false
|
|
1731
|
-
}), /* @__PURE__ */
|
|
1990
|
+
}), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Arrow, null))));
|
|
1732
1991
|
}
|
|
1733
1992
|
};
|
|
1734
1993
|
var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
1735
|
-
const [showAll, setShowAll] = (0,
|
|
1736
|
-
const { t } = (0,
|
|
1994
|
+
const [showAll, setShowAll] = (0, import_react32.useState)(false);
|
|
1995
|
+
const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1737
1996
|
const entries = Object.entries(state).filter(([_, value]) => showAll || value.missingOnLocal + value.missingOnRemote > 0).toSorted(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
1738
|
-
const handleCheckedChange = (0,
|
|
1997
|
+
const handleCheckedChange = (0, import_react32.useCallback)((state2) => setShowAll(state2), [
|
|
1739
1998
|
setShowAll
|
|
1740
1999
|
]);
|
|
1741
|
-
return /* @__PURE__ */
|
|
1742
|
-
className: (0,
|
|
1743
|
-
}, /* @__PURE__ */
|
|
2000
|
+
return /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
2001
|
+
className: (0, import_react_ui_theme7.mx)("flex flex-col gap-3 p-2 text-xs min-w-[400px]", classNames)
|
|
2002
|
+
}, /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
1744
2003
|
role: "none",
|
|
1745
2004
|
className: "flex items-center"
|
|
1746
|
-
}, /* @__PURE__ */
|
|
2005
|
+
}, /* @__PURE__ */ import_react32.default.createElement("h1", {
|
|
1747
2006
|
className: "flex-1"
|
|
1748
|
-
}, t("sync status title")), /* @__PURE__ */
|
|
2007
|
+
}, t("sync status title")), /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
1749
2008
|
className: "flex items-center gap-2"
|
|
1750
|
-
}, /* @__PURE__ */
|
|
2009
|
+
}, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Label, {
|
|
1751
2010
|
classNames: "text-xs"
|
|
1752
|
-
}, t("show all label")), /* @__PURE__ */
|
|
2011
|
+
}, t("show all label")), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Checkbox, {
|
|
1753
2012
|
checked: showAll,
|
|
1754
2013
|
onCheckedChange: handleCheckedChange
|
|
1755
|
-
})))), /* @__PURE__ */
|
|
2014
|
+
})))), /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
1756
2015
|
className: "flex flex-col gap-2"
|
|
1757
|
-
}, entries.length === 0 && /* @__PURE__ */
|
|
2016
|
+
}, entries.length === 0 && /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
1758
2017
|
role: "none",
|
|
1759
2018
|
className: "flex justify-center"
|
|
1760
|
-
}, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */
|
|
2019
|
+
}, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react32.default.createElement(SpaceRowContainer, {
|
|
1761
2020
|
key: spaceId,
|
|
1762
2021
|
spaceId,
|
|
1763
2022
|
state: state2
|
|
1764
|
-
}))), debug && /* @__PURE__ */
|
|
2023
|
+
}))), debug && /* @__PURE__ */ import_react32.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
|
|
1765
2024
|
language: "json"
|
|
1766
2025
|
}, JSON.stringify(summary, null, 2)));
|
|
1767
2026
|
};
|
|
1768
2027
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1769
2028
|
0 && (module.exports = {
|
|
1770
|
-
AdvancedObjectSettings,
|
|
1771
2029
|
AppGraphBuilder,
|
|
1772
2030
|
AppGraphSerializer,
|
|
1773
2031
|
AwaitingObject,
|
|
1774
|
-
BaseObjectSettings,
|
|
1775
2032
|
CREATE_OBJECT_DIALOG,
|
|
1776
2033
|
CREATE_SPACE_DIALOG,
|
|
1777
2034
|
CollectionMain,
|
|
@@ -1784,7 +2041,9 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
|
1784
2041
|
IntentResolver,
|
|
1785
2042
|
JOIN_DIALOG,
|
|
1786
2043
|
JoinDialog,
|
|
2044
|
+
MembersContainer,
|
|
1787
2045
|
MenuFooter,
|
|
2046
|
+
ObjectSettingsContainer,
|
|
1788
2047
|
POPOVER_ADD_SPACE,
|
|
1789
2048
|
POPOVER_RENAME_OBJECT,
|
|
1790
2049
|
POPOVER_RENAME_SPACE,
|
|
@@ -1802,9 +2061,9 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
|
1802
2061
|
SmallPresenceLive,
|
|
1803
2062
|
SpacePluginSettings,
|
|
1804
2063
|
SpacePresence,
|
|
2064
|
+
SpacePropertiesForm,
|
|
1805
2065
|
SpaceSettings,
|
|
1806
|
-
|
|
1807
|
-
SpaceSettingsPanel,
|
|
2066
|
+
SpaceSettingsContainer,
|
|
1808
2067
|
SpaceState,
|
|
1809
2068
|
SpacesReady,
|
|
1810
2069
|
SyncStatus,
|
|
@@ -1812,4 +2071,4 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
|
1812
2071
|
SyncStatusIndicator,
|
|
1813
2072
|
Tools
|
|
1814
2073
|
});
|
|
1815
|
-
//# sourceMappingURL=chunk-
|
|
2074
|
+
//# sourceMappingURL=chunk-3GKCNADA.cjs.map
|