@dxos/plugin-space 0.8.4-main.5ad4a44 → 0.8.4-main.66e292d
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/{CollectionMain-AX7KKXWP.mjs → CollectionArticle-WTHWY4YS.mjs} +8 -8
- package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-ACGHWPDX.mjs +141 -0
- package/dist/lib/browser/ObjectDetailsPanel-ACGHWPDX.mjs.map +7 -0
- package/dist/lib/browser/ObjectSettings-U3IH7BMV.mjs +144 -0
- package/dist/lib/browser/ObjectSettings-U3IH7BMV.mjs.map +7 -0
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs +116 -0
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-Y2LBZX2G.mjs → app-graph-builder-HABMCWAI.mjs} +170 -173
- package/dist/lib/browser/app-graph-builder-HABMCWAI.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-425OVRTW.mjs → app-graph-serializer-G3VFEGTN.mjs} +10 -10
- package/dist/lib/browser/app-graph-serializer-G3VFEGTN.mjs.map +7 -0
- package/dist/lib/browser/chunk-6A3NWBB6.mjs +392 -0
- package/dist/lib/browser/chunk-6A3NWBB6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PUF3B7XO.mjs → chunk-C6DAPIFF.mjs} +4 -4
- package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-X6COEDOD.mjs → chunk-GJOZILGC.mjs} +182 -118
- package/dist/lib/browser/chunk-GJOZILGC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6KVKMOGQ.mjs → chunk-KCZ527AM.mjs} +607 -456
- package/dist/lib/browser/chunk-KCZ527AM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-CVZAZRW4.mjs → chunk-P25R3AOK.mjs} +34 -4
- package/dist/lib/browser/chunk-P25R3AOK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YZJWWMNB.mjs → chunk-POFUXISV.mjs} +68 -62
- package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-EIXZABXD.mjs → chunk-WJXU4GKV.mjs} +2 -2
- package/dist/lib/browser/{identity-created-PW2BA46S.mjs → identity-created-NAXTPQXE.mjs} +3 -3
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +83 -110
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-2TBYHOBA.mjs → intent-resolver-RZEWNJ2K.mjs} +90 -82
- package/dist/lib/browser/intent-resolver-RZEWNJ2K.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-KMJXJ5VX.mjs → react-root-JCRD74GI.mjs} +9 -8
- package/dist/lib/browser/react-root-JCRD74GI.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-YAJUAMER.mjs → react-surface-VOETEAG3.mjs} +64 -84
- package/dist/lib/browser/react-surface-VOETEAG3.mjs.map +7 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
- package/dist/lib/browser/{settings-UYYJ225A.mjs → settings-TRLI52I5.mjs} +3 -3
- package/dist/lib/browser/{spaces-ready-YNZPWXA3.mjs → spaces-ready-OHGCWZHQ.mjs} +19 -12
- package/dist/lib/browser/spaces-ready-OHGCWZHQ.mjs.map +7 -0
- package/dist/lib/browser/{state-BPU73TYO.mjs → state-C7N6EDDZ.mjs} +3 -3
- package/dist/lib/browser/types/index.mjs +10 -4
- package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs → CollectionArticle-KHXYT3SH.mjs} +8 -8
- package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6OFTT3GG.mjs +142 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6OFTT3GG.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectSettings-YXPJQMJ5.mjs +145 -0
- package/dist/lib/node-esm/ObjectSettings-YXPJQMJ5.mjs.map +7 -0
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs +117 -0
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-DMNLDT7E.mjs → app-graph-builder-T6VJKIOA.mjs} +170 -173
- package/dist/lib/node-esm/app-graph-builder-T6VJKIOA.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-ZEDSY77N.mjs → app-graph-serializer-2NLWWFUB.mjs} +10 -10
- package/dist/lib/node-esm/app-graph-serializer-2NLWWFUB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FLRC6XWU.mjs → chunk-7EV4SN47.mjs} +33 -4
- package/dist/lib/node-esm/chunk-7EV4SN47.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7UIEPBQJ.mjs → chunk-AX3UGL5D.mjs} +68 -62
- package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
- package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs → chunk-H4JILUJK.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-ZFCCFELA.mjs → chunk-I6FZP42D.mjs} +182 -118
- package/dist/lib/node-esm/chunk-I6FZP42D.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-L26ZIGHA.mjs → chunk-JAMGJUFU.mjs} +607 -456
- package/dist/lib/node-esm/chunk-JAMGJUFU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-36TAYXV7.mjs → chunk-WWGV5FJM.mjs} +4 -4
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-X34VDVMY.mjs +393 -0
- package/dist/lib/node-esm/chunk-X34VDVMY.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-MWTLGQRU.mjs → identity-created-OXLKCJE3.mjs} +3 -3
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +83 -110
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-YOG27WOG.mjs → intent-resolver-4PHJWDXW.mjs} +90 -82
- package/dist/lib/node-esm/intent-resolver-4PHJWDXW.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-27QMJZD2.mjs → react-root-O5I5CDJ7.mjs} +9 -8
- package/dist/lib/node-esm/react-root-O5I5CDJ7.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-RC73GAN5.mjs → react-surface-J3XDMU2D.mjs} +64 -84
- package/dist/lib/node-esm/react-surface-J3XDMU2D.mjs.map +7 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-Q736OQRP.mjs → settings-MNQTKHL7.mjs} +3 -3
- package/dist/lib/node-esm/{spaces-ready-XZQD7Q65.mjs → spaces-ready-ZPU24DA2.mjs} +19 -12
- package/dist/lib/node-esm/spaces-ready-ZPU24DA2.mjs.map +7 -0
- package/dist/lib/node-esm/{state-BY75TM32.mjs → state-45TXZQJ6.mjs} +3 -3
- package/dist/lib/node-esm/types/index.mjs +10 -4
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +12 -6
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair.d.ts +4 -0
- package/dist/types/src/capabilities/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts +6 -0
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/components/CollectionSection.d.ts +3 -4
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +218 -214
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +16 -9
- 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/JoinDialog.d.ts.map +1 -0
- package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
- package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1591 -0
- package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
- package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
- package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1424 -0
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +3 -3
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/RecordArticle.d.ts +5 -0
- package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +219 -215
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
- package/dist/types/src/components/SchemaContainer.d.ts +2 -2
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +6 -5
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
- package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +218 -214
- package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
- package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
- package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +218 -214
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +219 -215
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts +3 -4
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +10 -17
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/helpers/index.d.ts +2 -0
- package/dist/types/src/helpers/index.d.ts.map +1 -0
- package/dist/types/src/helpers/query.d.ts +8 -0
- package/dist/types/src/helpers/query.d.ts.map +1 -0
- package/dist/types/src/helpers/query.test.d.ts +2 -0
- package/dist/types/src/helpers/query.test.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
- package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +218 -214
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +24 -0
- package/dist/types/src/types/form.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +33 -74
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +19 -33
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -48
- package/src/SpacePlugin.ts +64 -89
- package/src/capabilities/app-graph-builder.ts +165 -233
- package/src/capabilities/app-graph-serializer.ts +5 -5
- package/src/capabilities/capabilities.ts +18 -8
- package/src/capabilities/identity-created.ts +2 -2
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +66 -66
- package/src/capabilities/react-root.tsx +2 -1
- package/src/capabilities/react-surface.tsx +69 -119
- package/src/capabilities/repair.ts +57 -0
- package/src/capabilities/spaces-ready.ts +14 -5
- package/src/components/AwaitingObject.tsx +11 -13
- package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +5 -4
- package/src/components/CollectionSection.tsx +6 -4
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +6 -6
- package/src/components/CreateDialog/CreateObjectDialog.tsx +57 -40
- package/src/components/CreateDialog/CreateObjectPanel.tsx +33 -26
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +25 -7
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +21 -5
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +1 -1
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +11 -9
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/{ObjectDetailsPanel.tsx → ObjectDetailsPanel/ObjectDetailsPanel.tsx} +8 -36
- package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
- package/src/components/ObjectDetailsPanel/index.ts +7 -0
- package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +5 -5
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -5
- package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
- package/src/components/ObjectSettings/ForeignKeys.tsx +6 -6
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
- package/src/components/ObjectSettings/index.ts +3 -1
- package/src/components/RecordArticle.stories.tsx +115 -0
- package/src/components/RecordArticle.tsx +114 -0
- package/src/components/SchemaContainer.tsx +21 -24
- package/src/components/SpacePluginSettings.tsx +8 -2
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +1 -1
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +14 -9
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +6 -5
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +52 -13
- package/src/components/SyncStatus/InlineSyncStatus.tsx +5 -5
- package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
- package/src/components/SyncStatus/SyncStatus.tsx +105 -9
- package/src/components/ViewEditor.tsx +57 -18
- package/src/components/index.ts +7 -8
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +158 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +2 -1
- package/src/hooks/useInputSurfaceLookup.tsx +7 -2
- package/src/hooks/useTypeOptions.ts +27 -0
- package/src/index.ts +1 -0
- package/src/meta.ts +5 -0
- package/src/translations.ts +67 -58
- package/src/types/form.ts +75 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +39 -44
- package/src/util.tsx +187 -121
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs +0 -90
- package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs.map +0 -7
- package/dist/lib/browser/RecordMain-FHPCS6GM.mjs +0 -68
- package/dist/lib/browser/RecordMain-FHPCS6GM.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-Y2LBZX2G.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-425OVRTW.mjs.map +0 -7
- package/dist/lib/browser/chunk-6KVKMOGQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-CVZAZRW4.mjs.map +0 -7
- package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
- package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
- package/dist/lib/browser/chunk-OYHC63NL.mjs +0 -344
- package/dist/lib/browser/chunk-OYHC63NL.mjs.map +0 -7
- package/dist/lib/browser/chunk-PUF3B7XO.mjs.map +0 -7
- package/dist/lib/browser/chunk-X6COEDOD.mjs.map +0 -7
- package/dist/lib/browser/chunk-YZJWWMNB.mjs.map +0 -7
- package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-2TBYHOBA.mjs.map +0 -7
- package/dist/lib/browser/react-root-KMJXJ5VX.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YAJUAMER.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-2OCPV7JF.mjs +0 -26
- package/dist/lib/browser/schema-defs-2OCPV7JF.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-YNZPWXA3.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs +0 -91
- package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs.map +0 -7
- package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs +0 -70
- package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-DMNLDT7E.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-ZEDSY77N.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-36TAYXV7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7UIEPBQJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ADEZJQE3.mjs +0 -345
- package/dist/lib/node-esm/chunk-ADEZJQE3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FLRC6XWU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L26ZIGHA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZFCCFELA.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-YOG27WOG.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-27QMJZD2.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-RC73GAN5.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-XZQD7Q65.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/CollectionMain.d.ts +0 -7
- package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
- package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
- package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
- package/dist/types/src/components/RecordMain.d.ts +0 -7
- package/dist/types/src/components/RecordMain.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/src/capabilities/schema-defs.ts +0 -31
- package/src/components/PersistenceStatus.tsx +0 -83
- package/src/components/RecordMain.tsx +0 -43
- /package/dist/lib/browser/{chunk-EIXZABXD.mjs.map → chunk-WJXU4GKV.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-UYYJ225A.mjs.map → settings-TRLI52I5.mjs.map} +0 -0
- /package/dist/lib/browser/{state-BPU73TYO.mjs.map → state-C7N6EDDZ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs.map → chunk-H4JILUJK.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-Q736OQRP.mjs.map → settings-MNQTKHL7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-BY75TM32.mjs.map → state-45TXZQJ6.mjs.map} +0 -0
- /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
- /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
|
@@ -1,40 +1,43 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
useInputSurfaceLookup,
|
|
4
|
-
usePath
|
|
5
|
-
|
|
4
|
+
usePath,
|
|
5
|
+
useTypeOptions
|
|
6
|
+
} from "./chunk-7EV4SN47.mjs";
|
|
6
7
|
import {
|
|
7
8
|
SpaceCapabilities
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WWGV5FJM.mjs";
|
|
9
10
|
import {
|
|
10
11
|
COMPOSER_SPACE_LOCK,
|
|
11
12
|
getSpaceDisplayName
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-I6FZP42D.mjs";
|
|
13
14
|
import {
|
|
14
15
|
SpaceAction,
|
|
15
16
|
SpaceForm
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-X34VDVMY.mjs";
|
|
17
18
|
import {
|
|
18
19
|
meta
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BDEFTL6K.mjs";
|
|
20
21
|
|
|
21
22
|
// src/components/AwaitingObject.tsx
|
|
22
23
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
23
24
|
import React, { useCallback, useEffect, useState } from "react";
|
|
24
|
-
import { LayoutAction, createIntent
|
|
25
|
+
import { LayoutAction, createIntent } from "@dxos/app-framework";
|
|
26
|
+
import { useIntentDispatcher, useLayout } from "@dxos/app-framework/react";
|
|
27
|
+
import { Obj } from "@dxos/echo";
|
|
25
28
|
import { useClient } from "@dxos/react-client";
|
|
26
|
-
import { Filter,
|
|
29
|
+
import { Filter, useQuery } from "@dxos/react-client/echo";
|
|
27
30
|
import { Button, Icon, Toast, useTranslation } from "@dxos/react-ui";
|
|
28
|
-
var WAIT_FOR_OBJECT_TIMEOUT =
|
|
29
|
-
var TOAST_TIMEOUT =
|
|
31
|
+
var WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1e3;
|
|
32
|
+
var TOAST_TIMEOUT = 4 * 60 * 1e3;
|
|
30
33
|
var AwaitingObject = ({ id }) => {
|
|
31
34
|
var _effect = _useSignals();
|
|
32
35
|
try {
|
|
36
|
+
const { t } = useTranslation(meta.id);
|
|
37
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
33
38
|
const [open, setOpen] = useState(true);
|
|
34
39
|
const [waiting, setWaiting] = useState(true);
|
|
35
40
|
const [found, setFound] = useState(false);
|
|
36
|
-
const { t } = useTranslation(meta.id);
|
|
37
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
38
41
|
const layout = useLayout();
|
|
39
42
|
const client = useClient();
|
|
40
43
|
const objects = useQuery(client.spaces, Filter.everything());
|
|
@@ -42,15 +45,13 @@ var AwaitingObject = ({ id }) => {
|
|
|
42
45
|
if (!id) {
|
|
43
46
|
return;
|
|
44
47
|
}
|
|
45
|
-
const timeout = setTimeout(() =>
|
|
46
|
-
|
|
47
|
-
}, WAIT_FOR_OBJECT_TIMEOUT);
|
|
48
|
-
() => clearTimeout(timeout);
|
|
48
|
+
const timeout = setTimeout(() => setWaiting(false), WAIT_FOR_OBJECT_TIMEOUT);
|
|
49
|
+
return () => clearTimeout(timeout);
|
|
49
50
|
}, [
|
|
50
51
|
id
|
|
51
52
|
]);
|
|
52
53
|
useEffect(() => {
|
|
53
|
-
if (objects.findIndex((object) =>
|
|
54
|
+
if (objects.findIndex((object) => Obj.getDXN(object).toString() === id) > -1) {
|
|
54
55
|
setFound(true);
|
|
55
56
|
if (layout.active.includes(id)) {
|
|
56
57
|
setOpen(false);
|
|
@@ -122,55 +123,43 @@ var AwaitingObject = ({ id }) => {
|
|
|
122
123
|
// src/components/CreateDialog/CreateObjectDialog.tsx
|
|
123
124
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
124
125
|
import * as Effect from "effect/Effect";
|
|
125
|
-
import * as
|
|
126
|
-
import
|
|
127
|
-
import {
|
|
128
|
-
import {
|
|
126
|
+
import * as Function2 from "effect/Function";
|
|
127
|
+
import * as Option2 from "effect/Option";
|
|
128
|
+
import React3, { useCallback as useCallback3, useMemo, useRef, useState as useState2 } from "react";
|
|
129
|
+
import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2 } from "@dxos/app-framework";
|
|
130
|
+
import { useIntentDispatcher as useIntentDispatcher2, usePluginManager } from "@dxos/app-framework/react";
|
|
131
|
+
import { Obj as Obj2, Type } from "@dxos/echo";
|
|
132
|
+
import { EntityKind, SystemTypeAnnotation, getTypeAnnotation as getTypeAnnotation2 } from "@dxos/echo/internal";
|
|
129
133
|
import { invariant } from "@dxos/invariant";
|
|
130
134
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
131
|
-
import { getSpace, isLiveObject, isSpace,
|
|
132
|
-
import {
|
|
135
|
+
import { getSpace, isLiveObject, isSpace, useSpaces } from "@dxos/react-client/echo";
|
|
136
|
+
import { Dialog, IconButton, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
133
137
|
import { cardDialogContent, cardDialogHeader } from "@dxos/react-ui-stack";
|
|
134
|
-
import { DataType, getTypenameFromQuery } from "@dxos/schema";
|
|
135
|
-
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
136
|
-
|
|
137
|
-
// src/capabilities/index.ts
|
|
138
|
-
import { lazy } from "@dxos/app-framework";
|
|
139
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-DMNLDT7E.mjs"));
|
|
140
|
-
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-ZEDSY77N.mjs"));
|
|
141
|
-
var IdentityCreated = lazy(() => import("./identity-created-MWTLGQRU.mjs"));
|
|
142
|
-
var IntentResolver = lazy(() => import("./intent-resolver-YOG27WOG.mjs"));
|
|
143
|
-
var ReactRoot = lazy(() => import("./react-root-27QMJZD2.mjs"));
|
|
144
|
-
var ReactSurface = lazy(() => import("./react-surface-RC73GAN5.mjs"));
|
|
145
|
-
var SchemaDefs = lazy(() => import("./schema-defs-X2Z7F2EV.mjs"));
|
|
146
|
-
var SpaceSettings = lazy(() => import("./settings-Q736OQRP.mjs"));
|
|
147
|
-
var SpaceState = lazy(() => import("./state-BY75TM32.mjs"));
|
|
148
|
-
var SpacesReady = lazy(() => import("./spaces-ready-XZQD7Q65.mjs"));
|
|
149
138
|
|
|
150
139
|
// src/components/CreateDialog/CreateObjectPanel.tsx
|
|
151
140
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
152
141
|
import * as Option from "effect/Option";
|
|
153
142
|
import React2, { useCallback as useCallback2 } from "react";
|
|
154
|
-
import {
|
|
155
|
-
import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
|
|
143
|
+
import { getTypeAnnotation } from "@dxos/echo/internal";
|
|
156
144
|
import { Icon as Icon2, toLocalizedString, useDefaultValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
157
145
|
import { Form } from "@dxos/react-ui-form";
|
|
158
146
|
import { SearchList } from "@dxos/react-ui-searchlist";
|
|
159
147
|
import { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from "@dxos/react-ui-stack";
|
|
148
|
+
import { ViewAnnotation } from "@dxos/schema";
|
|
160
149
|
import { isNonNullable } from "@dxos/util";
|
|
161
|
-
var CreateObjectPanel = ({
|
|
150
|
+
var CreateObjectPanel = ({ schemas, spaces, typename, target, views, initialFormValues: _initialFormValues, defaultSpaceId, resolve, onTargetChange, onTypenameChange, onCreateObject }) => {
|
|
162
151
|
var _effect = _useSignals2();
|
|
163
152
|
try {
|
|
164
153
|
const { t } = useTranslation2(meta.id);
|
|
165
154
|
const initialFormValues = useDefaultValue(_initialFormValues, () => ({}));
|
|
166
|
-
const
|
|
167
|
-
const options =
|
|
155
|
+
const metadata = typename && resolve?.(typename);
|
|
156
|
+
const options = schemas.filter((schema) => {
|
|
168
157
|
if (views == null) {
|
|
169
158
|
return true;
|
|
170
159
|
} else {
|
|
171
|
-
return views === ViewAnnotation.get(
|
|
160
|
+
return views === ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false));
|
|
172
161
|
}
|
|
173
|
-
}).map((
|
|
162
|
+
}).map((schema) => getTypeAnnotation(schema)).filter(isNonNullable).sort((a, b) => {
|
|
174
163
|
const nameA = t("typename label", {
|
|
175
164
|
ns: a.typename,
|
|
176
165
|
defaultValue: a.typename
|
|
@@ -182,34 +171,34 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormVa
|
|
|
182
171
|
return nameA.localeCompare(nameB);
|
|
183
172
|
});
|
|
184
173
|
const handleCreateObject = useCallback2(async (props) => {
|
|
185
|
-
if (!
|
|
174
|
+
if (!metadata) {
|
|
186
175
|
return;
|
|
187
176
|
}
|
|
188
177
|
await onCreateObject?.({
|
|
189
|
-
|
|
178
|
+
metadata,
|
|
190
179
|
data: props
|
|
191
180
|
});
|
|
192
181
|
}, [
|
|
193
182
|
onCreateObject,
|
|
194
|
-
|
|
183
|
+
metadata
|
|
195
184
|
]);
|
|
196
185
|
const handleSetTypename = useCallback2(async (typename2) => {
|
|
197
|
-
const
|
|
198
|
-
if (
|
|
186
|
+
const metadata2 = resolve?.(typename2);
|
|
187
|
+
if (metadata2 && !metadata2.inputSchema) {
|
|
199
188
|
await onCreateObject?.({
|
|
200
|
-
|
|
189
|
+
metadata: metadata2
|
|
201
190
|
});
|
|
202
191
|
} else {
|
|
203
192
|
onTypenameChange?.(typename2);
|
|
204
193
|
}
|
|
205
194
|
}, [
|
|
206
|
-
|
|
195
|
+
resolve,
|
|
207
196
|
onCreateObject
|
|
208
197
|
]);
|
|
209
198
|
const inputSurfaceLookup = useInputSurfaceLookup({
|
|
210
199
|
target
|
|
211
200
|
});
|
|
212
|
-
return !
|
|
201
|
+
return !metadata ? /* @__PURE__ */ React2.createElement(SelectSchema, {
|
|
213
202
|
options,
|
|
214
203
|
resolve,
|
|
215
204
|
onChange: handleSetTypename
|
|
@@ -217,13 +206,13 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormVa
|
|
|
217
206
|
spaces,
|
|
218
207
|
defaultSpaceId,
|
|
219
208
|
onChange: onTargetChange
|
|
220
|
-
}) :
|
|
209
|
+
}) : metadata.inputSchema ? /* @__PURE__ */ React2.createElement("div", {
|
|
221
210
|
role: "none",
|
|
222
211
|
className: cardDialogOverflow
|
|
223
212
|
}, /* @__PURE__ */ React2.createElement(Form, {
|
|
224
213
|
autoFocus: true,
|
|
225
214
|
values: initialFormValues,
|
|
226
|
-
schema:
|
|
215
|
+
schema: metadata.inputSchema,
|
|
227
216
|
testId: "create-object-form",
|
|
228
217
|
onSave: handleCreateObject,
|
|
229
218
|
lookupComponent: inputSurfaceLookup,
|
|
@@ -297,7 +286,7 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
297
286
|
}, /* @__PURE__ */ React2.createElement("span", {
|
|
298
287
|
className: "flex gap-2 items-center grow truncate"
|
|
299
288
|
}, /* @__PURE__ */ React2.createElement(Icon2, {
|
|
300
|
-
icon: resolve?.(option.typename)
|
|
289
|
+
icon: resolve?.(option.typename)?.icon ?? "ph--placeholder--regular",
|
|
301
290
|
size: 5
|
|
302
291
|
}), t("typename label", {
|
|
303
292
|
ns: option.typename,
|
|
@@ -314,22 +303,30 @@ var CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;
|
|
|
314
303
|
var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, views, initialFormValues, onCreateObject, shouldNavigate: _shouldNavigate }) => {
|
|
315
304
|
var _effect = _useSignals3();
|
|
316
305
|
try {
|
|
317
|
-
const closeRef = useRef(null);
|
|
318
306
|
const manager = usePluginManager();
|
|
319
307
|
const { t } = useTranslation3(meta.id);
|
|
320
|
-
const client = useClient2();
|
|
321
|
-
const spaces = useSpaces();
|
|
322
308
|
const { dispatch } = useIntentDispatcher2();
|
|
323
|
-
const forms = useCapabilities(SpaceCapabilities.ObjectForm);
|
|
324
309
|
const [target, setTarget] = useState2(initialTarget);
|
|
325
310
|
const [typename, setTypename] = useState2(initialTypename);
|
|
326
|
-
const
|
|
327
|
-
const
|
|
328
|
-
const
|
|
329
|
-
const resolve = useCallback3((typename2) =>
|
|
311
|
+
const client = useClient2();
|
|
312
|
+
const spaces = useSpaces();
|
|
313
|
+
const closeRef = useRef(null);
|
|
314
|
+
const resolve = useCallback3((typename2) => {
|
|
315
|
+
const metadata = manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata;
|
|
316
|
+
return metadata?.createObjectIntent ? metadata : void 0;
|
|
317
|
+
}, [
|
|
330
318
|
manager
|
|
331
319
|
]);
|
|
332
|
-
const
|
|
320
|
+
const space = isSpace(target) ? target : getSpace(target);
|
|
321
|
+
const schemas = space?.db.schemaRegistry.query({
|
|
322
|
+
location: [
|
|
323
|
+
"runtime"
|
|
324
|
+
]
|
|
325
|
+
}).runSync();
|
|
326
|
+
const userSchemas = useMemo(() => schemas?.filter((schema) => getTypeAnnotation2(schema)?.kind !== EntityKind.Relation).filter((schema) => !!resolve(Type.getTypename(schema))).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option2.getOrElse(() => false))) ?? [], [
|
|
327
|
+
schemas
|
|
328
|
+
]);
|
|
329
|
+
const handleCreateObject = useCallback3(({ metadata, data = {} }) => Effect.gen(function* () {
|
|
333
330
|
if (!target) {
|
|
334
331
|
return;
|
|
335
332
|
}
|
|
@@ -337,18 +334,18 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
337
334
|
const space2 = isSpace(target) ? target : getSpace(target);
|
|
338
335
|
invariant(space2, "Missing space", {
|
|
339
336
|
F: __dxlog_file,
|
|
340
|
-
L:
|
|
337
|
+
L: 87,
|
|
341
338
|
S: this,
|
|
342
339
|
A: [
|
|
343
340
|
"space",
|
|
344
341
|
"'Missing space'"
|
|
345
342
|
]
|
|
346
343
|
});
|
|
347
|
-
const { object } = yield* dispatch(
|
|
344
|
+
const { object } = yield* dispatch(metadata.createObjectIntent(data, {
|
|
348
345
|
space: space2
|
|
349
346
|
}));
|
|
350
|
-
if (isLiveObject(object) && !
|
|
351
|
-
const hidden =
|
|
347
|
+
if (isLiveObject(object) && !Obj2.instanceOf(Type.PersistentType, object)) {
|
|
348
|
+
const hidden = !metadata.addToCollectionOnCreate;
|
|
352
349
|
const addObjectIntent = createIntent2(SpaceAction.AddObject, {
|
|
353
350
|
target,
|
|
354
351
|
object,
|
|
@@ -356,7 +353,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
356
353
|
});
|
|
357
354
|
const shouldNavigate = _shouldNavigate ?? (() => true);
|
|
358
355
|
if (shouldNavigate(object)) {
|
|
359
|
-
yield* dispatch(
|
|
356
|
+
yield* dispatch(Function2.pipe(addObjectIntent, chain(LayoutAction2.Open, {
|
|
360
357
|
part: "main"
|
|
361
358
|
})));
|
|
362
359
|
} else {
|
|
@@ -368,7 +365,6 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
368
365
|
dispatch,
|
|
369
366
|
target,
|
|
370
367
|
resolve,
|
|
371
|
-
hiddenTypenames,
|
|
372
368
|
_shouldNavigate
|
|
373
369
|
]);
|
|
374
370
|
return (
|
|
@@ -382,20 +378,21 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
382
378
|
}, /* @__PURE__ */ React3.createElement(Dialog.Title, null, t("create object dialog title", {
|
|
383
379
|
object: t("typename label", {
|
|
384
380
|
ns: typename,
|
|
385
|
-
defaultValue: views ? "View" : "
|
|
381
|
+
defaultValue: views ? "View" : "Object"
|
|
386
382
|
})
|
|
387
383
|
})), /* @__PURE__ */ React3.createElement(Dialog.Close, {
|
|
388
384
|
asChild: true
|
|
389
|
-
}, /* @__PURE__ */ React3.createElement(
|
|
385
|
+
}, /* @__PURE__ */ React3.createElement(IconButton, {
|
|
390
386
|
ref: closeRef,
|
|
387
|
+
icon: "ph--x--regular",
|
|
388
|
+
size: 4,
|
|
389
|
+
label: "Close",
|
|
390
|
+
iconOnly: true,
|
|
391
391
|
density: "fine",
|
|
392
392
|
variant: "ghost",
|
|
393
393
|
autoFocus: true
|
|
394
|
-
}, /* @__PURE__ */ React3.createElement(
|
|
395
|
-
|
|
396
|
-
size: 4
|
|
397
|
-
})))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
398
|
-
forms,
|
|
394
|
+
}))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
395
|
+
schemas: userSchemas,
|
|
399
396
|
spaces,
|
|
400
397
|
target,
|
|
401
398
|
views,
|
|
@@ -417,8 +414,9 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
417
414
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
418
415
|
import * as Effect2 from "effect/Effect";
|
|
419
416
|
import React4, { useCallback as useCallback4, useRef as useRef2 } from "react";
|
|
420
|
-
import { LayoutAction as LayoutAction3, createIntent as createIntent3
|
|
421
|
-
import {
|
|
417
|
+
import { LayoutAction as LayoutAction3, createIntent as createIntent3 } from "@dxos/app-framework";
|
|
418
|
+
import { useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework/react";
|
|
419
|
+
import { Dialog as Dialog2, IconButton as IconButton2, useTranslation as useTranslation4 } from "@dxos/react-ui";
|
|
422
420
|
import { Form as Form2 } from "@dxos/react-ui-form";
|
|
423
421
|
import { cardDialogContent as cardDialogContent2, cardDialogHeader as cardDialogHeader2 } from "@dxos/react-ui-stack";
|
|
424
422
|
var CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;
|
|
@@ -460,15 +458,16 @@ var CreateSpaceDialog = () => {
|
|
|
460
458
|
className: cardDialogHeader2
|
|
461
459
|
}, /* @__PURE__ */ React4.createElement(Dialog2.Title, null, t("create space dialog title")), /* @__PURE__ */ React4.createElement(Dialog2.Close, {
|
|
462
460
|
asChild: true
|
|
463
|
-
}, /* @__PURE__ */ React4.createElement(
|
|
461
|
+
}, /* @__PURE__ */ React4.createElement(IconButton2, {
|
|
464
462
|
ref: closeRef,
|
|
463
|
+
icon: "ph--x--regular",
|
|
464
|
+
size: 4,
|
|
465
|
+
label: "Close",
|
|
466
|
+
iconOnly: true,
|
|
465
467
|
density: "fine",
|
|
466
468
|
variant: "ghost",
|
|
467
469
|
autoFocus: true
|
|
468
|
-
}, /* @__PURE__ */ React4.createElement(
|
|
469
|
-
icon: "ph--x--regular",
|
|
470
|
-
size: 4
|
|
471
|
-
})))), /* @__PURE__ */ React4.createElement("div", {
|
|
470
|
+
}))), /* @__PURE__ */ React4.createElement("div", {
|
|
472
471
|
role: "none",
|
|
473
472
|
className: "contents"
|
|
474
473
|
}, /* @__PURE__ */ React4.createElement(Form2, {
|
|
@@ -490,24 +489,26 @@ var CreateSpaceDialog = () => {
|
|
|
490
489
|
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
|
491
490
|
import React5 from "react";
|
|
492
491
|
import { useTranslation as useTranslation5 } from "@dxos/react-ui";
|
|
493
|
-
var CollectionSection = ({
|
|
492
|
+
var CollectionSection = ({ role, subject }) => {
|
|
494
493
|
var _effect = _useSignals5();
|
|
495
494
|
try {
|
|
496
495
|
const { t } = useTranslation5(meta.id);
|
|
497
496
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
497
|
+
role,
|
|
498
498
|
className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
499
499
|
}, /* @__PURE__ */ React5.createElement("span", {
|
|
500
500
|
className: "truncate"
|
|
501
|
-
},
|
|
501
|
+
}, subject.name ?? t("unnamed collection label")));
|
|
502
502
|
} finally {
|
|
503
503
|
_effect.f();
|
|
504
504
|
}
|
|
505
505
|
};
|
|
506
506
|
|
|
507
|
-
// src/components/JoinDialog.tsx
|
|
507
|
+
// src/components/JoinDialog/JoinDialog.tsx
|
|
508
508
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
509
509
|
import React6, { useCallback as useCallback5 } from "react";
|
|
510
|
-
import { LayoutAction as LayoutAction4, createIntent as createIntent4
|
|
510
|
+
import { LayoutAction as LayoutAction4, createIntent as createIntent4 } from "@dxos/app-framework";
|
|
511
|
+
import { useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework/react";
|
|
511
512
|
import { Trigger } from "@dxos/async";
|
|
512
513
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
513
514
|
import { useClient as useClient3 } from "@dxos/react-client";
|
|
@@ -620,22 +621,24 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
620
621
|
}
|
|
621
622
|
};
|
|
622
623
|
|
|
623
|
-
// src/components/MembersContainer.tsx
|
|
624
|
+
// src/components/MembersContainer/MembersContainer.tsx
|
|
624
625
|
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
625
|
-
import React7, { useCallback as useCallback6, useMemo, useState as useState3 } from "react";
|
|
626
|
+
import React7, { useCallback as useCallback6, useMemo as useMemo2, useState as useState3 } from "react";
|
|
626
627
|
import { QR } from "react-qr-rounded";
|
|
627
|
-
import { createIntent as createIntent5
|
|
628
|
+
import { createIntent as createIntent5 } from "@dxos/app-framework";
|
|
629
|
+
import { useIntentDispatcher as useIntentDispatcher5 } from "@dxos/app-framework/react";
|
|
630
|
+
import { Obj as Obj3 } from "@dxos/echo";
|
|
628
631
|
import { log } from "@dxos/log";
|
|
629
632
|
import { useConfig } from "@dxos/react-client";
|
|
630
|
-
import {
|
|
633
|
+
import { useSpaceInvitations } from "@dxos/react-client/echo";
|
|
631
634
|
import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
|
|
632
|
-
import { Button as
|
|
635
|
+
import { Button as Button2, Clipboard, Icon as Icon3, Input, useId, useTranslation as useTranslation7 } from "@dxos/react-ui";
|
|
633
636
|
import { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
634
637
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
635
|
-
import {
|
|
638
|
+
import { Collection } from "@dxos/schema";
|
|
636
639
|
import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport } from "@dxos/shell/react";
|
|
637
640
|
import { hexToEmoji } from "@dxos/util";
|
|
638
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer.tsx";
|
|
641
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer/MembersContainer.tsx";
|
|
639
642
|
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
640
643
|
var handleInvitationEvent = (invitation, subscription) => {
|
|
641
644
|
const invitationCode = InvitationEncoder.encode(invitation);
|
|
@@ -645,7 +648,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
645
648
|
authCode: invitation.authCode
|
|
646
649
|
}), void 0, {
|
|
647
650
|
F: __dxlog_file2,
|
|
648
|
-
L:
|
|
651
|
+
L: 41,
|
|
649
652
|
S: void 0,
|
|
650
653
|
C: (f, a) => f(...a)
|
|
651
654
|
});
|
|
@@ -667,7 +670,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
667
670
|
setInternalActiveAction(nextAction);
|
|
668
671
|
localStorage.setItem(activeActionKey, nextAction);
|
|
669
672
|
};
|
|
670
|
-
const target = space.properties[
|
|
673
|
+
const target = space.properties[Collection.Collection.typename]?.target?.objects[0]?.target;
|
|
671
674
|
const locked = space.properties[COMPOSER_SPACE_LOCK];
|
|
672
675
|
const handleChangeLocked = useCallback6(() => {
|
|
673
676
|
space.properties[COMPOSER_SPACE_LOCK] = !locked;
|
|
@@ -675,7 +678,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
675
678
|
locked,
|
|
676
679
|
space
|
|
677
680
|
]);
|
|
678
|
-
const inviteActions =
|
|
681
|
+
const inviteActions = useMemo2(() => ({
|
|
679
682
|
inviteOne: {
|
|
680
683
|
label: t("invite one label", {
|
|
681
684
|
ns: "os"
|
|
@@ -691,7 +694,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
691
694
|
type: Invitation.Type.INTERACTIVE,
|
|
692
695
|
authMethod: Invitation.AuthMethod.SHARED_SECRET,
|
|
693
696
|
multiUse: false,
|
|
694
|
-
target: target &&
|
|
697
|
+
target: target && Obj3.getDXN(target).toString()
|
|
695
698
|
}));
|
|
696
699
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
697
700
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
@@ -713,7 +716,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
713
716
|
type: Invitation.Type.DELEGATED,
|
|
714
717
|
authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
|
|
715
718
|
multiUse: true,
|
|
716
|
-
target: target &&
|
|
719
|
+
target: target && Obj3.getDXN(target).toString()
|
|
717
720
|
}));
|
|
718
721
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
719
722
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
@@ -837,7 +840,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
|
|
|
837
840
|
className: "sr-only"
|
|
838
841
|
}, t("qr label")), /* @__PURE__ */ React7.createElement(Clipboard.Button, {
|
|
839
842
|
value: url ?? "never"
|
|
840
|
-
})), /* @__PURE__ */ React7.createElement(
|
|
843
|
+
})), /* @__PURE__ */ React7.createElement(Button2, {
|
|
841
844
|
variant: "ghost",
|
|
842
845
|
onClick: onCancel
|
|
843
846
|
}, t("cancel label")));
|
|
@@ -861,7 +864,7 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
861
864
|
code,
|
|
862
865
|
large: true,
|
|
863
866
|
classNames: "mli-auto mlb-2 text-center grow"
|
|
864
|
-
}), /* @__PURE__ */ React7.createElement(
|
|
867
|
+
}), /* @__PURE__ */ React7.createElement(Button2, {
|
|
865
868
|
variant: "ghost",
|
|
866
869
|
onClick: onCancel
|
|
867
870
|
}, t("cancel label")));
|
|
@@ -872,11 +875,11 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
872
875
|
var InvitationComplete = ({ statusValue }) => {
|
|
873
876
|
var _effect = _useSignals7();
|
|
874
877
|
try {
|
|
875
|
-
return statusValue > 0 ? /* @__PURE__ */ React7.createElement(
|
|
878
|
+
return statusValue > 0 ? /* @__PURE__ */ React7.createElement(Icon3, {
|
|
876
879
|
icon: "ph--check--regular",
|
|
877
880
|
size: 6,
|
|
878
881
|
classNames: "m-1.5"
|
|
879
|
-
}) : /* @__PURE__ */ React7.createElement(
|
|
882
|
+
}) : /* @__PURE__ */ React7.createElement(Icon3, {
|
|
880
883
|
icon: "ph--x--regular",
|
|
881
884
|
size: 6,
|
|
882
885
|
classNames: "m-1.5"
|
|
@@ -891,7 +894,7 @@ import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking"
|
|
|
891
894
|
import React8 from "react";
|
|
892
895
|
import { getSpace as getSpace2 } from "@dxos/client/echo";
|
|
893
896
|
import { useClient as useClient4 } from "@dxos/react-client";
|
|
894
|
-
import { DropdownMenu, Icon as
|
|
897
|
+
import { DropdownMenu, Icon as Icon4, toLocalizedString as toLocalizedString2, useTranslation as useTranslation8 } from "@dxos/react-ui";
|
|
895
898
|
var MenuFooter = ({ object }) => {
|
|
896
899
|
var _effect = _useSignals8();
|
|
897
900
|
try {
|
|
@@ -907,7 +910,7 @@ var MenuFooter = ({ object }) => {
|
|
|
907
910
|
className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
|
|
908
911
|
}, t("location label")), /* @__PURE__ */ React8.createElement("dd", {
|
|
909
912
|
className: "line-clamp-3"
|
|
910
|
-
}, /* @__PURE__ */ React8.createElement(
|
|
913
|
+
}, /* @__PURE__ */ React8.createElement(Icon4, {
|
|
911
914
|
icon: "ph--planet--regular",
|
|
912
915
|
classNames: "inline-block mie-1"
|
|
913
916
|
}), toLocalizedString2(spaceName, t)))) : null;
|
|
@@ -916,153 +919,26 @@ var MenuFooter = ({ object }) => {
|
|
|
916
919
|
}
|
|
917
920
|
};
|
|
918
921
|
|
|
919
|
-
// src/components/
|
|
920
|
-
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
921
|
-
import React10, { useMemo as useMemo2 } from "react";
|
|
922
|
-
import { Surface } from "@dxos/app-framework";
|
|
923
|
-
import { Clipboard as Clipboard2, Toolbar } from "@dxos/react-ui";
|
|
924
|
-
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
925
|
-
|
|
926
|
-
// src/components/ObjectSettings/BaseObjectSettings.tsx
|
|
922
|
+
// src/components/ObjectRenamePopover/ObjectRenamePopover.tsx
|
|
927
923
|
import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
|
|
928
|
-
import React9, { useRef as useRef3 } from "react";
|
|
929
|
-
import {
|
|
930
|
-
|
|
924
|
+
import React9, { useCallback as useCallback7, useRef as useRef3, useState as useState4 } from "react";
|
|
925
|
+
import { LayoutAction as LayoutAction5, createIntent as createIntent6 } from "@dxos/app-framework";
|
|
926
|
+
import { useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework/react";
|
|
927
|
+
import { Obj as Obj4 } from "@dxos/echo";
|
|
928
|
+
import { log as log2 } from "@dxos/log";
|
|
929
|
+
import { Button as Button3, Input as Input2, useTranslation as useTranslation9 } from "@dxos/react-ui";
|
|
930
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectRenamePopover/ObjectRenamePopover.tsx";
|
|
931
|
+
var OBJECT_RENAME_POPOVER = `${meta.id}/ObjectRenamePopover`;
|
|
932
|
+
var ObjectRenamePopover = ({ object }) => {
|
|
931
933
|
var _effect = _useSignals9();
|
|
932
934
|
try {
|
|
933
935
|
const { t } = useTranslation9(meta.id);
|
|
934
|
-
const
|
|
935
|
-
|
|
936
|
-
ref: inputRef,
|
|
937
|
-
placeholder: t("name placeholder"),
|
|
938
|
-
// TODO(burdon): Use annotation to get the name field.
|
|
939
|
-
value: object.name ?? "",
|
|
940
|
-
onChange: (event) => {
|
|
941
|
-
object.name = event.target.value;
|
|
942
|
-
},
|
|
943
|
-
onKeyDown: (event) => {
|
|
944
|
-
if (event.key === "Enter") {
|
|
945
|
-
inputRef.current?.blur();
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
})), children);
|
|
949
|
-
} finally {
|
|
950
|
-
_effect.f();
|
|
951
|
-
}
|
|
952
|
-
};
|
|
953
|
-
|
|
954
|
-
// src/components/ObjectSettings/ObjectSettingsContainer.tsx
|
|
955
|
-
var ObjectSettingsContainer = ({ object, role }) => {
|
|
956
|
-
var _effect = _useSignals10();
|
|
957
|
-
try {
|
|
958
|
-
const data = useMemo2(() => ({
|
|
959
|
-
subject: object
|
|
960
|
-
}), [
|
|
961
|
-
object
|
|
962
|
-
]);
|
|
963
|
-
return /* @__PURE__ */ React10.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React10.createElement(StackItem2.Content, {
|
|
964
|
-
toolbar: true
|
|
965
|
-
}, /* @__PURE__ */ React10.createElement(Toolbar.Root, null), /* @__PURE__ */ React10.createElement("div", {
|
|
966
|
-
role: "none",
|
|
967
|
-
className: "overflow-y-auto pli-cardSpacingInline plb-cardSpacingBlock"
|
|
968
|
-
}, /* @__PURE__ */ React10.createElement(BaseObjectSettings, {
|
|
969
|
-
object
|
|
970
|
-
}, /* @__PURE__ */ React10.createElement(Surface, {
|
|
971
|
-
role: "base-object-settings",
|
|
972
|
-
data
|
|
973
|
-
})), /* @__PURE__ */ React10.createElement(Surface, {
|
|
974
|
-
role: "object-settings",
|
|
975
|
-
data
|
|
976
|
-
}))));
|
|
977
|
-
} finally {
|
|
978
|
-
_effect.f();
|
|
979
|
-
}
|
|
980
|
-
};
|
|
981
|
-
|
|
982
|
-
// src/components/PersistenceStatus.tsx
|
|
983
|
-
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
984
|
-
import React11, { useEffect as useEffect2, useState as useState4 } from "react";
|
|
985
|
-
import { debounce } from "@dxos/async";
|
|
986
|
-
import { Icon as Icon7, Tooltip, useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
987
|
-
import { mx, staticPlaceholderText, warningText } from "@dxos/react-ui-theme";
|
|
988
|
-
var PersistenceStatus = ({ db }) => {
|
|
989
|
-
var _effect = _useSignals11();
|
|
990
|
-
try {
|
|
991
|
-
const { t } = useTranslation10(meta.id);
|
|
992
|
-
const [displayMessage, setDisplayMessage] = useState4(false);
|
|
993
|
-
const [status, naturalSetStatus] = useState4(0);
|
|
994
|
-
const [prevStatus, setPrevStatus] = useState4(0);
|
|
995
|
-
const _setStatus = debounce(naturalSetStatus, 500);
|
|
996
|
-
useEffect2(() => {
|
|
997
|
-
setPrevStatus(status);
|
|
998
|
-
if (prevStatus !== status && status === 0) {
|
|
999
|
-
setDisplayMessage(true);
|
|
1000
|
-
const timeout = setTimeout(() => setDisplayMessage(false), 5e3);
|
|
1001
|
-
return () => clearTimeout(timeout);
|
|
1002
|
-
}
|
|
1003
|
-
}, [
|
|
1004
|
-
status
|
|
1005
|
-
]);
|
|
1006
|
-
switch (status) {
|
|
1007
|
-
case 2:
|
|
1008
|
-
return /* @__PURE__ */ React11.createElement("div", {
|
|
1009
|
-
className: "flex items-center"
|
|
1010
|
-
}, /* @__PURE__ */ React11.createElement(Icon7, {
|
|
1011
|
-
icon: "ph--warning--regular",
|
|
1012
|
-
size: 4,
|
|
1013
|
-
classNames: "me-1"
|
|
1014
|
-
}), /* @__PURE__ */ React11.createElement("span", {
|
|
1015
|
-
className: mx("text-sm", warningText)
|
|
1016
|
-
}, t("persistence error label")));
|
|
1017
|
-
case 1:
|
|
1018
|
-
return /* @__PURE__ */ React11.createElement("div", {
|
|
1019
|
-
className: "flex items-center"
|
|
1020
|
-
}, /* @__PURE__ */ React11.createElement(Icon7, {
|
|
1021
|
-
icon: "ph--arrows-counter-clockwise--regular",
|
|
1022
|
-
size: 4,
|
|
1023
|
-
classNames: "me-1"
|
|
1024
|
-
}), /* @__PURE__ */ React11.createElement("span", {
|
|
1025
|
-
className: mx("text-sm", staticPlaceholderText)
|
|
1026
|
-
}, t("persistence pending label")));
|
|
1027
|
-
case 0:
|
|
1028
|
-
default:
|
|
1029
|
-
return /* @__PURE__ */ React11.createElement(Tooltip.Trigger, {
|
|
1030
|
-
delayDuration: 400,
|
|
1031
|
-
role: "status",
|
|
1032
|
-
content: t("persisted locally message"),
|
|
1033
|
-
className: "flex items-center"
|
|
1034
|
-
}, /* @__PURE__ */ React11.createElement(Icon7, {
|
|
1035
|
-
icon: "ph--check-circle--regular",
|
|
1036
|
-
size: 4,
|
|
1037
|
-
classNames: "me-1"
|
|
1038
|
-
}), displayMessage && /* @__PURE__ */ React11.createElement("span", {
|
|
1039
|
-
className: mx("text-sm", staticPlaceholderText)
|
|
1040
|
-
}, t("persisted locally label")));
|
|
1041
|
-
}
|
|
1042
|
-
} finally {
|
|
1043
|
-
_effect.f();
|
|
1044
|
-
}
|
|
1045
|
-
};
|
|
1046
|
-
|
|
1047
|
-
// src/components/PopoverRenameObject.tsx
|
|
1048
|
-
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1049
|
-
import React12, { useCallback as useCallback7, useRef as useRef4, useState as useState5 } from "react";
|
|
1050
|
-
import { LayoutAction as LayoutAction5, createIntent as createIntent6, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
|
|
1051
|
-
import { Obj as Obj2 } from "@dxos/echo";
|
|
1052
|
-
import { log as log2 } from "@dxos/log";
|
|
1053
|
-
import { Button as Button5, Input as Input3, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1054
|
-
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
1055
|
-
var POPOVER_RENAME_OBJECT = `${meta.id}/PopoverRenameObject`;
|
|
1056
|
-
var PopoverRenameObject = ({ object }) => {
|
|
1057
|
-
var _effect = _useSignals12();
|
|
1058
|
-
try {
|
|
1059
|
-
const { t } = useTranslation11(meta.id);
|
|
1060
|
-
const doneButton = useRef4(null);
|
|
1061
|
-
const [name, setName] = useState5(Obj2.getLabel(object));
|
|
936
|
+
const doneButton = useRef3(null);
|
|
937
|
+
const [name, setName] = useState4(Obj4.getLabel(object));
|
|
1062
938
|
const { dispatchPromise: dispatch } = useIntentDispatcher6();
|
|
1063
939
|
const handleDone = useCallback7(() => {
|
|
1064
940
|
try {
|
|
1065
|
-
name &&
|
|
941
|
+
name && Obj4.setLabel(object, name);
|
|
1066
942
|
} catch (err) {
|
|
1067
943
|
log2.error("Failed to rename object", {
|
|
1068
944
|
err
|
|
@@ -1085,21 +961,21 @@ var PopoverRenameObject = ({ object }) => {
|
|
|
1085
961
|
object,
|
|
1086
962
|
name
|
|
1087
963
|
]);
|
|
1088
|
-
return /* @__PURE__ */
|
|
964
|
+
return /* @__PURE__ */ React9.createElement("div", {
|
|
1089
965
|
role: "none",
|
|
1090
966
|
className: "p-2 flex gap-2"
|
|
1091
|
-
}, /* @__PURE__ */
|
|
967
|
+
}, /* @__PURE__ */ React9.createElement("div", {
|
|
1092
968
|
role: "none",
|
|
1093
969
|
className: "flex-1"
|
|
1094
|
-
}, /* @__PURE__ */
|
|
970
|
+
}, /* @__PURE__ */ React9.createElement(Input2.Root, null, /* @__PURE__ */ React9.createElement(Input2.Label, {
|
|
1095
971
|
srOnly: true
|
|
1096
|
-
}, t("object name label")), /* @__PURE__ */
|
|
972
|
+
}, t("object name label")), /* @__PURE__ */ React9.createElement(Input2.TextInput, {
|
|
1097
973
|
placeholder: t("object placeholder"),
|
|
1098
974
|
value: name,
|
|
1099
975
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1100
|
-
onChange: ({ target: { value } }) => setName(
|
|
976
|
+
onChange: ({ target: { value: value2 } }) => setName(value2),
|
|
1101
977
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1102
|
-
}))), /* @__PURE__ */
|
|
978
|
+
}))), /* @__PURE__ */ React9.createElement(Button3, {
|
|
1103
979
|
ref: doneButton,
|
|
1104
980
|
classNames: "self-stretch",
|
|
1105
981
|
onClick: handleDone
|
|
@@ -1111,18 +987,19 @@ var PopoverRenameObject = ({ object }) => {
|
|
|
1111
987
|
}
|
|
1112
988
|
};
|
|
1113
989
|
|
|
1114
|
-
// src/components/
|
|
1115
|
-
import { useSignals as
|
|
1116
|
-
import
|
|
1117
|
-
import { LayoutAction as LayoutAction6, createIntent as createIntent7
|
|
1118
|
-
import {
|
|
1119
|
-
|
|
1120
|
-
var
|
|
1121
|
-
|
|
990
|
+
// src/components/SpaceRenamePopover/SpaceRenamePopover.tsx
|
|
991
|
+
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
992
|
+
import React10, { useCallback as useCallback8, useRef as useRef4, useState as useState5 } from "react";
|
|
993
|
+
import { LayoutAction as LayoutAction6, createIntent as createIntent7 } from "@dxos/app-framework";
|
|
994
|
+
import { useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework/react";
|
|
995
|
+
import { Button as Button4, Input as Input3, Popover, useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
996
|
+
var SPACE_RENAME_POPOVER = `${meta.id}/SpaceRenamePopover`;
|
|
997
|
+
var SpaceRenamePopover = ({ space }) => {
|
|
998
|
+
var _effect = _useSignals10();
|
|
1122
999
|
try {
|
|
1123
|
-
const { t } =
|
|
1124
|
-
const doneButton =
|
|
1125
|
-
const [name, setName] =
|
|
1000
|
+
const { t } = useTranslation10(meta.id);
|
|
1001
|
+
const doneButton = useRef4(null);
|
|
1002
|
+
const [name, setName] = useState5(space.properties.name ?? "");
|
|
1126
1003
|
const { dispatchPromise: dispatch } = useIntentDispatcher7();
|
|
1127
1004
|
const handleDone = useCallback8(() => {
|
|
1128
1005
|
space.properties.name = name;
|
|
@@ -1138,24 +1015,24 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1138
1015
|
space,
|
|
1139
1016
|
name
|
|
1140
1017
|
]);
|
|
1141
|
-
return /* @__PURE__ */
|
|
1018
|
+
return /* @__PURE__ */ React10.createElement("div", {
|
|
1142
1019
|
role: "none",
|
|
1143
1020
|
className: "p-2 flex gap-2"
|
|
1144
|
-
}, /* @__PURE__ */
|
|
1021
|
+
}, /* @__PURE__ */ React10.createElement("div", {
|
|
1145
1022
|
role: "none",
|
|
1146
1023
|
className: "flex-1"
|
|
1147
|
-
}, /* @__PURE__ */
|
|
1024
|
+
}, /* @__PURE__ */ React10.createElement(Input3.Root, null, /* @__PURE__ */ React10.createElement(Input3.Label, {
|
|
1148
1025
|
srOnly: true
|
|
1149
|
-
}, t("space name label")), /* @__PURE__ */
|
|
1026
|
+
}, t("space name label")), /* @__PURE__ */ React10.createElement(Input3.TextInput, {
|
|
1150
1027
|
defaultValue: space.properties.name ?? "",
|
|
1151
1028
|
placeholder: t("unnamed space label"),
|
|
1152
|
-
onChange: ({ target: { value } }) => setName(
|
|
1029
|
+
onChange: ({ target: { value: value2 } }) => setName(value2),
|
|
1153
1030
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1154
1031
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1155
1032
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1156
|
-
}))), /* @__PURE__ */
|
|
1033
|
+
}))), /* @__PURE__ */ React10.createElement(Popover.Close, {
|
|
1157
1034
|
asChild: true
|
|
1158
|
-
}, /* @__PURE__ */
|
|
1035
|
+
}, /* @__PURE__ */ React10.createElement(Button4, {
|
|
1159
1036
|
ref: doneButton,
|
|
1160
1037
|
classNames: "self-stretch",
|
|
1161
1038
|
onClick: handleDone
|
|
@@ -1168,73 +1045,90 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1168
1045
|
};
|
|
1169
1046
|
|
|
1170
1047
|
// src/components/SchemaContainer.tsx
|
|
1171
|
-
import { useSignals as
|
|
1172
|
-
import
|
|
1173
|
-
import { useTranslation as
|
|
1048
|
+
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
1049
|
+
import React11, { useEffect as useEffect2, useState as useState6 } from "react";
|
|
1050
|
+
import { useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1174
1051
|
import { ControlPage as ControlPage2, ControlSection as ControlSection2, controlItemClasses } from "@dxos/react-ui-form";
|
|
1175
|
-
import { StackItem as
|
|
1176
|
-
var useQuerySpaceSchemas = (space) => {
|
|
1177
|
-
const [schemas, setSchemas] = useState7([]);
|
|
1178
|
-
useEffect3(() => {
|
|
1179
|
-
const query = space.db.schemaRegistry.query();
|
|
1180
|
-
const initialResults = query.runSync();
|
|
1181
|
-
setSchemas(initialResults);
|
|
1182
|
-
const unsubscribe = query.subscribe(() => setSchemas(query.results));
|
|
1183
|
-
return () => unsubscribe();
|
|
1184
|
-
}, [
|
|
1185
|
-
space
|
|
1186
|
-
]);
|
|
1187
|
-
return schemas;
|
|
1188
|
-
};
|
|
1052
|
+
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
1189
1053
|
var SchemaContainer = ({ space }) => {
|
|
1190
|
-
var _effect =
|
|
1054
|
+
var _effect = _useSignals11();
|
|
1191
1055
|
try {
|
|
1192
|
-
const { t } =
|
|
1056
|
+
const { t } = useTranslation11(meta.id);
|
|
1193
1057
|
const schemas = useQuerySpaceSchemas(space);
|
|
1194
|
-
return /* @__PURE__ */
|
|
1058
|
+
return /* @__PURE__ */ React11.createElement(StackItem2.Content, {
|
|
1195
1059
|
scrollable: true
|
|
1196
|
-
}, /* @__PURE__ */
|
|
1060
|
+
}, /* @__PURE__ */ React11.createElement(ControlPage2, null, /* @__PURE__ */ React11.createElement(ControlSection2, {
|
|
1197
1061
|
title: t("schema verbose label"),
|
|
1198
1062
|
description: t("schema description")
|
|
1199
|
-
}, /* @__PURE__ */
|
|
1063
|
+
}, /* @__PURE__ */ React11.createElement("div", {
|
|
1200
1064
|
role: "none",
|
|
1201
1065
|
className: controlItemClasses
|
|
1202
|
-
}, schemas.length === 0 && /* @__PURE__ */
|
|
1066
|
+
}, schemas.length === 0 && /* @__PURE__ */ React11.createElement("div", {
|
|
1203
1067
|
className: "text-center plb-4"
|
|
1204
|
-
}, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */
|
|
1068
|
+
}, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React11.createElement("div", {
|
|
1069
|
+
role: "none",
|
|
1205
1070
|
key: schema.id
|
|
1206
|
-
},
|
|
1071
|
+
}, schema.typename))))));
|
|
1207
1072
|
} finally {
|
|
1208
1073
|
_effect.f();
|
|
1209
1074
|
}
|
|
1210
1075
|
};
|
|
1076
|
+
var useQuerySpaceSchemas = (space) => {
|
|
1077
|
+
const [schemas, setSchemas] = useState6([]);
|
|
1078
|
+
useEffect2(() => {
|
|
1079
|
+
const query = space.db.schemaRegistry.query();
|
|
1080
|
+
const initialResults = query.runSync();
|
|
1081
|
+
setSchemas(initialResults);
|
|
1082
|
+
const unsubscribe = query.subscribe(() => setSchemas(query.results));
|
|
1083
|
+
return () => unsubscribe();
|
|
1084
|
+
}, [
|
|
1085
|
+
space
|
|
1086
|
+
]);
|
|
1087
|
+
return schemas;
|
|
1088
|
+
};
|
|
1211
1089
|
|
|
1212
|
-
// src/components/SpacePresence.tsx
|
|
1213
|
-
import { useSignals as
|
|
1214
|
-
import * as
|
|
1215
|
-
import
|
|
1216
|
-
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework";
|
|
1090
|
+
// src/components/SpacePresence/SpacePresence.tsx
|
|
1091
|
+
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1092
|
+
import * as Option3 from "effect/Option";
|
|
1093
|
+
import React12, { forwardRef, useCallback as useCallback9, useEffect as useEffect3, useState as useState7 } from "react";
|
|
1094
|
+
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework/react";
|
|
1217
1095
|
import { generateName } from "@dxos/display-name";
|
|
1096
|
+
import { Obj as Obj5 } from "@dxos/echo";
|
|
1218
1097
|
import { PublicKey, useClient as useClient5 } from "@dxos/react-client";
|
|
1219
|
-
import {
|
|
1098
|
+
import { getSpace as getSpace3, useMembers } from "@dxos/react-client/echo";
|
|
1220
1099
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
1221
|
-
import { Avatar, List, ListItem, Popover as Popover2, Tooltip
|
|
1100
|
+
import { Avatar, List, ListItem, Popover as Popover2, Tooltip, useDefaultValue as useDefaultValue2, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1222
1101
|
import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
|
|
1223
1102
|
import { ComplexMap, keyToFallback } from "@dxos/util";
|
|
1103
|
+
|
|
1104
|
+
// src/capabilities/index.ts
|
|
1105
|
+
import { lazy } from "@dxos/app-framework";
|
|
1106
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-T6VJKIOA.mjs"));
|
|
1107
|
+
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-2NLWWFUB.mjs"));
|
|
1108
|
+
var IdentityCreated = lazy(() => import("./identity-created-OXLKCJE3.mjs"));
|
|
1109
|
+
var IntentResolver = lazy(() => import("./intent-resolver-4PHJWDXW.mjs"));
|
|
1110
|
+
var ReactRoot = lazy(() => import("./react-root-O5I5CDJ7.mjs"));
|
|
1111
|
+
var ReactSurface = lazy(() => import("./react-surface-J3XDMU2D.mjs"));
|
|
1112
|
+
var Repair = lazy(() => import("./repair-EHZS6MFY.mjs"));
|
|
1113
|
+
var SpaceSettings = lazy(() => import("./settings-MNQTKHL7.mjs"));
|
|
1114
|
+
var SpaceState = lazy(() => import("./state-45TXZQJ6.mjs"));
|
|
1115
|
+
var SpacesReady = lazy(() => import("./spaces-ready-ZPU24DA2.mjs"));
|
|
1116
|
+
|
|
1117
|
+
// src/components/SpacePresence/SpacePresence.tsx
|
|
1224
1118
|
var REFRESH_INTERVAL = 5e3;
|
|
1225
1119
|
var ACTIVITY_DURATION = 3e4;
|
|
1226
1120
|
var noViewers = new ComplexMap(PublicKey.hash);
|
|
1227
1121
|
var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
|
|
1228
1122
|
var SpacePresence = ({ object, spaceKey }) => {
|
|
1229
|
-
var _effect =
|
|
1123
|
+
var _effect = _useSignals12();
|
|
1230
1124
|
try {
|
|
1231
1125
|
const spaceState = useCapability(SpaceCapabilities.MutableState);
|
|
1232
1126
|
const client = useClient5();
|
|
1233
1127
|
const identity = useIdentity();
|
|
1234
1128
|
const space = spaceKey ? client.spaces.get(spaceKey) : getSpace3(object);
|
|
1235
1129
|
const spaceMembers = useMembers(space?.key);
|
|
1236
|
-
const [_moment, setMoment] =
|
|
1237
|
-
|
|
1130
|
+
const [_moment, setMoment] = useState7(Date.now());
|
|
1131
|
+
useEffect3(() => {
|
|
1238
1132
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1239
1133
|
return () => clearInterval(interval);
|
|
1240
1134
|
}, []);
|
|
@@ -1245,7 +1139,7 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1245
1139
|
if (!identity || !spaceState || !space) {
|
|
1246
1140
|
return null;
|
|
1247
1141
|
}
|
|
1248
|
-
const currentObjectViewers = spaceState.viewersByObject[
|
|
1142
|
+
const currentObjectViewers = spaceState.viewersByObject[Obj5.getDXN(object).toString()] ?? noViewers;
|
|
1249
1143
|
const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
|
|
1250
1144
|
const objectView = currentObjectViewers.get(member.identity.identityKey);
|
|
1251
1145
|
const lastSeen = objectView?.lastSeen ?? -Infinity;
|
|
@@ -1256,7 +1150,7 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1256
1150
|
lastSeen
|
|
1257
1151
|
};
|
|
1258
1152
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1259
|
-
return /* @__PURE__ */
|
|
1153
|
+
return /* @__PURE__ */ React12.createElement(FullPresence, {
|
|
1260
1154
|
members: membersForObject
|
|
1261
1155
|
});
|
|
1262
1156
|
} finally {
|
|
@@ -1264,46 +1158,46 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1264
1158
|
}
|
|
1265
1159
|
};
|
|
1266
1160
|
var FullPresence = (props) => {
|
|
1267
|
-
var _effect =
|
|
1161
|
+
var _effect = _useSignals12();
|
|
1268
1162
|
try {
|
|
1269
1163
|
const { size = 9, onMemberClick } = props;
|
|
1270
1164
|
const members = useDefaultValue2(props.members, () => []);
|
|
1271
1165
|
if (members.length === 0) {
|
|
1272
1166
|
return null;
|
|
1273
1167
|
}
|
|
1274
|
-
return /* @__PURE__ */
|
|
1168
|
+
return /* @__PURE__ */ React12.createElement("div", {
|
|
1275
1169
|
className: "dx-avatar-group",
|
|
1276
1170
|
"data-testid": "spacePlugin.presence"
|
|
1277
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1171
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
|
|
1278
1172
|
key: member.identity.identityKey.toHex(),
|
|
1279
1173
|
side: "bottom",
|
|
1280
1174
|
content: getName(member.identity),
|
|
1281
1175
|
className: "grid focus:outline-none"
|
|
1282
|
-
}, /* @__PURE__ */
|
|
1176
|
+
}, /* @__PURE__ */ React12.createElement(PresenceAvatar, {
|
|
1283
1177
|
identity: member.identity,
|
|
1284
1178
|
match: member.currentlyAttended,
|
|
1285
1179
|
index: members.length - i,
|
|
1286
1180
|
onClick: () => onMemberClick?.(member),
|
|
1287
1181
|
size
|
|
1288
|
-
}))), members.length > 3 && /* @__PURE__ */
|
|
1182
|
+
}))), members.length > 3 && /* @__PURE__ */ React12.createElement(Popover2.Root, null, /* @__PURE__ */ React12.createElement(Popover2.Trigger, {
|
|
1289
1183
|
className: "grid focus:outline-none"
|
|
1290
|
-
}, /* @__PURE__ */
|
|
1184
|
+
}, /* @__PURE__ */ React12.createElement(Avatar.Root, null, /* @__PURE__ */ React12.createElement(Avatar.Content, {
|
|
1291
1185
|
status: "inactive",
|
|
1292
1186
|
style: {
|
|
1293
1187
|
zIndex: members.length - 4
|
|
1294
1188
|
},
|
|
1295
1189
|
fallback: `+${members.length - 3}`,
|
|
1296
1190
|
size
|
|
1297
|
-
}))), /* @__PURE__ */
|
|
1191
|
+
}))), /* @__PURE__ */ React12.createElement(Popover2.Portal, null, /* @__PURE__ */ React12.createElement(Popover2.Content, {
|
|
1298
1192
|
side: "bottom"
|
|
1299
|
-
}, /* @__PURE__ */
|
|
1193
|
+
}, /* @__PURE__ */ React12.createElement(Popover2.Arrow, null), /* @__PURE__ */ React12.createElement(Popover2.Viewport, {
|
|
1300
1194
|
classNames: "max-bs-56"
|
|
1301
|
-
}, /* @__PURE__ */
|
|
1195
|
+
}, /* @__PURE__ */ React12.createElement(List, null, members.map((member) => /* @__PURE__ */ React12.createElement(ListItem.Root, {
|
|
1302
1196
|
key: member.identity.identityKey.toHex(),
|
|
1303
1197
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1304
1198
|
onClick: () => onMemberClick?.(member),
|
|
1305
1199
|
"data-testid": "identity-list-item"
|
|
1306
|
-
}, /* @__PURE__ */
|
|
1200
|
+
}, /* @__PURE__ */ React12.createElement(PresenceAvatar, {
|
|
1307
1201
|
identity: member.identity,
|
|
1308
1202
|
size,
|
|
1309
1203
|
showName: true,
|
|
@@ -1313,12 +1207,12 @@ var FullPresence = (props) => {
|
|
|
1313
1207
|
_effect.f();
|
|
1314
1208
|
}
|
|
1315
1209
|
};
|
|
1316
|
-
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
|
|
1317
|
-
var _effect =
|
|
1210
|
+
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match: match2, index, onClick, size }, forwardedRef) => {
|
|
1211
|
+
var _effect = _useSignals12();
|
|
1318
1212
|
try {
|
|
1319
|
-
const status =
|
|
1213
|
+
const status = match2 ? "current" : "active";
|
|
1320
1214
|
const fallbackValue = keyToFallback(identity.identityKey);
|
|
1321
|
-
return /* @__PURE__ */
|
|
1215
|
+
return /* @__PURE__ */ React12.createElement(Avatar.Root, null, /* @__PURE__ */ React12.createElement(Avatar.Content, {
|
|
1322
1216
|
status,
|
|
1323
1217
|
hue: identity.profile?.data?.hue || fallbackValue.hue,
|
|
1324
1218
|
"data-testid": "spacePlugin.presence.member",
|
|
@@ -1332,7 +1226,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
|
|
|
1332
1226
|
onClick,
|
|
1333
1227
|
fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
|
|
1334
1228
|
ref: forwardedRef
|
|
1335
|
-
}), /* @__PURE__ */
|
|
1229
|
+
}), /* @__PURE__ */ React12.createElement(Avatar.Label, {
|
|
1336
1230
|
classNames: showName ? "text-sm truncate pli-2" : "sr-only"
|
|
1337
1231
|
}, getName(identity)));
|
|
1338
1232
|
} finally {
|
|
@@ -1340,7 +1234,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
|
|
|
1340
1234
|
}
|
|
1341
1235
|
});
|
|
1342
1236
|
var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
1343
|
-
var _effect =
|
|
1237
|
+
var _effect = _useSignals12();
|
|
1344
1238
|
try {
|
|
1345
1239
|
const { hasAttention, isAncestor, isRelated } = useAttention(id);
|
|
1346
1240
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
@@ -1348,13 +1242,13 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1348
1242
|
const attended = useAttended();
|
|
1349
1243
|
const startOfAttention = attended.at(-1);
|
|
1350
1244
|
const path = usePath(graph, startOfAttention);
|
|
1351
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1245
|
+
const containsAttended = !open && !isAttended && id && Option3.isSome(path) ? path.value.includes(id) : false;
|
|
1352
1246
|
const getActiveViewers = (viewers2) => {
|
|
1353
1247
|
const moment = Date.now();
|
|
1354
1248
|
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
1355
1249
|
};
|
|
1356
|
-
const [activeViewers, setActiveViewers] =
|
|
1357
|
-
|
|
1250
|
+
const [activeViewers, setActiveViewers] = useState7(viewers ? getActiveViewers(viewers) : []);
|
|
1251
|
+
useEffect3(() => {
|
|
1358
1252
|
if (viewers) {
|
|
1359
1253
|
setActiveViewers(getActiveViewers(viewers));
|
|
1360
1254
|
const interval = setInterval(() => {
|
|
@@ -1365,7 +1259,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1365
1259
|
}, [
|
|
1366
1260
|
viewers
|
|
1367
1261
|
]);
|
|
1368
|
-
return /* @__PURE__ */
|
|
1262
|
+
return /* @__PURE__ */ React12.createElement(SmallPresence, {
|
|
1369
1263
|
count: activeViewers.length,
|
|
1370
1264
|
attended: isAttended,
|
|
1371
1265
|
containsAttended
|
|
@@ -1375,16 +1269,16 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1375
1269
|
}
|
|
1376
1270
|
};
|
|
1377
1271
|
var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
1378
|
-
var _effect =
|
|
1272
|
+
var _effect = _useSignals12();
|
|
1379
1273
|
try {
|
|
1380
|
-
const { t } =
|
|
1381
|
-
return /* @__PURE__ */
|
|
1274
|
+
const { t } = useTranslation12(meta.id);
|
|
1275
|
+
return /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
|
|
1382
1276
|
asChild: true,
|
|
1383
1277
|
content: t("presence label", {
|
|
1384
1278
|
count
|
|
1385
1279
|
}),
|
|
1386
1280
|
side: "bottom"
|
|
1387
|
-
}, /* @__PURE__ */
|
|
1281
|
+
}, /* @__PURE__ */ React12.createElement(AttentionGlyph, {
|
|
1388
1282
|
attended,
|
|
1389
1283
|
containsAttended,
|
|
1390
1284
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
@@ -1396,43 +1290,44 @@ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
|
1396
1290
|
};
|
|
1397
1291
|
|
|
1398
1292
|
// src/components/SpacePluginSettings.tsx
|
|
1399
|
-
import { useSignals as
|
|
1400
|
-
import
|
|
1401
|
-
import { createIntent as createIntent8
|
|
1293
|
+
import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
|
|
1294
|
+
import React13 from "react";
|
|
1295
|
+
import { createIntent as createIntent8 } from "@dxos/app-framework";
|
|
1296
|
+
import { useIntentDispatcher as useIntentDispatcher8 } from "@dxos/app-framework/react";
|
|
1402
1297
|
import { useClient as useClient6 } from "@dxos/react-client";
|
|
1403
1298
|
import { useSpaces as useSpaces2 } from "@dxos/react-client/echo";
|
|
1404
|
-
import { IconButton, Input as
|
|
1299
|
+
import { IconButton as IconButton3, Input as Input4, List as List2, ListItem as ListItem2, toLocalizedString as toLocalizedString3, useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1405
1300
|
import { ControlGroup, ControlItemInput as ControlItemInput2, ControlPage as ControlPage3, ControlSection as ControlSection3, controlItemClasses as controlItemClasses2 } from "@dxos/react-ui-form";
|
|
1406
1301
|
var SpacePluginSettings = ({ settings }) => {
|
|
1407
|
-
var _effect =
|
|
1302
|
+
var _effect = _useSignals13();
|
|
1408
1303
|
try {
|
|
1409
|
-
const { t } =
|
|
1304
|
+
const { t } = useTranslation13(meta.id);
|
|
1410
1305
|
const client = useClient6();
|
|
1411
1306
|
const spaces = useSpaces2({
|
|
1412
1307
|
all: settings.showHidden
|
|
1413
1308
|
});
|
|
1414
1309
|
const { dispatchPromise: dispatch } = useIntentDispatcher8();
|
|
1415
|
-
return /* @__PURE__ */
|
|
1310
|
+
return /* @__PURE__ */ React13.createElement(ControlPage3, null, /* @__PURE__ */ React13.createElement(ControlSection3, {
|
|
1416
1311
|
title: t("space settings label"),
|
|
1417
1312
|
description: t("space settings description")
|
|
1418
|
-
}, /* @__PURE__ */
|
|
1313
|
+
}, /* @__PURE__ */ React13.createElement(ControlGroup, null, /* @__PURE__ */ React13.createElement(ControlItemInput2, {
|
|
1419
1314
|
title: t("show hidden spaces label")
|
|
1420
|
-
}, /* @__PURE__ */
|
|
1315
|
+
}, /* @__PURE__ */ React13.createElement(Input4.Switch, {
|
|
1421
1316
|
checked: settings.showHidden,
|
|
1422
1317
|
onCheckedChange: (checked) => settings.showHidden = !!checked
|
|
1423
|
-
}))), /* @__PURE__ */
|
|
1318
|
+
}))), /* @__PURE__ */ React13.createElement(List2, {
|
|
1424
1319
|
classNames: [
|
|
1425
1320
|
controlItemClasses2,
|
|
1426
1321
|
"flex flex-col gap-trimSm"
|
|
1427
1322
|
]
|
|
1428
|
-
}, spaces.map((space) => /* @__PURE__ */
|
|
1323
|
+
}, spaces.map((space) => /* @__PURE__ */ React13.createElement(ListItem2.Root, {
|
|
1429
1324
|
key: space.id,
|
|
1430
1325
|
classNames: "is-full items-center"
|
|
1431
|
-
}, /* @__PURE__ */
|
|
1326
|
+
}, /* @__PURE__ */ React13.createElement(ListItem2.Heading, {
|
|
1432
1327
|
classNames: "grow truncate !min-bs-0"
|
|
1433
1328
|
}, toLocalizedString3(getSpaceDisplayName(space, {
|
|
1434
1329
|
personal: space === client.spaces.default
|
|
1435
|
-
}), t)), /* @__PURE__ */
|
|
1330
|
+
}), t)), /* @__PURE__ */ React13.createElement(IconButton3, {
|
|
1436
1331
|
icon: "ph--faders--regular",
|
|
1437
1332
|
onClick: () => dispatch(createIntent8(SpaceAction.OpenSettings, {
|
|
1438
1333
|
space
|
|
@@ -1445,39 +1340,40 @@ var SpacePluginSettings = ({ settings }) => {
|
|
|
1445
1340
|
};
|
|
1446
1341
|
|
|
1447
1342
|
// src/components/SpaceSettings/SpaceSettingsContainer.tsx
|
|
1448
|
-
import { useSignals as
|
|
1449
|
-
import * as
|
|
1343
|
+
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1344
|
+
import * as Function3 from "effect/Function";
|
|
1450
1345
|
import * as Schema from "effect/Schema";
|
|
1451
|
-
import
|
|
1452
|
-
import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9
|
|
1346
|
+
import React14, { useCallback as useCallback10, useMemo as useMemo3, useState as useState8 } from "react";
|
|
1347
|
+
import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9 } from "@dxos/app-framework";
|
|
1348
|
+
import { useCapabilities, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework/react";
|
|
1453
1349
|
import { log as log3 } from "@dxos/log";
|
|
1454
1350
|
import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1455
1351
|
import { useClient as useClient7 } from "@dxos/react-client";
|
|
1456
1352
|
import { SpaceState as SpaceState2 } from "@dxos/react-client/echo";
|
|
1457
|
-
import { Button as
|
|
1353
|
+
import { Button as Button5, Input as Input5, useFileDownload, useMulticastObservable, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
1458
1354
|
import { ControlItem, ControlItemInput as ControlItemInput3, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
|
|
1459
1355
|
import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
|
|
1460
|
-
import { StackItem as
|
|
1356
|
+
import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
|
|
1461
1357
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
|
|
1462
1358
|
var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
|
|
1463
1359
|
archived: Schema.Boolean.annotations({
|
|
1464
|
-
title: "Archive
|
|
1360
|
+
title: "Archive Space"
|
|
1465
1361
|
})
|
|
1466
1362
|
})));
|
|
1467
1363
|
var SpaceSettingsContainer = ({ space }) => {
|
|
1468
|
-
var _effect =
|
|
1364
|
+
var _effect = _useSignals14();
|
|
1469
1365
|
try {
|
|
1470
|
-
const { t } =
|
|
1366
|
+
const { t } = useTranslation14(meta.id);
|
|
1471
1367
|
const { dispatchPromise: dispatch } = useIntentDispatcher9();
|
|
1472
1368
|
const client = useClient7();
|
|
1473
1369
|
const archived = useMulticastObservable(space.state) === SpaceState2.SPACE_INACTIVE;
|
|
1474
|
-
const [edgeReplication, setEdgeReplication] =
|
|
1370
|
+
const [edgeReplication, setEdgeReplication] = useState8(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
|
|
1475
1371
|
const toggleEdgeReplication = useCallback10(async (next) => {
|
|
1476
1372
|
setEdgeReplication(next);
|
|
1477
1373
|
await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1478
1374
|
log3.catch(err, void 0, {
|
|
1479
1375
|
F: __dxlog_file4,
|
|
1480
|
-
L:
|
|
1376
|
+
L: 58,
|
|
1481
1377
|
S: void 0,
|
|
1482
1378
|
C: (f, a) => f(...a)
|
|
1483
1379
|
});
|
|
@@ -1498,7 +1394,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1498
1394
|
space.properties.hue = properties.hue;
|
|
1499
1395
|
}
|
|
1500
1396
|
if (properties.archived && !archived) {
|
|
1501
|
-
void dispatch(
|
|
1397
|
+
void dispatch(Function3.pipe(createIntent9(SpaceAction.Close, {
|
|
1502
1398
|
space
|
|
1503
1399
|
}), chain2(LayoutAction7.SwitchWorkspace, {
|
|
1504
1400
|
part: "workspace",
|
|
@@ -1529,14 +1425,14 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1529
1425
|
]);
|
|
1530
1426
|
const customElements = useMemo3(() => ({
|
|
1531
1427
|
name: ({ type, label, getValue, onValueChange }) => {
|
|
1532
|
-
const handleChange = useCallback10(({ target: { value } }) => onValueChange(type,
|
|
1428
|
+
const handleChange = useCallback10(({ target: { value: value2 } }) => onValueChange(type, value2), [
|
|
1533
1429
|
onValueChange,
|
|
1534
1430
|
type
|
|
1535
1431
|
]);
|
|
1536
|
-
return /* @__PURE__ */
|
|
1432
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1537
1433
|
title: label,
|
|
1538
1434
|
description: t("display name description")
|
|
1539
|
-
}, /* @__PURE__ */
|
|
1435
|
+
}, /* @__PURE__ */ React14.createElement(Input5.TextInput, {
|
|
1540
1436
|
value: getValue(),
|
|
1541
1437
|
onChange: handleChange,
|
|
1542
1438
|
placeholder: t("display name input placeholder"),
|
|
@@ -1552,15 +1448,14 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1552
1448
|
onValueChange,
|
|
1553
1449
|
type
|
|
1554
1450
|
]);
|
|
1555
|
-
return /* @__PURE__ */
|
|
1451
|
+
return /* @__PURE__ */ React14.createElement(ControlItem, {
|
|
1556
1452
|
title: label,
|
|
1557
1453
|
description: t("icon description")
|
|
1558
|
-
}, /* @__PURE__ */
|
|
1454
|
+
}, /* @__PURE__ */ React14.createElement(IconPicker, {
|
|
1559
1455
|
value: getValue(),
|
|
1560
1456
|
onChange: handleChange,
|
|
1561
1457
|
onReset: handleReset,
|
|
1562
|
-
classNames: "justify-self-end"
|
|
1563
|
-
iconSize: 5
|
|
1458
|
+
classNames: "justify-self-end"
|
|
1564
1459
|
}));
|
|
1565
1460
|
},
|
|
1566
1461
|
hue: ({ type, label, getValue, onValueChange }) => {
|
|
@@ -1572,14 +1467,14 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1572
1467
|
onValueChange,
|
|
1573
1468
|
type
|
|
1574
1469
|
]);
|
|
1575
|
-
return /* @__PURE__ */
|
|
1470
|
+
return /* @__PURE__ */ React14.createElement(ControlItem, {
|
|
1576
1471
|
title: label,
|
|
1577
1472
|
description: t("hue description")
|
|
1578
|
-
}, /* @__PURE__ */
|
|
1473
|
+
}, /* @__PURE__ */ React14.createElement(HuePicker, {
|
|
1579
1474
|
value: getValue(),
|
|
1580
1475
|
onChange: handleChange,
|
|
1581
1476
|
onReset: handleReset,
|
|
1582
|
-
classNames: "
|
|
1477
|
+
classNames: "justify-self-end"
|
|
1583
1478
|
}));
|
|
1584
1479
|
},
|
|
1585
1480
|
edgeReplication: ({ type, label, getValue, onValueChange }) => {
|
|
@@ -1587,10 +1482,10 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1587
1482
|
onValueChange,
|
|
1588
1483
|
type
|
|
1589
1484
|
]);
|
|
1590
|
-
return /* @__PURE__ */
|
|
1485
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1591
1486
|
title: label,
|
|
1592
1487
|
description: t("edge replication description")
|
|
1593
|
-
}, /* @__PURE__ */
|
|
1488
|
+
}, /* @__PURE__ */ React14.createElement(Input5.Switch, {
|
|
1594
1489
|
checked: getValue(),
|
|
1595
1490
|
onCheckedChange: handleChange,
|
|
1596
1491
|
classNames: "justify-self-end"
|
|
@@ -1602,11 +1497,12 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1602
1497
|
type,
|
|
1603
1498
|
getValue
|
|
1604
1499
|
]);
|
|
1605
|
-
return /* @__PURE__ */
|
|
1500
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1606
1501
|
title: label,
|
|
1607
1502
|
description: t("archive space description")
|
|
1608
|
-
}, /* @__PURE__ */
|
|
1503
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1609
1504
|
disabled: space === client.spaces.default,
|
|
1505
|
+
variant: getValue() ? "default" : "destructive",
|
|
1610
1506
|
onClick: handleChange
|
|
1611
1507
|
}, getValue() ? t("unarchive space label") : t("archive space label")));
|
|
1612
1508
|
}
|
|
@@ -1614,16 +1510,37 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1614
1510
|
t,
|
|
1615
1511
|
space
|
|
1616
1512
|
]);
|
|
1617
|
-
|
|
1513
|
+
const download = useFileDownload();
|
|
1514
|
+
const handleBackup = useCallback10(async () => {
|
|
1515
|
+
const archive = await space.internal.export();
|
|
1516
|
+
download(new Blob([
|
|
1517
|
+
archive.contents
|
|
1518
|
+
]), archive.filename);
|
|
1519
|
+
}, [
|
|
1520
|
+
space,
|
|
1521
|
+
download
|
|
1522
|
+
]);
|
|
1523
|
+
const repairs = useCapabilities(SpaceCapabilities.Repair);
|
|
1524
|
+
const handleRepair = useCallback10(async () => {
|
|
1525
|
+
await Promise.all(repairs.map((repair) => repair({
|
|
1526
|
+
space,
|
|
1527
|
+
isDefault: client.spaces.default === space
|
|
1528
|
+
})));
|
|
1529
|
+
}, [
|
|
1530
|
+
client,
|
|
1531
|
+
space,
|
|
1532
|
+
repairs
|
|
1533
|
+
]);
|
|
1534
|
+
return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
|
|
1618
1535
|
scrollable: true
|
|
1619
|
-
}, /* @__PURE__ */
|
|
1536
|
+
}, /* @__PURE__ */ React14.createElement(ControlPage4, null, /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
1620
1537
|
title: t("space properties settings verbose label", {
|
|
1621
1538
|
ns: meta.id
|
|
1622
1539
|
}),
|
|
1623
1540
|
description: t("space properties settings description", {
|
|
1624
1541
|
ns: meta.id
|
|
1625
1542
|
})
|
|
1626
|
-
}, /* @__PURE__ */
|
|
1543
|
+
}, /* @__PURE__ */ React14.createElement(Form3, {
|
|
1627
1544
|
schema: FormSchema,
|
|
1628
1545
|
values,
|
|
1629
1546
|
autoSave: true,
|
|
@@ -1631,29 +1548,57 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1631
1548
|
Custom: customElements,
|
|
1632
1549
|
outerSpacing: false,
|
|
1633
1550
|
classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
1634
|
-
}))
|
|
1551
|
+
})), /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
1552
|
+
title: t("space controls title", {
|
|
1553
|
+
ns: meta.id
|
|
1554
|
+
}),
|
|
1555
|
+
description: t("space controls description", {
|
|
1556
|
+
ns: meta.id
|
|
1557
|
+
})
|
|
1558
|
+
}, /* @__PURE__ */ React14.createElement("div", {
|
|
1559
|
+
role: "none",
|
|
1560
|
+
className: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
1561
|
+
}, /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1562
|
+
title: t("backup space title", {
|
|
1563
|
+
ns: meta.id
|
|
1564
|
+
}),
|
|
1565
|
+
description: t("backup space description", {
|
|
1566
|
+
ns: meta.id
|
|
1567
|
+
})
|
|
1568
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1569
|
+
onClick: handleBackup
|
|
1570
|
+
}, t("download backup label"))), /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1571
|
+
title: t("repair space title", {
|
|
1572
|
+
ns: meta.id
|
|
1573
|
+
}),
|
|
1574
|
+
description: t("repair space description", {
|
|
1575
|
+
ns: meta.id
|
|
1576
|
+
})
|
|
1577
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1578
|
+
onClick: handleRepair
|
|
1579
|
+
}, t("repair space label")))))));
|
|
1635
1580
|
} finally {
|
|
1636
1581
|
_effect.f();
|
|
1637
1582
|
}
|
|
1638
1583
|
};
|
|
1639
1584
|
|
|
1640
1585
|
// src/components/SyncStatus/InlineSyncStatus.tsx
|
|
1641
|
-
import { useSignals as
|
|
1642
|
-
import * as
|
|
1643
|
-
import
|
|
1644
|
-
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework";
|
|
1586
|
+
import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
|
|
1587
|
+
import * as Option4 from "effect/Option";
|
|
1588
|
+
import React15, { useEffect as useEffect4, useState as useState9 } from "react";
|
|
1589
|
+
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework/react";
|
|
1645
1590
|
import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
|
|
1646
1591
|
import { EdgeReplicationSetting as EdgeReplicationSetting2 } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1647
1592
|
import { useClient as useClient8 } from "@dxos/react-client";
|
|
1648
1593
|
import { useSpaceSyncState } from "@dxos/react-client/echo";
|
|
1649
|
-
import { Tooltip as
|
|
1594
|
+
import { Tooltip as Tooltip2, useTranslation as useTranslation15 } from "@dxos/react-ui";
|
|
1650
1595
|
import { AttentionGlyph as AttentionGlyph2, useAttended as useAttended2, useAttention as useAttention2 } from "@dxos/react-ui-attention";
|
|
1651
1596
|
var useEdgeStatus = () => {
|
|
1652
|
-
const [status, setStatus] =
|
|
1597
|
+
const [status, setStatus] = useState9(EdgeStatus.ConnectionState.NOT_CONNECTED);
|
|
1653
1598
|
const client = useClient8();
|
|
1654
|
-
|
|
1599
|
+
useEffect4(() => {
|
|
1655
1600
|
client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
|
|
1656
|
-
setStatus(status2);
|
|
1601
|
+
setStatus(status2.state);
|
|
1657
1602
|
});
|
|
1658
1603
|
}, [
|
|
1659
1604
|
client
|
|
@@ -1661,9 +1606,9 @@ var useEdgeStatus = () => {
|
|
|
1661
1606
|
return status;
|
|
1662
1607
|
};
|
|
1663
1608
|
var InlineSyncStatus = ({ space, open }) => {
|
|
1664
|
-
var _effect =
|
|
1609
|
+
var _effect = _useSignals15();
|
|
1665
1610
|
try {
|
|
1666
|
-
const { t } =
|
|
1611
|
+
const { t } = useTranslation15(meta.id);
|
|
1667
1612
|
const id = space.id;
|
|
1668
1613
|
const { hasAttention, isAncestor, isRelated } = useAttention2(id);
|
|
1669
1614
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
@@ -1671,16 +1616,16 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1671
1616
|
const attended = useAttended2();
|
|
1672
1617
|
const startOfAttention = attended.at(-1);
|
|
1673
1618
|
const path = usePath(graph, startOfAttention);
|
|
1674
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1675
|
-
const connectedToEdge = useEdgeStatus() === EdgeStatus.CONNECTED;
|
|
1619
|
+
const containsAttended = !open && !isAttended && id && Option4.isSome(path) ? path.value.includes(id) : false;
|
|
1620
|
+
const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
|
|
1676
1621
|
const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
|
|
1677
1622
|
const syncState = useSpaceSyncState(space);
|
|
1678
1623
|
const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
|
|
1679
|
-
return /* @__PURE__ */
|
|
1624
|
+
return /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
|
|
1680
1625
|
asChild: true,
|
|
1681
1626
|
content: t("syncing label"),
|
|
1682
1627
|
side: "bottom"
|
|
1683
|
-
}, /* @__PURE__ */
|
|
1628
|
+
}, /* @__PURE__ */ React15.createElement(AttentionGlyph2, {
|
|
1684
1629
|
syncing,
|
|
1685
1630
|
attended: isAttended,
|
|
1686
1631
|
containsAttended,
|
|
@@ -1692,12 +1637,16 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1692
1637
|
};
|
|
1693
1638
|
|
|
1694
1639
|
// src/components/SyncStatus/SyncStatus.tsx
|
|
1695
|
-
import { useSignals as
|
|
1696
|
-
import
|
|
1640
|
+
import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
|
|
1641
|
+
import React16, { useEffect as useEffect5, useState as useState10 } from "react";
|
|
1697
1642
|
import { StatusBar } from "@dxos/plugin-status-bar";
|
|
1643
|
+
import { EdgeStatus as EdgeStatus2 } from "@dxos/protocols/proto/dxos/client/services";
|
|
1698
1644
|
import { useClient as useClient9 } from "@dxos/react-client";
|
|
1645
|
+
import { useStream } from "@dxos/react-client/devtools";
|
|
1699
1646
|
import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
|
|
1700
|
-
import { Icon as
|
|
1647
|
+
import { Icon as Icon5, Popover as Popover3, useTranslation as useTranslation16 } from "@dxos/react-ui";
|
|
1648
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
1649
|
+
import { Unit } from "@dxos/util";
|
|
1701
1650
|
|
|
1702
1651
|
// src/components/SyncStatus/save-tracker.ts
|
|
1703
1652
|
import { Context } from "@dxos/context";
|
|
@@ -1793,17 +1742,13 @@ var getIcon = (status) => {
|
|
|
1793
1742
|
// src/components/SyncStatus/SyncStatus.tsx
|
|
1794
1743
|
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1795
1744
|
var SyncStatus = () => {
|
|
1796
|
-
var _effect =
|
|
1745
|
+
var _effect = _useSignals16();
|
|
1797
1746
|
try {
|
|
1798
1747
|
const client = useClient9();
|
|
1799
1748
|
const state = useSyncState();
|
|
1800
|
-
const [saved, setSaved] =
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
setSaved(state2 === "saved");
|
|
1804
|
-
});
|
|
1805
|
-
}, []);
|
|
1806
|
-
return /* @__PURE__ */ React19.createElement(SyncStatusIndicator, {
|
|
1749
|
+
const [saved, setSaved] = useState10(true);
|
|
1750
|
+
useEffect5(() => createClientSaveTracker(client, (state2) => setSaved(state2 === "saved")), []);
|
|
1751
|
+
return /* @__PURE__ */ React16.createElement(SyncStatusIndicator, {
|
|
1807
1752
|
state,
|
|
1808
1753
|
saved
|
|
1809
1754
|
});
|
|
@@ -1812,9 +1757,9 @@ var SyncStatus = () => {
|
|
|
1812
1757
|
}
|
|
1813
1758
|
};
|
|
1814
1759
|
var SyncStatusIndicator = ({ state, saved }) => {
|
|
1815
|
-
var _effect =
|
|
1760
|
+
var _effect = _useSignals16();
|
|
1816
1761
|
try {
|
|
1817
|
-
const { t } =
|
|
1762
|
+
const { t } = useTranslation16(meta.id);
|
|
1818
1763
|
const summary = getSyncSummary(state);
|
|
1819
1764
|
const offline = Object.values(state).length === 0;
|
|
1820
1765
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
@@ -1825,8 +1770,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1825
1770
|
needsToUpload,
|
|
1826
1771
|
needsToDownload
|
|
1827
1772
|
});
|
|
1828
|
-
const [classNames, setClassNames] =
|
|
1829
|
-
|
|
1773
|
+
const [classNames, setClassNames] = useState10();
|
|
1774
|
+
useEffect5(() => {
|
|
1830
1775
|
setClassNames(void 0);
|
|
1831
1776
|
if (offline || !needsToUpload && !needsToDownload) {
|
|
1832
1777
|
return;
|
|
@@ -1841,60 +1786,260 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1841
1786
|
needsToDownload
|
|
1842
1787
|
]);
|
|
1843
1788
|
const title = t(`${status} label`);
|
|
1844
|
-
const icon = /* @__PURE__ */
|
|
1789
|
+
const icon = /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1845
1790
|
icon: getIcon(status),
|
|
1846
|
-
size: 4,
|
|
1847
1791
|
classNames
|
|
1848
1792
|
});
|
|
1849
|
-
return /* @__PURE__ */
|
|
1793
|
+
return /* @__PURE__ */ React16.createElement(Popover3.Root, null, /* @__PURE__ */ React16.createElement(Popover3.Trigger, {
|
|
1794
|
+
asChild: true
|
|
1795
|
+
}, /* @__PURE__ */ React16.createElement(StatusBar.Item, {
|
|
1850
1796
|
title
|
|
1851
|
-
}, icon);
|
|
1797
|
+
}, icon)), /* @__PURE__ */ React16.createElement(Popover3.Portal, null, /* @__PURE__ */ React16.createElement(Popover3.Content, null, /* @__PURE__ */ React16.createElement(EdgeConnectionPopover, null), /* @__PURE__ */ React16.createElement(Popover3.Arrow, null))));
|
|
1798
|
+
} finally {
|
|
1799
|
+
_effect.f();
|
|
1800
|
+
}
|
|
1801
|
+
};
|
|
1802
|
+
var useEdgeStatus2 = () => {
|
|
1803
|
+
const client = useClient9();
|
|
1804
|
+
const { status } = useStream(() => client.services.services.EdgeAgentService.queryEdgeStatus(), {});
|
|
1805
|
+
return status;
|
|
1806
|
+
};
|
|
1807
|
+
var EdgeConnectionPopover = () => {
|
|
1808
|
+
var _effect = _useSignals16();
|
|
1809
|
+
try {
|
|
1810
|
+
const status = useEdgeStatus2();
|
|
1811
|
+
const { t } = useTranslation16(meta.id);
|
|
1812
|
+
const isConnected = status?.state === EdgeStatus2.ConnectionState.CONNECTED;
|
|
1813
|
+
return /* @__PURE__ */ React16.createElement("div", {
|
|
1814
|
+
className: "min-is-[240px] p-2"
|
|
1815
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1816
|
+
className: "flex items-center gap-2 mbe-2"
|
|
1817
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1818
|
+
icon: isConnected ? "ph--check-circle--regular" : "ph--warning-circle--regular",
|
|
1819
|
+
classNames: mx(isConnected ? "text-successText" : "text-errorText animate-pulse")
|
|
1820
|
+
}), /* @__PURE__ */ React16.createElement("span", {
|
|
1821
|
+
className: "font-medium text-sm"
|
|
1822
|
+
}, isConnected ? t("sync edge connected label") : t("sync edge disconnected label"))), status?.state === EdgeStatus2.ConnectionState.NOT_CONNECTED && /* @__PURE__ */ React16.createElement("div", {
|
|
1823
|
+
className: "flex items-center gap-2 text-sm text-description"
|
|
1824
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1825
|
+
icon: "ph--cloud-x--regular"
|
|
1826
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync no connection label"))), status?.state === EdgeStatus2.ConnectionState.CONNECTED && /* @__PURE__ */ React16.createElement("div", {
|
|
1827
|
+
className: "space-y-2"
|
|
1828
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1829
|
+
className: "flex items-center justify-between text-sm"
|
|
1830
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1831
|
+
className: "flex items-center gap-2 text-description"
|
|
1832
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1833
|
+
icon: "ph--timer--regular"
|
|
1834
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync latency label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1835
|
+
value: status.rtt,
|
|
1836
|
+
format: Unit.Millisecond
|
|
1837
|
+
})), /* @__PURE__ */ React16.createElement("div", {
|
|
1838
|
+
className: "flex items-center justify-between text-sm"
|
|
1839
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1840
|
+
className: "flex items-center gap-2 text-description"
|
|
1841
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1842
|
+
icon: "ph--arrow-up--regular"
|
|
1843
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync upload label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1844
|
+
value: status.rateBytesUp,
|
|
1845
|
+
format: Unit.Kilobyte,
|
|
1846
|
+
suffix: "/s"
|
|
1847
|
+
})), /* @__PURE__ */ React16.createElement("div", {
|
|
1848
|
+
className: "flex items-center justify-between text-sm"
|
|
1849
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1850
|
+
className: "flex items-center gap-2 text-sm text-description"
|
|
1851
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1852
|
+
icon: "ph--arrow-down--regular"
|
|
1853
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync download label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1854
|
+
value: status.rateBytesDown,
|
|
1855
|
+
format: Unit.Kilobyte,
|
|
1856
|
+
suffix: "/s"
|
|
1857
|
+
}))));
|
|
1858
|
+
} finally {
|
|
1859
|
+
_effect.f();
|
|
1860
|
+
}
|
|
1861
|
+
};
|
|
1862
|
+
var UnitValue = ({ value: input, format, suffix }) => {
|
|
1863
|
+
var _effect = _useSignals16();
|
|
1864
|
+
try {
|
|
1865
|
+
const { formattedValue, unit } = format(input);
|
|
1866
|
+
return /* @__PURE__ */ React16.createElement("span", {
|
|
1867
|
+
className: "font-mono"
|
|
1868
|
+
}, formattedValue, /* @__PURE__ */ React16.createElement("span", {
|
|
1869
|
+
className: "mis-1 text-subdued"
|
|
1870
|
+
}, unit.symbol, suffix));
|
|
1852
1871
|
} finally {
|
|
1853
1872
|
_effect.f();
|
|
1854
1873
|
}
|
|
1855
1874
|
};
|
|
1856
1875
|
|
|
1876
|
+
// src/helpers/query.ts
|
|
1877
|
+
import * as Array2 from "effect/Array";
|
|
1878
|
+
import * as Effect3 from "effect/Effect";
|
|
1879
|
+
import * as EffectFunction from "effect/Function";
|
|
1880
|
+
import * as Match from "effect/Match";
|
|
1881
|
+
import * as Option5 from "effect/Option";
|
|
1882
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
1883
|
+
import { DXN, Filter as Filter2, Query } from "@dxos/echo";
|
|
1884
|
+
import { ReferenceAnnotationId, getTypeAnnotation as getTypeAnnotation3, unwrapOptional } from "@dxos/echo/internal";
|
|
1885
|
+
import { log as log4 } from "@dxos/log";
|
|
1886
|
+
import { Person } from "@dxos/types";
|
|
1887
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/helpers/query.ts";
|
|
1888
|
+
var evalQuery = (queryString) => {
|
|
1889
|
+
const globals = {
|
|
1890
|
+
Query,
|
|
1891
|
+
Filter: Filter2,
|
|
1892
|
+
Person
|
|
1893
|
+
};
|
|
1894
|
+
try {
|
|
1895
|
+
return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));
|
|
1896
|
+
} catch (err) {
|
|
1897
|
+
log4.catch(err, void 0, {
|
|
1898
|
+
F: __dxlog_file6,
|
|
1899
|
+
L: 33,
|
|
1900
|
+
S: void 0,
|
|
1901
|
+
C: (f, a) => f(...a)
|
|
1902
|
+
});
|
|
1903
|
+
return Query.select(Filter2.nothing());
|
|
1904
|
+
}
|
|
1905
|
+
};
|
|
1906
|
+
var resolveSchemaWithClientAndSpace = (client, space, query) => {
|
|
1907
|
+
const resolve = Effect3.fn(function* (dxn) {
|
|
1908
|
+
const typename = DXN.parse(dxn).asTypeDXN()?.type;
|
|
1909
|
+
if (!typename) {
|
|
1910
|
+
return Option5.none();
|
|
1911
|
+
}
|
|
1912
|
+
const staticSchema = client.graph.schemaRegistry.getSchema(typename);
|
|
1913
|
+
if (staticSchema) {
|
|
1914
|
+
return Option5.some(staticSchema);
|
|
1915
|
+
}
|
|
1916
|
+
const query2 = space.db.schemaRegistry.query({
|
|
1917
|
+
typename
|
|
1918
|
+
});
|
|
1919
|
+
const schemas = yield* Effect3.promise(() => query2.run());
|
|
1920
|
+
return Array2.head(schemas);
|
|
1921
|
+
});
|
|
1922
|
+
return resolveSchema(query, resolve).pipe(Effect3.map((schema) => Option5.getOrUndefined(schema)), Effect3.runPromise);
|
|
1923
|
+
};
|
|
1924
|
+
var resolveSchema = (query, resolve) => {
|
|
1925
|
+
return Match.value(query).pipe(
|
|
1926
|
+
Match.withReturnType(),
|
|
1927
|
+
// TODO(wittjosiah): Reconcile with filter match?
|
|
1928
|
+
Match.when({
|
|
1929
|
+
type: "select"
|
|
1930
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1931
|
+
Match.when({
|
|
1932
|
+
type: "filter"
|
|
1933
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1934
|
+
Match.when({
|
|
1935
|
+
type: "reference-traversal"
|
|
1936
|
+
}, ({ anchor, property }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(Option5.map((schema) => SchemaAST.getPropertySignatures(schema.ast)), Option5.flatMap((properties) => Array2.findFirst(properties, (p) => p.name === property)), Option5.flatMap((property2) => SchemaAST.getAnnotation(ReferenceAnnotationId)(unwrapOptional(property2))), Option5.map((annotation) => annotation.typename))), Effect3.flatMap(Option5.match({
|
|
1937
|
+
onNone: () => Effect3.succeed(Option5.none()),
|
|
1938
|
+
onSome: (typename) => resolve(DXN.fromTypename(typename).toString())
|
|
1939
|
+
})))),
|
|
1940
|
+
Match.when({
|
|
1941
|
+
type: "relation",
|
|
1942
|
+
filter: Match.defined
|
|
1943
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1944
|
+
Match.when({
|
|
1945
|
+
type: "relation-traversal"
|
|
1946
|
+
}, ({ anchor, direction }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(Option5.map((schema) => getTypeAnnotation3(schema)), Option5.flatMap((annotation) => Option5.fromNullable(direction === "source" ? annotation?.sourceSchema : annotation?.targetSchema)))), Effect3.flatMap(Option5.match({
|
|
1947
|
+
onNone: () => Effect3.succeed(Option5.none()),
|
|
1948
|
+
onSome: (typename) => resolve(typename)
|
|
1949
|
+
})))),
|
|
1950
|
+
Match.when({
|
|
1951
|
+
type: "options"
|
|
1952
|
+
}, ({ query: query2 }) => resolveSchema(query2, resolve)),
|
|
1953
|
+
Match.orElse((_q) => {
|
|
1954
|
+
return Effect3.succeed(Option5.none());
|
|
1955
|
+
})
|
|
1956
|
+
);
|
|
1957
|
+
};
|
|
1958
|
+
var typenameFromFilter = (filter) => Match.value(filter).pipe(Match.withReturnType(), Match.when({
|
|
1959
|
+
type: "object"
|
|
1960
|
+
}, ({ typename }) => Option5.fromNullable(typename)), Match.when({
|
|
1961
|
+
type: "and"
|
|
1962
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option5.isSome), Option5.flatten)), Match.when({
|
|
1963
|
+
type: "or"
|
|
1964
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option5.isSome), Option5.flatten)), Match.orElse(() => Option5.none()));
|
|
1965
|
+
var getQueryTarget = (query, space) => {
|
|
1966
|
+
return Match.value(query).pipe(Match.when({
|
|
1967
|
+
type: "options"
|
|
1968
|
+
}, ({ options }) => {
|
|
1969
|
+
return Option5.fromNullable(options.queues).pipe(Option5.flatMap((queues) => Array2.head(queues)), Option5.flatMap((queueDxn) => Option5.fromNullable(DXN.tryParse(queueDxn))), Option5.flatMap((queueDxn) => Option5.fromNullable(space?.queues.get(queueDxn))), Option5.getOrElse(() => space));
|
|
1970
|
+
}), Match.orElse(() => space));
|
|
1971
|
+
};
|
|
1972
|
+
|
|
1857
1973
|
// src/components/ViewEditor.tsx
|
|
1858
|
-
import { useSignals as
|
|
1859
|
-
import
|
|
1860
|
-
import {
|
|
1861
|
-
import {
|
|
1862
|
-
import {
|
|
1974
|
+
import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
|
|
1975
|
+
import * as Schema2 from "effect/Schema";
|
|
1976
|
+
import React17, { useCallback as useCallback11, useState as useState11 } from "react";
|
|
1977
|
+
import { createIntent as createIntent10 } from "@dxos/app-framework";
|
|
1978
|
+
import { useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework/react";
|
|
1979
|
+
import { DXN as DXN2, Filter as Filter3, Obj as Obj6, Query as Query2, Tag, Type as Type2 } from "@dxos/echo";
|
|
1863
1980
|
import { useClient as useClient10 } from "@dxos/react-client";
|
|
1864
|
-
import { getSpace as getSpace4,
|
|
1981
|
+
import { getSpace as getSpace4, useQuery as useQuery2 } from "@dxos/react-client/echo";
|
|
1982
|
+
import { useAsyncEffect } from "@dxos/react-ui";
|
|
1865
1983
|
import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
|
|
1866
|
-
import {
|
|
1867
|
-
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ViewEditor.tsx";
|
|
1984
|
+
import { View } from "@dxos/schema";
|
|
1868
1985
|
var ViewEditor = ({ view }) => {
|
|
1869
|
-
var _effect =
|
|
1986
|
+
var _effect = _useSignals17();
|
|
1870
1987
|
try {
|
|
1871
1988
|
const { dispatchPromise: dispatch } = useIntentDispatcher10();
|
|
1872
1989
|
const client = useClient10();
|
|
1873
1990
|
const space = getSpace4(view);
|
|
1874
|
-
const
|
|
1875
|
-
const
|
|
1876
|
-
const
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1991
|
+
const [schema, setSchema] = useState11(() => Schema2.Struct({}));
|
|
1992
|
+
const tags = useQuery2(space, Filter3.type(Tag.Tag));
|
|
1993
|
+
const types = useTypeOptions({
|
|
1994
|
+
space,
|
|
1995
|
+
annotation: {
|
|
1996
|
+
location: [
|
|
1997
|
+
"database",
|
|
1998
|
+
"runtime"
|
|
1999
|
+
],
|
|
2000
|
+
kind: [
|
|
2001
|
+
"user"
|
|
2002
|
+
],
|
|
2003
|
+
registered: [
|
|
2004
|
+
"registered"
|
|
1884
2005
|
]
|
|
1885
|
-
}
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
2006
|
+
}
|
|
2007
|
+
});
|
|
2008
|
+
useAsyncEffect(async () => {
|
|
2009
|
+
if (!view?.query || !space) {
|
|
2010
|
+
return;
|
|
2011
|
+
}
|
|
2012
|
+
const foundSchema = await resolveSchemaWithClientAndSpace(client, space, view.query.ast);
|
|
2013
|
+
if (foundSchema && foundSchema !== schema) {
|
|
2014
|
+
setSchema(() => foundSchema);
|
|
2015
|
+
}
|
|
2016
|
+
}, [
|
|
2017
|
+
client,
|
|
2018
|
+
space,
|
|
2019
|
+
view,
|
|
2020
|
+
schema
|
|
2021
|
+
]);
|
|
2022
|
+
const handleQueryChanged = useCallback11(async (newQuery, target) => {
|
|
2023
|
+
if (!view || !space) {
|
|
2024
|
+
return;
|
|
2025
|
+
}
|
|
2026
|
+
const queue = target && DXN2.tryParse(target) ? target : void 0;
|
|
2027
|
+
const query = queue ? Query2.fromAst(newQuery).options({
|
|
2028
|
+
queues: [
|
|
2029
|
+
queue
|
|
1893
2030
|
]
|
|
2031
|
+
}) : Query2.fromAst(newQuery);
|
|
2032
|
+
view.query.ast = query.ast;
|
|
2033
|
+
const newSchema = await resolveSchemaWithClientAndSpace(client, space, query.ast);
|
|
2034
|
+
if (!newSchema) {
|
|
2035
|
+
return;
|
|
2036
|
+
}
|
|
2037
|
+
const newView = View.make({
|
|
2038
|
+
query,
|
|
2039
|
+
jsonSchema: Type2.toJsonSchema(newSchema)
|
|
1894
2040
|
});
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
schema.updateTypename(typename2);
|
|
2041
|
+
view.projection = Obj6.getSnapshot(newView).projection;
|
|
2042
|
+
setSchema(() => newSchema);
|
|
1898
2043
|
}, [
|
|
1899
2044
|
view,
|
|
1900
2045
|
schema
|
|
@@ -1911,13 +2056,16 @@ var ViewEditor = ({ view }) => {
|
|
|
1911
2056
|
if (!space || !schema) {
|
|
1912
2057
|
return null;
|
|
1913
2058
|
}
|
|
1914
|
-
return /* @__PURE__ */
|
|
2059
|
+
return /* @__PURE__ */ React17.createElement(NaturalViewEditor, {
|
|
1915
2060
|
registry: space.db.schemaRegistry,
|
|
1916
2061
|
schema,
|
|
1917
2062
|
view,
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
2063
|
+
mode: "tag",
|
|
2064
|
+
outerSpacing: false,
|
|
2065
|
+
tags,
|
|
2066
|
+
types,
|
|
2067
|
+
onQueryChanged: handleQueryChanged,
|
|
2068
|
+
onDelete: Type2.isMutable(schema) ? handleDelete : void 0
|
|
1921
2069
|
});
|
|
1922
2070
|
} finally {
|
|
1923
2071
|
_effect.f();
|
|
@@ -1926,9 +2074,10 @@ var ViewEditor = ({ view }) => {
|
|
|
1926
2074
|
|
|
1927
2075
|
// src/components/index.ts
|
|
1928
2076
|
import { lazy as lazy2 } from "react";
|
|
1929
|
-
var
|
|
1930
|
-
var ObjectDetailsPanel = lazy2(() => import("./ObjectDetailsPanel-
|
|
1931
|
-
var
|
|
2077
|
+
var CollectionArticle = lazy2(() => import("./CollectionArticle-KHXYT3SH.mjs"));
|
|
2078
|
+
var ObjectDetailsPanel = lazy2(() => import("./ObjectDetailsPanel-6OFTT3GG.mjs"));
|
|
2079
|
+
var ObjectSettingsContainer = lazy2(() => import("./ObjectSettings-YXPJQMJ5.mjs"));
|
|
2080
|
+
var RecordArticle = lazy2(() => import("./RecordArticle-SSJ7PULS.mjs"));
|
|
1932
2081
|
|
|
1933
2082
|
export {
|
|
1934
2083
|
AwaitingObject,
|
|
@@ -1941,14 +2090,12 @@ export {
|
|
|
1941
2090
|
JoinDialog,
|
|
1942
2091
|
MembersContainer,
|
|
1943
2092
|
MenuFooter,
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
POPOVER_RENAME_SPACE,
|
|
1949
|
-
PopoverRenameSpace,
|
|
1950
|
-
useQuerySpaceSchemas,
|
|
2093
|
+
OBJECT_RENAME_POPOVER,
|
|
2094
|
+
ObjectRenamePopover,
|
|
2095
|
+
SPACE_RENAME_POPOVER,
|
|
2096
|
+
SpaceRenamePopover,
|
|
1951
2097
|
SchemaContainer,
|
|
2098
|
+
useQuerySpaceSchemas,
|
|
1952
2099
|
SpacePresence,
|
|
1953
2100
|
FullPresence,
|
|
1954
2101
|
SmallPresenceLive,
|
|
@@ -1958,19 +2105,23 @@ export {
|
|
|
1958
2105
|
InlineSyncStatus,
|
|
1959
2106
|
SyncStatus,
|
|
1960
2107
|
SyncStatusIndicator,
|
|
2108
|
+
evalQuery,
|
|
2109
|
+
resolveSchemaWithClientAndSpace,
|
|
2110
|
+
getQueryTarget,
|
|
1961
2111
|
ViewEditor,
|
|
1962
|
-
|
|
2112
|
+
CollectionArticle,
|
|
1963
2113
|
ObjectDetailsPanel,
|
|
1964
|
-
|
|
2114
|
+
ObjectSettingsContainer,
|
|
2115
|
+
RecordArticle,
|
|
1965
2116
|
AppGraphBuilder,
|
|
1966
2117
|
AppGraphSerializer,
|
|
1967
2118
|
IdentityCreated,
|
|
1968
2119
|
IntentResolver,
|
|
1969
2120
|
ReactRoot,
|
|
1970
2121
|
ReactSurface,
|
|
1971
|
-
|
|
2122
|
+
Repair,
|
|
1972
2123
|
SpaceSettings,
|
|
1973
2124
|
SpaceState,
|
|
1974
2125
|
SpacesReady
|
|
1975
2126
|
};
|
|
1976
|
-
//# sourceMappingURL=chunk-
|
|
2127
|
+
//# sourceMappingURL=chunk-JAMGJUFU.mjs.map
|