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