@dxos/plugin-space 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b
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-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
- package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
- package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs +144 -0
- package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetails-666IBRHE.mjs +144 -0
- package/dist/lib/browser/ObjectDetails-666IBRHE.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-USKWFIDK.mjs +551 -0
- package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-SXIQ425K.mjs} +19 -19
- package/dist/lib/browser/app-graph-serializer-SXIQ425K.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-5CSSKOWR.mjs} +42 -16
- package/dist/lib/browser/chunk-5CSSKOWR.mjs.map +7 -0
- package/dist/lib/browser/chunk-C6DAPIFF.mjs +20 -0
- package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
- package/dist/lib/browser/chunk-E4BEMEZ3.mjs +399 -0
- package/dist/lib/browser/chunk-E4BEMEZ3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-IJCMB5B5.mjs} +269 -145
- package/dist/lib/browser/chunk-IJCMB5B5.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-POFUXISV.mjs} +69 -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-WJXU4GKV.mjs +19 -0
- package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
- package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-XKQCDLXX.mjs} +734 -615
- package/dist/lib/browser/chunk-XKQCDLXX.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +92 -139
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-QEIM7NQT.mjs} +118 -109
- package/dist/lib/browser/intent-resolver-QEIM7NQT.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-T6ZETLD2.mjs +30 -0
- package/dist/lib/browser/react-root-T6ZETLD2.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-MLN5BZ2G.mjs} +120 -120
- package/dist/lib/browser/react-surface-MLN5BZ2G.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-4IMP5RYT.mjs → settings-EGTCHS7U.mjs} +5 -5
- package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-EGTCHS7U.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-YS4BBZXW.mjs} +29 -20
- package/dist/lib/browser/spaces-ready-YS4BBZXW.mjs.map +7 -0
- package/dist/lib/browser/{state-QYZAB45H.mjs → state-C7N6EDDZ.mjs} +7 -7
- package/dist/lib/browser/state-C7N6EDDZ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +10 -4
- package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
- package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs +145 -0
- package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs +145 -0
- package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.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-QRQ5EQLB.mjs +552 -0
- package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-P2X4W7LI.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-serializer-P2X4W7LI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-3D4NGZPW.mjs} +269 -145
- package/dist/lib/node-esm/chunk-3D4NGZPW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-AX3UGL5D.mjs} +69 -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-H4JILUJK.mjs +20 -0
- package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QQQE2ZCX.mjs +400 -0
- package/dist/lib/node-esm/chunk-QQQE2ZCX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-UMZ7G6G4.mjs} +41 -16
- package/dist/lib/node-esm/chunk-UMZ7G6G4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs +21 -0
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-XD532BVR.mjs} +734 -615
- package/dist/lib/node-esm/chunk-XD532BVR.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +92 -139
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-ZWCBVABN.mjs} +118 -109
- package/dist/lib/node-esm/intent-resolver-ZWCBVABN.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-SKB4UJ4K.mjs} +13 -12
- package/dist/lib/node-esm/react-root-SKB4UJ4K.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-BVZGNSBB.mjs} +120 -120
- package/dist/lib/node-esm/react-surface-BVZGNSBB.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-SAOBPND3.mjs → settings-N3F6JCIR.mjs} +5 -5
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-N3F6JCIR.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-U2K5P4LB.mjs} +29 -20
- package/dist/lib/node-esm/spaces-ready-U2K5P4LB.mjs.map +7 -0
- package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-45TXZQJ6.mjs} +7 -7
- package/dist/lib/node-esm/state-45TXZQJ6.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +10 -4
- package/dist/types/src/SpacePlugin.d.ts +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +14 -8
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +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/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/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 +3 -3
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1588 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +18 -9
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +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.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
- 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/MembersContainer.stories.d.ts.map +1 -0
- 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/ObjectCardStack/ObjectCardStack.d.ts +8 -0
- package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts +9 -0
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
- package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
- package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +1424 -0
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
- package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +8 -0
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetails/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/RecordArticle.d.ts +5 -0
- package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/components/RecordArticle.stories.d.ts +1591 -0
- 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/SpacePresence.stories.d.ts +1421 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
- 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 +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1421 -4
- 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 +1422 -5
- 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 -12
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.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 +7 -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 +2 -8
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts +1 -1
- package/dist/types/src/hooks/usePath.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 +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1261 -67
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +22 -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 +96 -157
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +25 -36
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +70 -59
- package/src/SpacePlugin.ts +182 -222
- package/src/capabilities/app-graph-builder.ts +271 -246
- package/src/capabilities/app-graph-serializer.ts +12 -12
- package/src/capabilities/capabilities.ts +28 -17
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +1 -2
- package/src/capabilities/intent-resolver.ts +92 -81
- package/src/capabilities/react-root.tsx +6 -4
- package/src/capabilities/react-surface.tsx +127 -155
- package/src/capabilities/repair.ts +57 -0
- package/src/capabilities/spaces-ready.ts +38 -17
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +12 -14
- package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
- package/src/components/CollectionSection.tsx +8 -6
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
- package/src/components/CreateDialog/CreateObjectDialog.tsx +74 -46
- package/src/components/CreateDialog/CreateObjectPanel.tsx +65 -43
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +45 -22
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectCardStack/ObjectCardStack.tsx +64 -0
- package/src/components/ObjectCardStack/ObjectForm.tsx +90 -0
- package/src/components/ObjectCardStack/index.ts +7 -0
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +118 -0
- package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +8 -8
- package/src/components/ObjectDetails/ObjectDetails.tsx +35 -0
- package/src/components/ObjectDetails/index.ts +7 -0
- package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +10 -16
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/RecordArticle.stories.tsx +115 -0
- package/src/components/RecordArticle.tsx +114 -0
- package/src/components/SchemaContainer.tsx +26 -29
- package/src/components/SpacePluginSettings.tsx +16 -11
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +190 -155
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
- package/src/components/SyncStatus/SyncStatus.tsx +109 -12
- package/src/components/ViewEditor.tsx +56 -23
- package/src/components/index.ts +7 -7
- package/src/events.ts +7 -7
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +152 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +3 -2
- package/src/hooks/useInputSurfaceLookup.tsx +9 -13
- package/src/hooks/usePath.ts +1 -1
- package/src/hooks/useTypeOptions.ts +25 -0
- package/src/index.ts +1 -0
- package/src/meta.ts +6 -3
- package/src/translations.ts +68 -58
- package/src/types/form.ts +69 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +51 -52
- package/src/util.tsx +269 -147
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs +0 -479
- package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
- package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
- package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
- package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
- package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
- package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
- package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
- package/dist/lib/browser/chunk-SGTQ52SU.mjs +0 -338
- package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
- package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
- package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
- package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
- package/dist/lib/browser/react-root-N2J7TDRX.mjs +0 -29
- package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
- package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs +0 -26
- package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
- package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs +0 -480
- package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
- package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs +0 -339
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
- package/dist/lib/node-esm/state-ZVEHQ4BJ.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/capabilities/schema-tool.test.d.ts +0 -2
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
- package/dist/types/src/capabilities/schema-tools.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/MembersContainer.stories.d.ts +0 -8
- package/dist/types/src/components/MembersContainer.stories.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/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts +0 -2
- package/dist/types/src/components/ObjectSettings/index.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/SpacePresence.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
- package/src/capabilities/schema-defs.ts +0 -30
- package/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
- package/src/components/MembersContainer.stories.tsx +0 -30
- package/src/components/ObjectDetailsPanel.tsx +0 -77
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -80
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -47
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -36
- package/src/components/ObjectSettings/index.ts +0 -5
- package/src/components/PersistenceStatus.tsx +0 -83
|
@@ -1,41 +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-UMZ7G6G4.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-3D4NGZPW.mjs";
|
|
13
14
|
import {
|
|
14
15
|
SpaceAction,
|
|
15
16
|
SpaceForm
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QQQE2ZCX.mjs";
|
|
17
18
|
import {
|
|
18
|
-
SPACE_PLUGIN,
|
|
19
19
|
meta
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BDEFTL6K.mjs";
|
|
21
21
|
|
|
22
22
|
// src/components/AwaitingObject.tsx
|
|
23
23
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
24
24
|
import React, { useCallback, useEffect, useState } from "react";
|
|
25
|
-
import {
|
|
25
|
+
import { LayoutAction, createIntent } from "@dxos/app-framework";
|
|
26
|
+
import { useIntentDispatcher, useLayout } from "@dxos/app-framework/react";
|
|
27
|
+
import { Obj } from "@dxos/echo";
|
|
26
28
|
import { useClient } from "@dxos/react-client";
|
|
27
|
-
import { Filter,
|
|
29
|
+
import { Filter, useQuery } from "@dxos/react-client/echo";
|
|
28
30
|
import { Button, Icon, Toast, useTranslation } from "@dxos/react-ui";
|
|
29
|
-
var WAIT_FOR_OBJECT_TIMEOUT =
|
|
30
|
-
var TOAST_TIMEOUT =
|
|
31
|
+
var WAIT_FOR_OBJECT_TIMEOUT = 3 * 60 * 1e3;
|
|
32
|
+
var TOAST_TIMEOUT = 4 * 60 * 1e3;
|
|
31
33
|
var AwaitingObject = ({ id }) => {
|
|
32
34
|
var _effect = _useSignals();
|
|
33
35
|
try {
|
|
36
|
+
const { t } = useTranslation(meta.id);
|
|
37
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
34
38
|
const [open, setOpen] = useState(true);
|
|
35
39
|
const [waiting, setWaiting] = useState(true);
|
|
36
40
|
const [found, setFound] = useState(false);
|
|
37
|
-
const { t } = useTranslation(SPACE_PLUGIN);
|
|
38
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
39
41
|
const layout = useLayout();
|
|
40
42
|
const client = useClient();
|
|
41
43
|
const objects = useQuery(client.spaces, Filter.everything());
|
|
@@ -43,15 +45,13 @@ var AwaitingObject = ({ id }) => {
|
|
|
43
45
|
if (!id) {
|
|
44
46
|
return;
|
|
45
47
|
}
|
|
46
|
-
const timeout = setTimeout(() =>
|
|
47
|
-
|
|
48
|
-
}, WAIT_FOR_OBJECT_TIMEOUT);
|
|
49
|
-
() => clearTimeout(timeout);
|
|
48
|
+
const timeout = setTimeout(() => setWaiting(false), WAIT_FOR_OBJECT_TIMEOUT);
|
|
49
|
+
return () => clearTimeout(timeout);
|
|
50
50
|
}, [
|
|
51
51
|
id
|
|
52
52
|
]);
|
|
53
53
|
useEffect(() => {
|
|
54
|
-
if (objects.findIndex((object) =>
|
|
54
|
+
if (objects.findIndex((object) => Obj.getDXN(object).toString() === id) > -1) {
|
|
55
55
|
setFound(true);
|
|
56
56
|
if (layout.active.includes(id)) {
|
|
57
57
|
setOpen(false);
|
|
@@ -122,34 +122,44 @@ var AwaitingObject = ({ id }) => {
|
|
|
122
122
|
|
|
123
123
|
// src/components/CreateDialog/CreateObjectDialog.tsx
|
|
124
124
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
125
|
-
import
|
|
126
|
-
import
|
|
127
|
-
import
|
|
128
|
-
import {
|
|
125
|
+
import * as Effect from "effect/Effect";
|
|
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 } from "@dxos/schema";
|
|
135
|
-
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
136
138
|
|
|
137
139
|
// src/components/CreateDialog/CreateObjectPanel.tsx
|
|
138
140
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
141
|
+
import * as Option from "effect/Option";
|
|
139
142
|
import React2, { useCallback as useCallback2 } from "react";
|
|
140
|
-
import {
|
|
141
|
-
import {
|
|
142
|
-
import {
|
|
143
|
-
import { Form } from "@dxos/react-ui-form";
|
|
143
|
+
import { getTypeAnnotation } from "@dxos/echo/internal";
|
|
144
|
+
import { Icon as Icon2, toLocalizedString, useDefaultValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
145
|
+
import { Form, omitId } from "@dxos/react-ui-form";
|
|
144
146
|
import { SearchList } from "@dxos/react-ui-searchlist";
|
|
145
147
|
import { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from "@dxos/react-ui-stack";
|
|
148
|
+
import { ViewAnnotation } from "@dxos/schema";
|
|
146
149
|
import { isNonNullable } from "@dxos/util";
|
|
147
|
-
var CreateObjectPanel = ({
|
|
150
|
+
var CreateObjectPanel = ({ schemas, spaces, typename, target, views, initialFormValues: _initialFormValues, defaultSpaceId, resolve, onTargetChange, onTypenameChange, onCreateObject }) => {
|
|
148
151
|
var _effect = _useSignals2();
|
|
149
152
|
try {
|
|
150
|
-
const { t } = useTranslation2(
|
|
151
|
-
const
|
|
152
|
-
const
|
|
153
|
+
const { t } = useTranslation2(meta.id);
|
|
154
|
+
const initialFormValues = useDefaultValue(_initialFormValues, () => ({}));
|
|
155
|
+
const metadata = typename && resolve?.(typename);
|
|
156
|
+
const options = schemas.filter((schema) => {
|
|
157
|
+
if (views == null) {
|
|
158
|
+
return true;
|
|
159
|
+
} else {
|
|
160
|
+
return views === ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false));
|
|
161
|
+
}
|
|
162
|
+
}).map((schema) => getTypeAnnotation(schema)).filter(isNonNullable).sort((a, b) => {
|
|
153
163
|
const nameA = t("typename label", {
|
|
154
164
|
ns: a.typename,
|
|
155
165
|
defaultValue: a.typename
|
|
@@ -161,34 +171,34 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, name: initialName, d
|
|
|
161
171
|
return nameA.localeCompare(nameB);
|
|
162
172
|
});
|
|
163
173
|
const handleCreateObject = useCallback2(async (props) => {
|
|
164
|
-
if (!
|
|
174
|
+
if (!metadata) {
|
|
165
175
|
return;
|
|
166
176
|
}
|
|
167
177
|
await onCreateObject?.({
|
|
168
|
-
|
|
178
|
+
metadata,
|
|
169
179
|
data: props
|
|
170
180
|
});
|
|
171
181
|
}, [
|
|
172
182
|
onCreateObject,
|
|
173
|
-
|
|
183
|
+
metadata
|
|
174
184
|
]);
|
|
175
185
|
const handleSetTypename = useCallback2(async (typename2) => {
|
|
176
|
-
const
|
|
177
|
-
if (
|
|
186
|
+
const metadata2 = resolve?.(typename2);
|
|
187
|
+
if (metadata2 && !metadata2.inputSchema) {
|
|
178
188
|
await onCreateObject?.({
|
|
179
|
-
|
|
189
|
+
metadata: metadata2
|
|
180
190
|
});
|
|
181
191
|
} else {
|
|
182
192
|
onTypenameChange?.(typename2);
|
|
183
193
|
}
|
|
184
194
|
}, [
|
|
185
|
-
|
|
195
|
+
resolve,
|
|
186
196
|
onCreateObject
|
|
187
197
|
]);
|
|
188
198
|
const inputSurfaceLookup = useInputSurfaceLookup({
|
|
189
199
|
target
|
|
190
200
|
});
|
|
191
|
-
return !
|
|
201
|
+
return !metadata ? /* @__PURE__ */ React2.createElement(SelectSchema, {
|
|
192
202
|
options,
|
|
193
203
|
resolve,
|
|
194
204
|
onChange: handleSetTypename
|
|
@@ -196,20 +206,14 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, name: initialName, d
|
|
|
196
206
|
spaces,
|
|
197
207
|
defaultSpaceId,
|
|
198
208
|
onChange: onTargetChange
|
|
199
|
-
}) :
|
|
200
|
-
role: "none",
|
|
201
|
-
className: cardDialogOverflow
|
|
202
|
-
}, /* @__PURE__ */ React2.createElement(Form, {
|
|
203
|
-
autoFocus: true,
|
|
204
|
-
values: {
|
|
205
|
-
name: initialName
|
|
206
|
-
},
|
|
207
|
-
schema: form.formSchema,
|
|
209
|
+
}) : metadata.inputSchema ? /* @__PURE__ */ React2.createElement(Form.Root, {
|
|
208
210
|
testId: "create-object-form",
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
autoFocus: true,
|
|
212
|
+
schema: omitId(metadata.inputSchema),
|
|
213
|
+
values: initialFormValues,
|
|
214
|
+
fieldProvider: inputSurfaceLookup,
|
|
215
|
+
onSave: handleCreateObject
|
|
216
|
+
}, /* @__PURE__ */ React2.createElement(Form.Viewport, null, /* @__PURE__ */ React2.createElement(Form.Content, null, /* @__PURE__ */ React2.createElement(Form.FieldSet, null), /* @__PURE__ */ React2.createElement(Form.Submit, null)))) : null;
|
|
213
217
|
} finally {
|
|
214
218
|
_effect.f();
|
|
215
219
|
}
|
|
@@ -217,7 +221,7 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, name: initialName, d
|
|
|
217
221
|
var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
218
222
|
var _effect = _useSignals2();
|
|
219
223
|
try {
|
|
220
|
-
const { t } = useTranslation2(
|
|
224
|
+
const { t } = useTranslation2(meta.id);
|
|
221
225
|
return /* @__PURE__ */ React2.createElement(SearchList.Root, {
|
|
222
226
|
label: t("space input label"),
|
|
223
227
|
classNames: cardDialogSearchListRoot
|
|
@@ -257,7 +261,7 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
|
257
261
|
var SelectSchema = ({ options, resolve, onChange }) => {
|
|
258
262
|
var _effect = _useSignals2();
|
|
259
263
|
try {
|
|
260
|
-
const { t } = useTranslation2(
|
|
264
|
+
const { t } = useTranslation2(meta.id);
|
|
261
265
|
return /* @__PURE__ */ React2.createElement(SearchList.Root, {
|
|
262
266
|
label: t("schema input label"),
|
|
263
267
|
classNames: cardDialogSearchListRoot
|
|
@@ -278,7 +282,7 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
278
282
|
}, /* @__PURE__ */ React2.createElement("span", {
|
|
279
283
|
className: "flex gap-2 items-center grow truncate"
|
|
280
284
|
}, /* @__PURE__ */ React2.createElement(Icon2, {
|
|
281
|
-
icon: resolve?.(option.typename)
|
|
285
|
+
icon: resolve?.(option.typename)?.icon ?? "ph--placeholder--regular",
|
|
282
286
|
size: 5
|
|
283
287
|
}), t("typename label", {
|
|
284
288
|
ns: option.typename,
|
|
@@ -289,42 +293,36 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
289
293
|
}
|
|
290
294
|
};
|
|
291
295
|
|
|
292
|
-
// src/capabilities/index.ts
|
|
293
|
-
import { lazy } from "@dxos/app-framework";
|
|
294
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-KGIGWC72.mjs"));
|
|
295
|
-
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-2ICUGQQT.mjs"));
|
|
296
|
-
var IdentityCreated = lazy(() => import("./identity-created-IJQO6GCR.mjs"));
|
|
297
|
-
var IntentResolver = lazy(() => import("./intent-resolver-MHGHRGDT.mjs"));
|
|
298
|
-
var ReactRoot = lazy(() => import("./react-root-KW3TGJGY.mjs"));
|
|
299
|
-
var ReactSurface = lazy(() => import("./react-surface-UUIUUD6P.mjs"));
|
|
300
|
-
var SchemaDefs = lazy(() => import("./schema-defs-WHJM7UZE.mjs"));
|
|
301
|
-
var SchemaTools = lazy(() => import("./schema-tools-KWW5PTML.mjs"));
|
|
302
|
-
var SpaceSettings = lazy(() => import("./settings-SAOBPND3.mjs"));
|
|
303
|
-
var SpaceState = lazy(() => import("./state-ZVEHQ4BJ.mjs"));
|
|
304
|
-
var SpacesReady = lazy(() => import("./spaces-ready-HIUKNDZK.mjs"));
|
|
305
|
-
|
|
306
296
|
// src/components/CreateDialog/CreateObjectDialog.tsx
|
|
307
297
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
|
|
308
|
-
var CREATE_OBJECT_DIALOG = `${
|
|
309
|
-
var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename,
|
|
298
|
+
var CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;
|
|
299
|
+
var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, views, initialFormValues, onCreateObject, shouldNavigate: _shouldNavigate }) => {
|
|
310
300
|
var _effect = _useSignals3();
|
|
311
301
|
try {
|
|
312
|
-
const closeRef = useRef(null);
|
|
313
302
|
const manager = usePluginManager();
|
|
314
|
-
const { t } = useTranslation3(
|
|
315
|
-
const client = useClient2();
|
|
316
|
-
const spaces = useSpaces();
|
|
303
|
+
const { t } = useTranslation3(meta.id);
|
|
317
304
|
const { dispatch } = useIntentDispatcher2();
|
|
318
|
-
const forms = useCapabilities(SpaceCapabilities.ObjectForm);
|
|
319
305
|
const [target, setTarget] = useState2(initialTarget);
|
|
320
306
|
const [typename, setTypename] = useState2(initialTypename);
|
|
321
|
-
const
|
|
322
|
-
const
|
|
323
|
-
const
|
|
324
|
-
const resolve = useCallback3((typename2) =>
|
|
307
|
+
const client = useClient2();
|
|
308
|
+
const spaces = useSpaces();
|
|
309
|
+
const closeRef = useRef(null);
|
|
310
|
+
const resolve = useCallback3((typename2) => {
|
|
311
|
+
const metadata = manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata;
|
|
312
|
+
return metadata?.createObjectIntent ? metadata : void 0;
|
|
313
|
+
}, [
|
|
325
314
|
manager
|
|
326
315
|
]);
|
|
327
|
-
const
|
|
316
|
+
const space = isSpace(target) ? target : getSpace(target);
|
|
317
|
+
const schemas = space?.db.schemaRegistry.query({
|
|
318
|
+
location: [
|
|
319
|
+
"runtime"
|
|
320
|
+
]
|
|
321
|
+
}).runSync();
|
|
322
|
+
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))) ?? [], [
|
|
323
|
+
schemas
|
|
324
|
+
]);
|
|
325
|
+
const handleCreateObject = useCallback3(({ metadata, data = {} }) => Effect.gen(function* () {
|
|
328
326
|
if (!target) {
|
|
329
327
|
return;
|
|
330
328
|
}
|
|
@@ -332,18 +330,18 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
|
|
|
332
330
|
const space2 = isSpace(target) ? target : getSpace(target);
|
|
333
331
|
invariant(space2, "Missing space", {
|
|
334
332
|
F: __dxlog_file,
|
|
335
|
-
L:
|
|
333
|
+
L: 87,
|
|
336
334
|
S: this,
|
|
337
335
|
A: [
|
|
338
336
|
"space",
|
|
339
337
|
"'Missing space'"
|
|
340
338
|
]
|
|
341
339
|
});
|
|
342
|
-
const { object } = yield* dispatch(
|
|
340
|
+
const { object } = yield* dispatch(metadata.createObjectIntent(data, {
|
|
343
341
|
space: space2
|
|
344
342
|
}));
|
|
345
|
-
if (isLiveObject(object) && !
|
|
346
|
-
const hidden =
|
|
343
|
+
if (isLiveObject(object) && !Obj2.instanceOf(Type.PersistentType, object)) {
|
|
344
|
+
const hidden = !metadata.addToCollectionOnCreate;
|
|
347
345
|
const addObjectIntent = createIntent2(SpaceAction.AddObject, {
|
|
348
346
|
target,
|
|
349
347
|
object,
|
|
@@ -351,7 +349,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
|
|
|
351
349
|
});
|
|
352
350
|
const shouldNavigate = _shouldNavigate ?? (() => true);
|
|
353
351
|
if (shouldNavigate(object)) {
|
|
354
|
-
yield* dispatch(pipe(addObjectIntent, chain(LayoutAction2.Open, {
|
|
352
|
+
yield* dispatch(Function2.pipe(addObjectIntent, chain(LayoutAction2.Open, {
|
|
355
353
|
part: "main"
|
|
356
354
|
})));
|
|
357
355
|
} else {
|
|
@@ -363,7 +361,6 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
|
|
|
363
361
|
dispatch,
|
|
364
362
|
target,
|
|
365
363
|
resolve,
|
|
366
|
-
hiddenTypenames,
|
|
367
364
|
_shouldNavigate
|
|
368
365
|
]);
|
|
369
366
|
return (
|
|
@@ -377,24 +374,26 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
|
|
|
377
374
|
}, /* @__PURE__ */ React3.createElement(Dialog.Title, null, t("create object dialog title", {
|
|
378
375
|
object: t("typename label", {
|
|
379
376
|
ns: typename,
|
|
380
|
-
defaultValue: "
|
|
377
|
+
defaultValue: views ? "View" : "Object"
|
|
381
378
|
})
|
|
382
379
|
})), /* @__PURE__ */ React3.createElement(Dialog.Close, {
|
|
383
380
|
asChild: true
|
|
384
|
-
}, /* @__PURE__ */ React3.createElement(
|
|
381
|
+
}, /* @__PURE__ */ React3.createElement(IconButton, {
|
|
385
382
|
ref: closeRef,
|
|
383
|
+
icon: "ph--x--regular",
|
|
384
|
+
size: 4,
|
|
385
|
+
label: "Close",
|
|
386
|
+
iconOnly: true,
|
|
386
387
|
density: "fine",
|
|
387
388
|
variant: "ghost",
|
|
388
389
|
autoFocus: true
|
|
389
|
-
}, /* @__PURE__ */ React3.createElement(
|
|
390
|
-
|
|
391
|
-
size: 4
|
|
392
|
-
})))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
393
|
-
forms,
|
|
390
|
+
}))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
391
|
+
schemas: userSchemas,
|
|
394
392
|
spaces,
|
|
395
393
|
target,
|
|
394
|
+
views,
|
|
396
395
|
typename,
|
|
397
|
-
|
|
396
|
+
initialFormValues,
|
|
398
397
|
defaultSpaceId: client.spaces.default.id,
|
|
399
398
|
resolve,
|
|
400
399
|
onTargetChange: setTarget,
|
|
@@ -409,13 +408,14 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, na
|
|
|
409
408
|
|
|
410
409
|
// src/components/CreateDialog/CreateSpaceDialog.tsx
|
|
411
410
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
412
|
-
import
|
|
411
|
+
import * as Effect2 from "effect/Effect";
|
|
413
412
|
import React4, { useCallback as useCallback4, useRef as useRef2 } from "react";
|
|
414
|
-
import {
|
|
415
|
-
import {
|
|
413
|
+
import { LayoutAction as LayoutAction3, createIntent as createIntent3 } from "@dxos/app-framework";
|
|
414
|
+
import { useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework/react";
|
|
415
|
+
import { Dialog as Dialog2, IconButton as IconButton2, useTranslation as useTranslation4 } from "@dxos/react-ui";
|
|
416
416
|
import { Form as Form2 } from "@dxos/react-ui-form";
|
|
417
417
|
import { cardDialogContent as cardDialogContent2, cardDialogHeader as cardDialogHeader2 } from "@dxos/react-ui-stack";
|
|
418
|
-
var CREATE_SPACE_DIALOG = `${
|
|
418
|
+
var CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;
|
|
419
419
|
var initialValues = {
|
|
420
420
|
edgeReplication: true
|
|
421
421
|
};
|
|
@@ -423,7 +423,7 @@ var CreateSpaceDialog = () => {
|
|
|
423
423
|
var _effect = _useSignals4();
|
|
424
424
|
try {
|
|
425
425
|
const closeRef = useRef2(null);
|
|
426
|
-
const { t } = useTranslation4(
|
|
426
|
+
const { t } = useTranslation4(meta.id);
|
|
427
427
|
const { dispatch } = useIntentDispatcher3();
|
|
428
428
|
const inputSurfaceLookup = useInputSurfaceLookup();
|
|
429
429
|
const handleCreateSpace = useCallback4(async (data) => {
|
|
@@ -454,26 +454,23 @@ var CreateSpaceDialog = () => {
|
|
|
454
454
|
className: cardDialogHeader2
|
|
455
455
|
}, /* @__PURE__ */ React4.createElement(Dialog2.Title, null, t("create space dialog title")), /* @__PURE__ */ React4.createElement(Dialog2.Close, {
|
|
456
456
|
asChild: true
|
|
457
|
-
}, /* @__PURE__ */ React4.createElement(
|
|
457
|
+
}, /* @__PURE__ */ React4.createElement(IconButton2, {
|
|
458
458
|
ref: closeRef,
|
|
459
|
+
icon: "ph--x--regular",
|
|
460
|
+
size: 4,
|
|
461
|
+
label: "Close",
|
|
462
|
+
iconOnly: true,
|
|
459
463
|
density: "fine",
|
|
460
464
|
variant: "ghost",
|
|
461
465
|
autoFocus: true
|
|
462
|
-
}, /* @__PURE__ */ React4.createElement(
|
|
463
|
-
icon: "ph--x--regular",
|
|
464
|
-
size: 4
|
|
465
|
-
})))), /* @__PURE__ */ React4.createElement("div", {
|
|
466
|
-
role: "none",
|
|
467
|
-
className: "contents"
|
|
468
|
-
}, /* @__PURE__ */ React4.createElement(Form2, {
|
|
466
|
+
}))), /* @__PURE__ */ React4.createElement(Form2.Root, {
|
|
469
467
|
testId: "create-space-form",
|
|
470
468
|
autoFocus: true,
|
|
471
|
-
values: initialValues,
|
|
472
469
|
schema: SpaceForm,
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
})))
|
|
470
|
+
values: initialValues,
|
|
471
|
+
fieldProvider: inputSurfaceLookup,
|
|
472
|
+
onSave: handleCreateSpace
|
|
473
|
+
}, /* @__PURE__ */ React4.createElement(Form2.Viewport, null, /* @__PURE__ */ React4.createElement(Form2.Content, null, /* @__PURE__ */ React4.createElement(Form2.FieldSet, null), /* @__PURE__ */ React4.createElement(Form2.Submit, null)))))
|
|
477
474
|
);
|
|
478
475
|
} finally {
|
|
479
476
|
_effect.f();
|
|
@@ -484,37 +481,39 @@ var CreateSpaceDialog = () => {
|
|
|
484
481
|
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
|
485
482
|
import React5 from "react";
|
|
486
483
|
import { useTranslation as useTranslation5 } from "@dxos/react-ui";
|
|
487
|
-
var CollectionSection = ({
|
|
484
|
+
var CollectionSection = ({ role, subject }) => {
|
|
488
485
|
var _effect = _useSignals5();
|
|
489
486
|
try {
|
|
490
|
-
const { t } = useTranslation5(
|
|
487
|
+
const { t } = useTranslation5(meta.id);
|
|
491
488
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
489
|
+
role,
|
|
492
490
|
className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
493
491
|
}, /* @__PURE__ */ React5.createElement("span", {
|
|
494
492
|
className: "truncate"
|
|
495
|
-
},
|
|
493
|
+
}, subject.name ?? t("unnamed collection label")));
|
|
496
494
|
} finally {
|
|
497
495
|
_effect.f();
|
|
498
496
|
}
|
|
499
497
|
};
|
|
500
498
|
|
|
501
|
-
// src/components/JoinDialog.tsx
|
|
499
|
+
// src/components/JoinDialog/JoinDialog.tsx
|
|
502
500
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
503
501
|
import React6, { useCallback as useCallback5 } from "react";
|
|
504
|
-
import {
|
|
502
|
+
import { LayoutAction as LayoutAction4, createIntent as createIntent4 } from "@dxos/app-framework";
|
|
503
|
+
import { useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework/react";
|
|
505
504
|
import { Trigger } from "@dxos/async";
|
|
506
505
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
507
506
|
import { useClient as useClient3 } from "@dxos/react-client";
|
|
508
507
|
import { Dialog as Dialog3, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
509
508
|
import { JoinPanel } from "@dxos/shell/react";
|
|
510
|
-
var JOIN_DIALOG = `${
|
|
509
|
+
var JOIN_DIALOG = `${meta.id}/JoinDialog`;
|
|
511
510
|
var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
512
511
|
var _effect = _useSignals6();
|
|
513
512
|
try {
|
|
514
513
|
const { dispatchPromise: dispatch } = useIntentDispatcher4();
|
|
515
514
|
const client = useClient3();
|
|
516
515
|
const { graph } = useAppGraph();
|
|
517
|
-
const { t } = useTranslation6(
|
|
516
|
+
const { t } = useTranslation6(meta.id);
|
|
518
517
|
const handleDone = useCallback5(async (result) => {
|
|
519
518
|
const spaceKey = result?.spaceKey;
|
|
520
519
|
if (!spaceKey) {
|
|
@@ -524,18 +523,18 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
524
523
|
dispatch(createIntent4(LayoutAction4.AddToast, {
|
|
525
524
|
part: "toast",
|
|
526
525
|
subject: {
|
|
527
|
-
id: `${
|
|
526
|
+
id: `${meta.id}/join-success`,
|
|
528
527
|
duration: 5e3,
|
|
529
528
|
title: [
|
|
530
529
|
"join success label",
|
|
531
530
|
{
|
|
532
|
-
ns:
|
|
531
|
+
ns: meta.id
|
|
533
532
|
}
|
|
534
533
|
],
|
|
535
534
|
closeLabel: [
|
|
536
535
|
"dismiss label",
|
|
537
536
|
{
|
|
538
|
-
ns:
|
|
537
|
+
ns: meta.id
|
|
539
538
|
}
|
|
540
539
|
]
|
|
541
540
|
}
|
|
@@ -614,22 +613,24 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
614
613
|
}
|
|
615
614
|
};
|
|
616
615
|
|
|
617
|
-
// src/components/MembersContainer.tsx
|
|
616
|
+
// src/components/MembersContainer/MembersContainer.tsx
|
|
618
617
|
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
619
|
-
import React7, { useCallback as useCallback6, useMemo, useState as useState3 } from "react";
|
|
618
|
+
import React7, { useCallback as useCallback6, useMemo as useMemo2, useState as useState3 } from "react";
|
|
620
619
|
import { QR } from "react-qr-rounded";
|
|
621
|
-
import { createIntent as createIntent5
|
|
620
|
+
import { createIntent as createIntent5 } from "@dxos/app-framework";
|
|
621
|
+
import { useIntentDispatcher as useIntentDispatcher5 } from "@dxos/app-framework/react";
|
|
622
|
+
import { Obj as Obj3 } from "@dxos/echo";
|
|
622
623
|
import { log } from "@dxos/log";
|
|
623
624
|
import { useConfig } from "@dxos/react-client";
|
|
624
|
-
import {
|
|
625
|
+
import { useSpaceInvitations } from "@dxos/react-client/echo";
|
|
625
626
|
import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
|
|
626
|
-
import { Button as
|
|
627
|
-
import {
|
|
627
|
+
import { Button as Button2, Clipboard, Icon as Icon3, Input, useId, useTranslation as useTranslation7 } from "@dxos/react-ui";
|
|
628
|
+
import { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
628
629
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
629
|
-
import {
|
|
630
|
+
import { Collection } from "@dxos/schema";
|
|
630
631
|
import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport } from "@dxos/shell/react";
|
|
631
632
|
import { hexToEmoji } from "@dxos/util";
|
|
632
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer.tsx";
|
|
633
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer/MembersContainer.tsx";
|
|
633
634
|
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
634
635
|
var handleInvitationEvent = (invitation, subscription) => {
|
|
635
636
|
const invitationCode = InvitationEncoder.encode(invitation);
|
|
@@ -639,7 +640,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
639
640
|
authCode: invitation.authCode
|
|
640
641
|
}), void 0, {
|
|
641
642
|
F: __dxlog_file2,
|
|
642
|
-
L:
|
|
643
|
+
L: 41,
|
|
643
644
|
S: void 0,
|
|
644
645
|
C: (f, a) => f(...a)
|
|
645
646
|
});
|
|
@@ -649,7 +650,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
649
650
|
var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
650
651
|
var _effect = _useSignals7();
|
|
651
652
|
try {
|
|
652
|
-
const { t } = useTranslation7(
|
|
653
|
+
const { t } = useTranslation7(meta.id);
|
|
653
654
|
const config = useConfig();
|
|
654
655
|
const { dispatchPromise: dispatch } = useIntentDispatcher5();
|
|
655
656
|
const invitations = useSpaceInvitations(space.key);
|
|
@@ -661,7 +662,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
661
662
|
setInternalActiveAction(nextAction);
|
|
662
663
|
localStorage.setItem(activeActionKey, nextAction);
|
|
663
664
|
};
|
|
664
|
-
const target = space.properties[
|
|
665
|
+
const target = space.properties[Collection.Collection.typename]?.target?.objects[0]?.target;
|
|
665
666
|
const locked = space.properties[COMPOSER_SPACE_LOCK];
|
|
666
667
|
const handleChangeLocked = useCallback6(() => {
|
|
667
668
|
space.properties[COMPOSER_SPACE_LOCK] = !locked;
|
|
@@ -669,7 +670,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
669
670
|
locked,
|
|
670
671
|
space
|
|
671
672
|
]);
|
|
672
|
-
const inviteActions =
|
|
673
|
+
const inviteActions = useMemo2(() => ({
|
|
673
674
|
inviteOne: {
|
|
674
675
|
label: t("invite one label", {
|
|
675
676
|
ns: "os"
|
|
@@ -677,10 +678,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
677
678
|
description: t("invite one description", {
|
|
678
679
|
ns: "os"
|
|
679
680
|
}),
|
|
680
|
-
icon:
|
|
681
|
-
icon: "ph--user-plus--regular",
|
|
682
|
-
size: 5
|
|
683
|
-
}),
|
|
681
|
+
icon: "ph--user-plus--regular",
|
|
684
682
|
testId: "membersContainer.inviteOne",
|
|
685
683
|
onClick: async () => {
|
|
686
684
|
const { data: invitation } = await dispatch(createIntent5(SpaceAction.Share, {
|
|
@@ -688,7 +686,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
688
686
|
type: Invitation.Type.INTERACTIVE,
|
|
689
687
|
authMethod: Invitation.AuthMethod.SHARED_SECRET,
|
|
690
688
|
multiUse: false,
|
|
691
|
-
target: target &&
|
|
689
|
+
target: target && Obj3.getDXN(target).toString()
|
|
692
690
|
}));
|
|
693
691
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
694
692
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
@@ -702,10 +700,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
702
700
|
description: t("invite many description", {
|
|
703
701
|
ns: "os"
|
|
704
702
|
}),
|
|
705
|
-
icon:
|
|
706
|
-
icon: "ph--users-three--regular",
|
|
707
|
-
size: 5
|
|
708
|
-
}),
|
|
703
|
+
icon: "ph--users-three--regular",
|
|
709
704
|
testId: "membersContainer.inviteMany",
|
|
710
705
|
onClick: async () => {
|
|
711
706
|
const { data: invitation } = await dispatch(createIntent5(SpaceAction.Share, {
|
|
@@ -713,7 +708,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
713
708
|
type: Invitation.Type.DELEGATED,
|
|
714
709
|
authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
|
|
715
710
|
multiUse: true,
|
|
716
|
-
target: target &&
|
|
711
|
+
target: target && Obj3.getDXN(target).toString()
|
|
717
712
|
}));
|
|
718
713
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
719
714
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
@@ -733,7 +728,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
733
728
|
setSelectedInvitation(null);
|
|
734
729
|
};
|
|
735
730
|
return /* @__PURE__ */ React7.createElement(Clipboard.Provider, null, /* @__PURE__ */ React7.createElement(StackItem.Content, {
|
|
736
|
-
|
|
731
|
+
scrollable: true
|
|
737
732
|
}, /* @__PURE__ */ React7.createElement(ControlPage, null, /* @__PURE__ */ React7.createElement(ControlSection, {
|
|
738
733
|
title: t("members verbose label"),
|
|
739
734
|
description: t("members description")
|
|
@@ -765,7 +760,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
765
760
|
onChangeActiveAction: setActiveAction,
|
|
766
761
|
"data-testid": "membersContainer.createInvitation"
|
|
767
762
|
})))), /* @__PURE__ */ React7.createElement("div", {
|
|
768
|
-
className: "justify-center
|
|
763
|
+
className: "justify-center p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
769
764
|
}, /* @__PURE__ */ React7.createElement(ControlItemInput, {
|
|
770
765
|
title: t("space locked label"),
|
|
771
766
|
description: t("space locked description")
|
|
@@ -816,7 +811,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
|
|
|
816
811
|
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("p", {
|
|
817
812
|
className: "text-description"
|
|
818
813
|
}, t("qr code description", {
|
|
819
|
-
ns:
|
|
814
|
+
ns: meta.id
|
|
820
815
|
})), /* @__PURE__ */ React7.createElement("div", {
|
|
821
816
|
role: "group",
|
|
822
817
|
className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
|
|
@@ -837,7 +832,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
|
|
|
837
832
|
className: "sr-only"
|
|
838
833
|
}, t("qr label")), /* @__PURE__ */ React7.createElement(Clipboard.Button, {
|
|
839
834
|
value: url ?? "never"
|
|
840
|
-
})), /* @__PURE__ */ React7.createElement(
|
|
835
|
+
})), /* @__PURE__ */ React7.createElement(Button2, {
|
|
841
836
|
variant: "ghost",
|
|
842
837
|
onClick: onCancel
|
|
843
838
|
}, t("cancel label")));
|
|
@@ -861,7 +856,7 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
861
856
|
code,
|
|
862
857
|
large: true,
|
|
863
858
|
classNames: "mli-auto mlb-2 text-center grow"
|
|
864
|
-
}), /* @__PURE__ */ React7.createElement(
|
|
859
|
+
}), /* @__PURE__ */ React7.createElement(Button2, {
|
|
865
860
|
variant: "ghost",
|
|
866
861
|
onClick: onCancel
|
|
867
862
|
}, t("cancel label")));
|
|
@@ -872,11 +867,11 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
872
867
|
var InvitationComplete = ({ statusValue }) => {
|
|
873
868
|
var _effect = _useSignals7();
|
|
874
869
|
try {
|
|
875
|
-
return statusValue > 0 ? /* @__PURE__ */ React7.createElement(
|
|
870
|
+
return statusValue > 0 ? /* @__PURE__ */ React7.createElement(Icon3, {
|
|
876
871
|
icon: "ph--check--regular",
|
|
877
872
|
size: 6,
|
|
878
873
|
classNames: "m-1.5"
|
|
879
|
-
}) : /* @__PURE__ */ React7.createElement(
|
|
874
|
+
}) : /* @__PURE__ */ React7.createElement(Icon3, {
|
|
880
875
|
icon: "ph--x--regular",
|
|
881
876
|
size: 6,
|
|
882
877
|
classNames: "m-1.5"
|
|
@@ -891,11 +886,11 @@ import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking"
|
|
|
891
886
|
import React8 from "react";
|
|
892
887
|
import { getSpace as getSpace2 } from "@dxos/client/echo";
|
|
893
888
|
import { useClient as useClient4 } from "@dxos/react-client";
|
|
894
|
-
import { DropdownMenu, Icon as
|
|
889
|
+
import { DropdownMenu, Icon as Icon4, toLocalizedString as toLocalizedString2, useTranslation as useTranslation8 } from "@dxos/react-ui";
|
|
895
890
|
var MenuFooter = ({ object }) => {
|
|
896
891
|
var _effect = _useSignals8();
|
|
897
892
|
try {
|
|
898
|
-
const { t } = useTranslation8(
|
|
893
|
+
const { t } = useTranslation8(meta.id);
|
|
899
894
|
const client = useClient4();
|
|
900
895
|
const space = getSpace2(object);
|
|
901
896
|
const spaceName = space ? getSpaceDisplayName(space, {
|
|
@@ -907,7 +902,7 @@ var MenuFooter = ({ object }) => {
|
|
|
907
902
|
className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
|
|
908
903
|
}, t("location label")), /* @__PURE__ */ React8.createElement("dd", {
|
|
909
904
|
className: "line-clamp-3"
|
|
910
|
-
}, /* @__PURE__ */ React8.createElement(
|
|
905
|
+
}, /* @__PURE__ */ React8.createElement(Icon4, {
|
|
911
906
|
icon: "ph--planet--regular",
|
|
912
907
|
classNames: "inline-block mie-1"
|
|
913
908
|
}), toLocalizedString2(spaceName, t)))) : null;
|
|
@@ -916,166 +911,35 @@ var MenuFooter = ({ object }) => {
|
|
|
916
911
|
}
|
|
917
912
|
};
|
|
918
913
|
|
|
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 } from "@dxos/react-ui";
|
|
924
|
-
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
925
|
-
|
|
926
|
-
// src/components/ObjectSettings/BaseObjectSettings.tsx
|
|
914
|
+
// src/components/ObjectRenamePopover/ObjectRenamePopover.tsx
|
|
927
915
|
import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
|
|
928
|
-
import React9, { useRef as useRef3 } from "react";
|
|
929
|
-
import {
|
|
930
|
-
|
|
916
|
+
import React9, { useCallback as useCallback7, useRef as useRef3, useState as useState4 } from "react";
|
|
917
|
+
import { LayoutAction as LayoutAction5, createIntent as createIntent6 } from "@dxos/app-framework";
|
|
918
|
+
import { useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework/react";
|
|
919
|
+
import { Obj as Obj4 } from "@dxos/echo";
|
|
920
|
+
import { log as log2 } from "@dxos/log";
|
|
921
|
+
import { Button as Button3, Input as Input2, useTranslation as useTranslation9 } from "@dxos/react-ui";
|
|
922
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectRenamePopover/ObjectRenamePopover.tsx";
|
|
923
|
+
var OBJECT_RENAME_POPOVER = `${meta.id}/ObjectRenamePopover`;
|
|
924
|
+
var ObjectRenamePopover = ({ object }) => {
|
|
931
925
|
var _effect = _useSignals9();
|
|
932
926
|
try {
|
|
933
927
|
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: false
|
|
965
|
-
}, /* @__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(SPACE_PLUGIN);
|
|
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 { createIntent as createIntent6, LayoutAction as LayoutAction5, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
|
|
1051
|
-
import { log as log2 } from "@dxos/log";
|
|
1052
|
-
import { Button as Button5, Input as Input3, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1053
|
-
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
1054
|
-
var POPOVER_RENAME_OBJECT = `${SPACE_PLUGIN}/PopoverRenameObject`;
|
|
1055
|
-
var PopoverRenameObject = ({ object: obj }) => {
|
|
1056
|
-
var _effect = _useSignals12();
|
|
1057
|
-
try {
|
|
1058
|
-
const { t } = useTranslation11(SPACE_PLUGIN);
|
|
1059
|
-
const doneButton = useRef4(null);
|
|
1060
|
-
const object = obj;
|
|
1061
|
-
const [name, setName] = useState5(object.name || object.title || "");
|
|
928
|
+
const doneButton = useRef3(null);
|
|
929
|
+
const [name, setName] = useState4(Obj4.getLabel(object));
|
|
1062
930
|
const { dispatchPromise: dispatch } = useIntentDispatcher6();
|
|
1063
931
|
const handleDone = useCallback7(() => {
|
|
1064
932
|
try {
|
|
1065
|
-
|
|
933
|
+
name && Obj4.setLabel(object, name);
|
|
1066
934
|
} catch (err) {
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
}
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
S: void 0,
|
|
1076
|
-
C: (f, a) => f(...a)
|
|
1077
|
-
});
|
|
1078
|
-
}
|
|
935
|
+
log2.error("Failed to rename object", {
|
|
936
|
+
err
|
|
937
|
+
}, {
|
|
938
|
+
F: __dxlog_file3,
|
|
939
|
+
L: 27,
|
|
940
|
+
S: void 0,
|
|
941
|
+
C: (f, a) => f(...a)
|
|
942
|
+
});
|
|
1079
943
|
}
|
|
1080
944
|
void dispatch(createIntent6(LayoutAction5.UpdatePopover, {
|
|
1081
945
|
part: "popover",
|
|
@@ -1089,21 +953,21 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
1089
953
|
object,
|
|
1090
954
|
name
|
|
1091
955
|
]);
|
|
1092
|
-
return /* @__PURE__ */
|
|
956
|
+
return /* @__PURE__ */ React9.createElement("div", {
|
|
1093
957
|
role: "none",
|
|
1094
958
|
className: "p-2 flex gap-2"
|
|
1095
|
-
}, /* @__PURE__ */
|
|
959
|
+
}, /* @__PURE__ */ React9.createElement("div", {
|
|
1096
960
|
role: "none",
|
|
1097
961
|
className: "flex-1"
|
|
1098
|
-
}, /* @__PURE__ */
|
|
962
|
+
}, /* @__PURE__ */ React9.createElement(Input2.Root, null, /* @__PURE__ */ React9.createElement(Input2.Label, {
|
|
1099
963
|
srOnly: true
|
|
1100
|
-
}, t("object name label")), /* @__PURE__ */
|
|
964
|
+
}, t("object name label")), /* @__PURE__ */ React9.createElement(Input2.TextInput, {
|
|
1101
965
|
placeholder: t("object placeholder"),
|
|
1102
966
|
value: name,
|
|
1103
967
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1104
|
-
onChange: ({ target: { value } }) => setName(
|
|
968
|
+
onChange: ({ target: { value: value2 } }) => setName(value2),
|
|
1105
969
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1106
|
-
}))), /* @__PURE__ */
|
|
970
|
+
}))), /* @__PURE__ */ React9.createElement(Button3, {
|
|
1107
971
|
ref: doneButton,
|
|
1108
972
|
classNames: "self-stretch",
|
|
1109
973
|
onClick: handleDone
|
|
@@ -1115,71 +979,38 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
1115
979
|
}
|
|
1116
980
|
};
|
|
1117
981
|
|
|
1118
|
-
// src/components/
|
|
1119
|
-
import { useSignals as
|
|
1120
|
-
import
|
|
1121
|
-
import {
|
|
1122
|
-
import {
|
|
1123
|
-
|
|
1124
|
-
var
|
|
1125
|
-
var _effect =
|
|
982
|
+
// src/components/SchemaContainer.tsx
|
|
983
|
+
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
984
|
+
import React10, { useEffect as useEffect2, useState as useState5 } from "react";
|
|
985
|
+
import { useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
986
|
+
import { ControlPage as ControlPage2, ControlSection as ControlSection2, controlItemClasses } from "@dxos/react-ui-form";
|
|
987
|
+
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
988
|
+
var SchemaContainer = ({ space }) => {
|
|
989
|
+
var _effect = _useSignals10();
|
|
1126
990
|
try {
|
|
1127
|
-
const { t } =
|
|
1128
|
-
const
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
options: {
|
|
1136
|
-
variant: "react",
|
|
1137
|
-
anchorId: "",
|
|
1138
|
-
state: false
|
|
1139
|
-
}
|
|
1140
|
-
}));
|
|
1141
|
-
}, [
|
|
1142
|
-
space,
|
|
1143
|
-
name
|
|
1144
|
-
]);
|
|
1145
|
-
return /* @__PURE__ */ React13.createElement("div", {
|
|
991
|
+
const { t } = useTranslation10(meta.id);
|
|
992
|
+
const schemas = useQuerySpaceSchemas(space);
|
|
993
|
+
return /* @__PURE__ */ React10.createElement(StackItem2.Content, {
|
|
994
|
+
scrollable: true
|
|
995
|
+
}, /* @__PURE__ */ React10.createElement(ControlPage2, null, /* @__PURE__ */ React10.createElement(ControlSection2, {
|
|
996
|
+
title: t("schema verbose label"),
|
|
997
|
+
description: t("schema description")
|
|
998
|
+
}, /* @__PURE__ */ React10.createElement("div", {
|
|
1146
999
|
role: "none",
|
|
1147
|
-
className:
|
|
1148
|
-
}, /* @__PURE__ */
|
|
1000
|
+
className: controlItemClasses
|
|
1001
|
+
}, schemas.length === 0 && /* @__PURE__ */ React10.createElement("div", {
|
|
1002
|
+
className: "text-center plb-4"
|
|
1003
|
+
}, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React10.createElement("div", {
|
|
1149
1004
|
role: "none",
|
|
1150
|
-
|
|
1151
|
-
},
|
|
1152
|
-
srOnly: true
|
|
1153
|
-
}, t("space name label")), /* @__PURE__ */ React13.createElement(Input4.TextInput, {
|
|
1154
|
-
defaultValue: space.properties.name ?? "",
|
|
1155
|
-
placeholder: t("unnamed space label"),
|
|
1156
|
-
onChange: ({ target: { value } }) => setName(value),
|
|
1157
|
-
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1158
|
-
// Currently this is not possible because Radix does not expose the popover context.
|
|
1159
|
-
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1160
|
-
}))), /* @__PURE__ */ React13.createElement(Popover.Close, {
|
|
1161
|
-
asChild: true
|
|
1162
|
-
}, /* @__PURE__ */ React13.createElement(Button6, {
|
|
1163
|
-
ref: doneButton,
|
|
1164
|
-
classNames: "self-stretch",
|
|
1165
|
-
onClick: handleDone
|
|
1166
|
-
}, t("done label", {
|
|
1167
|
-
ns: "os"
|
|
1168
|
-
}))));
|
|
1005
|
+
key: schema.id
|
|
1006
|
+
}, schema.typename))))));
|
|
1169
1007
|
} finally {
|
|
1170
1008
|
_effect.f();
|
|
1171
1009
|
}
|
|
1172
1010
|
};
|
|
1173
|
-
|
|
1174
|
-
// src/components/SchemaContainer.tsx
|
|
1175
|
-
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1176
|
-
import React14, { useState as useState7, useEffect as useEffect3 } from "react";
|
|
1177
|
-
import { useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1178
|
-
import { controlItemClasses, ControlPage as ControlPage2, ControlSection as ControlSection2 } from "@dxos/react-ui-form";
|
|
1179
|
-
import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
|
|
1180
1011
|
var useQuerySpaceSchemas = (space) => {
|
|
1181
|
-
const [schemas, setSchemas] =
|
|
1182
|
-
|
|
1012
|
+
const [schemas, setSchemas] = useState5([]);
|
|
1013
|
+
useEffect2(() => {
|
|
1183
1014
|
const query = space.db.schemaRegistry.query();
|
|
1184
1015
|
const initialResults = query.runSync();
|
|
1185
1016
|
setSchemas(initialResults);
|
|
@@ -1190,66 +1021,110 @@ var useQuerySpaceSchemas = (space) => {
|
|
|
1190
1021
|
]);
|
|
1191
1022
|
return schemas;
|
|
1192
1023
|
};
|
|
1193
|
-
|
|
1194
|
-
|
|
1024
|
+
|
|
1025
|
+
// src/components/SpacePluginSettings.tsx
|
|
1026
|
+
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
1027
|
+
import React11 from "react";
|
|
1028
|
+
import { createIntent as createIntent7 } from "@dxos/app-framework";
|
|
1029
|
+
import { useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework/react";
|
|
1030
|
+
import { useClient as useClient5 } from "@dxos/react-client";
|
|
1031
|
+
import { useSpaces as useSpaces2 } from "@dxos/react-client/echo";
|
|
1032
|
+
import { IconButton as IconButton3, Input as Input3, List, ListItem, toLocalizedString as toLocalizedString3, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1033
|
+
import { ControlGroup, ControlItemInput as ControlItemInput2, ControlPage as ControlPage3, ControlSection as ControlSection3, controlItemClasses as controlItemClasses2 } from "@dxos/react-ui-form";
|
|
1034
|
+
var SpacePluginSettings = ({ settings }) => {
|
|
1035
|
+
var _effect = _useSignals11();
|
|
1195
1036
|
try {
|
|
1196
|
-
const { t } =
|
|
1197
|
-
const
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
}
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
}, /* @__PURE__ */
|
|
1037
|
+
const { t } = useTranslation11(meta.id);
|
|
1038
|
+
const client = useClient5();
|
|
1039
|
+
const spaces = useSpaces2({
|
|
1040
|
+
all: settings.showHidden
|
|
1041
|
+
});
|
|
1042
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher7();
|
|
1043
|
+
return /* @__PURE__ */ React11.createElement(ControlPage3, null, /* @__PURE__ */ React11.createElement(ControlSection3, {
|
|
1044
|
+
title: t("space settings label"),
|
|
1045
|
+
description: t("space settings description")
|
|
1046
|
+
}, /* @__PURE__ */ React11.createElement(ControlGroup, null, /* @__PURE__ */ React11.createElement(ControlItemInput2, {
|
|
1047
|
+
title: t("show hidden spaces label")
|
|
1048
|
+
}, /* @__PURE__ */ React11.createElement(Input3.Switch, {
|
|
1049
|
+
checked: settings.showHidden,
|
|
1050
|
+
onCheckedChange: (checked) => settings.showHidden = !!checked
|
|
1051
|
+
}))), /* @__PURE__ */ React11.createElement(List, {
|
|
1052
|
+
classNames: [
|
|
1053
|
+
controlItemClasses2,
|
|
1054
|
+
"flex flex-col gap-trimSm"
|
|
1055
|
+
]
|
|
1056
|
+
}, spaces.map((space) => /* @__PURE__ */ React11.createElement(ListItem.Root, {
|
|
1057
|
+
key: space.id,
|
|
1058
|
+
classNames: "is-full items-center"
|
|
1059
|
+
}, /* @__PURE__ */ React11.createElement(ListItem.Heading, {
|
|
1060
|
+
classNames: "grow truncate !min-bs-0"
|
|
1061
|
+
}, toLocalizedString3(getSpaceDisplayName(space, {
|
|
1062
|
+
personal: space === client.spaces.default
|
|
1063
|
+
}), t)), /* @__PURE__ */ React11.createElement(IconButton3, {
|
|
1064
|
+
icon: "ph--faders--regular",
|
|
1065
|
+
onClick: () => dispatch(createIntent7(SpaceAction.OpenSettings, {
|
|
1066
|
+
space
|
|
1067
|
+
})),
|
|
1068
|
+
label: t("open space settings label")
|
|
1069
|
+
}))))));
|
|
1211
1070
|
} finally {
|
|
1212
1071
|
_effect.f();
|
|
1213
1072
|
}
|
|
1214
1073
|
};
|
|
1215
1074
|
|
|
1216
|
-
// src/components/SpacePresence.tsx
|
|
1217
|
-
import { useSignals as
|
|
1218
|
-
import
|
|
1219
|
-
import
|
|
1220
|
-
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework";
|
|
1075
|
+
// src/components/SpacePresence/SpacePresence.tsx
|
|
1076
|
+
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1077
|
+
import * as Option3 from "effect/Option";
|
|
1078
|
+
import React12, { forwardRef, useCallback as useCallback8, useEffect as useEffect3, useState as useState6 } from "react";
|
|
1079
|
+
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework/react";
|
|
1221
1080
|
import { generateName } from "@dxos/display-name";
|
|
1222
|
-
import {
|
|
1223
|
-
import {
|
|
1081
|
+
import { Obj as Obj5 } from "@dxos/echo";
|
|
1082
|
+
import { PublicKey, useClient as useClient6 } from "@dxos/react-client";
|
|
1083
|
+
import { getSpace as getSpace3, useMembers } from "@dxos/react-client/echo";
|
|
1224
1084
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
1225
|
-
import { Avatar,
|
|
1085
|
+
import { Avatar, List as List2, ListItem as ListItem2, Popover, Tooltip, useDefaultValue as useDefaultValue2, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1226
1086
|
import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
|
|
1227
1087
|
import { ComplexMap, keyToFallback } from "@dxos/util";
|
|
1088
|
+
|
|
1089
|
+
// src/capabilities/index.ts
|
|
1090
|
+
import { lazy } from "@dxos/app-framework";
|
|
1091
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-QRQ5EQLB.mjs"));
|
|
1092
|
+
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-P2X4W7LI.mjs"));
|
|
1093
|
+
var IdentityCreated = lazy(() => import("./identity-created-OXLKCJE3.mjs"));
|
|
1094
|
+
var IntentResolver = lazy(() => import("./intent-resolver-ZWCBVABN.mjs"));
|
|
1095
|
+
var ReactRoot = lazy(() => import("./react-root-SKB4UJ4K.mjs"));
|
|
1096
|
+
var ReactSurface = lazy(() => import("./react-surface-BVZGNSBB.mjs"));
|
|
1097
|
+
var Repair = lazy(() => import("./repair-EHZS6MFY.mjs"));
|
|
1098
|
+
var SpaceSettings = lazy(() => import("./settings-N3F6JCIR.mjs"));
|
|
1099
|
+
var SpaceState = lazy(() => import("./state-45TXZQJ6.mjs"));
|
|
1100
|
+
var SpacesReady = lazy(() => import("./spaces-ready-U2K5P4LB.mjs"));
|
|
1101
|
+
|
|
1102
|
+
// src/components/SpacePresence/SpacePresence.tsx
|
|
1228
1103
|
var REFRESH_INTERVAL = 5e3;
|
|
1229
1104
|
var ACTIVITY_DURATION = 3e4;
|
|
1230
1105
|
var noViewers = new ComplexMap(PublicKey.hash);
|
|
1231
1106
|
var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
|
|
1232
1107
|
var SpacePresence = ({ object, spaceKey }) => {
|
|
1233
|
-
var _effect =
|
|
1108
|
+
var _effect = _useSignals12();
|
|
1234
1109
|
try {
|
|
1235
1110
|
const spaceState = useCapability(SpaceCapabilities.MutableState);
|
|
1236
|
-
const client =
|
|
1111
|
+
const client = useClient6();
|
|
1237
1112
|
const identity = useIdentity();
|
|
1238
1113
|
const space = spaceKey ? client.spaces.get(spaceKey) : getSpace3(object);
|
|
1239
1114
|
const spaceMembers = useMembers(space?.key);
|
|
1240
|
-
const [_moment, setMoment] =
|
|
1241
|
-
|
|
1115
|
+
const [_moment, setMoment] = useState6(Date.now());
|
|
1116
|
+
useEffect3(() => {
|
|
1242
1117
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1243
1118
|
return () => clearInterval(interval);
|
|
1244
1119
|
}, []);
|
|
1245
|
-
const memberOnline =
|
|
1246
|
-
const memberIsNotSelf =
|
|
1120
|
+
const memberOnline = useCallback8((member) => member.presence === 1, []);
|
|
1121
|
+
const memberIsNotSelf = useCallback8((member) => !identity?.identityKey.equals(member.identity.identityKey), [
|
|
1247
1122
|
identity?.identityKey
|
|
1248
1123
|
]);
|
|
1249
1124
|
if (!identity || !spaceState || !space) {
|
|
1250
1125
|
return null;
|
|
1251
1126
|
}
|
|
1252
|
-
const currentObjectViewers = spaceState.viewersByObject[
|
|
1127
|
+
const currentObjectViewers = spaceState.viewersByObject[Obj5.getDXN(object).toString()] ?? noViewers;
|
|
1253
1128
|
const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
|
|
1254
1129
|
const objectView = currentObjectViewers.get(member.identity.identityKey);
|
|
1255
1130
|
const lastSeen = objectView?.lastSeen ?? -Infinity;
|
|
@@ -1260,7 +1135,7 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1260
1135
|
lastSeen
|
|
1261
1136
|
};
|
|
1262
1137
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1263
|
-
return /* @__PURE__ */
|
|
1138
|
+
return /* @__PURE__ */ React12.createElement(FullPresence, {
|
|
1264
1139
|
members: membersForObject
|
|
1265
1140
|
});
|
|
1266
1141
|
} finally {
|
|
@@ -1268,46 +1143,46 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1268
1143
|
}
|
|
1269
1144
|
};
|
|
1270
1145
|
var FullPresence = (props) => {
|
|
1271
|
-
var _effect =
|
|
1146
|
+
var _effect = _useSignals12();
|
|
1272
1147
|
try {
|
|
1273
1148
|
const { size = 9, onMemberClick } = props;
|
|
1274
|
-
const members =
|
|
1149
|
+
const members = useDefaultValue2(props.members, () => []);
|
|
1275
1150
|
if (members.length === 0) {
|
|
1276
1151
|
return null;
|
|
1277
1152
|
}
|
|
1278
|
-
return /* @__PURE__ */
|
|
1153
|
+
return /* @__PURE__ */ React12.createElement("div", {
|
|
1279
1154
|
className: "dx-avatar-group",
|
|
1280
1155
|
"data-testid": "spacePlugin.presence"
|
|
1281
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1156
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
|
|
1282
1157
|
key: member.identity.identityKey.toHex(),
|
|
1283
1158
|
side: "bottom",
|
|
1284
1159
|
content: getName(member.identity),
|
|
1285
1160
|
className: "grid focus:outline-none"
|
|
1286
|
-
}, /* @__PURE__ */
|
|
1161
|
+
}, /* @__PURE__ */ React12.createElement(PresenceAvatar, {
|
|
1287
1162
|
identity: member.identity,
|
|
1288
1163
|
match: member.currentlyAttended,
|
|
1289
1164
|
index: members.length - i,
|
|
1290
1165
|
onClick: () => onMemberClick?.(member),
|
|
1291
1166
|
size
|
|
1292
|
-
}))), members.length > 3 && /* @__PURE__ */
|
|
1167
|
+
}))), members.length > 3 && /* @__PURE__ */ React12.createElement(Popover.Root, null, /* @__PURE__ */ React12.createElement(Popover.Trigger, {
|
|
1293
1168
|
className: "grid focus:outline-none"
|
|
1294
|
-
}, /* @__PURE__ */
|
|
1169
|
+
}, /* @__PURE__ */ React12.createElement(Avatar.Root, null, /* @__PURE__ */ React12.createElement(Avatar.Content, {
|
|
1295
1170
|
status: "inactive",
|
|
1296
1171
|
style: {
|
|
1297
1172
|
zIndex: members.length - 4
|
|
1298
1173
|
},
|
|
1299
1174
|
fallback: `+${members.length - 3}`,
|
|
1300
1175
|
size
|
|
1301
|
-
}))), /* @__PURE__ */
|
|
1176
|
+
}))), /* @__PURE__ */ React12.createElement(Popover.Portal, null, /* @__PURE__ */ React12.createElement(Popover.Content, {
|
|
1302
1177
|
side: "bottom"
|
|
1303
|
-
}, /* @__PURE__ */
|
|
1178
|
+
}, /* @__PURE__ */ React12.createElement(Popover.Arrow, null), /* @__PURE__ */ React12.createElement(Popover.Viewport, {
|
|
1304
1179
|
classNames: "max-bs-56"
|
|
1305
|
-
}, /* @__PURE__ */
|
|
1180
|
+
}, /* @__PURE__ */ React12.createElement(List2, null, members.map((member) => /* @__PURE__ */ React12.createElement(ListItem2.Root, {
|
|
1306
1181
|
key: member.identity.identityKey.toHex(),
|
|
1307
1182
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1308
1183
|
onClick: () => onMemberClick?.(member),
|
|
1309
1184
|
"data-testid": "identity-list-item"
|
|
1310
|
-
}, /* @__PURE__ */
|
|
1185
|
+
}, /* @__PURE__ */ React12.createElement(PresenceAvatar, {
|
|
1311
1186
|
identity: member.identity,
|
|
1312
1187
|
size,
|
|
1313
1188
|
showName: true,
|
|
@@ -1317,12 +1192,12 @@ var FullPresence = (props) => {
|
|
|
1317
1192
|
_effect.f();
|
|
1318
1193
|
}
|
|
1319
1194
|
};
|
|
1320
|
-
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
|
|
1321
|
-
var _effect =
|
|
1195
|
+
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match: match2, index, onClick, size }, forwardedRef) => {
|
|
1196
|
+
var _effect = _useSignals12();
|
|
1322
1197
|
try {
|
|
1323
|
-
const status =
|
|
1198
|
+
const status = match2 ? "current" : "active";
|
|
1324
1199
|
const fallbackValue = keyToFallback(identity.identityKey);
|
|
1325
|
-
return /* @__PURE__ */
|
|
1200
|
+
return /* @__PURE__ */ React12.createElement(Avatar.Root, null, /* @__PURE__ */ React12.createElement(Avatar.Content, {
|
|
1326
1201
|
status,
|
|
1327
1202
|
hue: identity.profile?.data?.hue || fallbackValue.hue,
|
|
1328
1203
|
"data-testid": "spacePlugin.presence.member",
|
|
@@ -1336,7 +1211,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
|
|
|
1336
1211
|
onClick,
|
|
1337
1212
|
fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
|
|
1338
1213
|
ref: forwardedRef
|
|
1339
|
-
}), /* @__PURE__ */
|
|
1214
|
+
}), /* @__PURE__ */ React12.createElement(Avatar.Label, {
|
|
1340
1215
|
classNames: showName ? "text-sm truncate pli-2" : "sr-only"
|
|
1341
1216
|
}, getName(identity)));
|
|
1342
1217
|
} finally {
|
|
@@ -1344,7 +1219,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
|
|
|
1344
1219
|
}
|
|
1345
1220
|
});
|
|
1346
1221
|
var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
1347
|
-
var _effect =
|
|
1222
|
+
var _effect = _useSignals12();
|
|
1348
1223
|
try {
|
|
1349
1224
|
const { hasAttention, isAncestor, isRelated } = useAttention(id);
|
|
1350
1225
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
@@ -1352,13 +1227,13 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1352
1227
|
const attended = useAttended();
|
|
1353
1228
|
const startOfAttention = attended.at(-1);
|
|
1354
1229
|
const path = usePath(graph, startOfAttention);
|
|
1355
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1230
|
+
const containsAttended = !open && !isAttended && id && Option3.isSome(path) ? path.value.includes(id) : false;
|
|
1356
1231
|
const getActiveViewers = (viewers2) => {
|
|
1357
1232
|
const moment = Date.now();
|
|
1358
1233
|
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
1359
1234
|
};
|
|
1360
|
-
const [activeViewers, setActiveViewers] =
|
|
1361
|
-
|
|
1235
|
+
const [activeViewers, setActiveViewers] = useState6(viewers ? getActiveViewers(viewers) : []);
|
|
1236
|
+
useEffect3(() => {
|
|
1362
1237
|
if (viewers) {
|
|
1363
1238
|
setActiveViewers(getActiveViewers(viewers));
|
|
1364
1239
|
const interval = setInterval(() => {
|
|
@@ -1369,7 +1244,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1369
1244
|
}, [
|
|
1370
1245
|
viewers
|
|
1371
1246
|
]);
|
|
1372
|
-
return /* @__PURE__ */
|
|
1247
|
+
return /* @__PURE__ */ React12.createElement(SmallPresence, {
|
|
1373
1248
|
count: activeViewers.length,
|
|
1374
1249
|
attended: isAttended,
|
|
1375
1250
|
containsAttended
|
|
@@ -1379,16 +1254,16 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1379
1254
|
}
|
|
1380
1255
|
};
|
|
1381
1256
|
var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
1382
|
-
var _effect =
|
|
1257
|
+
var _effect = _useSignals12();
|
|
1383
1258
|
try {
|
|
1384
|
-
const { t } =
|
|
1385
|
-
return /* @__PURE__ */
|
|
1259
|
+
const { t } = useTranslation12(meta.id);
|
|
1260
|
+
return /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
|
|
1386
1261
|
asChild: true,
|
|
1387
1262
|
content: t("presence label", {
|
|
1388
1263
|
count
|
|
1389
1264
|
}),
|
|
1390
1265
|
side: "bottom"
|
|
1391
|
-
}, /* @__PURE__ */
|
|
1266
|
+
}, /* @__PURE__ */ React12.createElement(AttentionGlyph, {
|
|
1392
1267
|
attended,
|
|
1393
1268
|
containsAttended,
|
|
1394
1269
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
@@ -1399,90 +1274,98 @@ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
|
1399
1274
|
}
|
|
1400
1275
|
};
|
|
1401
1276
|
|
|
1402
|
-
// src/components/
|
|
1403
|
-
import { useSignals as
|
|
1404
|
-
import
|
|
1405
|
-
import {
|
|
1406
|
-
import {
|
|
1407
|
-
import {
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
var
|
|
1411
|
-
var _effect = _useSignals16();
|
|
1277
|
+
// src/components/SpaceRenamePopover/SpaceRenamePopover.tsx
|
|
1278
|
+
import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
|
|
1279
|
+
import React13, { useCallback as useCallback9, useRef as useRef4, useState as useState7 } from "react";
|
|
1280
|
+
import { LayoutAction as LayoutAction6, createIntent as createIntent8 } from "@dxos/app-framework";
|
|
1281
|
+
import { useIntentDispatcher as useIntentDispatcher8 } from "@dxos/app-framework/react";
|
|
1282
|
+
import { Button as Button4, Input as Input4, Popover as Popover2, useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1283
|
+
var SPACE_RENAME_POPOVER = `${meta.id}/SpaceRenamePopover`;
|
|
1284
|
+
var SpaceRenamePopover = ({ space }) => {
|
|
1285
|
+
var _effect = _useSignals13();
|
|
1412
1286
|
try {
|
|
1413
|
-
const { t } =
|
|
1414
|
-
const
|
|
1415
|
-
const
|
|
1416
|
-
all: settings.showHidden
|
|
1417
|
-
});
|
|
1287
|
+
const { t } = useTranslation13(meta.id);
|
|
1288
|
+
const doneButton = useRef4(null);
|
|
1289
|
+
const [name, setName] = useState7(space.properties.name ?? "");
|
|
1418
1290
|
const { dispatchPromise: dispatch } = useIntentDispatcher8();
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
}
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
},
|
|
1440
|
-
|
|
1441
|
-
}
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1291
|
+
const handleDone = useCallback9(() => {
|
|
1292
|
+
space.properties.name = name;
|
|
1293
|
+
void dispatch(createIntent8(LayoutAction6.UpdatePopover, {
|
|
1294
|
+
part: "popover",
|
|
1295
|
+
options: {
|
|
1296
|
+
variant: "react",
|
|
1297
|
+
anchorId: "",
|
|
1298
|
+
state: false
|
|
1299
|
+
}
|
|
1300
|
+
}));
|
|
1301
|
+
}, [
|
|
1302
|
+
space,
|
|
1303
|
+
name
|
|
1304
|
+
]);
|
|
1305
|
+
return /* @__PURE__ */ React13.createElement("div", {
|
|
1306
|
+
role: "none",
|
|
1307
|
+
className: "p-2 flex gap-2"
|
|
1308
|
+
}, /* @__PURE__ */ React13.createElement("div", {
|
|
1309
|
+
role: "none",
|
|
1310
|
+
className: "flex-1"
|
|
1311
|
+
}, /* @__PURE__ */ React13.createElement(Input4.Root, null, /* @__PURE__ */ React13.createElement(Input4.Label, {
|
|
1312
|
+
srOnly: true
|
|
1313
|
+
}, t("space name label")), /* @__PURE__ */ React13.createElement(Input4.TextInput, {
|
|
1314
|
+
defaultValue: space.properties.name ?? "",
|
|
1315
|
+
placeholder: t("unnamed space label"),
|
|
1316
|
+
onChange: ({ target: { value: value2 } }) => setName(value2),
|
|
1317
|
+
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1318
|
+
// Currently this is not possible because Radix does not expose the popover context.
|
|
1319
|
+
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1320
|
+
}))), /* @__PURE__ */ React13.createElement(Popover2.Close, {
|
|
1321
|
+
asChild: true
|
|
1322
|
+
}, /* @__PURE__ */ React13.createElement(Button4, {
|
|
1323
|
+
ref: doneButton,
|
|
1324
|
+
classNames: "self-stretch",
|
|
1325
|
+
onClick: handleDone
|
|
1326
|
+
}, t("done label", {
|
|
1327
|
+
ns: "os"
|
|
1328
|
+
}))));
|
|
1448
1329
|
} finally {
|
|
1449
1330
|
_effect.f();
|
|
1450
1331
|
}
|
|
1451
1332
|
};
|
|
1452
1333
|
|
|
1453
1334
|
// src/components/SpaceSettings/SpaceSettingsContainer.tsx
|
|
1454
|
-
import { useSignals as
|
|
1455
|
-
import
|
|
1456
|
-
import
|
|
1457
|
-
import {
|
|
1335
|
+
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1336
|
+
import * as Function3 from "effect/Function";
|
|
1337
|
+
import * as Schema from "effect/Schema";
|
|
1338
|
+
import React14, { forwardRef as forwardRef2, useCallback as useCallback10, useMemo as useMemo3, useState as useState8 } from "react";
|
|
1339
|
+
import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9 } from "@dxos/app-framework";
|
|
1340
|
+
import { useCapabilities, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework/react";
|
|
1458
1341
|
import { log as log3 } from "@dxos/log";
|
|
1459
1342
|
import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1460
1343
|
import { useClient as useClient7 } from "@dxos/react-client";
|
|
1461
1344
|
import { SpaceState as SpaceState2 } from "@dxos/react-client/echo";
|
|
1462
|
-
import { Button as
|
|
1463
|
-
import {
|
|
1345
|
+
import { Button as Button5, Input as Input5, useFileDownload, useMulticastObservable, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
1346
|
+
import { ControlItem, ControlItemInput as ControlItemInput3, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
|
|
1464
1347
|
import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
|
|
1465
|
-
import { StackItem as
|
|
1348
|
+
import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
|
|
1466
1349
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
|
|
1467
|
-
var
|
|
1350
|
+
var SpaceFormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
|
|
1468
1351
|
archived: Schema.Boolean.annotations({
|
|
1469
|
-
title: "Archive
|
|
1352
|
+
title: "Archive Space"
|
|
1470
1353
|
})
|
|
1471
1354
|
})));
|
|
1472
|
-
var SpaceSettingsContainer = ({ space }) => {
|
|
1473
|
-
var _effect =
|
|
1355
|
+
var SpaceSettingsContainer = /* @__PURE__ */ forwardRef2(({ space }, forwardedRef) => {
|
|
1356
|
+
var _effect = _useSignals14();
|
|
1474
1357
|
try {
|
|
1475
|
-
const { t } =
|
|
1358
|
+
const { t } = useTranslation14(meta.id);
|
|
1476
1359
|
const { dispatchPromise: dispatch } = useIntentDispatcher9();
|
|
1477
1360
|
const client = useClient7();
|
|
1478
1361
|
const archived = useMulticastObservable(space.state) === SpaceState2.SPACE_INACTIVE;
|
|
1479
|
-
const [edgeReplication, setEdgeReplication] =
|
|
1362
|
+
const [edgeReplication, setEdgeReplication] = useState8(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
|
|
1480
1363
|
const toggleEdgeReplication = useCallback10(async (next) => {
|
|
1481
1364
|
setEdgeReplication(next);
|
|
1482
1365
|
await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1483
1366
|
log3.catch(err, void 0, {
|
|
1484
1367
|
F: __dxlog_file4,
|
|
1485
|
-
L:
|
|
1368
|
+
L: 59,
|
|
1486
1369
|
S: void 0,
|
|
1487
1370
|
C: (f, a) => f(...a)
|
|
1488
1371
|
});
|
|
@@ -1492,7 +1375,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1492
1375
|
space
|
|
1493
1376
|
]);
|
|
1494
1377
|
const handleSave = useCallback10((properties) => {
|
|
1495
|
-
void toggleEdgeReplication(properties.edgeReplication);
|
|
1378
|
+
void toggleEdgeReplication(properties.edgeReplication ?? false);
|
|
1496
1379
|
if (properties.name !== space.properties.name) {
|
|
1497
1380
|
space.properties.name = properties.name;
|
|
1498
1381
|
}
|
|
@@ -1503,7 +1386,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1503
1386
|
space.properties.hue = properties.hue;
|
|
1504
1387
|
}
|
|
1505
1388
|
if (properties.archived && !archived) {
|
|
1506
|
-
void dispatch(
|
|
1389
|
+
void dispatch(Function3.pipe(createIntent9(SpaceAction.Close, {
|
|
1507
1390
|
space
|
|
1508
1391
|
}), chain2(LayoutAction7.SwitchWorkspace, {
|
|
1509
1392
|
part: "workspace",
|
|
@@ -1532,16 +1415,16 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1532
1415
|
edgeReplication,
|
|
1533
1416
|
archived
|
|
1534
1417
|
]);
|
|
1535
|
-
const
|
|
1418
|
+
const fieldMap = useMemo3(() => ({
|
|
1536
1419
|
name: ({ type, label, getValue, onValueChange }) => {
|
|
1537
|
-
const handleChange = useCallback10(({ target: { value } }) => onValueChange(type,
|
|
1420
|
+
const handleChange = useCallback10(({ target: { value: value2 } }) => onValueChange(type, value2), [
|
|
1538
1421
|
onValueChange,
|
|
1539
1422
|
type
|
|
1540
1423
|
]);
|
|
1541
|
-
return /* @__PURE__ */
|
|
1424
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1542
1425
|
title: label,
|
|
1543
1426
|
description: t("display name description")
|
|
1544
|
-
}, /* @__PURE__ */
|
|
1427
|
+
}, /* @__PURE__ */ React14.createElement(Input5.TextInput, {
|
|
1545
1428
|
value: getValue(),
|
|
1546
1429
|
onChange: handleChange,
|
|
1547
1430
|
placeholder: t("display name input placeholder"),
|
|
@@ -1549,23 +1432,22 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1549
1432
|
}));
|
|
1550
1433
|
},
|
|
1551
1434
|
icon: ({ type, label, getValue, onValueChange }) => {
|
|
1552
|
-
const handleChange = useCallback10((
|
|
1435
|
+
const handleChange = useCallback10((icon) => onValueChange(type, icon), [
|
|
1553
1436
|
onValueChange,
|
|
1554
1437
|
type
|
|
1555
1438
|
]);
|
|
1556
|
-
const
|
|
1439
|
+
const handleReset = useCallback10(() => onValueChange(type, void 0), [
|
|
1557
1440
|
onValueChange,
|
|
1558
1441
|
type
|
|
1559
1442
|
]);
|
|
1560
|
-
return /* @__PURE__ */
|
|
1443
|
+
return /* @__PURE__ */ React14.createElement(ControlItem, {
|
|
1561
1444
|
title: label,
|
|
1562
1445
|
description: t("icon description")
|
|
1563
|
-
}, /* @__PURE__ */
|
|
1446
|
+
}, /* @__PURE__ */ React14.createElement(IconPicker, {
|
|
1564
1447
|
value: getValue(),
|
|
1565
1448
|
onChange: handleChange,
|
|
1566
|
-
onReset:
|
|
1567
|
-
classNames: "justify-self-end"
|
|
1568
|
-
iconSize: 5
|
|
1449
|
+
onReset: handleReset,
|
|
1450
|
+
classNames: "justify-self-end"
|
|
1569
1451
|
}));
|
|
1570
1452
|
},
|
|
1571
1453
|
hue: ({ type, label, getValue, onValueChange }) => {
|
|
@@ -1573,18 +1455,18 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1573
1455
|
onValueChange,
|
|
1574
1456
|
type
|
|
1575
1457
|
]);
|
|
1576
|
-
const
|
|
1458
|
+
const handleReset = useCallback10(() => onValueChange(type, void 0), [
|
|
1577
1459
|
onValueChange,
|
|
1578
1460
|
type
|
|
1579
1461
|
]);
|
|
1580
|
-
return /* @__PURE__ */
|
|
1462
|
+
return /* @__PURE__ */ React14.createElement(ControlItem, {
|
|
1581
1463
|
title: label,
|
|
1582
1464
|
description: t("hue description")
|
|
1583
|
-
}, /* @__PURE__ */
|
|
1465
|
+
}, /* @__PURE__ */ React14.createElement(HuePicker, {
|
|
1584
1466
|
value: getValue(),
|
|
1585
1467
|
onChange: handleChange,
|
|
1586
|
-
onReset:
|
|
1587
|
-
classNames: "
|
|
1468
|
+
onReset: handleReset,
|
|
1469
|
+
classNames: "justify-self-end"
|
|
1588
1470
|
}));
|
|
1589
1471
|
},
|
|
1590
1472
|
edgeReplication: ({ type, label, getValue, onValueChange }) => {
|
|
@@ -1592,10 +1474,10 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1592
1474
|
onValueChange,
|
|
1593
1475
|
type
|
|
1594
1476
|
]);
|
|
1595
|
-
return /* @__PURE__ */
|
|
1477
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1596
1478
|
title: label,
|
|
1597
1479
|
description: t("edge replication description")
|
|
1598
|
-
}, /* @__PURE__ */
|
|
1480
|
+
}, /* @__PURE__ */ React14.createElement(Input5.Switch, {
|
|
1599
1481
|
checked: getValue(),
|
|
1600
1482
|
onCheckedChange: handleChange,
|
|
1601
1483
|
classNames: "justify-self-end"
|
|
@@ -1607,11 +1489,12 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1607
1489
|
type,
|
|
1608
1490
|
getValue
|
|
1609
1491
|
]);
|
|
1610
|
-
return /* @__PURE__ */
|
|
1492
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1611
1493
|
title: label,
|
|
1612
1494
|
description: t("archive space description")
|
|
1613
|
-
}, /* @__PURE__ */
|
|
1495
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1614
1496
|
disabled: space === client.spaces.default,
|
|
1497
|
+
variant: getValue() ? "default" : "destructive",
|
|
1615
1498
|
onClick: handleChange
|
|
1616
1499
|
}, getValue() ? t("unarchive space label") : t("archive space label")));
|
|
1617
1500
|
}
|
|
@@ -1619,46 +1502,81 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1619
1502
|
t,
|
|
1620
1503
|
space
|
|
1621
1504
|
]);
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1505
|
+
const download = useFileDownload();
|
|
1506
|
+
const handleBackup = useCallback10(async () => {
|
|
1507
|
+
const archive = await space.internal.export();
|
|
1508
|
+
download(new Blob([
|
|
1509
|
+
archive.contents
|
|
1510
|
+
]), archive.filename);
|
|
1511
|
+
}, [
|
|
1512
|
+
space,
|
|
1513
|
+
download
|
|
1514
|
+
]);
|
|
1515
|
+
const repairs = useCapabilities(SpaceCapabilities.Repair);
|
|
1516
|
+
const handleRepair = useCallback10(async () => {
|
|
1517
|
+
await Promise.all(repairs.map((repair) => repair({
|
|
1518
|
+
space,
|
|
1519
|
+
isDefault: client.spaces.default === space
|
|
1520
|
+
})));
|
|
1521
|
+
}, [
|
|
1522
|
+
client,
|
|
1523
|
+
space,
|
|
1524
|
+
repairs
|
|
1525
|
+
]);
|
|
1526
|
+
return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
|
|
1527
|
+
scrollable: true,
|
|
1528
|
+
ref: forwardedRef
|
|
1529
|
+
}, /* @__PURE__ */ React14.createElement(ControlPage4, null, /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
1530
|
+
title: t("space properties settings verbose label"),
|
|
1628
1531
|
description: t("space properties settings description", {
|
|
1629
|
-
ns:
|
|
1532
|
+
ns: meta.id
|
|
1630
1533
|
})
|
|
1631
|
-
}, /* @__PURE__ */
|
|
1632
|
-
|
|
1534
|
+
}, /* @__PURE__ */ React14.createElement(Form3.Root, {
|
|
1535
|
+
fieldMap,
|
|
1536
|
+
schema: SpaceFormSchema,
|
|
1633
1537
|
values,
|
|
1634
1538
|
autoSave: true,
|
|
1635
|
-
onSave: handleSave
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
}
|
|
1539
|
+
onSave: handleSave
|
|
1540
|
+
}, /* @__PURE__ */ React14.createElement(Form3.FieldSet, null))), /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
1541
|
+
title: t("space controls title"),
|
|
1542
|
+
description: t("space controls description")
|
|
1543
|
+
}, /* @__PURE__ */ React14.createElement("div", {
|
|
1544
|
+
role: "none",
|
|
1545
|
+
className: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
1546
|
+
}, /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1547
|
+
title: t("backup space title"),
|
|
1548
|
+
description: t("backup space description")
|
|
1549
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1550
|
+
onClick: handleBackup
|
|
1551
|
+
}, t("download backup label"))), /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1552
|
+
title: t("repair space title"),
|
|
1553
|
+
description: t("repair space description")
|
|
1554
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1555
|
+
onClick: handleRepair
|
|
1556
|
+
}, t("repair space label")))))));
|
|
1640
1557
|
} finally {
|
|
1641
1558
|
_effect.f();
|
|
1642
1559
|
}
|
|
1643
|
-
};
|
|
1560
|
+
});
|
|
1561
|
+
SpaceSettingsContainer.displayName = "SpaceSettingsContainer";
|
|
1644
1562
|
|
|
1645
1563
|
// src/components/SyncStatus/InlineSyncStatus.tsx
|
|
1646
|
-
import { useSignals as
|
|
1647
|
-
import
|
|
1648
|
-
import
|
|
1649
|
-
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework";
|
|
1564
|
+
import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
|
|
1565
|
+
import * as Option4 from "effect/Option";
|
|
1566
|
+
import React15, { useEffect as useEffect4, useState as useState9 } from "react";
|
|
1567
|
+
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework/react";
|
|
1650
1568
|
import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
|
|
1651
1569
|
import { EdgeReplicationSetting as EdgeReplicationSetting2 } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1652
1570
|
import { useClient as useClient8 } from "@dxos/react-client";
|
|
1653
1571
|
import { useSpaceSyncState } from "@dxos/react-client/echo";
|
|
1654
|
-
import { Tooltip as
|
|
1572
|
+
import { Tooltip as Tooltip2, useTranslation as useTranslation15 } from "@dxos/react-ui";
|
|
1655
1573
|
import { AttentionGlyph as AttentionGlyph2, useAttended as useAttended2, useAttention as useAttention2 } from "@dxos/react-ui-attention";
|
|
1656
1574
|
var useEdgeStatus = () => {
|
|
1657
|
-
const [status, setStatus] =
|
|
1575
|
+
const [status, setStatus] = useState9(EdgeStatus.ConnectionState.NOT_CONNECTED);
|
|
1658
1576
|
const client = useClient8();
|
|
1659
|
-
|
|
1577
|
+
useEffect4(() => {
|
|
1660
1578
|
client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
|
|
1661
|
-
setStatus(status2);
|
|
1579
|
+
setStatus(status2.state);
|
|
1662
1580
|
});
|
|
1663
1581
|
}, [
|
|
1664
1582
|
client
|
|
@@ -1666,9 +1584,9 @@ var useEdgeStatus = () => {
|
|
|
1666
1584
|
return status;
|
|
1667
1585
|
};
|
|
1668
1586
|
var InlineSyncStatus = ({ space, open }) => {
|
|
1669
|
-
var _effect =
|
|
1587
|
+
var _effect = _useSignals15();
|
|
1670
1588
|
try {
|
|
1671
|
-
const { t } =
|
|
1589
|
+
const { t } = useTranslation15(meta.id);
|
|
1672
1590
|
const id = space.id;
|
|
1673
1591
|
const { hasAttention, isAncestor, isRelated } = useAttention2(id);
|
|
1674
1592
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
@@ -1676,16 +1594,16 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1676
1594
|
const attended = useAttended2();
|
|
1677
1595
|
const startOfAttention = attended.at(-1);
|
|
1678
1596
|
const path = usePath(graph, startOfAttention);
|
|
1679
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1680
|
-
const connectedToEdge = useEdgeStatus() === EdgeStatus.CONNECTED;
|
|
1597
|
+
const containsAttended = !open && !isAttended && id && Option4.isSome(path) ? path.value.includes(id) : false;
|
|
1598
|
+
const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
|
|
1681
1599
|
const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
|
|
1682
1600
|
const syncState = useSpaceSyncState(space);
|
|
1683
1601
|
const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
|
|
1684
|
-
return /* @__PURE__ */
|
|
1602
|
+
return /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
|
|
1685
1603
|
asChild: true,
|
|
1686
1604
|
content: t("syncing label"),
|
|
1687
1605
|
side: "bottom"
|
|
1688
|
-
}, /* @__PURE__ */
|
|
1606
|
+
}, /* @__PURE__ */ React15.createElement(AttentionGlyph2, {
|
|
1689
1607
|
syncing,
|
|
1690
1608
|
attended: isAttended,
|
|
1691
1609
|
containsAttended,
|
|
@@ -1697,12 +1615,16 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1697
1615
|
};
|
|
1698
1616
|
|
|
1699
1617
|
// src/components/SyncStatus/SyncStatus.tsx
|
|
1700
|
-
import { useSignals as
|
|
1701
|
-
import
|
|
1618
|
+
import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
|
|
1619
|
+
import React16, { useEffect as useEffect5, useState as useState10 } from "react";
|
|
1702
1620
|
import { StatusBar } from "@dxos/plugin-status-bar";
|
|
1621
|
+
import { EdgeStatus as EdgeStatus2 } from "@dxos/protocols/proto/dxos/client/services";
|
|
1703
1622
|
import { useClient as useClient9 } from "@dxos/react-client";
|
|
1623
|
+
import { useStream } from "@dxos/react-client/devtools";
|
|
1704
1624
|
import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
|
|
1705
|
-
import { Icon as
|
|
1625
|
+
import { Icon as Icon5, Popover as Popover3, useTranslation as useTranslation16 } from "@dxos/react-ui";
|
|
1626
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
1627
|
+
import { Unit } from "@dxos/util";
|
|
1706
1628
|
|
|
1707
1629
|
// src/components/SyncStatus/save-tracker.ts
|
|
1708
1630
|
import { Context } from "@dxos/context";
|
|
@@ -1798,17 +1720,13 @@ var getIcon = (status) => {
|
|
|
1798
1720
|
// src/components/SyncStatus/SyncStatus.tsx
|
|
1799
1721
|
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1800
1722
|
var SyncStatus = () => {
|
|
1801
|
-
var _effect =
|
|
1723
|
+
var _effect = _useSignals16();
|
|
1802
1724
|
try {
|
|
1803
1725
|
const client = useClient9();
|
|
1804
1726
|
const state = useSyncState();
|
|
1805
|
-
const [saved, setSaved] =
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
setSaved(state2 === "saved");
|
|
1809
|
-
});
|
|
1810
|
-
}, []);
|
|
1811
|
-
return /* @__PURE__ */ React19.createElement(SyncStatusIndicator, {
|
|
1727
|
+
const [saved, setSaved] = useState10(true);
|
|
1728
|
+
useEffect5(() => createClientSaveTracker(client, (state2) => setSaved(state2 === "saved")), []);
|
|
1729
|
+
return /* @__PURE__ */ React16.createElement(SyncStatusIndicator, {
|
|
1812
1730
|
state,
|
|
1813
1731
|
saved
|
|
1814
1732
|
});
|
|
@@ -1817,9 +1735,9 @@ var SyncStatus = () => {
|
|
|
1817
1735
|
}
|
|
1818
1736
|
};
|
|
1819
1737
|
var SyncStatusIndicator = ({ state, saved }) => {
|
|
1820
|
-
var _effect =
|
|
1738
|
+
var _effect = _useSignals16();
|
|
1821
1739
|
try {
|
|
1822
|
-
const { t } =
|
|
1740
|
+
const { t } = useTranslation16(meta.id);
|
|
1823
1741
|
const summary = getSyncSummary(state);
|
|
1824
1742
|
const offline = Object.values(state).length === 0;
|
|
1825
1743
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
@@ -1830,8 +1748,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1830
1748
|
needsToUpload,
|
|
1831
1749
|
needsToDownload
|
|
1832
1750
|
});
|
|
1833
|
-
const [classNames, setClassNames] =
|
|
1834
|
-
|
|
1751
|
+
const [classNames, setClassNames] = useState10();
|
|
1752
|
+
useEffect5(() => {
|
|
1835
1753
|
setClassNames(void 0);
|
|
1836
1754
|
if (offline || !needsToUpload && !needsToDownload) {
|
|
1837
1755
|
return;
|
|
@@ -1846,67 +1764,262 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1846
1764
|
needsToDownload
|
|
1847
1765
|
]);
|
|
1848
1766
|
const title = t(`${status} label`);
|
|
1849
|
-
const icon = /* @__PURE__ */
|
|
1767
|
+
const icon = /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1850
1768
|
icon: getIcon(status),
|
|
1851
|
-
size: 4,
|
|
1852
1769
|
classNames
|
|
1853
1770
|
});
|
|
1854
|
-
return /* @__PURE__ */
|
|
1771
|
+
return /* @__PURE__ */ React16.createElement(Popover3.Root, null, /* @__PURE__ */ React16.createElement(Popover3.Trigger, {
|
|
1772
|
+
asChild: true
|
|
1773
|
+
}, /* @__PURE__ */ React16.createElement(StatusBar.Item, {
|
|
1855
1774
|
title
|
|
1856
|
-
}, icon);
|
|
1775
|
+
}, icon)), /* @__PURE__ */ React16.createElement(Popover3.Portal, null, /* @__PURE__ */ React16.createElement(Popover3.Content, null, /* @__PURE__ */ React16.createElement(EdgeConnectionPopover, null), /* @__PURE__ */ React16.createElement(Popover3.Arrow, null))));
|
|
1776
|
+
} finally {
|
|
1777
|
+
_effect.f();
|
|
1778
|
+
}
|
|
1779
|
+
};
|
|
1780
|
+
var useEdgeStatus2 = () => {
|
|
1781
|
+
const client = useClient9();
|
|
1782
|
+
const { status } = useStream(() => client.services.services.EdgeAgentService.queryEdgeStatus(), {});
|
|
1783
|
+
return status;
|
|
1784
|
+
};
|
|
1785
|
+
var EdgeConnectionPopover = () => {
|
|
1786
|
+
var _effect = _useSignals16();
|
|
1787
|
+
try {
|
|
1788
|
+
const status = useEdgeStatus2();
|
|
1789
|
+
const { t } = useTranslation16(meta.id);
|
|
1790
|
+
const isConnected = status?.state === EdgeStatus2.ConnectionState.CONNECTED;
|
|
1791
|
+
return /* @__PURE__ */ React16.createElement("div", {
|
|
1792
|
+
className: "min-is-[240px] p-2"
|
|
1793
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1794
|
+
className: "flex items-center gap-2 mbe-2"
|
|
1795
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1796
|
+
icon: isConnected ? "ph--check-circle--regular" : "ph--warning-circle--regular",
|
|
1797
|
+
classNames: mx(isConnected ? "text-successText" : "text-errorText animate-pulse")
|
|
1798
|
+
}), /* @__PURE__ */ React16.createElement("span", {
|
|
1799
|
+
className: "font-medium text-sm"
|
|
1800
|
+
}, isConnected ? t("sync edge connected label") : t("sync edge disconnected label"))), status?.state === EdgeStatus2.ConnectionState.NOT_CONNECTED && /* @__PURE__ */ React16.createElement("div", {
|
|
1801
|
+
className: "flex items-center gap-2 text-sm text-description"
|
|
1802
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1803
|
+
icon: "ph--cloud-x--regular"
|
|
1804
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync no connection label"))), status?.state === EdgeStatus2.ConnectionState.CONNECTED && /* @__PURE__ */ React16.createElement("div", {
|
|
1805
|
+
className: "space-y-2"
|
|
1806
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1807
|
+
className: "flex items-center justify-between text-sm"
|
|
1808
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1809
|
+
className: "flex items-center gap-2 text-description"
|
|
1810
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1811
|
+
icon: "ph--timer--regular"
|
|
1812
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync latency label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1813
|
+
value: status.rtt,
|
|
1814
|
+
format: Unit.Millisecond
|
|
1815
|
+
})), /* @__PURE__ */ React16.createElement("div", {
|
|
1816
|
+
className: "flex items-center justify-between text-sm"
|
|
1817
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1818
|
+
className: "flex items-center gap-2 text-description"
|
|
1819
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1820
|
+
icon: "ph--arrow-up--regular"
|
|
1821
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync upload label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1822
|
+
value: status.rateBytesUp,
|
|
1823
|
+
format: Unit.Kilobyte,
|
|
1824
|
+
suffix: "/s"
|
|
1825
|
+
})), /* @__PURE__ */ React16.createElement("div", {
|
|
1826
|
+
className: "flex items-center justify-between text-sm"
|
|
1827
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1828
|
+
className: "flex items-center gap-2 text-sm text-description"
|
|
1829
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1830
|
+
icon: "ph--arrow-down--regular"
|
|
1831
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync download label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1832
|
+
value: status.rateBytesDown,
|
|
1833
|
+
format: Unit.Kilobyte,
|
|
1834
|
+
suffix: "/s"
|
|
1835
|
+
}))));
|
|
1836
|
+
} finally {
|
|
1837
|
+
_effect.f();
|
|
1838
|
+
}
|
|
1839
|
+
};
|
|
1840
|
+
var UnitValue = ({ value: input, format, suffix }) => {
|
|
1841
|
+
var _effect = _useSignals16();
|
|
1842
|
+
try {
|
|
1843
|
+
const { formattedValue, unit } = format(input);
|
|
1844
|
+
return /* @__PURE__ */ React16.createElement("span", {
|
|
1845
|
+
className: "font-mono"
|
|
1846
|
+
}, formattedValue, /* @__PURE__ */ React16.createElement("span", {
|
|
1847
|
+
className: "mis-1 text-subdued"
|
|
1848
|
+
}, unit.symbol, suffix));
|
|
1857
1849
|
} finally {
|
|
1858
1850
|
_effect.f();
|
|
1859
1851
|
}
|
|
1860
1852
|
};
|
|
1861
1853
|
|
|
1854
|
+
// src/helpers/query.ts
|
|
1855
|
+
import * as Array2 from "effect/Array";
|
|
1856
|
+
import * as Effect3 from "effect/Effect";
|
|
1857
|
+
import * as EffectFunction from "effect/Function";
|
|
1858
|
+
import * as Match from "effect/Match";
|
|
1859
|
+
import * as Option5 from "effect/Option";
|
|
1860
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
1861
|
+
import { DXN, Filter as Filter2, Query } from "@dxos/echo";
|
|
1862
|
+
import { ReferenceAnnotationId, getTypeAnnotation as getTypeAnnotation3, unwrapOptional } from "@dxos/echo/internal";
|
|
1863
|
+
import { log as log4 } from "@dxos/log";
|
|
1864
|
+
import { Person } from "@dxos/types";
|
|
1865
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/helpers/query.ts";
|
|
1866
|
+
var evalQuery = (queryString) => {
|
|
1867
|
+
const globals = {
|
|
1868
|
+
Query,
|
|
1869
|
+
Filter: Filter2,
|
|
1870
|
+
Person
|
|
1871
|
+
};
|
|
1872
|
+
try {
|
|
1873
|
+
return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));
|
|
1874
|
+
} catch (err) {
|
|
1875
|
+
log4.catch(err, void 0, {
|
|
1876
|
+
F: __dxlog_file6,
|
|
1877
|
+
L: 32,
|
|
1878
|
+
S: void 0,
|
|
1879
|
+
C: (f, a) => f(...a)
|
|
1880
|
+
});
|
|
1881
|
+
return Query.select(Filter2.nothing());
|
|
1882
|
+
}
|
|
1883
|
+
};
|
|
1884
|
+
var resolveSchemaWithClientAndSpace = (space, query) => {
|
|
1885
|
+
const resolve = Effect3.fn(function* (dxn) {
|
|
1886
|
+
const typename = DXN.parse(dxn).asTypeDXN()?.type;
|
|
1887
|
+
if (!typename) {
|
|
1888
|
+
return Option5.none();
|
|
1889
|
+
}
|
|
1890
|
+
const query2 = space.db.schemaRegistry.query({
|
|
1891
|
+
typename,
|
|
1892
|
+
location: [
|
|
1893
|
+
"database",
|
|
1894
|
+
"runtime"
|
|
1895
|
+
]
|
|
1896
|
+
});
|
|
1897
|
+
const schemas = yield* Effect3.promise(() => query2.run());
|
|
1898
|
+
return Array2.head(schemas);
|
|
1899
|
+
});
|
|
1900
|
+
return resolveSchema(query, resolve).pipe(Effect3.map((schema) => Option5.getOrUndefined(schema)), Effect3.runPromise);
|
|
1901
|
+
};
|
|
1902
|
+
var resolveSchema = (query, resolve) => {
|
|
1903
|
+
return Match.value(query).pipe(
|
|
1904
|
+
Match.withReturnType(),
|
|
1905
|
+
// TODO(wittjosiah): Reconcile with filter match?
|
|
1906
|
+
Match.when({
|
|
1907
|
+
type: "select"
|
|
1908
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1909
|
+
Match.when({
|
|
1910
|
+
type: "filter"
|
|
1911
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1912
|
+
Match.when({
|
|
1913
|
+
type: "reference-traversal"
|
|
1914
|
+
}, ({ 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({
|
|
1915
|
+
onNone: () => Effect3.succeed(Option5.none()),
|
|
1916
|
+
onSome: (typename) => resolve(DXN.fromTypename(typename).toString())
|
|
1917
|
+
})))),
|
|
1918
|
+
Match.when({
|
|
1919
|
+
type: "relation",
|
|
1920
|
+
filter: Match.defined
|
|
1921
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1922
|
+
Match.when({
|
|
1923
|
+
type: "relation-traversal"
|
|
1924
|
+
}, ({ 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({
|
|
1925
|
+
onNone: () => Effect3.succeed(Option5.none()),
|
|
1926
|
+
onSome: (typename) => resolve(typename)
|
|
1927
|
+
})))),
|
|
1928
|
+
Match.when({
|
|
1929
|
+
type: "options"
|
|
1930
|
+
}, ({ query: query2 }) => resolveSchema(query2, resolve)),
|
|
1931
|
+
Match.orElse((_q) => {
|
|
1932
|
+
return Effect3.succeed(Option5.none());
|
|
1933
|
+
})
|
|
1934
|
+
);
|
|
1935
|
+
};
|
|
1936
|
+
var typenameFromFilter = (filter) => Match.value(filter).pipe(Match.withReturnType(), Match.when({
|
|
1937
|
+
type: "object"
|
|
1938
|
+
}, ({ typename }) => Option5.fromNullable(typename)), Match.when({
|
|
1939
|
+
type: "and"
|
|
1940
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option5.isSome), Option5.flatten)), Match.when({
|
|
1941
|
+
type: "or"
|
|
1942
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option5.isSome), Option5.flatten)), Match.orElse(() => Option5.none()));
|
|
1943
|
+
var getQueryTarget = (query, space) => {
|
|
1944
|
+
return Match.value(query).pipe(Match.when({
|
|
1945
|
+
type: "options"
|
|
1946
|
+
}, ({ options }) => {
|
|
1947
|
+
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));
|
|
1948
|
+
}), Match.orElse(() => space));
|
|
1949
|
+
};
|
|
1950
|
+
|
|
1862
1951
|
// src/components/ViewEditor.tsx
|
|
1863
|
-
import { useSignals as
|
|
1864
|
-
import
|
|
1865
|
-
import {
|
|
1866
|
-
import {
|
|
1867
|
-
import {
|
|
1952
|
+
import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
|
|
1953
|
+
import * as Schema2 from "effect/Schema";
|
|
1954
|
+
import React17, { useCallback as useCallback11, useState as useState11 } from "react";
|
|
1955
|
+
import { createIntent as createIntent10 } from "@dxos/app-framework";
|
|
1956
|
+
import { useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework/react";
|
|
1957
|
+
import { DXN as DXN2, Filter as Filter3, Obj as Obj6, Query as Query2, Tag, Type as Type2 } from "@dxos/echo";
|
|
1868
1958
|
import { useClient as useClient10 } from "@dxos/react-client";
|
|
1869
|
-
import {
|
|
1870
|
-
import {
|
|
1871
|
-
import {
|
|
1872
|
-
|
|
1959
|
+
import { getSpace as getSpace4, useQuery as useQuery2 } from "@dxos/react-client/echo";
|
|
1960
|
+
import { useAsyncEffect } from "@dxos/react-ui";
|
|
1961
|
+
import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
|
|
1962
|
+
import { View } from "@dxos/schema";
|
|
1873
1963
|
var ViewEditor = ({ view }) => {
|
|
1874
|
-
var _effect =
|
|
1964
|
+
var _effect = _useSignals17();
|
|
1875
1965
|
try {
|
|
1876
1966
|
const { dispatchPromise: dispatch } = useIntentDispatcher10();
|
|
1877
1967
|
const client = useClient10();
|
|
1878
1968
|
const space = getSpace4(view);
|
|
1879
|
-
const schema =
|
|
1880
|
-
const
|
|
1881
|
-
const
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1969
|
+
const [schema, setSchema] = useState11(() => Schema2.Struct({}));
|
|
1970
|
+
const tags = useQuery2(space, Filter3.type(Tag.Tag));
|
|
1971
|
+
const types = useTypeOptions({
|
|
1972
|
+
space,
|
|
1973
|
+
annotation: {
|
|
1974
|
+
location: [
|
|
1975
|
+
"database",
|
|
1976
|
+
"runtime"
|
|
1977
|
+
],
|
|
1978
|
+
kind: [
|
|
1979
|
+
"user"
|
|
1980
|
+
],
|
|
1981
|
+
registered: [
|
|
1982
|
+
"registered"
|
|
1892
1983
|
]
|
|
1893
|
-
}
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1984
|
+
}
|
|
1985
|
+
});
|
|
1986
|
+
useAsyncEffect(async () => {
|
|
1987
|
+
if (!view?.query || !space) {
|
|
1988
|
+
return;
|
|
1989
|
+
}
|
|
1990
|
+
const foundSchema = await resolveSchemaWithClientAndSpace(space, view.query.ast);
|
|
1991
|
+
if (foundSchema && foundSchema !== schema) {
|
|
1992
|
+
setSchema(() => foundSchema);
|
|
1993
|
+
}
|
|
1994
|
+
}, [
|
|
1995
|
+
client,
|
|
1996
|
+
space,
|
|
1997
|
+
view,
|
|
1998
|
+
schema
|
|
1999
|
+
]);
|
|
2000
|
+
const handleQueryChanged = useCallback11(async (newQuery, target) => {
|
|
2001
|
+
if (!view || !space) {
|
|
2002
|
+
return;
|
|
2003
|
+
}
|
|
2004
|
+
const queue = target && DXN2.tryParse(target) ? target : void 0;
|
|
2005
|
+
const query = queue ? Query2.fromAst(newQuery).options({
|
|
2006
|
+
queues: [
|
|
2007
|
+
queue
|
|
1901
2008
|
]
|
|
1902
|
-
});
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
2009
|
+
}) : Query2.fromAst(newQuery);
|
|
2010
|
+
view.query.ast = query.ast;
|
|
2011
|
+
const newSchema = await resolveSchemaWithClientAndSpace(space, query.ast);
|
|
2012
|
+
if (!newSchema) {
|
|
2013
|
+
return;
|
|
1906
2014
|
}
|
|
1907
|
-
|
|
2015
|
+
const newView = View.make({
|
|
2016
|
+
query,
|
|
2017
|
+
jsonSchema: Type2.toJsonSchema(newSchema)
|
|
2018
|
+
});
|
|
2019
|
+
view.projection = Obj6.getSnapshot(newView).projection;
|
|
2020
|
+
setSchema(() => newSchema);
|
|
1908
2021
|
}, [
|
|
1909
|
-
|
|
2022
|
+
view,
|
|
1910
2023
|
schema
|
|
1911
2024
|
]);
|
|
1912
2025
|
const handleDelete = useCallback11((fieldId) => {
|
|
@@ -1921,13 +2034,15 @@ var ViewEditor = ({ view }) => {
|
|
|
1921
2034
|
if (!space || !schema) {
|
|
1922
2035
|
return null;
|
|
1923
2036
|
}
|
|
1924
|
-
return /* @__PURE__ */
|
|
2037
|
+
return /* @__PURE__ */ React17.createElement(NaturalViewEditor, {
|
|
1925
2038
|
registry: space.db.schemaRegistry,
|
|
1926
2039
|
schema,
|
|
1927
2040
|
view,
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
2041
|
+
mode: "tag",
|
|
2042
|
+
tags,
|
|
2043
|
+
types,
|
|
2044
|
+
onQueryChanged: handleQueryChanged,
|
|
2045
|
+
onDelete: Type2.isMutable(schema) ? handleDelete : void 0
|
|
1931
2046
|
});
|
|
1932
2047
|
} finally {
|
|
1933
2048
|
_effect.f();
|
|
@@ -1936,8 +2051,10 @@ var ViewEditor = ({ view }) => {
|
|
|
1936
2051
|
|
|
1937
2052
|
// src/components/index.ts
|
|
1938
2053
|
import { lazy as lazy2 } from "react";
|
|
1939
|
-
var
|
|
1940
|
-
var
|
|
2054
|
+
var CollectionArticle = lazy2(() => import("./CollectionArticle-KHXYT3SH.mjs"));
|
|
2055
|
+
var ObjectCardStack = lazy2(() => import("./ObjectCardStack-AAKMAQ6T.mjs"));
|
|
2056
|
+
var ObjectDetails = lazy2(() => import("./ObjectDetails-TZ5YKXGN.mjs"));
|
|
2057
|
+
var RecordArticle = lazy2(() => import("./RecordArticle-SSJ7PULS.mjs"));
|
|
1941
2058
|
|
|
1942
2059
|
export {
|
|
1943
2060
|
AwaitingObject,
|
|
@@ -1950,36 +2067,38 @@ export {
|
|
|
1950
2067
|
JoinDialog,
|
|
1951
2068
|
MembersContainer,
|
|
1952
2069
|
MenuFooter,
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
POPOVER_RENAME_OBJECT,
|
|
1956
|
-
PopoverRenameObject,
|
|
1957
|
-
POPOVER_RENAME_SPACE,
|
|
1958
|
-
PopoverRenameSpace,
|
|
1959
|
-
useQuerySpaceSchemas,
|
|
2070
|
+
OBJECT_RENAME_POPOVER,
|
|
2071
|
+
ObjectRenamePopover,
|
|
1960
2072
|
SchemaContainer,
|
|
2073
|
+
useQuerySpaceSchemas,
|
|
2074
|
+
SpacePluginSettings,
|
|
1961
2075
|
SpacePresence,
|
|
1962
2076
|
FullPresence,
|
|
1963
2077
|
SmallPresenceLive,
|
|
1964
2078
|
SmallPresence,
|
|
1965
|
-
|
|
2079
|
+
SPACE_RENAME_POPOVER,
|
|
2080
|
+
SpaceRenamePopover,
|
|
1966
2081
|
SpaceSettingsContainer,
|
|
1967
2082
|
InlineSyncStatus,
|
|
1968
2083
|
SyncStatus,
|
|
1969
2084
|
SyncStatusIndicator,
|
|
2085
|
+
evalQuery,
|
|
2086
|
+
resolveSchemaWithClientAndSpace,
|
|
2087
|
+
getQueryTarget,
|
|
1970
2088
|
ViewEditor,
|
|
1971
|
-
|
|
1972
|
-
|
|
2089
|
+
CollectionArticle,
|
|
2090
|
+
ObjectCardStack,
|
|
2091
|
+
ObjectDetails,
|
|
2092
|
+
RecordArticle,
|
|
1973
2093
|
AppGraphBuilder,
|
|
1974
2094
|
AppGraphSerializer,
|
|
1975
2095
|
IdentityCreated,
|
|
1976
2096
|
IntentResolver,
|
|
1977
2097
|
ReactRoot,
|
|
1978
2098
|
ReactSurface,
|
|
1979
|
-
|
|
1980
|
-
SchemaTools,
|
|
2099
|
+
Repair,
|
|
1981
2100
|
SpaceSettings,
|
|
1982
2101
|
SpaceState,
|
|
1983
2102
|
SpacesReady
|
|
1984
2103
|
};
|
|
1985
|
-
//# sourceMappingURL=chunk-
|
|
2104
|
+
//# sourceMappingURL=chunk-XD532BVR.mjs.map
|