@dxos/plugin-space 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446
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-GMFCSOLG.mjs +315 -0
- package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-VRU57AEZ.mjs → app-graph-serializer-DSF2U3A5.mjs} +10 -10
- package/dist/lib/browser/app-graph-serializer-DSF2U3A5.mjs.map +7 -0
- package/dist/lib/browser/{chunk-UBSVH2NQ.mjs → chunk-5BDV575R.mjs} +10 -21
- package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
- package/dist/lib/browser/chunk-AYW4IDRT.mjs +275 -0
- package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-43UQWMD3.mjs → chunk-JZXWPMLA.mjs} +740 -390
- package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-IQFFOAWD.mjs → chunk-LO5UL6RU.mjs} +173 -78
- package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-ANRJHNMQ.mjs → identity-created-JR7BNXFH.mjs} +5 -5
- package/dist/lib/browser/identity-created-JR7BNXFH.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +47 -30
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-KRINV5QI.mjs → intent-resolver-RKYILWWQ.mjs} +106 -98
- package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-J3SP2HVW.mjs → react-root-6H7NX2M2.mjs} +4 -5
- package/dist/lib/{node-esm/react-root-S2LW4FS7.mjs.map → browser/react-root-6H7NX2M2.mjs.map} +1 -1
- package/dist/lib/browser/{react-surface-J7T2IMH4.mjs → react-surface-7AGLOVMK.mjs} +53 -120
- package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
- package/dist/lib/browser/schema-FHTA26SW.mjs +24 -0
- package/dist/lib/browser/schema-FHTA26SW.mjs.map +7 -0
- package/dist/lib/browser/{schema-tools-MYC4LTQD.mjs → schema-tools-YAXPRIXP.mjs} +22 -22
- package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
- package/dist/lib/browser/{settings-G24447B7.mjs → settings-PJPTJUPE.mjs} +4 -4
- package/dist/lib/browser/settings-PJPTJUPE.mjs.map +7 -0
- package/dist/lib/browser/{spaces-ready-5I3RKYTT.mjs → spaces-ready-BSSP7HHG.mjs} +17 -18
- package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
- package/dist/lib/browser/{state-SI4B5GHC.mjs → state-X7VLCC6E.mjs} +4 -2
- package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -7
- package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs +318 -0
- package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
- package/dist/lib/node/{app-graph-serializer-VLBCR3IX.cjs → app-graph-serializer-JELGJUAY.cjs} +22 -22
- package/dist/lib/node/app-graph-serializer-JELGJUAY.cjs.map +7 -0
- package/dist/lib/node/{chunk-MXBE2VET.cjs → chunk-3GKCNADA.cjs} +751 -412
- package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
- package/dist/lib/node/{chunk-5YHUQJVB.cjs → chunk-PU2EYH4E.cjs} +14 -25
- package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
- package/dist/lib/node/{chunk-SCATWJKX.cjs → chunk-TUZWEPGX.cjs} +198 -100
- package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
- package/dist/lib/node/chunk-WDEIFDTX.cjs +300 -0
- package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
- package/dist/lib/node/{identity-created-NIPYGVG3.cjs → identity-created-XU4HFV2T.cjs} +7 -7
- package/dist/lib/node/identity-created-XU4HFV2T.cjs.map +7 -0
- package/dist/lib/node/index.cjs +97 -79
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-MJVRY6YE.cjs → intent-resolver-VJ7YV74L.cjs} +151 -144
- package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-root-M4BZ6VXB.cjs → react-root-TEL5RW3N.cjs} +8 -9
- package/dist/lib/node/{react-root-M4BZ6VXB.cjs.map → react-root-TEL5RW3N.cjs.map} +1 -1
- package/dist/lib/node/{react-surface-RYKSYYKM.cjs → react-surface-2H3S5TY5.cjs} +75 -142
- package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
- package/dist/lib/node/{schema-defs-2HJLXSNK.cjs → schema-PPJ5BZ3A.cjs} +11 -13
- package/dist/lib/node/schema-PPJ5BZ3A.cjs.map +7 -0
- package/dist/lib/node/{schema-tools-OE3MFYYH.cjs → schema-tools-BLIMOZYY.cjs} +24 -24
- package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
- package/dist/lib/node/{settings-AFWO4AWK.cjs → settings-WVFP2UEP.cjs} +7 -7
- package/dist/lib/node/settings-WVFP2UEP.cjs.map +7 -0
- package/dist/lib/node/{spaces-ready-BMPXSFHF.cjs → spaces-ready-7DNZSUOG.cjs} +24 -25
- package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
- package/dist/lib/node/{state-L2ZSDKLS.cjs → state-5KX6WBJH.cjs} +7 -5
- package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +12 -18
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs +316 -0
- package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-GEUYYXKD.mjs → app-graph-serializer-FXONFKOE.mjs} +10 -10
- package/dist/lib/node-esm/app-graph-serializer-FXONFKOE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-5NIBYPVF.mjs → chunk-3ZOUV4DF.mjs} +10 -21
- package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FI3WV22Y.mjs → chunk-BEWBZ4Q4.mjs} +740 -390
- package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FC4UHDPL.mjs +276 -0
- package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-S2W6HS4A.mjs → chunk-ZGLK25WQ.mjs} +173 -78
- package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-O5X2FFWU.mjs → identity-created-WJKAS2PV.mjs} +5 -5
- package/dist/lib/node-esm/identity-created-WJKAS2PV.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +47 -30
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-JT6EB47M.mjs → intent-resolver-ZFNSA4CM.mjs} +106 -98
- package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-S2LW4FS7.mjs → react-root-PRBJMWLQ.mjs} +4 -5
- package/dist/lib/node-esm/{react-surface-ZNNMO7QQ.mjs → react-surface-RCZG2PNF.mjs} +53 -120
- package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
- package/dist/lib/node-esm/schema-OUZKVYM5.mjs +25 -0
- package/dist/lib/node-esm/schema-OUZKVYM5.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-tools-YTJLA3NQ.mjs → schema-tools-IU7EX5A5.mjs} +22 -22
- package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-MJVSCOI4.mjs → settings-FJZPC2TV.mjs} +4 -4
- package/dist/lib/node-esm/settings-FJZPC2TV.mjs.map +7 -0
- package/dist/lib/node-esm/{spaces-ready-XKG57SL5.mjs → spaces-ready-7X5PGB2V.mjs} +17 -18
- package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
- package/dist/lib/node-esm/{state-QUDYGEU6.mjs → state-Z6E2YTNC.mjs} +4 -2
- package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -7
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +179 -2
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +2 -2
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +2 -2
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +184 -9
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +3 -4
- 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-tools.d.ts +2 -2
- package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema.d.ts +4 -0
- package/dist/types/src/capabilities/schema.d.ts.map +1 -0
- package/dist/types/src/capabilities/spaces-ready.d.ts +2 -2
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.d.ts +2 -2
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.d.ts +2 -2
- 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/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.d.ts +2 -2
- package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
- package/dist/types/src/components/PopoverAddSpace.d.ts +4 -0
- package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -0
- package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
- package/dist/types/src/components/ShareSpaceButton.d.ts +9 -0
- package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -0
- package/dist/types/src/components/ShareSpaceButton.stories.d.ts +10 -0
- package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -0
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.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 +2 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/index.d.ts +1 -0
- package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/Space.d.ts +13 -0
- package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +8 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +9 -0
- package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/sync-state.d.ts +18 -0
- package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +3 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +0 -2
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts +2 -3
- package/dist/types/src/hooks/usePath.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +242 -17
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/collection.d.ts +8 -9
- package/dist/types/src/types/collection.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +110 -205
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +146 -157
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +20 -36
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +44 -51
- package/src/SpacePlugin.tsx +20 -11
- package/src/capabilities/app-graph-builder.ts +230 -377
- package/src/capabilities/app-graph-serializer.ts +8 -8
- package/src/capabilities/identity-created.ts +5 -5
- package/src/capabilities/index.ts +2 -2
- package/src/capabilities/intent-resolver.ts +110 -94
- package/src/capabilities/react-surface.tsx +50 -111
- package/src/capabilities/schema-tool.test.ts +3 -2
- package/src/capabilities/schema-tools.ts +25 -25
- package/src/capabilities/schema.ts +27 -0
- package/src/capabilities/settings.ts +2 -2
- package/src/capabilities/spaces-ready.ts +14 -16
- package/src/capabilities/state.ts +5 -3
- package/src/components/AwaitingObject.tsx +1 -1
- package/src/components/CollectionMain.tsx +5 -2
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +4 -4
- package/src/components/CreateDialog/CreateObjectDialog.tsx +4 -4
- package/src/components/CreateDialog/CreateObjectPanel.tsx +25 -3
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +3 -6
- package/src/components/MembersContainer.stories.tsx +5 -1
- package/src/components/MembersContainer.tsx +54 -80
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
- package/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.tsx +2 -2
- package/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.tsx +4 -4
- package/src/components/PersistenceStatus.tsx +14 -11
- package/src/components/PopoverAddSpace.tsx +46 -0
- package/src/components/PopoverRenameObject.tsx +8 -14
- package/src/components/PopoverRenameSpace.tsx +0 -8
- package/src/components/ShareSpaceButton.stories.tsx +27 -0
- package/src/components/ShareSpaceButton.tsx +32 -0
- package/src/components/SpacePluginSettings.tsx +2 -27
- package/src/components/SpacePresence.stories.tsx +1 -1
- package/src/components/SpacePresence.tsx +65 -60
- package/src/components/SpaceSettings/{SpaceSettingsContainer.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
- package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +39 -159
- package/src/components/SpaceSettings/index.ts +1 -0
- package/src/components/SyncStatus/InlineSyncStatus.tsx +24 -15
- package/src/components/SyncStatus/Space.tsx +133 -0
- package/src/components/SyncStatus/SyncStatus.tsx +69 -6
- package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +89 -0
- package/src/components/SyncStatus/sync-state.ts +101 -0
- package/src/components/index.ts +3 -2
- package/src/hooks/index.ts +0 -2
- package/src/hooks/usePath.ts +6 -9
- package/src/index.ts +0 -1
- package/src/translations.ts +7 -19
- package/src/types/collection.ts +4 -6
- package/src/types/thread.ts +8 -14
- package/src/types/types.ts +101 -115
- package/src/util.tsx +172 -75
- package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs +0 -328
- package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-VRU57AEZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-43UQWMD3.mjs.map +0 -7
- package/dist/lib/browser/chunk-AR5R2F6B.mjs +0 -88
- package/dist/lib/browser/chunk-AR5R2F6B.mjs.map +0 -7
- package/dist/lib/browser/chunk-CY35NLWL.mjs +0 -296
- package/dist/lib/browser/chunk-CY35NLWL.mjs.map +0 -7
- package/dist/lib/browser/chunk-IQFFOAWD.mjs.map +0 -7
- package/dist/lib/browser/chunk-UBSVH2NQ.mjs.map +0 -7
- package/dist/lib/browser/identity-created-ANRJHNMQ.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-KRINV5QI.mjs.map +0 -7
- package/dist/lib/browser/react-surface-J7T2IMH4.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-OCBY7APN.mjs +0 -26
- package/dist/lib/browser/schema-defs-OCBY7APN.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +0 -7
- package/dist/lib/browser/settings-G24447B7.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-5I3RKYTT.mjs.map +0 -7
- package/dist/lib/browser/state-SI4B5GHC.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs +0 -328
- package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs.map +0 -7
- package/dist/lib/node/app-graph-serializer-VLBCR3IX.cjs.map +0 -7
- package/dist/lib/node/chunk-5YHUQJVB.cjs.map +0 -7
- package/dist/lib/node/chunk-DQN4ZQDW.cjs +0 -119
- package/dist/lib/node/chunk-DQN4ZQDW.cjs.map +0 -7
- package/dist/lib/node/chunk-K6ZO4WDJ.cjs +0 -324
- package/dist/lib/node/chunk-K6ZO4WDJ.cjs.map +0 -7
- package/dist/lib/node/chunk-MXBE2VET.cjs.map +0 -7
- package/dist/lib/node/chunk-SCATWJKX.cjs.map +0 -7
- package/dist/lib/node/identity-created-NIPYGVG3.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-MJVRY6YE.cjs.map +0 -7
- package/dist/lib/node/react-surface-RYKSYYKM.cjs.map +0 -7
- package/dist/lib/node/schema-defs-2HJLXSNK.cjs.map +0 -7
- package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +0 -7
- package/dist/lib/node/settings-AFWO4AWK.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-BMPXSFHF.cjs.map +0 -7
- package/dist/lib/node/state-L2ZSDKLS.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs +0 -329
- package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-GEUYYXKD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5NIBYPVF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CLRCW6PU.mjs +0 -297
- package/dist/lib/node-esm/chunk-CLRCW6PU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FI3WV22Y.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HNKAG5CX.mjs +0 -90
- package/dist/lib/node-esm/chunk-HNKAG5CX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-S2W6HS4A.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-O5X2FFWU.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-JT6EB47M.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-ZNNMO7QQ.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +0 -7
- package/dist/lib/node-esm/settings-MJVSCOI4.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-XKG57SL5.mjs.map +0 -7
- package/dist/lib/node-esm/state-QUDYGEU6.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
- package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/SchemaContainer.d.ts +0 -13
- package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +0 -7
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +0 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts +0 -4
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +0 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +0 -14
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +0 -1
- package/src/capabilities/schema-defs.ts +0 -30
- package/src/components/SchemaContainer.tsx +0 -59
- package/src/hooks/useActiveSpace.ts +0 -20
- package/src/hooks/useInputSurfaceLookup.tsx +0 -31
- /package/dist/lib/{browser/react-root-J3SP2HVW.mjs.map → node-esm/react-root-PRBJMWLQ.mjs.map} +0 -0
- /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
- /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/index.d.ts +0 -0
- /package/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
- /package/src/components/{ObjectSettings → ObjectSettingsContainer}/index.ts +0 -0
|
@@ -26,8 +26,8 @@ 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(
|
|
29
|
+
var chunk_3GKCNADA_exports = {};
|
|
30
|
+
__export(chunk_3GKCNADA_exports, {
|
|
31
31
|
AppGraphBuilder: () => AppGraphBuilder,
|
|
32
32
|
AppGraphSerializer: () => AppGraphSerializer,
|
|
33
33
|
AwaitingObject: () => AwaitingObject,
|
|
@@ -46,33 +46,37 @@ __export(chunk_MXBE2VET_exports, {
|
|
|
46
46
|
MembersContainer: () => MembersContainer,
|
|
47
47
|
MenuFooter: () => MenuFooter,
|
|
48
48
|
ObjectSettingsContainer: () => ObjectSettingsContainer,
|
|
49
|
+
POPOVER_ADD_SPACE: () => POPOVER_ADD_SPACE,
|
|
49
50
|
POPOVER_RENAME_OBJECT: () => POPOVER_RENAME_OBJECT,
|
|
50
51
|
POPOVER_RENAME_SPACE: () => POPOVER_RENAME_SPACE,
|
|
51
52
|
PersistenceStatus: () => PersistenceStatus,
|
|
53
|
+
PopoverAddSpace: () => PopoverAddSpace,
|
|
52
54
|
PopoverRenameObject: () => PopoverRenameObject,
|
|
53
55
|
PopoverRenameSpace: () => PopoverRenameSpace,
|
|
54
56
|
ReactRoot: () => ReactRoot,
|
|
55
57
|
ReactSurface: () => ReactSurface,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
SPACE_SETTINGS_DIALOG: () => SPACE_SETTINGS_DIALOG,
|
|
59
|
+
Schema: () => Schema,
|
|
60
|
+
ShareSpaceButton: () => ShareSpaceButton,
|
|
61
|
+
ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
|
|
59
62
|
SmallPresence: () => SmallPresence,
|
|
60
63
|
SmallPresenceLive: () => SmallPresenceLive,
|
|
61
64
|
SpacePluginSettings: () => SpacePluginSettings,
|
|
62
65
|
SpacePresence: () => SpacePresence,
|
|
66
|
+
SpacePropertiesForm: () => SpacePropertiesForm,
|
|
63
67
|
SpaceSettings: () => SpaceSettings,
|
|
64
68
|
SpaceSettingsContainer: () => SpaceSettingsContainer,
|
|
65
69
|
SpaceState: () => SpaceState,
|
|
66
70
|
SpacesReady: () => SpacesReady,
|
|
67
71
|
SyncStatus: () => SyncStatus,
|
|
72
|
+
SyncStatusDetail: () => SyncStatusDetail,
|
|
68
73
|
SyncStatusIndicator: () => SyncStatusIndicator,
|
|
69
|
-
|
|
74
|
+
Tools: () => Tools
|
|
70
75
|
});
|
|
71
|
-
module.exports = __toCommonJS(
|
|
72
|
-
var import_chunk_DQN4ZQDW = require("./chunk-DQN4ZQDW.cjs");
|
|
76
|
+
module.exports = __toCommonJS(chunk_3GKCNADA_exports);
|
|
73
77
|
var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
|
|
74
|
-
var
|
|
75
|
-
var
|
|
78
|
+
var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
|
|
79
|
+
var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
|
|
76
80
|
var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
|
|
77
81
|
var import_react = require("@phosphor-icons/react");
|
|
78
82
|
var import_react2 = __toESM(require("react"));
|
|
@@ -89,6 +93,7 @@ var import_react_client2 = require("@dxos/react-client");
|
|
|
89
93
|
var import_echo2 = require("@dxos/react-client/echo");
|
|
90
94
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
91
95
|
var import_react4 = __toESM(require("react"));
|
|
96
|
+
var import_app_framework3 = require("@dxos/app-framework");
|
|
92
97
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
93
98
|
var import_invariant2 = require("@dxos/invariant");
|
|
94
99
|
var import_react_ui3 = require("@dxos/react-ui");
|
|
@@ -96,10 +101,10 @@ var import_react_ui_form = require("@dxos/react-ui-form");
|
|
|
96
101
|
var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
|
|
97
102
|
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
98
103
|
var import_util = require("@dxos/util");
|
|
99
|
-
var
|
|
104
|
+
var import_app_framework4 = require("@dxos/app-framework");
|
|
100
105
|
var import_effect2 = require("effect");
|
|
101
106
|
var import_react5 = __toESM(require("react"));
|
|
102
|
-
var
|
|
107
|
+
var import_app_framework5 = require("@dxos/app-framework");
|
|
103
108
|
var import_react_ui4 = require("@dxos/react-ui");
|
|
104
109
|
var import_react_ui_form2 = require("@dxos/react-ui-form");
|
|
105
110
|
var import_react6 = __toESM(require("react"));
|
|
@@ -108,7 +113,7 @@ var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
|
108
113
|
var import_react7 = __toESM(require("react"));
|
|
109
114
|
var import_react_ui6 = require("@dxos/react-ui");
|
|
110
115
|
var import_react8 = __toESM(require("react"));
|
|
111
|
-
var
|
|
116
|
+
var import_app_framework6 = require("@dxos/app-framework");
|
|
112
117
|
var import_async = require("@dxos/async");
|
|
113
118
|
var import_types = require("@dxos/plugin-observability/types");
|
|
114
119
|
var import_react_client3 = require("@dxos/react-client");
|
|
@@ -117,7 +122,6 @@ var import_react9 = require("@dxos/shell/react");
|
|
|
117
122
|
var import_react10 = require("@phosphor-icons/react");
|
|
118
123
|
var import_react11 = __toESM(require("react"));
|
|
119
124
|
var import_react_qr_rounded = require("react-qr-rounded");
|
|
120
|
-
var import_app_framework6 = require("@dxos/app-framework");
|
|
121
125
|
var import_log = require("@dxos/log");
|
|
122
126
|
var import_react_client4 = require("@dxos/react-client");
|
|
123
127
|
var import_echo3 = require("@dxos/react-client/echo");
|
|
@@ -138,66 +142,80 @@ var import_app_framework7 = require("@dxos/app-framework");
|
|
|
138
142
|
var import_react_ui10 = require("@dxos/react-ui");
|
|
139
143
|
var import_react_ui_stack2 = require("@dxos/react-ui-stack");
|
|
140
144
|
var import_react16 = __toESM(require("react"));
|
|
145
|
+
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
146
|
+
var import_echo5 = require("@dxos/react-client/echo");
|
|
141
147
|
var import_react_ui11 = require("@dxos/react-ui");
|
|
142
|
-
var
|
|
143
|
-
var import_react17 = require("
|
|
144
|
-
var import_react18 = __toESM(require("react"));
|
|
145
|
-
var import_async2 = require("@dxos/async");
|
|
148
|
+
var import_react_ui_form4 = require("@dxos/react-ui-form");
|
|
149
|
+
var import_react17 = __toESM(require("react"));
|
|
146
150
|
var import_react_ui12 = require("@dxos/react-ui");
|
|
147
|
-
var
|
|
148
|
-
var import_react19 = __toESM(require("react"));
|
|
149
|
-
var import_app_framework8 = require("@dxos/app-framework");
|
|
150
|
-
var import_log2 = require("@dxos/log");
|
|
151
|
+
var import_react18 = __toESM(require("react"));
|
|
151
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");
|
|
152
155
|
var import_react20 = __toESM(require("react"));
|
|
153
|
-
var
|
|
156
|
+
var import_async2 = require("@dxos/async");
|
|
154
157
|
var import_react_ui14 = require("@dxos/react-ui");
|
|
158
|
+
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
155
159
|
var import_react21 = __toESM(require("react"));
|
|
160
|
+
var import_app_framework8 = require("@dxos/app-framework");
|
|
156
161
|
var import_react_ui15 = require("@dxos/react-ui");
|
|
157
|
-
var import_react_ui_form4 = require("@dxos/react-ui-form");
|
|
158
|
-
var import_react_ui_stack3 = require("@dxos/react-ui-stack");
|
|
159
|
-
var import_effect3 = require("effect");
|
|
160
162
|
var import_react22 = __toESM(require("react"));
|
|
163
|
+
var import_log2 = require("@dxos/log");
|
|
164
|
+
var import_react_ui16 = require("@dxos/react-ui");
|
|
165
|
+
var import_react23 = __toESM(require("react"));
|
|
166
|
+
var import_react_ui17 = require("@dxos/react-ui");
|
|
167
|
+
var import_react24 = __toESM(require("react"));
|
|
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"));
|
|
161
171
|
var import_app_framework10 = require("@dxos/app-framework");
|
|
162
172
|
var import_display_name = require("@dxos/display-name");
|
|
163
173
|
var import_react_client6 = require("@dxos/react-client");
|
|
164
|
-
var
|
|
174
|
+
var import_echo6 = require("@dxos/react-client/echo");
|
|
165
175
|
var import_halo = require("@dxos/react-client/halo");
|
|
166
|
-
var
|
|
176
|
+
var import_react_ui19 = require("@dxos/react-ui");
|
|
167
177
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
168
178
|
var import_util3 = require("@dxos/util");
|
|
169
|
-
var
|
|
170
|
-
var
|
|
171
|
-
var
|
|
172
|
-
var import_echo6 = require("@dxos/react-client/echo");
|
|
173
|
-
var import_react_ui17 = require("@dxos/react-ui");
|
|
179
|
+
var import_react26 = require("react");
|
|
180
|
+
var import_react27 = __toESM(require("react"));
|
|
181
|
+
var import_react_ui20 = require("@dxos/react-ui");
|
|
174
182
|
var import_react_ui_form5 = require("@dxos/react-ui-form");
|
|
175
|
-
var
|
|
176
|
-
var import_react24 = __toESM(require("react"));
|
|
177
|
-
var import_app_framework12 = require("@dxos/app-framework");
|
|
183
|
+
var import_react28 = __toESM(require("react"));
|
|
178
184
|
var import_log3 = require("@dxos/log");
|
|
179
185
|
var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
|
|
180
|
-
var
|
|
181
|
-
var import_echo7 = require("@dxos/react-client/echo");
|
|
182
|
-
var import_react_ui18 = require("@dxos/react-ui");
|
|
186
|
+
var import_react_ui21 = require("@dxos/react-ui");
|
|
183
187
|
var import_react_ui_form6 = require("@dxos/react-ui-form");
|
|
184
188
|
var import_react_ui_pickers = require("@dxos/react-ui-pickers");
|
|
185
|
-
var
|
|
186
|
-
var
|
|
187
|
-
var
|
|
188
|
-
var
|
|
189
|
+
var import_react29 = __toESM(require("react"));
|
|
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");
|
|
189
198
|
var import_services = require("@dxos/protocols/proto/dxos/client/services");
|
|
190
199
|
var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
|
|
191
|
-
var
|
|
192
|
-
var
|
|
193
|
-
var import_react_ui19 = require("@dxos/react-ui");
|
|
200
|
+
var import_react_client7 = require("@dxos/react-client");
|
|
201
|
+
var import_react_ui23 = require("@dxos/react-ui");
|
|
194
202
|
var import_react_ui_attention2 = require("@dxos/react-ui-attention");
|
|
195
|
-
var
|
|
203
|
+
var import_react31 = require("react");
|
|
204
|
+
var import_context = require("@dxos/context");
|
|
205
|
+
var import_protocols = require("@dxos/protocols");
|
|
206
|
+
var import_react_client8 = require("@dxos/react-client");
|
|
207
|
+
var import_react32 = __toESM(require("react"));
|
|
196
208
|
var import_plugin_status_bar = require("@dxos/plugin-status-bar");
|
|
209
|
+
var import_react_client9 = require("@dxos/react-client");
|
|
210
|
+
var import_react_ui24 = require("@dxos/react-ui");
|
|
211
|
+
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
212
|
+
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
|
213
|
+
var import_react33 = __toESM(require("react"));
|
|
197
214
|
var import_react_client10 = require("@dxos/react-client");
|
|
198
|
-
var
|
|
199
|
-
var
|
|
200
|
-
var
|
|
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");
|
|
218
|
+
var import_context2 = require("@dxos/context");
|
|
201
219
|
var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
|
|
202
220
|
var TOAST_TIMEOUT = 24e4;
|
|
203
221
|
var AwaitingObject = ({ id }) => {
|
|
@@ -208,7 +226,7 @@ var AwaitingObject = ({ id }) => {
|
|
|
208
226
|
const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
|
|
209
227
|
const layout = (0, import_app_framework.useLayout)();
|
|
210
228
|
const client = (0, import_react_client.useClient)();
|
|
211
|
-
const objects = (0, import_echo.useQuery)(client.spaces, import_echo.Filter.
|
|
229
|
+
const objects = (0, import_echo.useQuery)(client.spaces, import_echo.Filter.all());
|
|
212
230
|
(0, import_react2.useEffect)(() => {
|
|
213
231
|
if (!id) {
|
|
214
232
|
return;
|
|
@@ -232,7 +250,7 @@ var AwaitingObject = ({ id }) => {
|
|
|
232
250
|
objects,
|
|
233
251
|
layout
|
|
234
252
|
]);
|
|
235
|
-
const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(
|
|
253
|
+
const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
|
|
236
254
|
id: void 0
|
|
237
255
|
})), [
|
|
238
256
|
dispatch
|
|
@@ -283,6 +301,30 @@ var AwaitingObject = ({ id }) => {
|
|
|
283
301
|
})))));
|
|
284
302
|
};
|
|
285
303
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
|
|
304
|
+
var useInputSurfaceLookup = (baseData) => {
|
|
305
|
+
const pluginManager = (0, import_app_framework3.usePluginManager)();
|
|
306
|
+
return (0, import_react4.useCallback)(({ prop, schema, inputProps }) => {
|
|
307
|
+
const composedData = {
|
|
308
|
+
prop,
|
|
309
|
+
schema,
|
|
310
|
+
...baseData
|
|
311
|
+
};
|
|
312
|
+
if (!(0, import_app_framework3.isSurfaceAvailable)(pluginManager.context, {
|
|
313
|
+
role: "form-input",
|
|
314
|
+
data: composedData
|
|
315
|
+
})) {
|
|
316
|
+
return void 0;
|
|
317
|
+
}
|
|
318
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_app_framework3.Surface, {
|
|
319
|
+
role: "form-input",
|
|
320
|
+
data: composedData,
|
|
321
|
+
...inputProps
|
|
322
|
+
});
|
|
323
|
+
}, [
|
|
324
|
+
pluginManager,
|
|
325
|
+
baseData
|
|
326
|
+
]);
|
|
327
|
+
};
|
|
286
328
|
var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
|
|
287
329
|
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
288
330
|
const [typename, setTypename] = (0, import_react4.useState)(initialTypename);
|
|
@@ -316,7 +358,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
316
358
|
const handleSetTypename = (0, import_react4.useCallback)(async (typename2) => {
|
|
317
359
|
(0, import_invariant2.invariant)(target, "target is required", {
|
|
318
360
|
F: __dxlog_file,
|
|
319
|
-
L:
|
|
361
|
+
L: 94,
|
|
320
362
|
S: void 0,
|
|
321
363
|
A: [
|
|
322
364
|
"target",
|
|
@@ -337,7 +379,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
|
|
|
337
379
|
onCreateObject,
|
|
338
380
|
target
|
|
339
381
|
]);
|
|
340
|
-
const inputSurfaceLookup =
|
|
382
|
+
const inputSurfaceLookup = useInputSurfaceLookup({
|
|
341
383
|
target
|
|
342
384
|
});
|
|
343
385
|
return /* @__PURE__ */ import_react4.default.createElement("div", {
|
|
@@ -376,23 +418,23 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
|
376
418
|
}), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
|
|
377
419
|
classNames: "max-bs-[24rem] overflow-auto"
|
|
378
420
|
}, spaces.sort((a, b) => {
|
|
379
|
-
const aName = (0, import_react_ui3.toLocalizedString)((0,
|
|
421
|
+
const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(a, {
|
|
380
422
|
personal: a.id === defaultSpaceId
|
|
381
423
|
}), t);
|
|
382
|
-
const bName = (0, import_react_ui3.toLocalizedString)((0,
|
|
424
|
+
const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(b, {
|
|
383
425
|
personal: b.id === defaultSpaceId
|
|
384
426
|
}), t);
|
|
385
427
|
return aName.localeCompare(bName);
|
|
386
428
|
}).map((space) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
|
|
387
429
|
key: space.id,
|
|
388
|
-
value: (0, import_react_ui3.toLocalizedString)((0,
|
|
430
|
+
value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
389
431
|
personal: space.id === defaultSpaceId
|
|
390
432
|
}), t),
|
|
391
433
|
onSelect: () => onChange(space),
|
|
392
434
|
classNames: "flex items-center gap-2"
|
|
393
435
|
}, /* @__PURE__ */ import_react4.default.createElement("span", {
|
|
394
436
|
className: "grow truncate"
|
|
395
|
-
}, (0, import_react_ui3.toLocalizedString)((0,
|
|
437
|
+
}, (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
396
438
|
personal: space.id === defaultSpaceId
|
|
397
439
|
}), t))))));
|
|
398
440
|
};
|
|
@@ -426,17 +468,17 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
426
468
|
defaultValue: option.typename
|
|
427
469
|
}))))));
|
|
428
470
|
};
|
|
429
|
-
var AppGraphBuilder = (0,
|
|
430
|
-
var AppGraphSerializer = (0,
|
|
431
|
-
var IdentityCreated = (0,
|
|
432
|
-
var IntentResolver = (0,
|
|
433
|
-
var ReactRoot = (0,
|
|
434
|
-
var ReactSurface = (0,
|
|
435
|
-
var
|
|
436
|
-
var
|
|
437
|
-
var SpaceSettings = (0,
|
|
438
|
-
var SpaceState = (0,
|
|
439
|
-
var SpacesReady = (0,
|
|
471
|
+
var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-DPY7AUZE.cjs"));
|
|
472
|
+
var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-JELGJUAY.cjs"));
|
|
473
|
+
var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-XU4HFV2T.cjs"));
|
|
474
|
+
var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-VJ7YV74L.cjs"));
|
|
475
|
+
var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-TEL5RW3N.cjs"));
|
|
476
|
+
var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-2H3S5TY5.cjs"));
|
|
477
|
+
var Schema = (0, import_app_framework4.lazy)(() => import("./schema-PPJ5BZ3A.cjs"));
|
|
478
|
+
var Tools = (0, import_app_framework4.lazy)(() => import("./schema-tools-BLIMOZYY.cjs"));
|
|
479
|
+
var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-WVFP2UEP.cjs"));
|
|
480
|
+
var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-5KX6WBJH.cjs"));
|
|
481
|
+
var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-7DNZSUOG.cjs"));
|
|
440
482
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
|
|
441
483
|
var CREATE_OBJECT_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateObjectDialog`;
|
|
442
484
|
var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
|
|
@@ -447,7 +489,7 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
|
|
|
447
489
|
const spaces = (0, import_echo2.useSpaces)();
|
|
448
490
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
449
491
|
const forms = (0, import_app_framework2.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.ObjectForm);
|
|
450
|
-
const resolve = (0, import_react3.useCallback)((typename2) => manager.context.
|
|
492
|
+
const resolve = (0, import_react3.useCallback)((typename2) => manager.context.requestCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
|
|
451
493
|
manager
|
|
452
494
|
]);
|
|
453
495
|
const handleCreateObject = (0, import_react3.useCallback)(async ({ form, target: target2, data = {} }) => {
|
|
@@ -469,8 +511,8 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
|
|
|
469
511
|
space
|
|
470
512
|
}));
|
|
471
513
|
const object = result.data?.object;
|
|
472
|
-
if ((0, import_echo2.
|
|
473
|
-
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, {
|
|
474
516
|
target: target2,
|
|
475
517
|
object,
|
|
476
518
|
hidden: form.hidden
|
|
@@ -526,16 +568,15 @@ var initialValues = {
|
|
|
526
568
|
var CreateSpaceDialog = () => {
|
|
527
569
|
const closeRef = (0, import_react5.useRef)(null);
|
|
528
570
|
const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
529
|
-
const { dispatch } = (0,
|
|
530
|
-
const inputSurfaceLookup = (0, import_chunk_DQN4ZQDW.useInputSurfaceLookup)();
|
|
571
|
+
const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
|
|
531
572
|
const handleCreateSpace = (0, import_react5.useCallback)(async (data) => {
|
|
532
573
|
const program = import_effect2.Effect.gen(function* () {
|
|
533
|
-
const { space } = yield* dispatch((0,
|
|
534
|
-
yield* dispatch((0,
|
|
574
|
+
const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Create, data));
|
|
575
|
+
yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
|
|
535
576
|
part: "workspace",
|
|
536
577
|
subject: space.id
|
|
537
578
|
}));
|
|
538
|
-
yield* dispatch((0,
|
|
579
|
+
yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateObject, {
|
|
539
580
|
target: space
|
|
540
581
|
}));
|
|
541
582
|
});
|
|
@@ -568,8 +609,7 @@ var CreateSpaceDialog = () => {
|
|
|
568
609
|
classNames: "!p-0",
|
|
569
610
|
autoFocus: true,
|
|
570
611
|
values: initialValues,
|
|
571
|
-
schema:
|
|
572
|
-
lookupComponent: inputSurfaceLookup,
|
|
612
|
+
schema: import_chunk_WDEIFDTX.SpaceForm,
|
|
573
613
|
onSave: handleCreateSpace
|
|
574
614
|
})))
|
|
575
615
|
);
|
|
@@ -582,7 +622,7 @@ var CollectionMain = ({ collection }) => {
|
|
|
582
622
|
"data-testid": "composer.firstRunMessage"
|
|
583
623
|
}, /* @__PURE__ */ import_react6.default.createElement("p", {
|
|
584
624
|
role: "alert",
|
|
585
|
-
className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.
|
|
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")
|
|
586
626
|
}, collection.name ?? t("unnamed collection label")));
|
|
587
627
|
};
|
|
588
628
|
var CollectionSection = ({ collection }) => {
|
|
@@ -595,9 +635,9 @@ var CollectionSection = ({ collection }) => {
|
|
|
595
635
|
};
|
|
596
636
|
var JOIN_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/JoinDialog`;
|
|
597
637
|
var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
598
|
-
const { dispatchPromise: dispatch } = (0,
|
|
638
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
|
|
599
639
|
const client = (0, import_react_client3.useClient)();
|
|
600
|
-
const { graph } = (0,
|
|
640
|
+
const { graph } = (0, import_app_framework6.useAppGraph)();
|
|
601
641
|
const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
602
642
|
const handleDone = (0, import_react8.useCallback)(async (result) => {
|
|
603
643
|
const spaceKey = result?.spaceKey;
|
|
@@ -605,7 +645,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
605
645
|
return;
|
|
606
646
|
}
|
|
607
647
|
await Promise.all([
|
|
608
|
-
dispatch((0,
|
|
648
|
+
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.AddToast, {
|
|
609
649
|
part: "toast",
|
|
610
650
|
subject: {
|
|
611
651
|
id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/join-success`,
|
|
@@ -624,7 +664,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
624
664
|
]
|
|
625
665
|
}
|
|
626
666
|
})),
|
|
627
|
-
dispatch((0,
|
|
667
|
+
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
|
|
628
668
|
part: "dialog",
|
|
629
669
|
options: {
|
|
630
670
|
state: false
|
|
@@ -642,7 +682,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
642
682
|
});
|
|
643
683
|
space = await trigger.wait();
|
|
644
684
|
}
|
|
645
|
-
await dispatch((0,
|
|
685
|
+
await dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.SwitchWorkspace, {
|
|
646
686
|
part: "workspace",
|
|
647
687
|
subject: space.id
|
|
648
688
|
}));
|
|
@@ -653,13 +693,13 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
653
693
|
}).catch(() => {
|
|
654
694
|
});
|
|
655
695
|
await Promise.all([
|
|
656
|
-
dispatch((0,
|
|
696
|
+
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.Open, {
|
|
657
697
|
part: "main",
|
|
658
698
|
subject: [
|
|
659
699
|
target
|
|
660
700
|
]
|
|
661
701
|
})),
|
|
662
|
-
dispatch((0,
|
|
702
|
+
dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.Expose, {
|
|
663
703
|
part: "navigation",
|
|
664
704
|
subject: target
|
|
665
705
|
}))
|
|
@@ -667,7 +707,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
667
707
|
}
|
|
668
708
|
await onDone?.(result);
|
|
669
709
|
if (space) {
|
|
670
|
-
await dispatch((0,
|
|
710
|
+
await dispatch((0, import_app_framework6.createIntent)(import_types.ObservabilityAction.SendEvent, {
|
|
671
711
|
name: "space.join",
|
|
672
712
|
properties: {
|
|
673
713
|
spaceId: space.id
|
|
@@ -704,7 +744,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
704
744
|
authCode: invitation.authCode
|
|
705
745
|
}), void 0, {
|
|
706
746
|
F: __dxlog_file3,
|
|
707
|
-
L:
|
|
747
|
+
L: 38,
|
|
708
748
|
S: void 0,
|
|
709
749
|
C: (f, a) => f(...a)
|
|
710
750
|
});
|
|
@@ -712,9 +752,8 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
712
752
|
}
|
|
713
753
|
};
|
|
714
754
|
var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
715
|
-
const { t } = (0, import_react_ui8.useTranslation)(
|
|
755
|
+
const { t } = (0, import_react_ui8.useTranslation)("os");
|
|
716
756
|
const config = (0, import_react_client4.useConfig)();
|
|
717
|
-
const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
|
|
718
757
|
const invitations = (0, import_echo3.useSpaceInvitations)(space.key);
|
|
719
758
|
const visibleInvitations = invitations?.filter((invitation) => ![
|
|
720
759
|
import_invitations.Invitation.State.CANCELLED
|
|
@@ -724,60 +763,43 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
724
763
|
setInternalActiveAction(nextAction);
|
|
725
764
|
localStorage.setItem(activeActionKey, nextAction);
|
|
726
765
|
};
|
|
727
|
-
const target = space.properties[
|
|
728
|
-
const locked = space.properties[import_chunk_SCATWJKX.COMPOSER_SPACE_LOCK];
|
|
729
|
-
const handleChangeLocked = (0, import_react11.useCallback)(() => {
|
|
730
|
-
space.properties[import_chunk_SCATWJKX.COMPOSER_SPACE_LOCK] = !locked;
|
|
731
|
-
}, [
|
|
732
|
-
locked,
|
|
733
|
-
space
|
|
734
|
-
]);
|
|
766
|
+
const target = space.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target?.objects[0]?.target;
|
|
735
767
|
const inviteActions = (0, import_react11.useMemo)(() => ({
|
|
736
768
|
inviteOne: {
|
|
737
|
-
label: t("invite one label",
|
|
738
|
-
|
|
739
|
-
}),
|
|
740
|
-
description: t("invite one description", {
|
|
741
|
-
ns: "os"
|
|
742
|
-
}),
|
|
769
|
+
label: t("invite one label"),
|
|
770
|
+
description: t("invite one description"),
|
|
743
771
|
icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
|
|
744
772
|
icon: "ph--user-plus--regular",
|
|
745
773
|
size: 5
|
|
746
774
|
}),
|
|
747
775
|
testId: "membersContainer.inviteOne",
|
|
748
|
-
onClick:
|
|
749
|
-
const
|
|
750
|
-
space,
|
|
776
|
+
onClick: () => {
|
|
777
|
+
const invitation = space.share?.({
|
|
751
778
|
type: import_invitations.Invitation.Type.INTERACTIVE,
|
|
752
779
|
authMethod: import_invitations.Invitation.AuthMethod.SHARED_SECRET,
|
|
753
780
|
multiUse: false,
|
|
754
781
|
target: target && (0, import_echo3.fullyQualifiedId)(target)
|
|
755
|
-
})
|
|
782
|
+
});
|
|
756
783
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
757
784
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
758
785
|
}
|
|
759
786
|
}
|
|
760
787
|
},
|
|
761
788
|
inviteMany: {
|
|
762
|
-
label: t("invite many label",
|
|
763
|
-
|
|
764
|
-
}),
|
|
765
|
-
description: t("invite many description", {
|
|
766
|
-
ns: "os"
|
|
767
|
-
}),
|
|
789
|
+
label: t("invite many label"),
|
|
790
|
+
description: t("invite many description"),
|
|
768
791
|
icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
|
|
769
792
|
icon: "ph--users-three--regular",
|
|
770
793
|
size: 5
|
|
771
794
|
}),
|
|
772
795
|
testId: "membersContainer.inviteMany",
|
|
773
|
-
onClick:
|
|
774
|
-
const
|
|
775
|
-
space,
|
|
796
|
+
onClick: () => {
|
|
797
|
+
const invitation = space.share?.({
|
|
776
798
|
type: import_invitations.Invitation.Type.DELEGATED,
|
|
777
799
|
authMethod: import_invitations.Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
|
|
778
800
|
multiUse: true,
|
|
779
801
|
target: target && (0, import_echo3.fullyQualifiedId)(target)
|
|
780
|
-
})
|
|
802
|
+
});
|
|
781
803
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
782
804
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
783
805
|
}
|
|
@@ -796,27 +818,33 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
796
818
|
setSelectedInvitation(null);
|
|
797
819
|
};
|
|
798
820
|
return /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
799
|
-
classNames: "block overflow-y-auto"
|
|
800
|
-
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.
|
|
801
|
-
title: t("members verbose label"
|
|
802
|
-
|
|
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
|
+
})
|
|
803
829
|
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
|
|
804
|
-
title: t("members label"
|
|
830
|
+
title: t("members label", {
|
|
831
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
832
|
+
})
|
|
805
833
|
}, /* @__PURE__ */ import_react11.default.createElement(import_react12.SpaceMemberList, {
|
|
806
834
|
spaceKey: space.key,
|
|
807
835
|
includeSelf: true
|
|
808
|
-
})),
|
|
809
|
-
title: t("invitations label"
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
}, t("locked space description"))), !locked && /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
|
|
813
|
-
title: t("invitations label")
|
|
836
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
|
|
837
|
+
title: t("invitations label", {
|
|
838
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
839
|
+
})
|
|
814
840
|
}, selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(InvitationSection, {
|
|
815
841
|
...selectedInvitation,
|
|
816
842
|
onBack: handleBack
|
|
817
843
|
}), !selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
|
|
818
844
|
className: "text-description mbe-2"
|
|
819
|
-
}, t("space invitation description"
|
|
845
|
+
}, t("space invitation description", {
|
|
846
|
+
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
847
|
+
})), /* @__PURE__ */ import_react11.default.createElement(import_react12.InvitationList, {
|
|
820
848
|
className: "mb-2",
|
|
821
849
|
send: handleSend,
|
|
822
850
|
invitations: visibleInvitations ?? [],
|
|
@@ -827,15 +855,6 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
827
855
|
activeAction,
|
|
828
856
|
onChangeActiveAction: setActiveAction,
|
|
829
857
|
"data-testid": "membersContainer.createInvitation"
|
|
830
|
-
})))), /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
831
|
-
className: "justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
832
|
-
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlItemInput, {
|
|
833
|
-
title: t("space locked label"),
|
|
834
|
-
description: t("space locked description")
|
|
835
|
-
}, /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Input.Switch, {
|
|
836
|
-
checked: locked,
|
|
837
|
-
onCheckedChange: handleChangeLocked,
|
|
838
|
-
classNames: "justify-self-end"
|
|
839
858
|
})))))));
|
|
840
859
|
};
|
|
841
860
|
var InvitationSection = ({ state = import_invitations.Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
|
|
@@ -925,7 +944,7 @@ var MenuFooter = ({ object }) => {
|
|
|
925
944
|
const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
926
945
|
const client = (0, import_react_client5.useClient)();
|
|
927
946
|
const space = (0, import_echo4.getSpace)(object);
|
|
928
|
-
const spaceName = space ? (0,
|
|
947
|
+
const spaceName = space ? (0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
929
948
|
personal: client.spaces.default === space
|
|
930
949
|
}) : "";
|
|
931
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", {
|
|
@@ -938,12 +957,93 @@ var MenuFooter = ({ object }) => {
|
|
|
938
957
|
className: "inline-block mie-1"
|
|
939
958
|
}), (0, import_react_ui9.toLocalizedString)(spaceName, t)))) : null;
|
|
940
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
|
+
};
|
|
941
1041
|
var BaseObjectSettings = ({ classNames, children, object }) => {
|
|
942
|
-
const { t } = (0,
|
|
943
|
-
const inputRef = (0,
|
|
944
|
-
return /* @__PURE__ */
|
|
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", {
|
|
945
1045
|
className: (0, import_react_ui_theme5.mx)("flex flex-col p-2 gap-2", classNames)
|
|
946
|
-
}, /* @__PURE__ */
|
|
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, {
|
|
947
1047
|
ref: inputRef,
|
|
948
1048
|
placeholder: t("name placeholder"),
|
|
949
1049
|
value: object.name ?? "",
|
|
@@ -976,6 +1076,8 @@ var ObjectSettingsContainer = ({ object, role }) => {
|
|
|
976
1076
|
})), /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
|
|
977
1077
|
role: "object-settings",
|
|
978
1078
|
data
|
|
1079
|
+
}), /* @__PURE__ */ import_react15.default.createElement(AdvancedObjectSettings, {
|
|
1080
|
+
object
|
|
979
1081
|
}))));
|
|
980
1082
|
};
|
|
981
1083
|
var Status;
|
|
@@ -985,12 +1087,12 @@ var Status;
|
|
|
985
1087
|
Status2[Status2["ERROR"] = 2] = "ERROR";
|
|
986
1088
|
})(Status || (Status = {}));
|
|
987
1089
|
var PersistenceStatus = ({ db }) => {
|
|
988
|
-
const { t } = (0,
|
|
989
|
-
const [displayMessage, setDisplayMessage] = (0,
|
|
990
|
-
const [status, naturalSetStatus] = (0,
|
|
991
|
-
const [prevStatus, setPrevStatus] = (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);
|
|
992
1094
|
const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
|
|
993
|
-
(0,
|
|
1095
|
+
(0, import_react20.useEffect)(() => {
|
|
994
1096
|
setPrevStatus(status);
|
|
995
1097
|
if (prevStatus !== status && status === 0) {
|
|
996
1098
|
setDisplayMessage(true);
|
|
@@ -1002,44 +1104,82 @@ var PersistenceStatus = ({ db }) => {
|
|
|
1002
1104
|
]);
|
|
1003
1105
|
switch (status) {
|
|
1004
1106
|
case 2:
|
|
1005
|
-
return /* @__PURE__ */
|
|
1107
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
1006
1108
|
className: "flex items-center"
|
|
1007
|
-
}, /* @__PURE__ */
|
|
1109
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.Warning, {
|
|
1008
1110
|
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
1009
|
-
}), /* @__PURE__ */
|
|
1111
|
+
}), /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1010
1112
|
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
|
|
1011
1113
|
}, t("persistence error label")));
|
|
1012
1114
|
case 1:
|
|
1013
|
-
return /* @__PURE__ */
|
|
1115
|
+
return /* @__PURE__ */ import_react20.default.createElement("div", {
|
|
1014
1116
|
className: "flex items-center"
|
|
1015
|
-
}, /* @__PURE__ */
|
|
1117
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.ArrowsCounterClockwise, {
|
|
1016
1118
|
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
1017
|
-
}), /* @__PURE__ */
|
|
1119
|
+
}), /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1018
1120
|
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
|
|
1019
1121
|
}, t("persistence pending label")));
|
|
1020
1122
|
case 0:
|
|
1021
1123
|
default:
|
|
1022
|
-
return /* @__PURE__ */
|
|
1023
|
-
delayDuration: 400
|
|
1124
|
+
return /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Root, {
|
|
1125
|
+
delayDuration: 400
|
|
1126
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Trigger, {
|
|
1024
1127
|
role: "status",
|
|
1025
|
-
content: t("persisted locally message"),
|
|
1026
1128
|
className: "flex items-center"
|
|
1027
|
-
}, /* @__PURE__ */
|
|
1129
|
+
}, /* @__PURE__ */ import_react20.default.createElement(import_react19.CheckCircle, {
|
|
1028
1130
|
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
1029
|
-
}), displayMessage && /* @__PURE__ */
|
|
1131
|
+
}), displayMessage && /* @__PURE__ */ import_react20.default.createElement("span", {
|
|
1030
1132
|
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
|
|
1031
|
-
}, t("persisted locally label")));
|
|
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))));
|
|
1032
1134
|
}
|
|
1033
1135
|
};
|
|
1136
|
+
var POPOVER_ADD_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
|
|
1137
|
+
var PopoverAddSpace = () => {
|
|
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", {
|
|
1141
|
+
role: "none",
|
|
1142
|
+
className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
|
|
1143
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
|
|
1144
|
+
variant: "ghost",
|
|
1145
|
+
label: t("create space label"),
|
|
1146
|
+
icon: "ph--plus--regular",
|
|
1147
|
+
onClick: () => {
|
|
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, {
|
|
1150
|
+
part: "popover",
|
|
1151
|
+
options: {
|
|
1152
|
+
anchorId: "",
|
|
1153
|
+
state: false
|
|
1154
|
+
}
|
|
1155
|
+
}));
|
|
1156
|
+
},
|
|
1157
|
+
"data-testid": "spacePlugin.createSpace"
|
|
1158
|
+
}), /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
|
|
1159
|
+
variant: "ghost",
|
|
1160
|
+
label: t("join space label"),
|
|
1161
|
+
icon: "ph--sign-in--regular",
|
|
1162
|
+
onClick: () => {
|
|
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, {
|
|
1165
|
+
part: "popover",
|
|
1166
|
+
options: {
|
|
1167
|
+
anchorId: "",
|
|
1168
|
+
state: false
|
|
1169
|
+
}
|
|
1170
|
+
}));
|
|
1171
|
+
},
|
|
1172
|
+
"data-testid": "spacePlugin.joinSpace"
|
|
1173
|
+
}));
|
|
1174
|
+
};
|
|
1034
1175
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
1035
1176
|
var POPOVER_RENAME_OBJECT = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameObject`;
|
|
1036
1177
|
var PopoverRenameObject = ({ object: obj }) => {
|
|
1037
|
-
const { t } = (0,
|
|
1038
|
-
const doneButton = (0,
|
|
1178
|
+
const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1179
|
+
const doneButton = (0, import_react22.useRef)(null);
|
|
1039
1180
|
const object = obj;
|
|
1040
|
-
const [name, setName] = (0,
|
|
1041
|
-
const
|
|
1042
|
-
const handleDone = (0, import_react19.useCallback)(() => {
|
|
1181
|
+
const [name, setName] = (0, import_react22.useState)(object.name || object.title || "");
|
|
1182
|
+
const handleDone = (0, import_react22.useCallback)(() => {
|
|
1043
1183
|
try {
|
|
1044
1184
|
object.name = name;
|
|
1045
1185
|
} catch {
|
|
@@ -1050,84 +1190,69 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
1050
1190
|
err
|
|
1051
1191
|
}, {
|
|
1052
1192
|
F: __dxlog_file4,
|
|
1053
|
-
L:
|
|
1193
|
+
L: 30,
|
|
1054
1194
|
S: void 0,
|
|
1055
1195
|
C: (f, a) => f(...a)
|
|
1056
1196
|
});
|
|
1057
1197
|
}
|
|
1058
1198
|
}
|
|
1059
|
-
void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
|
|
1060
|
-
part: "popover",
|
|
1061
|
-
options: {
|
|
1062
|
-
variant: "react",
|
|
1063
|
-
anchorId: "",
|
|
1064
|
-
state: false
|
|
1065
|
-
}
|
|
1066
|
-
}));
|
|
1067
1199
|
}, [
|
|
1068
1200
|
object,
|
|
1069
1201
|
name
|
|
1070
1202
|
]);
|
|
1071
|
-
return /* @__PURE__ */
|
|
1203
|
+
return /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
1072
1204
|
role: "none",
|
|
1073
1205
|
className: "p-1 flex gap-2"
|
|
1074
|
-
}, /* @__PURE__ */
|
|
1206
|
+
}, /* @__PURE__ */ import_react22.default.createElement("div", {
|
|
1075
1207
|
role: "none",
|
|
1076
1208
|
className: "flex-1"
|
|
1077
|
-
}, /* @__PURE__ */
|
|
1209
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Label, {
|
|
1078
1210
|
srOnly: true
|
|
1079
|
-
}, t("object name label")), /* @__PURE__ */
|
|
1211
|
+
}, t("object name label")), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.TextInput, {
|
|
1080
1212
|
placeholder: t("object placeholder"),
|
|
1081
1213
|
value: name,
|
|
1082
1214
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1083
1215
|
onChange: ({ target: { value } }) => setName(value),
|
|
1084
1216
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1085
|
-
}))), /* @__PURE__ */
|
|
1217
|
+
}))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Close, {
|
|
1218
|
+
asChild: true
|
|
1219
|
+
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Button, {
|
|
1086
1220
|
ref: doneButton,
|
|
1087
1221
|
classNames: "self-stretch",
|
|
1088
1222
|
onClick: handleDone
|
|
1089
1223
|
}, t("done label", {
|
|
1090
1224
|
ns: "os"
|
|
1091
|
-
})));
|
|
1225
|
+
}))));
|
|
1092
1226
|
};
|
|
1093
1227
|
var POPOVER_RENAME_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
|
|
1094
1228
|
var PopoverRenameSpace = ({ space }) => {
|
|
1095
|
-
const { t } = (0,
|
|
1096
|
-
const doneButton = (0,
|
|
1097
|
-
const [name, setName] = (0,
|
|
1098
|
-
const
|
|
1099
|
-
const handleDone = (0, import_react20.useCallback)(() => {
|
|
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)(() => {
|
|
1100
1233
|
space.properties.name = name;
|
|
1101
|
-
void dispatch((0, import_app_framework9.createIntent)(import_app_framework9.LayoutAction.UpdatePopover, {
|
|
1102
|
-
part: "popover",
|
|
1103
|
-
options: {
|
|
1104
|
-
variant: "react",
|
|
1105
|
-
anchorId: "",
|
|
1106
|
-
state: false
|
|
1107
|
-
}
|
|
1108
|
-
}));
|
|
1109
1234
|
}, [
|
|
1110
1235
|
space,
|
|
1111
1236
|
name
|
|
1112
1237
|
]);
|
|
1113
|
-
return /* @__PURE__ */
|
|
1238
|
+
return /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1114
1239
|
role: "none",
|
|
1115
1240
|
className: "p-1 flex gap-2"
|
|
1116
|
-
}, /* @__PURE__ */
|
|
1241
|
+
}, /* @__PURE__ */ import_react23.default.createElement("div", {
|
|
1117
1242
|
role: "none",
|
|
1118
1243
|
className: "flex-1"
|
|
1119
|
-
}, /* @__PURE__ */
|
|
1244
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Label, {
|
|
1120
1245
|
srOnly: true
|
|
1121
|
-
}, t("space name label")), /* @__PURE__ */
|
|
1246
|
+
}, t("space name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.TextInput, {
|
|
1122
1247
|
defaultValue: space.properties.name ?? "",
|
|
1123
1248
|
placeholder: t("unnamed space label"),
|
|
1124
1249
|
onChange: ({ target: { value } }) => setName(value),
|
|
1125
1250
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1126
1251
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1127
1252
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1128
|
-
}))), /* @__PURE__ */
|
|
1253
|
+
}))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Popover.Close, {
|
|
1129
1254
|
asChild: true
|
|
1130
|
-
}, /* @__PURE__ */
|
|
1255
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
|
|
1131
1256
|
ref: doneButton,
|
|
1132
1257
|
classNames: "self-stretch",
|
|
1133
1258
|
onClick: handleDone
|
|
@@ -1135,35 +1260,55 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1135
1260
|
ns: "os"
|
|
1136
1261
|
}))));
|
|
1137
1262
|
};
|
|
1138
|
-
var
|
|
1139
|
-
const
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1263
|
+
var ShareSpaceButton = ({ space }) => {
|
|
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, {
|
|
1267
|
+
space
|
|
1268
|
+
}))
|
|
1269
|
+
});
|
|
1270
|
+
};
|
|
1271
|
+
var ShareSpaceButtonImpl = ({ onClick }) => {
|
|
1272
|
+
const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1273
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.IconButton, {
|
|
1274
|
+
"data-testid": "spacePlugin.shareSpaceButton",
|
|
1275
|
+
icon: "ph--users--regular",
|
|
1276
|
+
label: t("share space label"),
|
|
1277
|
+
onClick
|
|
1278
|
+
});
|
|
1279
|
+
};
|
|
1280
|
+
var usePath = (graph, id, timeout) => {
|
|
1281
|
+
const [pathState, setPathState] = (0, import_react26.useState)(id ? graph.getPath({
|
|
1282
|
+
target: id
|
|
1283
|
+
}) : void 0);
|
|
1284
|
+
(0, import_react26.useEffect)(() => {
|
|
1285
|
+
if (!id && pathState) {
|
|
1286
|
+
setPathState(void 0);
|
|
1287
|
+
}
|
|
1288
|
+
if (pathState?.at(-1) === id || !id) {
|
|
1289
|
+
return;
|
|
1290
|
+
}
|
|
1291
|
+
const frame = requestAnimationFrame(async () => {
|
|
1292
|
+
try {
|
|
1293
|
+
const path = await graph.waitForPath({
|
|
1294
|
+
target: id
|
|
1295
|
+
}, {
|
|
1296
|
+
timeout
|
|
1297
|
+
});
|
|
1298
|
+
if (path) {
|
|
1299
|
+
setPathState(path);
|
|
1300
|
+
}
|
|
1301
|
+
} catch {
|
|
1302
|
+
}
|
|
1303
|
+
});
|
|
1304
|
+
return () => cancelAnimationFrame(frame);
|
|
1146
1305
|
}, [
|
|
1147
|
-
|
|
1306
|
+
graph,
|
|
1307
|
+
id,
|
|
1308
|
+
timeout,
|
|
1309
|
+
pathState
|
|
1148
1310
|
]);
|
|
1149
|
-
return
|
|
1150
|
-
};
|
|
1151
|
-
var SchemaContainer = ({ space }) => {
|
|
1152
|
-
const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1153
|
-
const schemas = useQuerySpaceSchemas(space);
|
|
1154
|
-
return /* @__PURE__ */ import_react21.default.createElement(import_react_ui_stack3.StackItem.Content, {
|
|
1155
|
-
classNames: "block overflow-y-auto"
|
|
1156
|
-
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_form4.ControlPage, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_form4.ControlSection, {
|
|
1157
|
-
title: t("schema verbose label"),
|
|
1158
|
-
description: t("schema description")
|
|
1159
|
-
}, /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1160
|
-
role: "none",
|
|
1161
|
-
className: import_react_ui_form4.controlItemClasses
|
|
1162
|
-
}, schemas.length === 0 && /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1163
|
-
className: "text-center plb-4"
|
|
1164
|
-
}, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1165
|
-
key: schema.id
|
|
1166
|
-
}, /* @__PURE__ */ import_react21.default.createElement("div", null, schema.typename)))))));
|
|
1311
|
+
return pathState;
|
|
1167
1312
|
};
|
|
1168
1313
|
var REFRESH_INTERVAL = 5e3;
|
|
1169
1314
|
var ACTIVITY_DURATION = 3e4;
|
|
@@ -1173,21 +1318,21 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1173
1318
|
const spaceState = (0, import_app_framework10.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
|
|
1174
1319
|
const client = (0, import_react_client6.useClient)();
|
|
1175
1320
|
const identity = (0, import_halo.useIdentity)();
|
|
1176
|
-
const space = spaceKey ? client.spaces.get(spaceKey) : (0,
|
|
1177
|
-
const spaceMembers = (0,
|
|
1178
|
-
const [_moment, setMoment] = (0,
|
|
1179
|
-
(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)(() => {
|
|
1180
1325
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1181
1326
|
return () => clearInterval(interval);
|
|
1182
1327
|
}, []);
|
|
1183
|
-
const memberOnline = (0,
|
|
1184
|
-
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), [
|
|
1185
1330
|
identity?.identityKey
|
|
1186
1331
|
]);
|
|
1187
1332
|
if (!identity || !spaceState || !space) {
|
|
1188
1333
|
return null;
|
|
1189
1334
|
}
|
|
1190
|
-
const currentObjectViewers = spaceState.viewersByObject[(0,
|
|
1335
|
+
const currentObjectViewers = spaceState.viewersByObject[(0, import_echo6.fullyQualifiedId)(object)] ?? noViewers;
|
|
1191
1336
|
const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
|
|
1192
1337
|
const objectView = currentObjectViewers.get(member.identity.identityKey);
|
|
1193
1338
|
const lastSeen = objectView?.lastSeen ?? -Infinity;
|
|
@@ -1198,90 +1343,86 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1198
1343
|
lastSeen
|
|
1199
1344
|
};
|
|
1200
1345
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1201
|
-
return /* @__PURE__ */
|
|
1346
|
+
return /* @__PURE__ */ import_react25.default.createElement(FullPresence, {
|
|
1202
1347
|
members: membersForObject
|
|
1203
1348
|
});
|
|
1204
1349
|
};
|
|
1205
1350
|
var FullPresence = (props) => {
|
|
1206
1351
|
const { size = 9, onMemberClick } = props;
|
|
1207
|
-
const members = (0,
|
|
1352
|
+
const members = (0, import_react_ui19.useDefaultValue)(props.members, () => []);
|
|
1208
1353
|
if (members.length === 0) {
|
|
1209
1354
|
return null;
|
|
1210
1355
|
}
|
|
1211
|
-
return /* @__PURE__ */
|
|
1356
|
+
return /* @__PURE__ */ import_react25.default.createElement("div", {
|
|
1212
1357
|
className: "dx-avatar-group",
|
|
1213
1358
|
"data-testid": "spacePlugin.presence"
|
|
1214
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1215
|
-
key: member.identity.identityKey.toHex()
|
|
1216
|
-
|
|
1217
|
-
content: getName(member.identity),
|
|
1218
|
-
className: "grid focus:outline-none"
|
|
1219
|
-
}, /* @__PURE__ */ import_react22.default.createElement(PresenceAvatar, {
|
|
1359
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, {
|
|
1360
|
+
key: member.identity.identityKey.toHex()
|
|
1361
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
|
|
1220
1362
|
identity: member.identity,
|
|
1221
1363
|
match: member.currentlyAttended,
|
|
1222
1364
|
index: members.length - i,
|
|
1223
1365
|
onClick: () => onMemberClick?.(member),
|
|
1224
1366
|
size
|
|
1225
|
-
}))
|
|
1226
|
-
|
|
1227
|
-
}, /* @__PURE__ */
|
|
1367
|
+
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
|
|
1368
|
+
side: "bottom"
|
|
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, {
|
|
1228
1370
|
status: "inactive",
|
|
1229
1371
|
style: {
|
|
1230
1372
|
zIndex: members.length - 4
|
|
1231
1373
|
},
|
|
1232
|
-
fallback: `+${members.length - 3}
|
|
1233
|
-
|
|
1234
|
-
}))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Content, {
|
|
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, {
|
|
1235
1376
|
side: "bottom"
|
|
1236
|
-
}, /* @__PURE__ */
|
|
1377
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.List, {
|
|
1237
1378
|
classNames: "max-h-56 overflow-y-auto"
|
|
1238
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1379
|
+
}, members.map((member) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.ListItem.Root, {
|
|
1239
1380
|
key: member.identity.identityKey.toHex(),
|
|
1240
1381
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1241
1382
|
onClick: () => onMemberClick?.(member),
|
|
1242
1383
|
"data-testid": "identity-list-item"
|
|
1243
|
-
}, /* @__PURE__ */
|
|
1384
|
+
}, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
|
|
1244
1385
|
identity: member.identity,
|
|
1245
1386
|
size,
|
|
1246
1387
|
showName: true,
|
|
1247
1388
|
match: member.currentlyAttended
|
|
1248
1389
|
}))))))));
|
|
1249
1390
|
};
|
|
1250
|
-
var
|
|
1391
|
+
var PrensenceAvatar = ({ identity, showName, match, index, onClick, size }) => {
|
|
1251
1392
|
const status = match ? "current" : "active";
|
|
1252
1393
|
const fallbackValue = (0, import_util3.keyToFallback)(identity.identityKey);
|
|
1253
|
-
return /* @__PURE__ */
|
|
1394
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
|
|
1254
1395
|
status,
|
|
1255
1396
|
hue: identity.profile?.data?.hue || fallbackValue.hue,
|
|
1256
1397
|
"data-testid": "spacePlugin.presence.member",
|
|
1257
1398
|
"data-status": status,
|
|
1258
1399
|
size,
|
|
1400
|
+
classNames: "mbs-2 mie-4",
|
|
1259
1401
|
...index ? {
|
|
1260
1402
|
style: {
|
|
1261
1403
|
zIndex: index
|
|
1262
1404
|
}
|
|
1263
1405
|
} : {},
|
|
1264
|
-
onClick,
|
|
1265
|
-
fallback: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
1266
|
-
|
|
1267
|
-
}), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Avatar.Label, {
|
|
1406
|
+
onClick: () => onClick?.(),
|
|
1407
|
+
fallback: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
1408
|
+
}), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Label, {
|
|
1268
1409
|
classNames: showName ? "text-sm truncate pli-2" : "sr-only"
|
|
1269
1410
|
}, getName(identity)));
|
|
1270
|
-
}
|
|
1411
|
+
};
|
|
1271
1412
|
var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
1272
1413
|
const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
|
|
1273
1414
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
1274
1415
|
const { graph } = (0, import_app_framework10.useAppGraph)();
|
|
1275
1416
|
const attended = (0, import_react_ui_attention.useAttended)();
|
|
1276
1417
|
const startOfAttention = attended.at(-1);
|
|
1277
|
-
const path =
|
|
1278
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1418
|
+
const path = usePath(graph, startOfAttention);
|
|
1419
|
+
const containsAttended = !open && !isAttended && id && path ? path.includes(id) : false;
|
|
1279
1420
|
const getActiveViewers = (viewers2) => {
|
|
1280
1421
|
const moment = Date.now();
|
|
1281
1422
|
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
1282
1423
|
};
|
|
1283
|
-
const [activeViewers, setActiveViewers] = (0,
|
|
1284
|
-
(0,
|
|
1424
|
+
const [activeViewers, setActiveViewers] = (0, import_react25.useState)(viewers ? getActiveViewers(viewers) : []);
|
|
1425
|
+
(0, import_react25.useEffect)(() => {
|
|
1285
1426
|
if (viewers) {
|
|
1286
1427
|
setActiveViewers(getActiveViewers(viewers));
|
|
1287
1428
|
const interval = setInterval(() => {
|
|
@@ -1292,75 +1433,46 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1292
1433
|
}, [
|
|
1293
1434
|
viewers
|
|
1294
1435
|
]);
|
|
1295
|
-
return /* @__PURE__ */
|
|
1436
|
+
return /* @__PURE__ */ import_react25.default.createElement(SmallPresence, {
|
|
1296
1437
|
count: activeViewers.length,
|
|
1297
1438
|
attended: isAttended,
|
|
1298
1439
|
containsAttended
|
|
1299
1440
|
});
|
|
1300
1441
|
};
|
|
1301
1442
|
var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
1302
|
-
const { t } = (0,
|
|
1303
|
-
return /* @__PURE__ */
|
|
1304
|
-
asChild: true
|
|
1305
|
-
|
|
1306
|
-
count
|
|
1307
|
-
}),
|
|
1308
|
-
side: "bottom"
|
|
1309
|
-
}, /* @__PURE__ */ import_react22.default.createElement(import_react_ui_attention.AttentionGlyph, {
|
|
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, {
|
|
1445
|
+
asChild: true
|
|
1446
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention.AttentionGlyph, {
|
|
1310
1447
|
attended,
|
|
1311
1448
|
containsAttended,
|
|
1312
1449
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
1313
1450
|
classNames: "self-center mie-1"
|
|
1314
|
-
}))
|
|
1451
|
+
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
|
|
1452
|
+
side: "bottom"
|
|
1453
|
+
}, /* @__PURE__ */ import_react25.default.createElement("span", null, t("presence label", {
|
|
1454
|
+
count
|
|
1455
|
+
})), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
|
|
1315
1456
|
};
|
|
1316
1457
|
var SpacePluginSettings = ({ settings }) => {
|
|
1317
|
-
const { t } = (0,
|
|
1318
|
-
|
|
1319
|
-
const client = (0, import_react_client7.useClient)();
|
|
1320
|
-
const spaces = (0, import_echo6.useSpaces)({
|
|
1321
|
-
all: settings.showHidden
|
|
1322
|
-
});
|
|
1323
|
-
return /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
|
|
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, {
|
|
1324
1460
|
label: t("show hidden spaces label")
|
|
1325
|
-
}, /* @__PURE__ */
|
|
1461
|
+
}, /* @__PURE__ */ import_react27.default.createElement(import_react_ui20.Input.Switch, {
|
|
1326
1462
|
checked: settings.showHidden,
|
|
1327
1463
|
onCheckedChange: (checked) => settings.showHidden = !!checked
|
|
1328
|
-
}))
|
|
1329
|
-
role: "none"
|
|
1330
|
-
}, /* @__PURE__ */ import_react23.default.createElement("h2", {
|
|
1331
|
-
className: "text-xl my-4"
|
|
1332
|
-
}, "Space Settings"), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.List, {
|
|
1333
|
-
classNames: "max-w-md mx-auto"
|
|
1334
|
-
}, spaces.map((space) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.ListItem.Root, {
|
|
1335
|
-
key: space.id
|
|
1336
|
-
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.ListItem.Heading, {
|
|
1337
|
-
classNames: "flex flex-col grow truncate mbe-2"
|
|
1338
|
-
}, (0, import_react_ui17.toLocalizedString)((0, import_chunk_SCATWJKX.getSpaceDisplayName)(space, {
|
|
1339
|
-
personal: space === client.spaces.default
|
|
1340
|
-
}), t)), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.ListItem.Endcap, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
|
|
1341
|
-
onClick: () => dispatch((0, import_app_framework11.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.OpenSettings, {
|
|
1342
|
-
space
|
|
1343
|
-
}))
|
|
1344
|
-
}, t("open space settings label"))))))));
|
|
1464
|
+
})));
|
|
1345
1465
|
};
|
|
1346
|
-
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/
|
|
1347
|
-
var
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
})));
|
|
1352
|
-
var SpaceSettingsContainer = ({ space }) => {
|
|
1353
|
-
const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1354
|
-
const { dispatchPromise: dispatch } = (0, import_app_framework12.useIntentDispatcher)();
|
|
1355
|
-
const client = (0, import_react_client8.useClient)();
|
|
1356
|
-
const archived = (0, import_react_ui18.useMulticastObservable)(space.state) === import_echo7.SpaceState.SPACE_INACTIVE;
|
|
1357
|
-
const [edgeReplication, setEdgeReplication] = (0, import_react24.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
|
|
1358
|
-
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) => {
|
|
1359
1471
|
setEdgeReplication(next);
|
|
1360
1472
|
await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1361
1473
|
import_log3.log.catch(err, void 0, {
|
|
1362
1474
|
F: __dxlog_file5,
|
|
1363
|
-
L:
|
|
1475
|
+
L: 34,
|
|
1364
1476
|
S: void 0,
|
|
1365
1477
|
C: (f, a) => f(...a)
|
|
1366
1478
|
});
|
|
@@ -1369,7 +1481,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1369
1481
|
}, [
|
|
1370
1482
|
space
|
|
1371
1483
|
]);
|
|
1372
|
-
const handleSave = (0,
|
|
1484
|
+
const handleSave = (0, import_react28.useCallback)((properties) => {
|
|
1373
1485
|
void toggleEdgeReplication(properties.edgeReplication);
|
|
1374
1486
|
if (properties.name !== space.properties.name) {
|
|
1375
1487
|
space.properties.name = properties.name;
|
|
@@ -1380,46 +1492,31 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1380
1492
|
if (properties.hue !== space.properties.hue) {
|
|
1381
1493
|
space.properties.hue = properties.hue;
|
|
1382
1494
|
}
|
|
1383
|
-
if (properties.archived && !archived) {
|
|
1384
|
-
void dispatch((0, import_effect4.pipe)((0, import_app_framework12.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Close, {
|
|
1385
|
-
space
|
|
1386
|
-
}), (0, import_app_framework12.chain)(import_app_framework12.LayoutAction.SwitchWorkspace, {
|
|
1387
|
-
part: "workspace",
|
|
1388
|
-
subject: client.spaces.default.id
|
|
1389
|
-
})));
|
|
1390
|
-
} else if (!properties.archived && archived) {
|
|
1391
|
-
void dispatch((0, import_app_framework12.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Open, {
|
|
1392
|
-
space
|
|
1393
|
-
}));
|
|
1394
|
-
}
|
|
1395
1495
|
}, [
|
|
1396
1496
|
space,
|
|
1397
|
-
toggleEdgeReplication
|
|
1398
|
-
archived
|
|
1497
|
+
toggleEdgeReplication
|
|
1399
1498
|
]);
|
|
1400
|
-
const values = (0,
|
|
1499
|
+
const values = (0, import_react28.useMemo)(() => ({
|
|
1401
1500
|
name: space.properties.name,
|
|
1402
1501
|
icon: space.properties.icon,
|
|
1403
1502
|
hue: space.properties.hue,
|
|
1404
|
-
edgeReplication
|
|
1405
|
-
archived
|
|
1503
|
+
edgeReplication
|
|
1406
1504
|
}), [
|
|
1407
1505
|
space.properties.name,
|
|
1408
1506
|
space.properties.icon,
|
|
1409
1507
|
space.properties.hue,
|
|
1410
|
-
edgeReplication
|
|
1411
|
-
archived
|
|
1508
|
+
edgeReplication
|
|
1412
1509
|
]);
|
|
1413
|
-
const customElements = (0,
|
|
1510
|
+
const customElements = (0, import_react28.useMemo)(() => ({
|
|
1414
1511
|
name: ({ type, label, getValue, onValueChange }) => {
|
|
1415
|
-
const handleChange = (0,
|
|
1512
|
+
const handleChange = (0, import_react28.useCallback)(({ target: { value } }) => onValueChange(type, value), [
|
|
1416
1513
|
onValueChange,
|
|
1417
1514
|
type
|
|
1418
1515
|
]);
|
|
1419
|
-
return /* @__PURE__ */
|
|
1516
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
|
|
1420
1517
|
title: label,
|
|
1421
1518
|
description: t("display name description")
|
|
1422
|
-
}, /* @__PURE__ */
|
|
1519
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.TextInput, {
|
|
1423
1520
|
value: getValue(),
|
|
1424
1521
|
onChange: handleChange,
|
|
1425
1522
|
placeholder: t("display name input placeholder"),
|
|
@@ -1427,18 +1524,18 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1427
1524
|
}));
|
|
1428
1525
|
},
|
|
1429
1526
|
icon: ({ type, label, getValue, onValueChange }) => {
|
|
1430
|
-
const handleChange = (0,
|
|
1527
|
+
const handleChange = (0, import_react28.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
|
|
1431
1528
|
onValueChange,
|
|
1432
1529
|
type
|
|
1433
1530
|
]);
|
|
1434
|
-
const handleEmojiReset = (0,
|
|
1531
|
+
const handleEmojiReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
|
|
1435
1532
|
onValueChange,
|
|
1436
1533
|
type
|
|
1437
1534
|
]);
|
|
1438
|
-
return /* @__PURE__ */
|
|
1535
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
|
|
1439
1536
|
title: label,
|
|
1440
1537
|
description: t("icon description")
|
|
1441
|
-
}, /* @__PURE__ */
|
|
1538
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.IconPicker, {
|
|
1442
1539
|
value: getValue(),
|
|
1443
1540
|
onChange: handleChange,
|
|
1444
1541
|
onReset: handleEmojiReset,
|
|
@@ -1447,18 +1544,18 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1447
1544
|
}));
|
|
1448
1545
|
},
|
|
1449
1546
|
hue: ({ type, label, getValue, onValueChange }) => {
|
|
1450
|
-
const handleChange = (0,
|
|
1547
|
+
const handleChange = (0, import_react28.useCallback)((nextHue) => onValueChange(type, nextHue), [
|
|
1451
1548
|
onValueChange,
|
|
1452
1549
|
type
|
|
1453
1550
|
]);
|
|
1454
|
-
const handleHueReset = (0,
|
|
1551
|
+
const handleHueReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
|
|
1455
1552
|
onValueChange,
|
|
1456
1553
|
type
|
|
1457
1554
|
]);
|
|
1458
|
-
return /* @__PURE__ */
|
|
1555
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
|
|
1459
1556
|
title: label,
|
|
1460
1557
|
description: t("hue description")
|
|
1461
|
-
}, /* @__PURE__ */
|
|
1558
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.HuePicker, {
|
|
1462
1559
|
value: getValue(),
|
|
1463
1560
|
onChange: handleChange,
|
|
1464
1561
|
onReset: handleHueReset,
|
|
@@ -1466,59 +1563,146 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1466
1563
|
}));
|
|
1467
1564
|
},
|
|
1468
1565
|
edgeReplication: ({ type, label, getValue, onValueChange }) => {
|
|
1469
|
-
const handleChange = (0,
|
|
1566
|
+
const handleChange = (0, import_react28.useCallback)((checked) => onValueChange(type, checked), [
|
|
1470
1567
|
onValueChange,
|
|
1471
1568
|
type
|
|
1472
1569
|
]);
|
|
1473
|
-
return /* @__PURE__ */
|
|
1570
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
|
|
1474
1571
|
title: label,
|
|
1475
1572
|
description: t("edge replication description")
|
|
1476
|
-
}, /* @__PURE__ */
|
|
1573
|
+
}, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Switch, {
|
|
1477
1574
|
checked: getValue(),
|
|
1478
1575
|
onCheckedChange: handleChange,
|
|
1479
1576
|
classNames: "justify-self-end"
|
|
1480
1577
|
}));
|
|
1481
|
-
},
|
|
1482
|
-
archived: ({ type, label, getValue, onValueChange }) => {
|
|
1483
|
-
const handleChange = (0, import_react24.useCallback)(() => onValueChange(type, !getValue()), [
|
|
1484
|
-
onValueChange,
|
|
1485
|
-
type,
|
|
1486
|
-
getValue
|
|
1487
|
-
]);
|
|
1488
|
-
return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlItemInput, {
|
|
1489
|
-
title: label,
|
|
1490
|
-
description: t("archive space description")
|
|
1491
|
-
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.Button, {
|
|
1492
|
-
disabled: space === client.spaces.default,
|
|
1493
|
-
onClick: handleChange
|
|
1494
|
-
}, getValue() ? t("unarchive space label") : t("archive space label")));
|
|
1495
1578
|
}
|
|
1496
1579
|
}), [
|
|
1497
|
-
t
|
|
1498
|
-
space
|
|
1580
|
+
t
|
|
1499
1581
|
]);
|
|
1500
|
-
return /* @__PURE__ */
|
|
1501
|
-
|
|
1502
|
-
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlPage, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlSection, {
|
|
1503
|
-
title: t("space properties settings verbose label", {
|
|
1504
|
-
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
1505
|
-
}),
|
|
1506
|
-
description: t("space properties settings description", {
|
|
1507
|
-
ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
|
|
1508
|
-
})
|
|
1509
|
-
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.Form, {
|
|
1510
|
-
schema: FormSchema,
|
|
1582
|
+
return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.Form, {
|
|
1583
|
+
schema: import_chunk_WDEIFDTX.SpaceForm,
|
|
1511
1584
|
values,
|
|
1512
1585
|
autoSave: true,
|
|
1513
1586
|
onSave: handleSave,
|
|
1514
1587
|
Custom: customElements,
|
|
1515
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'
|
|
1516
|
-
})
|
|
1589
|
+
});
|
|
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)(() => ({
|
|
1597
|
+
subject: space
|
|
1598
|
+
}), [
|
|
1599
|
+
space
|
|
1600
|
+
]);
|
|
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
|
+
})))))));
|
|
1625
|
+
};
|
|
1626
|
+
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
|
|
1627
|
+
var createEmptyEdgeSyncState = () => ({
|
|
1628
|
+
missingOnLocal: 0,
|
|
1629
|
+
missingOnRemote: 0,
|
|
1630
|
+
localDocumentCount: 0,
|
|
1631
|
+
remoteDocumentCount: 0,
|
|
1632
|
+
differentDocuments: 0
|
|
1633
|
+
});
|
|
1634
|
+
var getSyncSummary = (syncMap) => {
|
|
1635
|
+
return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
|
|
1636
|
+
summary.missingOnLocal += peerState.missingOnLocal;
|
|
1637
|
+
summary.missingOnRemote += peerState.missingOnRemote;
|
|
1638
|
+
summary.localDocumentCount += peerState.localDocumentCount;
|
|
1639
|
+
summary.remoteDocumentCount += peerState.remoteDocumentCount;
|
|
1640
|
+
summary.differentDocuments += peerState.differentDocuments;
|
|
1641
|
+
return summary;
|
|
1642
|
+
}, createEmptyEdgeSyncState());
|
|
1643
|
+
};
|
|
1644
|
+
var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
|
|
1645
|
+
var useSyncState = () => {
|
|
1646
|
+
const client = (0, import_react_client8.useClient)();
|
|
1647
|
+
const [spaceState, setSpaceState] = (0, import_react31.useState)({});
|
|
1648
|
+
(0, import_react31.useEffect)(() => {
|
|
1649
|
+
const ctx = new import_context.Context(void 0, {
|
|
1650
|
+
F: __dxlog_file6,
|
|
1651
|
+
L: 48
|
|
1652
|
+
});
|
|
1653
|
+
const createSubscriptions = (spaces) => {
|
|
1654
|
+
for (const space of spaces) {
|
|
1655
|
+
if (spaceState[space.id]) {
|
|
1656
|
+
continue;
|
|
1657
|
+
}
|
|
1658
|
+
ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
|
|
1659
|
+
const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
|
|
1660
|
+
if (syncState) {
|
|
1661
|
+
setSpaceState((spaceState2) => ({
|
|
1662
|
+
...spaceState2,
|
|
1663
|
+
[space.id]: syncState
|
|
1664
|
+
}));
|
|
1665
|
+
}
|
|
1666
|
+
}));
|
|
1667
|
+
}
|
|
1668
|
+
};
|
|
1669
|
+
createSubscriptions(client.spaces.get());
|
|
1670
|
+
client.spaces.subscribe((spaces) => {
|
|
1671
|
+
createSubscriptions(spaces);
|
|
1672
|
+
});
|
|
1673
|
+
return () => {
|
|
1674
|
+
void ctx.dispose();
|
|
1675
|
+
};
|
|
1676
|
+
}, [
|
|
1677
|
+
client
|
|
1678
|
+
]);
|
|
1679
|
+
return spaceState;
|
|
1680
|
+
};
|
|
1681
|
+
var useSpaceSyncState = (space) => {
|
|
1682
|
+
const [spaceState, setSpaceState] = (0, import_react31.useState)();
|
|
1683
|
+
(0, import_react31.useEffect)(() => {
|
|
1684
|
+
const ctx = new import_context.Context(void 0, {
|
|
1685
|
+
F: __dxlog_file6,
|
|
1686
|
+
L: 87
|
|
1687
|
+
});
|
|
1688
|
+
space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
|
|
1689
|
+
const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
|
|
1690
|
+
if (syncState) {
|
|
1691
|
+
setSpaceState(syncState);
|
|
1692
|
+
}
|
|
1693
|
+
});
|
|
1694
|
+
return () => {
|
|
1695
|
+
void ctx.dispose();
|
|
1696
|
+
};
|
|
1697
|
+
}, [
|
|
1698
|
+
space
|
|
1699
|
+
]);
|
|
1700
|
+
return spaceState;
|
|
1517
1701
|
};
|
|
1518
1702
|
var useEdgeStatus = () => {
|
|
1519
|
-
const [status, setStatus] = (0,
|
|
1520
|
-
const client = (0,
|
|
1521
|
-
(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)(() => {
|
|
1522
1706
|
client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
|
|
1523
1707
|
setStatus(status2);
|
|
1524
1708
|
});
|
|
@@ -1528,31 +1712,136 @@ var useEdgeStatus = () => {
|
|
|
1528
1712
|
return status;
|
|
1529
1713
|
};
|
|
1530
1714
|
var InlineSyncStatus = ({ space, open }) => {
|
|
1531
|
-
const { t } = (0,
|
|
1715
|
+
const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1532
1716
|
const id = space.id;
|
|
1533
1717
|
const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention2.useAttention)(id);
|
|
1534
1718
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
1535
|
-
const { graph } = (0,
|
|
1719
|
+
const { graph } = (0, import_app_framework12.useAppGraph)();
|
|
1536
1720
|
const attended = (0, import_react_ui_attention2.useAttended)();
|
|
1537
1721
|
const startOfAttention = attended.at(-1);
|
|
1538
|
-
const path =
|
|
1539
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1540
|
-
const connectedToEdge = useEdgeStatus() === import_services.EdgeStatus.CONNECTED;
|
|
1722
|
+
const path = usePath(graph, startOfAttention);
|
|
1723
|
+
const containsAttended = !open && !isAttended && id && path ? path.includes(id) : false;
|
|
1724
|
+
const connectedToEdge = useEdgeStatus() === import_services.QueryEdgeStatusResponse.EdgeStatus.CONNECTED;
|
|
1541
1725
|
const edgeSyncEnabled = space.internal.data.edgeReplication === import_metadata2.EdgeReplicationSetting.ENABLED;
|
|
1542
|
-
const syncState =
|
|
1726
|
+
const syncState = useSpaceSyncState(space);
|
|
1543
1727
|
const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
|
|
1544
|
-
return /* @__PURE__ */
|
|
1545
|
-
asChild: true
|
|
1546
|
-
|
|
1547
|
-
side: "bottom"
|
|
1548
|
-
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention2.AttentionGlyph, {
|
|
1728
|
+
return /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Trigger, {
|
|
1729
|
+
asChild: true
|
|
1730
|
+
}, /* @__PURE__ */ import_react30.default.createElement(import_react_ui_attention2.AttentionGlyph, {
|
|
1549
1731
|
syncing,
|
|
1550
1732
|
attended: isAttended,
|
|
1551
1733
|
containsAttended,
|
|
1552
1734
|
classNames: "self-center mie-1"
|
|
1735
|
+
})), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Content, {
|
|
1736
|
+
side: "bottom",
|
|
1737
|
+
classNames: "z-[70]"
|
|
1738
|
+
}, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Arrow, null))));
|
|
1739
|
+
};
|
|
1740
|
+
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1741
|
+
var styles = {
|
|
1742
|
+
barBg: "bg-neutral-50 dark:bg-green-900 text-black",
|
|
1743
|
+
barFg: "bg-neutral-100 bg-green-500",
|
|
1744
|
+
barHover: "dark:hover:bg-green-500"
|
|
1745
|
+
};
|
|
1746
|
+
var useActive = (count) => {
|
|
1747
|
+
const [current, setCurrent] = (0, import_react33.useState)(count);
|
|
1748
|
+
const [active, setActive] = (0, import_react33.useState)(false);
|
|
1749
|
+
(0, import_react33.useEffect)(() => {
|
|
1750
|
+
let t;
|
|
1751
|
+
if (count !== current) {
|
|
1752
|
+
setActive(true);
|
|
1753
|
+
setCurrent(count);
|
|
1754
|
+
t && clearTimeout(t);
|
|
1755
|
+
t = setTimeout(() => {
|
|
1756
|
+
setActive(false);
|
|
1757
|
+
}, SYNC_STALLED_TIMEOUT);
|
|
1758
|
+
}
|
|
1759
|
+
return () => {
|
|
1760
|
+
setActive(false);
|
|
1761
|
+
clearTimeout(t);
|
|
1762
|
+
};
|
|
1763
|
+
}, [
|
|
1764
|
+
count,
|
|
1765
|
+
current
|
|
1766
|
+
]);
|
|
1767
|
+
return active;
|
|
1768
|
+
};
|
|
1769
|
+
var SpaceRowContainer = ({ spaceId, state }) => {
|
|
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);
|
|
1773
|
+
if (!space) {
|
|
1774
|
+
return null;
|
|
1775
|
+
}
|
|
1776
|
+
const spaceName = (0, import_react_ui25.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
|
|
1777
|
+
personal: space === client.spaces.default
|
|
1778
|
+
}), t);
|
|
1779
|
+
return /* @__PURE__ */ import_react33.default.createElement(SpaceRow, {
|
|
1780
|
+
spaceId,
|
|
1781
|
+
spaceName,
|
|
1782
|
+
state
|
|
1783
|
+
});
|
|
1784
|
+
};
|
|
1785
|
+
var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
|
|
1786
|
+
const downActive = useActive(localDocumentCount);
|
|
1787
|
+
const upActive = useActive(remoteDocumentCount);
|
|
1788
|
+
return /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1789
|
+
className: "flex items-center mx-0.5 gap-0.5 cursor-pointer",
|
|
1790
|
+
title: spaceId,
|
|
1791
|
+
onClick: () => {
|
|
1792
|
+
void navigator.clipboard.writeText(spaceId);
|
|
1793
|
+
}
|
|
1794
|
+
}, /* @__PURE__ */ import_react33.default.createElement("span", {
|
|
1795
|
+
className: "is-1/2 truncate"
|
|
1796
|
+
}, spaceName), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
|
|
1797
|
+
icon: "ph--arrow-fat-line-left--regular",
|
|
1798
|
+
size: 3,
|
|
1799
|
+
classNames: (0, import_react_ui_theme8.mx)(downActive && "animate-[pulse_1s_infinite]")
|
|
1800
|
+
}), /* @__PURE__ */ import_react33.default.createElement(Candle, {
|
|
1801
|
+
up: {
|
|
1802
|
+
count: remoteDocumentCount,
|
|
1803
|
+
total: remoteDocumentCount + missingOnRemote
|
|
1804
|
+
},
|
|
1805
|
+
down: {
|
|
1806
|
+
count: localDocumentCount,
|
|
1807
|
+
total: localDocumentCount + missingOnLocal
|
|
1808
|
+
},
|
|
1809
|
+
title: spaceId
|
|
1810
|
+
}), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
|
|
1811
|
+
icon: "ph--arrow-fat-line-right--regular",
|
|
1812
|
+
size: 3,
|
|
1813
|
+
classNames: (0, import_react_ui_theme8.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
|
|
1553
1814
|
}));
|
|
1554
1815
|
};
|
|
1555
|
-
var
|
|
1816
|
+
var Candle = ({ classNames, up, down }) => {
|
|
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, {
|
|
1820
|
+
classNames: "justify-end",
|
|
1821
|
+
...up
|
|
1822
|
+
}), /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1823
|
+
className: "relative"
|
|
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));
|
|
1827
|
+
};
|
|
1828
|
+
var Bar = ({ classNames, count, total }) => {
|
|
1829
|
+
let p = count / total * 100;
|
|
1830
|
+
if (count < total) {
|
|
1831
|
+
p = Math.min(p, 95);
|
|
1832
|
+
}
|
|
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),
|
|
1837
|
+
style: {
|
|
1838
|
+
width: `${p}%`
|
|
1839
|
+
}
|
|
1840
|
+
}), count !== total && /* @__PURE__ */ import_react33.default.createElement("div", {
|
|
1841
|
+
className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
|
|
1842
|
+
}, count));
|
|
1843
|
+
};
|
|
1844
|
+
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
|
|
1556
1845
|
var createClientSaveTracker = (client, cb) => {
|
|
1557
1846
|
const CleanupFns = {};
|
|
1558
1847
|
const state = {};
|
|
@@ -1579,8 +1868,8 @@ var createClientSaveTracker = (client, cb) => {
|
|
|
1579
1868
|
};
|
|
1580
1869
|
};
|
|
1581
1870
|
var createSpaceSaveTracker = (space, cb) => {
|
|
1582
|
-
const ctx = new
|
|
1583
|
-
F:
|
|
1871
|
+
const ctx = new import_context2.Context(void 0, {
|
|
1872
|
+
F: __dxlog_file7,
|
|
1584
1873
|
L: 40
|
|
1585
1874
|
});
|
|
1586
1875
|
void space.waitUntilReady().then(() => {
|
|
@@ -1638,24 +1927,23 @@ var getIcon = (status) => {
|
|
|
1638
1927
|
return "ph--cloud-check--regular";
|
|
1639
1928
|
}
|
|
1640
1929
|
};
|
|
1641
|
-
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1642
1930
|
var SyncStatus = () => {
|
|
1643
|
-
const client = (0,
|
|
1644
|
-
const state =
|
|
1645
|
-
const [saved, setSaved] = (0,
|
|
1646
|
-
(0,
|
|
1931
|
+
const client = (0, import_react_client9.useClient)();
|
|
1932
|
+
const state = useSyncState();
|
|
1933
|
+
const [saved, setSaved] = (0, import_react32.useState)(true);
|
|
1934
|
+
(0, import_react32.useEffect)(() => {
|
|
1647
1935
|
return createClientSaveTracker(client, (state2) => {
|
|
1648
1936
|
setSaved(state2 === "saved");
|
|
1649
1937
|
});
|
|
1650
1938
|
}, []);
|
|
1651
|
-
return /* @__PURE__ */
|
|
1939
|
+
return /* @__PURE__ */ import_react32.default.createElement(SyncStatusIndicator, {
|
|
1652
1940
|
state,
|
|
1653
1941
|
saved
|
|
1654
1942
|
});
|
|
1655
1943
|
};
|
|
1656
1944
|
var SyncStatusIndicator = ({ state, saved }) => {
|
|
1657
|
-
const { t } = (0,
|
|
1658
|
-
const summary =
|
|
1945
|
+
const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1946
|
+
const summary = getSyncSummary(state);
|
|
1659
1947
|
const offline = Object.values(state).length === 0;
|
|
1660
1948
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
1661
1949
|
const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
|
|
@@ -1665,8 +1953,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1665
1953
|
needsToUpload,
|
|
1666
1954
|
needsToDownload
|
|
1667
1955
|
});
|
|
1668
|
-
const [classNames, setClassNames] = (0,
|
|
1669
|
-
(0,
|
|
1956
|
+
const [classNames, setClassNames] = (0, import_react32.useState)();
|
|
1957
|
+
(0, import_react32.useEffect)(() => {
|
|
1670
1958
|
setClassNames(void 0);
|
|
1671
1959
|
if (offline || !needsToUpload && !needsToDownload) {
|
|
1672
1960
|
return;
|
|
@@ -1681,14 +1969,60 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1681
1969
|
needsToDownload
|
|
1682
1970
|
]);
|
|
1683
1971
|
const title = t(`${status} label`);
|
|
1684
|
-
const icon = /* @__PURE__ */
|
|
1972
|
+
const icon = /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Icon, {
|
|
1685
1973
|
icon: getIcon(status),
|
|
1686
1974
|
size: 4,
|
|
1687
1975
|
classNames
|
|
1688
1976
|
});
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1977
|
+
if (offline) {
|
|
1978
|
+
return /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Item, {
|
|
1979
|
+
title
|
|
1980
|
+
}, icon);
|
|
1981
|
+
} else {
|
|
1982
|
+
return /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Trigger, {
|
|
1983
|
+
asChild: true
|
|
1984
|
+
}, /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Button, {
|
|
1985
|
+
title
|
|
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, {
|
|
1987
|
+
state,
|
|
1988
|
+
summary,
|
|
1989
|
+
debug: false
|
|
1990
|
+
}), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Arrow, null))));
|
|
1991
|
+
}
|
|
1992
|
+
};
|
|
1993
|
+
var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
1994
|
+
const [showAll, setShowAll] = (0, import_react32.useState)(false);
|
|
1995
|
+
const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
|
|
1996
|
+
const entries = Object.entries(state).filter(([_, value]) => showAll || value.missingOnLocal + value.missingOnRemote > 0).toSorted(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
1997
|
+
const handleCheckedChange = (0, import_react32.useCallback)((state2) => setShowAll(state2), [
|
|
1998
|
+
setShowAll
|
|
1999
|
+
]);
|
|
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", {
|
|
2003
|
+
role: "none",
|
|
2004
|
+
className: "flex items-center"
|
|
2005
|
+
}, /* @__PURE__ */ import_react32.default.createElement("h1", {
|
|
2006
|
+
className: "flex-1"
|
|
2007
|
+
}, t("sync status title")), /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
2008
|
+
className: "flex items-center gap-2"
|
|
2009
|
+
}, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Label, {
|
|
2010
|
+
classNames: "text-xs"
|
|
2011
|
+
}, t("show all label")), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Checkbox, {
|
|
2012
|
+
checked: showAll,
|
|
2013
|
+
onCheckedChange: handleCheckedChange
|
|
2014
|
+
})))), /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
2015
|
+
className: "flex flex-col gap-2"
|
|
2016
|
+
}, entries.length === 0 && /* @__PURE__ */ import_react32.default.createElement("div", {
|
|
2017
|
+
role: "none",
|
|
2018
|
+
className: "flex justify-center"
|
|
2019
|
+
}, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react32.default.createElement(SpaceRowContainer, {
|
|
2020
|
+
key: spaceId,
|
|
2021
|
+
spaceId,
|
|
2022
|
+
state: state2
|
|
2023
|
+
}))), debug && /* @__PURE__ */ import_react32.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
|
|
2024
|
+
language: "json"
|
|
2025
|
+
}, JSON.stringify(summary, null, 2)));
|
|
1692
2026
|
};
|
|
1693
2027
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1694
2028
|
0 && (module.exports = {
|
|
@@ -1710,26 +2044,31 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1710
2044
|
MembersContainer,
|
|
1711
2045
|
MenuFooter,
|
|
1712
2046
|
ObjectSettingsContainer,
|
|
2047
|
+
POPOVER_ADD_SPACE,
|
|
1713
2048
|
POPOVER_RENAME_OBJECT,
|
|
1714
2049
|
POPOVER_RENAME_SPACE,
|
|
1715
2050
|
PersistenceStatus,
|
|
2051
|
+
PopoverAddSpace,
|
|
1716
2052
|
PopoverRenameObject,
|
|
1717
2053
|
PopoverRenameSpace,
|
|
1718
2054
|
ReactRoot,
|
|
1719
2055
|
ReactSurface,
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
2056
|
+
SPACE_SETTINGS_DIALOG,
|
|
2057
|
+
Schema,
|
|
2058
|
+
ShareSpaceButton,
|
|
2059
|
+
ShareSpaceButtonImpl,
|
|
1723
2060
|
SmallPresence,
|
|
1724
2061
|
SmallPresenceLive,
|
|
1725
2062
|
SpacePluginSettings,
|
|
1726
2063
|
SpacePresence,
|
|
2064
|
+
SpacePropertiesForm,
|
|
1727
2065
|
SpaceSettings,
|
|
1728
2066
|
SpaceSettingsContainer,
|
|
1729
2067
|
SpaceState,
|
|
1730
2068
|
SpacesReady,
|
|
1731
2069
|
SyncStatus,
|
|
2070
|
+
SyncStatusDetail,
|
|
1732
2071
|
SyncStatusIndicator,
|
|
1733
|
-
|
|
2072
|
+
Tools
|
|
1734
2073
|
});
|
|
1735
|
-
//# sourceMappingURL=chunk-
|
|
2074
|
+
//# sourceMappingURL=chunk-3GKCNADA.cjs.map
|