@dxos/plugin-space 0.8.4-main.e098934 → 0.8.4-main.e8ec1fe
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/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
- package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
- package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
- package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
- package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
- package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-AFC6PNAB.mjs → app-graph-builder-DTM7BJ6D.mjs} +107 -96
- package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-Q7QG4EKW.mjs → app-graph-serializer-TIKXF43P.mjs} +19 -19
- package/dist/lib/browser/app-graph-serializer-TIKXF43P.mjs.map +7 -0
- package/dist/lib/browser/chunk-AFUOMLX6.mjs +167 -0
- package/dist/lib/browser/chunk-AFUOMLX6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6GRF7NEF.mjs → chunk-CKACGS7T.mjs} +553 -475
- package/dist/lib/browser/chunk-CKACGS7T.mjs.map +7 -0
- package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
- package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
- package/dist/lib/browser/{chunk-S33AYKSS.mjs → chunk-KFUMADZF.mjs} +135 -62
- package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WZYRDFW7.mjs → chunk-VGKOXAPE.mjs} +26 -13
- package/dist/lib/browser/chunk-VGKOXAPE.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-URST7EEN.mjs → chunk-ZQMSGD5J.mjs} +35 -19
- package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +88 -70
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-CO262Q44.mjs → intent-resolver-3FNTO3VW.mjs} +89 -76
- package/dist/lib/browser/intent-resolver-3FNTO3VW.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-Q7VBWBES.mjs +30 -0
- package/dist/lib/browser/react-root-Q7VBWBES.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-TPUOK2LC.mjs → react-surface-TTHS332A.mjs} +71 -105
- package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-YDPFZELA.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
- package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
- package/dist/lib/browser/{settings-ZYH2JWNI.mjs → settings-45PGPO2V.mjs} +5 -5
- package/dist/lib/browser/{settings-ZYH2JWNI.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-3I5LISH4.mjs → spaces-ready-QCND4DVY.mjs} +15 -14
- package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
- package/dist/lib/browser/{state-2RGW7FQG.mjs → state-Q7YRE5KG.mjs} +7 -7
- package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- 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/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
- package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
- package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
- package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-OW2EBYRI.mjs → app-graph-builder-FBJFWI4H.mjs} +107 -96
- package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-6PGC5WR5.mjs → app-graph-serializer-BESQZAYU.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-serializer-BESQZAYU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-RXDT5LA5.mjs → chunk-6VEONPNZ.mjs} +35 -19
- package/dist/lib/node-esm/chunk-6VEONPNZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs +168 -0
- package/dist/lib/node-esm/chunk-6ZQGZBEP.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-TEUN2E4F.mjs → chunk-OK2L7N2F.mjs} +135 -62
- package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LGNPMOXU.mjs → chunk-QBRPYAEL.mjs} +26 -13
- package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-NMCD2PSG.mjs → chunk-XGAMJC5C.mjs} +553 -475
- package/dist/lib/node-esm/chunk-XGAMJC5C.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
- package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +88 -70
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-EXPK4B76.mjs → intent-resolver-6O5FSB7Z.mjs} +89 -76
- package/dist/lib/node-esm/intent-resolver-6O5FSB7Z.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-4OQ7MPGW.mjs → react-root-K66W3FMA.mjs} +13 -12
- package/dist/lib/node-esm/react-root-K66W3FMA.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-WXEXIDB7.mjs → react-surface-Y7FTEIDF.mjs} +71 -105
- package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-OYBCWKAS.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
- package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-2RYFMMTP.mjs → settings-6FO65BA6.mjs} +5 -5
- package/dist/lib/node-esm/{settings-2RYFMMTP.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-JAP22P57.mjs → spaces-ready-P7CKVXBE.mjs} +15 -14
- package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
- package/dist/lib/node-esm/{state-7VBVBGNS.mjs → state-362I5BMK.mjs} +7 -7
- package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- 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.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +6 -5
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts +6 -0
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/components/CollectionSection.d.ts +3 -4
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +120 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +3 -3
- 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/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1707 -0
- package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
- package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
- package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1540 -0
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
- package/dist/types/src/components/RecordArticle.d.ts +5 -0
- package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +121 -2
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
- package/dist/types/src/components/SchemaContainer.d.ts +1 -1
- 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} +4 -3
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
- package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +122 -3
- package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
- package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
- package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +120 -1
- 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 +121 -2
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts +3 -4
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +10 -17
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/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 +8 -0
- package/dist/types/src/helpers/query.d.ts.map +1 -0
- package/dist/types/src/helpers/query.test.d.ts +2 -0
- package/dist/types/src/helpers/query.test.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
- 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 +120 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +70 -55
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +10 -7
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +65 -60
- package/src/SpacePlugin.ts +228 -200
- package/src/capabilities/app-graph-builder.ts +157 -121
- package/src/capabilities/app-graph-serializer.ts +12 -12
- package/src/capabilities/capabilities.ts +16 -11
- package/src/capabilities/identity-created.ts +2 -2
- package/src/capabilities/intent-resolver.ts +75 -59
- package/src/capabilities/react-root.tsx +4 -3
- package/src/capabilities/react-surface.tsx +65 -141
- package/src/capabilities/schema-defs.ts +1 -1
- package/src/capabilities/spaces-ready.ts +8 -5
- package/src/capabilities/state.ts +2 -2
- 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 +11 -11
- package/src/components/CreateDialog/CreateObjectDialog.tsx +36 -28
- package/src/components/CreateDialog/CreateObjectPanel.tsx +8 -8
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +7 -6
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +16 -14
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
- package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
- package/src/components/ObjectDetailsPanel/index.ts +7 -0
- package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
- package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
- package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
- package/src/components/ObjectSettings/index.ts +3 -1
- package/src/components/RecordArticle.stories.tsx +115 -0
- package/src/components/RecordArticle.tsx +114 -0
- package/src/components/SchemaContainer.tsx +23 -26
- package/src/components/SpacePluginSettings.tsx +10 -4
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +23 -25
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
- 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 +9 -4
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +44 -23
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +4 -5
- package/src/components/SyncStatus/SyncStatus.tsx +107 -11
- package/src/components/ViewEditor.tsx +51 -18
- package/src/components/index.ts +7 -8
- package/src/events.ts +6 -6
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +158 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +2 -1
- package/src/hooks/useInputSurfaceLookup.tsx +8 -3
- package/src/hooks/usePath.ts +1 -1
- package/src/hooks/useTypeOptions.ts +59 -0
- package/src/index.ts +1 -0
- package/src/meta.ts +6 -3
- package/src/translations.ts +25 -10
- package/src/types/types.ts +33 -18
- package/src/util.tsx +141 -63
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs +0 -90
- package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs.map +0 -7
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
- package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-AFC6PNAB.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-Q7QG4EKW.mjs.map +0 -7
- package/dist/lib/browser/chunk-6GRF7NEF.mjs.map +0 -7
- package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
- package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
- package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
- package/dist/lib/browser/chunk-ELJDGQTO.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-S33AYKSS.mjs.map +0 -7
- package/dist/lib/browser/chunk-TUQZO5P4.mjs +0 -20
- package/dist/lib/browser/chunk-TUQZO5P4.mjs.map +0 -7
- package/dist/lib/browser/chunk-URST7EEN.mjs.map +0 -7
- package/dist/lib/browser/chunk-WZYRDFW7.mjs.map +0 -7
- package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-CO262Q44.mjs.map +0 -7
- package/dist/lib/browser/react-root-K4IVLFYZ.mjs +0 -29
- package/dist/lib/browser/react-root-K4IVLFYZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-TPUOK2LC.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-3I5LISH4.mjs.map +0 -7
- package/dist/lib/browser/state-2RGW7FQG.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs +0 -91
- package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs.map +0 -7
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
- package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-OW2EBYRI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-6PGC5WR5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
- package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HC677WUJ.mjs +0 -21
- package/dist/lib/node-esm/chunk-HC677WUJ.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-LGNPMOXU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NMCD2PSG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
- package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-RXDT5LA5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-TEUN2E4F.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-EXPK4B76.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-4OQ7MPGW.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-WXEXIDB7.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-JAP22P57.mjs.map +0 -7
- package/dist/lib/node-esm/state-7VBVBGNS.mjs.map +0 -7
- package/dist/types/src/components/CollectionMain.d.ts +0 -7
- package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
- package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
- package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
- package/dist/types/src/components/RecordMain.d.ts +0 -7
- package/dist/types/src/components/RecordMain.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/src/components/ObjectDetailsPanel.tsx +0 -79
- package/src/components/PersistenceStatus.tsx +0 -83
- package/src/components/RecordMain.tsx +0 -43
- /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
|
@@ -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-6ZQGZBEP.mjs";
|
|
6
7
|
import {
|
|
7
8
|
SpaceCapabilities
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Z7BB6HC2.mjs";
|
|
9
10
|
import {
|
|
10
11
|
COMPOSER_SPACE_LOCK,
|
|
11
12
|
getSpaceDisplayName
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OK2L7N2F.mjs";
|
|
13
14
|
import {
|
|
14
15
|
SpaceAction,
|
|
15
16
|
SpaceForm
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-6VEONPNZ.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 { LayoutAction, createIntent
|
|
25
|
+
import { LayoutAction, createIntent } from "@dxos/app-framework";
|
|
26
|
+
import { useIntentDispatcher, useLayout } from "@dxos/app-framework/react";
|
|
27
|
+
import { Obj } from "@dxos/echo";
|
|
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,37 +122,26 @@ 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
|
|
125
|
+
import * as Effect from "effect/Effect";
|
|
126
|
+
import * as Function2 from "effect/Function";
|
|
126
127
|
import React3, { useCallback as useCallback3, useRef, useState as useState2 } from "react";
|
|
127
|
-
import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2
|
|
128
|
-
import {
|
|
128
|
+
import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2 } from "@dxos/app-framework";
|
|
129
|
+
import { useCapabilities, useIntentDispatcher as useIntentDispatcher2, usePluginManager } from "@dxos/app-framework/react";
|
|
130
|
+
import { Obj as Obj2, Query, Type as Type2 } from "@dxos/echo";
|
|
129
131
|
import { invariant } from "@dxos/invariant";
|
|
130
132
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
131
133
|
import { getSpace, isLiveObject, isSpace, useQuery as useQuery2, useSpaces } from "@dxos/react-client/echo";
|
|
132
|
-
import {
|
|
134
|
+
import { Dialog, IconButton, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
133
135
|
import { cardDialogContent, cardDialogHeader } from "@dxos/react-ui-stack";
|
|
134
|
-
import {
|
|
136
|
+
import { Collection, StoredSchema, getTypenameFromQuery } from "@dxos/schema";
|
|
135
137
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
136
138
|
|
|
137
|
-
// src/capabilities/index.ts
|
|
138
|
-
import { lazy } from "@dxos/app-framework";
|
|
139
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-OW2EBYRI.mjs"));
|
|
140
|
-
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-6PGC5WR5.mjs"));
|
|
141
|
-
var IdentityCreated = lazy(() => import("./identity-created-AL7NNCKH.mjs"));
|
|
142
|
-
var IntentResolver = lazy(() => import("./intent-resolver-EXPK4B76.mjs"));
|
|
143
|
-
var ReactRoot = lazy(() => import("./react-root-4OQ7MPGW.mjs"));
|
|
144
|
-
var ReactSurface = lazy(() => import("./react-surface-WXEXIDB7.mjs"));
|
|
145
|
-
var SchemaDefs = lazy(() => import("./schema-defs-OYBCWKAS.mjs"));
|
|
146
|
-
var SpaceSettings = lazy(() => import("./settings-2RYFMMTP.mjs"));
|
|
147
|
-
var SpaceState = lazy(() => import("./state-7VBVBGNS.mjs"));
|
|
148
|
-
var SpacesReady = lazy(() => import("./spaces-ready-JAP22P57.mjs"));
|
|
149
|
-
|
|
150
139
|
// src/components/CreateDialog/CreateObjectPanel.tsx
|
|
151
140
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
152
|
-
import
|
|
141
|
+
import * as Option from "effect/Option";
|
|
153
142
|
import React2, { useCallback as useCallback2 } from "react";
|
|
154
143
|
import { Type } from "@dxos/echo";
|
|
155
|
-
import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo
|
|
144
|
+
import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
|
|
156
145
|
import { Icon as Icon2, toLocalizedString, useDefaultValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
157
146
|
import { Form } from "@dxos/react-ui-form";
|
|
158
147
|
import { SearchList } from "@dxos/react-ui-searchlist";
|
|
@@ -161,7 +150,7 @@ import { isNonNullable } from "@dxos/util";
|
|
|
161
150
|
var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormValues: _initialFormValues, defaultSpaceId, resolve, onTargetChange, onTypenameChange, onCreateObject }) => {
|
|
162
151
|
var _effect = _useSignals2();
|
|
163
152
|
try {
|
|
164
|
-
const { t } = useTranslation2(
|
|
153
|
+
const { t } = useTranslation2(meta.id);
|
|
165
154
|
const initialFormValues = useDefaultValue(_initialFormValues, () => ({}));
|
|
166
155
|
const form = forms.find((form2) => Type.getTypename(form2.objectSchema) === typename);
|
|
167
156
|
const options = forms.filter((form2) => {
|
|
@@ -236,7 +225,7 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormVa
|
|
|
236
225
|
var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
237
226
|
var _effect = _useSignals2();
|
|
238
227
|
try {
|
|
239
|
-
const { t } = useTranslation2(
|
|
228
|
+
const { t } = useTranslation2(meta.id);
|
|
240
229
|
return /* @__PURE__ */ React2.createElement(SearchList.Root, {
|
|
241
230
|
label: t("space input label"),
|
|
242
231
|
classNames: cardDialogSearchListRoot
|
|
@@ -276,7 +265,7 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
|
|
|
276
265
|
var SelectSchema = ({ options, resolve, onChange }) => {
|
|
277
266
|
var _effect = _useSignals2();
|
|
278
267
|
try {
|
|
279
|
-
const { t } = useTranslation2(
|
|
268
|
+
const { t } = useTranslation2(meta.id);
|
|
280
269
|
return /* @__PURE__ */ React2.createElement(SearchList.Root, {
|
|
281
270
|
label: t("schema input label"),
|
|
282
271
|
classNames: cardDialogSearchListRoot
|
|
@@ -310,22 +299,22 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
310
299
|
|
|
311
300
|
// src/components/CreateDialog/CreateObjectDialog.tsx
|
|
312
301
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
|
|
313
|
-
var CREATE_OBJECT_DIALOG = `${
|
|
302
|
+
var CREATE_OBJECT_DIALOG = `${meta.id}/CreateObjectDialog`;
|
|
314
303
|
var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, views, initialFormValues, onCreateObject, shouldNavigate: _shouldNavigate }) => {
|
|
315
304
|
var _effect = _useSignals3();
|
|
316
305
|
try {
|
|
317
|
-
const closeRef = useRef(null);
|
|
318
306
|
const manager = usePluginManager();
|
|
319
|
-
const { t } = useTranslation3(
|
|
320
|
-
const client = useClient2();
|
|
321
|
-
const spaces = useSpaces();
|
|
307
|
+
const { t } = useTranslation3(meta.id);
|
|
322
308
|
const { dispatch } = useIntentDispatcher2();
|
|
323
309
|
const forms = useCapabilities(SpaceCapabilities.ObjectForm);
|
|
324
310
|
const [target, setTarget] = useState2(initialTarget);
|
|
325
311
|
const [typename, setTypename] = useState2(initialTypename);
|
|
312
|
+
const client = useClient2();
|
|
313
|
+
const spaces = useSpaces();
|
|
326
314
|
const space = isSpace(target) ? target : getSpace(target);
|
|
327
|
-
const queryCollections = useQuery2(space, Query.type(
|
|
328
|
-
const hiddenTypenames = queryCollections.map((collection) =>
|
|
315
|
+
const queryCollections = useQuery2(space, Query.type(Collection.QueryCollection));
|
|
316
|
+
const hiddenTypenames = queryCollections.map((collection) => getTypenameFromQuery(collection.query)).filter(isNonNullable2);
|
|
317
|
+
const closeRef = useRef(null);
|
|
329
318
|
const resolve = useCallback3((typename2) => manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
|
|
330
319
|
manager
|
|
331
320
|
]);
|
|
@@ -337,7 +326,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
337
326
|
const space2 = isSpace(target) ? target : getSpace(target);
|
|
338
327
|
invariant(space2, "Missing space", {
|
|
339
328
|
F: __dxlog_file,
|
|
340
|
-
L:
|
|
329
|
+
L: 77,
|
|
341
330
|
S: this,
|
|
342
331
|
A: [
|
|
343
332
|
"space",
|
|
@@ -347,7 +336,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
347
336
|
const { object } = yield* dispatch(form.getIntent(data, {
|
|
348
337
|
space: space2
|
|
349
338
|
}));
|
|
350
|
-
if (isLiveObject(object) && !
|
|
339
|
+
if (isLiveObject(object) && !Obj2.instanceOf(StoredSchema, object)) {
|
|
351
340
|
const hidden = form.hidden || hiddenTypenames.includes(Type2.getTypename(form.objectSchema));
|
|
352
341
|
const addObjectIntent = createIntent2(SpaceAction.AddObject, {
|
|
353
342
|
target,
|
|
@@ -356,7 +345,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
356
345
|
});
|
|
357
346
|
const shouldNavigate = _shouldNavigate ?? (() => true);
|
|
358
347
|
if (shouldNavigate(object)) {
|
|
359
|
-
yield* dispatch(pipe(addObjectIntent, chain(LayoutAction2.Open, {
|
|
348
|
+
yield* dispatch(Function2.pipe(addObjectIntent, chain(LayoutAction2.Open, {
|
|
360
349
|
part: "main"
|
|
361
350
|
})));
|
|
362
351
|
} else {
|
|
@@ -386,15 +375,16 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
386
375
|
})
|
|
387
376
|
})), /* @__PURE__ */ React3.createElement(Dialog.Close, {
|
|
388
377
|
asChild: true
|
|
389
|
-
}, /* @__PURE__ */ React3.createElement(
|
|
378
|
+
}, /* @__PURE__ */ React3.createElement(IconButton, {
|
|
390
379
|
ref: closeRef,
|
|
380
|
+
icon: "ph--x--regular",
|
|
381
|
+
size: 4,
|
|
382
|
+
label: "Close",
|
|
383
|
+
iconOnly: true,
|
|
391
384
|
density: "fine",
|
|
392
385
|
variant: "ghost",
|
|
393
386
|
autoFocus: true
|
|
394
|
-
}, /* @__PURE__ */ React3.createElement(
|
|
395
|
-
icon: "ph--x--regular",
|
|
396
|
-
size: 4
|
|
397
|
-
})))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
387
|
+
}))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
398
388
|
forms,
|
|
399
389
|
spaces,
|
|
400
390
|
target,
|
|
@@ -415,13 +405,14 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
415
405
|
|
|
416
406
|
// src/components/CreateDialog/CreateSpaceDialog.tsx
|
|
417
407
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
418
|
-
import
|
|
408
|
+
import * as Effect2 from "effect/Effect";
|
|
419
409
|
import React4, { useCallback as useCallback4, useRef as useRef2 } from "react";
|
|
420
|
-
import { LayoutAction as LayoutAction3, createIntent as createIntent3
|
|
421
|
-
import {
|
|
410
|
+
import { LayoutAction as LayoutAction3, createIntent as createIntent3 } from "@dxos/app-framework";
|
|
411
|
+
import { useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework/react";
|
|
412
|
+
import { Dialog as Dialog2, IconButton as IconButton2, useTranslation as useTranslation4 } from "@dxos/react-ui";
|
|
422
413
|
import { Form as Form2 } from "@dxos/react-ui-form";
|
|
423
414
|
import { cardDialogContent as cardDialogContent2, cardDialogHeader as cardDialogHeader2 } from "@dxos/react-ui-stack";
|
|
424
|
-
var CREATE_SPACE_DIALOG = `${
|
|
415
|
+
var CREATE_SPACE_DIALOG = `${meta.id}/CreateSpaceDialog`;
|
|
425
416
|
var initialValues = {
|
|
426
417
|
edgeReplication: true
|
|
427
418
|
};
|
|
@@ -429,7 +420,7 @@ var CreateSpaceDialog = () => {
|
|
|
429
420
|
var _effect = _useSignals4();
|
|
430
421
|
try {
|
|
431
422
|
const closeRef = useRef2(null);
|
|
432
|
-
const { t } = useTranslation4(
|
|
423
|
+
const { t } = useTranslation4(meta.id);
|
|
433
424
|
const { dispatch } = useIntentDispatcher3();
|
|
434
425
|
const inputSurfaceLookup = useInputSurfaceLookup();
|
|
435
426
|
const handleCreateSpace = useCallback4(async (data) => {
|
|
@@ -460,15 +451,16 @@ var CreateSpaceDialog = () => {
|
|
|
460
451
|
className: cardDialogHeader2
|
|
461
452
|
}, /* @__PURE__ */ React4.createElement(Dialog2.Title, null, t("create space dialog title")), /* @__PURE__ */ React4.createElement(Dialog2.Close, {
|
|
462
453
|
asChild: true
|
|
463
|
-
}, /* @__PURE__ */ React4.createElement(
|
|
454
|
+
}, /* @__PURE__ */ React4.createElement(IconButton2, {
|
|
464
455
|
ref: closeRef,
|
|
456
|
+
icon: "ph--x--regular",
|
|
457
|
+
size: 4,
|
|
458
|
+
label: "Close",
|
|
459
|
+
iconOnly: true,
|
|
465
460
|
density: "fine",
|
|
466
461
|
variant: "ghost",
|
|
467
462
|
autoFocus: true
|
|
468
|
-
}, /* @__PURE__ */ React4.createElement(
|
|
469
|
-
icon: "ph--x--regular",
|
|
470
|
-
size: 4
|
|
471
|
-
})))), /* @__PURE__ */ React4.createElement("div", {
|
|
463
|
+
}))), /* @__PURE__ */ React4.createElement("div", {
|
|
472
464
|
role: "none",
|
|
473
465
|
className: "contents"
|
|
474
466
|
}, /* @__PURE__ */ React4.createElement(Form2, {
|
|
@@ -490,37 +482,39 @@ var CreateSpaceDialog = () => {
|
|
|
490
482
|
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
|
491
483
|
import React5 from "react";
|
|
492
484
|
import { useTranslation as useTranslation5 } from "@dxos/react-ui";
|
|
493
|
-
var CollectionSection = ({
|
|
485
|
+
var CollectionSection = ({ role, subject }) => {
|
|
494
486
|
var _effect = _useSignals5();
|
|
495
487
|
try {
|
|
496
|
-
const { t } = useTranslation5(
|
|
488
|
+
const { t } = useTranslation5(meta.id);
|
|
497
489
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
490
|
+
role,
|
|
498
491
|
className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
499
492
|
}, /* @__PURE__ */ React5.createElement("span", {
|
|
500
493
|
className: "truncate"
|
|
501
|
-
},
|
|
494
|
+
}, subject.name ?? t("unnamed collection label")));
|
|
502
495
|
} finally {
|
|
503
496
|
_effect.f();
|
|
504
497
|
}
|
|
505
498
|
};
|
|
506
499
|
|
|
507
|
-
// src/components/JoinDialog.tsx
|
|
500
|
+
// src/components/JoinDialog/JoinDialog.tsx
|
|
508
501
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
509
502
|
import React6, { useCallback as useCallback5 } from "react";
|
|
510
|
-
import { LayoutAction as LayoutAction4, createIntent as createIntent4
|
|
503
|
+
import { LayoutAction as LayoutAction4, createIntent as createIntent4 } from "@dxos/app-framework";
|
|
504
|
+
import { useAppGraph, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework/react";
|
|
511
505
|
import { Trigger } from "@dxos/async";
|
|
512
506
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
513
507
|
import { useClient as useClient3 } from "@dxos/react-client";
|
|
514
508
|
import { Dialog as Dialog3, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
515
509
|
import { JoinPanel } from "@dxos/shell/react";
|
|
516
|
-
var JOIN_DIALOG = `${
|
|
510
|
+
var JOIN_DIALOG = `${meta.id}/JoinDialog`;
|
|
517
511
|
var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
518
512
|
var _effect = _useSignals6();
|
|
519
513
|
try {
|
|
520
514
|
const { dispatchPromise: dispatch } = useIntentDispatcher4();
|
|
521
515
|
const client = useClient3();
|
|
522
516
|
const { graph } = useAppGraph();
|
|
523
|
-
const { t } = useTranslation6(
|
|
517
|
+
const { t } = useTranslation6(meta.id);
|
|
524
518
|
const handleDone = useCallback5(async (result) => {
|
|
525
519
|
const spaceKey = result?.spaceKey;
|
|
526
520
|
if (!spaceKey) {
|
|
@@ -530,18 +524,18 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
530
524
|
dispatch(createIntent4(LayoutAction4.AddToast, {
|
|
531
525
|
part: "toast",
|
|
532
526
|
subject: {
|
|
533
|
-
id: `${
|
|
527
|
+
id: `${meta.id}/join-success`,
|
|
534
528
|
duration: 5e3,
|
|
535
529
|
title: [
|
|
536
530
|
"join success label",
|
|
537
531
|
{
|
|
538
|
-
ns:
|
|
532
|
+
ns: meta.id
|
|
539
533
|
}
|
|
540
534
|
],
|
|
541
535
|
closeLabel: [
|
|
542
536
|
"dismiss label",
|
|
543
537
|
{
|
|
544
|
-
ns:
|
|
538
|
+
ns: meta.id
|
|
545
539
|
}
|
|
546
540
|
]
|
|
547
541
|
}
|
|
@@ -620,22 +614,24 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
620
614
|
}
|
|
621
615
|
};
|
|
622
616
|
|
|
623
|
-
// src/components/MembersContainer.tsx
|
|
617
|
+
// src/components/MembersContainer/MembersContainer.tsx
|
|
624
618
|
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
625
619
|
import React7, { useCallback as useCallback6, useMemo, useState as useState3 } from "react";
|
|
626
620
|
import { QR } from "react-qr-rounded";
|
|
627
|
-
import { createIntent as createIntent5
|
|
621
|
+
import { createIntent as createIntent5 } from "@dxos/app-framework";
|
|
622
|
+
import { useIntentDispatcher as useIntentDispatcher5 } from "@dxos/app-framework/react";
|
|
623
|
+
import { Obj as Obj3 } from "@dxos/echo";
|
|
628
624
|
import { log } from "@dxos/log";
|
|
629
625
|
import { useConfig } from "@dxos/react-client";
|
|
630
|
-
import {
|
|
626
|
+
import { useSpaceInvitations } from "@dxos/react-client/echo";
|
|
631
627
|
import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
|
|
632
|
-
import { Button as
|
|
628
|
+
import { Button as Button2, Clipboard, Icon as Icon3, Input, useId, useTranslation as useTranslation7 } from "@dxos/react-ui";
|
|
633
629
|
import { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
634
630
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
635
|
-
import {
|
|
631
|
+
import { Collection as Collection2 } from "@dxos/schema";
|
|
636
632
|
import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport } from "@dxos/shell/react";
|
|
637
633
|
import { hexToEmoji } from "@dxos/util";
|
|
638
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer.tsx";
|
|
634
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer/MembersContainer.tsx";
|
|
639
635
|
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
640
636
|
var handleInvitationEvent = (invitation, subscription) => {
|
|
641
637
|
const invitationCode = InvitationEncoder.encode(invitation);
|
|
@@ -645,7 +641,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
645
641
|
authCode: invitation.authCode
|
|
646
642
|
}), void 0, {
|
|
647
643
|
F: __dxlog_file2,
|
|
648
|
-
L:
|
|
644
|
+
L: 41,
|
|
649
645
|
S: void 0,
|
|
650
646
|
C: (f, a) => f(...a)
|
|
651
647
|
});
|
|
@@ -655,7 +651,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
655
651
|
var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
656
652
|
var _effect = _useSignals7();
|
|
657
653
|
try {
|
|
658
|
-
const { t } = useTranslation7(
|
|
654
|
+
const { t } = useTranslation7(meta.id);
|
|
659
655
|
const config = useConfig();
|
|
660
656
|
const { dispatchPromise: dispatch } = useIntentDispatcher5();
|
|
661
657
|
const invitations = useSpaceInvitations(space.key);
|
|
@@ -667,7 +663,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
667
663
|
setInternalActiveAction(nextAction);
|
|
668
664
|
localStorage.setItem(activeActionKey, nextAction);
|
|
669
665
|
};
|
|
670
|
-
const target = space.properties[
|
|
666
|
+
const target = space.properties[Collection2.Collection.typename]?.target?.objects[0]?.target;
|
|
671
667
|
const locked = space.properties[COMPOSER_SPACE_LOCK];
|
|
672
668
|
const handleChangeLocked = useCallback6(() => {
|
|
673
669
|
space.properties[COMPOSER_SPACE_LOCK] = !locked;
|
|
@@ -683,10 +679,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
683
679
|
description: t("invite one description", {
|
|
684
680
|
ns: "os"
|
|
685
681
|
}),
|
|
686
|
-
icon:
|
|
687
|
-
icon: "ph--user-plus--regular",
|
|
688
|
-
size: 5
|
|
689
|
-
}),
|
|
682
|
+
icon: "ph--user-plus--regular",
|
|
690
683
|
testId: "membersContainer.inviteOne",
|
|
691
684
|
onClick: async () => {
|
|
692
685
|
const { data: invitation } = await dispatch(createIntent5(SpaceAction.Share, {
|
|
@@ -694,7 +687,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
694
687
|
type: Invitation.Type.INTERACTIVE,
|
|
695
688
|
authMethod: Invitation.AuthMethod.SHARED_SECRET,
|
|
696
689
|
multiUse: false,
|
|
697
|
-
target: target &&
|
|
690
|
+
target: target && Obj3.getDXN(target).toString()
|
|
698
691
|
}));
|
|
699
692
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
700
693
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
@@ -708,10 +701,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
708
701
|
description: t("invite many description", {
|
|
709
702
|
ns: "os"
|
|
710
703
|
}),
|
|
711
|
-
icon:
|
|
712
|
-
icon: "ph--users-three--regular",
|
|
713
|
-
size: 5
|
|
714
|
-
}),
|
|
704
|
+
icon: "ph--users-three--regular",
|
|
715
705
|
testId: "membersContainer.inviteMany",
|
|
716
706
|
onClick: async () => {
|
|
717
707
|
const { data: invitation } = await dispatch(createIntent5(SpaceAction.Share, {
|
|
@@ -719,7 +709,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
719
709
|
type: Invitation.Type.DELEGATED,
|
|
720
710
|
authMethod: Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
|
|
721
711
|
multiUse: true,
|
|
722
|
-
target: target &&
|
|
712
|
+
target: target && Obj3.getDXN(target).toString()
|
|
723
713
|
}));
|
|
724
714
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
725
715
|
const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
|
|
@@ -739,7 +729,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
739
729
|
setSelectedInvitation(null);
|
|
740
730
|
};
|
|
741
731
|
return /* @__PURE__ */ React7.createElement(Clipboard.Provider, null, /* @__PURE__ */ React7.createElement(StackItem.Content, {
|
|
742
|
-
|
|
732
|
+
scrollable: true
|
|
743
733
|
}, /* @__PURE__ */ React7.createElement(ControlPage, null, /* @__PURE__ */ React7.createElement(ControlSection, {
|
|
744
734
|
title: t("members verbose label"),
|
|
745
735
|
description: t("members description")
|
|
@@ -822,7 +812,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
|
|
|
822
812
|
return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("p", {
|
|
823
813
|
className: "text-description"
|
|
824
814
|
}, t("qr code description", {
|
|
825
|
-
ns:
|
|
815
|
+
ns: meta.id
|
|
826
816
|
})), /* @__PURE__ */ React7.createElement("div", {
|
|
827
817
|
role: "group",
|
|
828
818
|
className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
|
|
@@ -843,7 +833,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
|
|
|
843
833
|
className: "sr-only"
|
|
844
834
|
}, t("qr label")), /* @__PURE__ */ React7.createElement(Clipboard.Button, {
|
|
845
835
|
value: url ?? "never"
|
|
846
|
-
})), /* @__PURE__ */ React7.createElement(
|
|
836
|
+
})), /* @__PURE__ */ React7.createElement(Button2, {
|
|
847
837
|
variant: "ghost",
|
|
848
838
|
onClick: onCancel
|
|
849
839
|
}, t("cancel label")));
|
|
@@ -867,7 +857,7 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
867
857
|
code,
|
|
868
858
|
large: true,
|
|
869
859
|
classNames: "mli-auto mlb-2 text-center grow"
|
|
870
|
-
}), /* @__PURE__ */ React7.createElement(
|
|
860
|
+
}), /* @__PURE__ */ React7.createElement(Button2, {
|
|
871
861
|
variant: "ghost",
|
|
872
862
|
onClick: onCancel
|
|
873
863
|
}, t("cancel label")));
|
|
@@ -878,11 +868,11 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
878
868
|
var InvitationComplete = ({ statusValue }) => {
|
|
879
869
|
var _effect = _useSignals7();
|
|
880
870
|
try {
|
|
881
|
-
return statusValue > 0 ? /* @__PURE__ */ React7.createElement(
|
|
871
|
+
return statusValue > 0 ? /* @__PURE__ */ React7.createElement(Icon3, {
|
|
882
872
|
icon: "ph--check--regular",
|
|
883
873
|
size: 6,
|
|
884
874
|
classNames: "m-1.5"
|
|
885
|
-
}) : /* @__PURE__ */ React7.createElement(
|
|
875
|
+
}) : /* @__PURE__ */ React7.createElement(Icon3, {
|
|
886
876
|
icon: "ph--x--regular",
|
|
887
877
|
size: 6,
|
|
888
878
|
classNames: "m-1.5"
|
|
@@ -897,11 +887,11 @@ import { useSignals as _useSignals8 } from "@preact-signals/safe-react/tracking"
|
|
|
897
887
|
import React8 from "react";
|
|
898
888
|
import { getSpace as getSpace2 } from "@dxos/client/echo";
|
|
899
889
|
import { useClient as useClient4 } from "@dxos/react-client";
|
|
900
|
-
import { DropdownMenu, Icon as
|
|
890
|
+
import { DropdownMenu, Icon as Icon4, toLocalizedString as toLocalizedString2, useTranslation as useTranslation8 } from "@dxos/react-ui";
|
|
901
891
|
var MenuFooter = ({ object }) => {
|
|
902
892
|
var _effect = _useSignals8();
|
|
903
893
|
try {
|
|
904
|
-
const { t } = useTranslation8(
|
|
894
|
+
const { t } = useTranslation8(meta.id);
|
|
905
895
|
const client = useClient4();
|
|
906
896
|
const space = getSpace2(object);
|
|
907
897
|
const spaceName = space ? getSpaceDisplayName(space, {
|
|
@@ -913,7 +903,7 @@ var MenuFooter = ({ object }) => {
|
|
|
913
903
|
className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
|
|
914
904
|
}, t("location label")), /* @__PURE__ */ React8.createElement("dd", {
|
|
915
905
|
className: "line-clamp-3"
|
|
916
|
-
}, /* @__PURE__ */ React8.createElement(
|
|
906
|
+
}, /* @__PURE__ */ React8.createElement(Icon4, {
|
|
917
907
|
icon: "ph--planet--regular",
|
|
918
908
|
classNames: "inline-block mie-1"
|
|
919
909
|
}), toLocalizedString2(spaceName, t)))) : null;
|
|
@@ -922,153 +912,26 @@ var MenuFooter = ({ object }) => {
|
|
|
922
912
|
}
|
|
923
913
|
};
|
|
924
914
|
|
|
925
|
-
// src/components/
|
|
926
|
-
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
927
|
-
import React10, { useMemo as useMemo2 } from "react";
|
|
928
|
-
import { Surface } from "@dxos/app-framework";
|
|
929
|
-
import { Clipboard as Clipboard2, Toolbar } from "@dxos/react-ui";
|
|
930
|
-
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
931
|
-
|
|
932
|
-
// src/components/ObjectSettings/BaseObjectSettings.tsx
|
|
915
|
+
// src/components/ObjectRenamePopover/ObjectRenamePopover.tsx
|
|
933
916
|
import { useSignals as _useSignals9 } from "@preact-signals/safe-react/tracking";
|
|
934
|
-
import React9, { useRef as useRef3 } from "react";
|
|
935
|
-
import {
|
|
936
|
-
|
|
917
|
+
import React9, { useCallback as useCallback7, useRef as useRef3, useState as useState4 } from "react";
|
|
918
|
+
import { LayoutAction as LayoutAction5, createIntent as createIntent6 } from "@dxos/app-framework";
|
|
919
|
+
import { useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework/react";
|
|
920
|
+
import { Obj as Obj4 } from "@dxos/echo";
|
|
921
|
+
import { log as log2 } from "@dxos/log";
|
|
922
|
+
import { Button as Button3, Input as Input2, useTranslation as useTranslation9 } from "@dxos/react-ui";
|
|
923
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectRenamePopover/ObjectRenamePopover.tsx";
|
|
924
|
+
var OBJECT_RENAME_POPOVER = `${meta.id}/ObjectRenamePopover`;
|
|
925
|
+
var ObjectRenamePopover = ({ object }) => {
|
|
937
926
|
var _effect = _useSignals9();
|
|
938
927
|
try {
|
|
939
928
|
const { t } = useTranslation9(meta.id);
|
|
940
|
-
const
|
|
941
|
-
|
|
942
|
-
ref: inputRef,
|
|
943
|
-
placeholder: t("name placeholder"),
|
|
944
|
-
// TODO(burdon): Use annotation to get the name field.
|
|
945
|
-
value: object.name ?? "",
|
|
946
|
-
onChange: (event) => {
|
|
947
|
-
object.name = event.target.value;
|
|
948
|
-
},
|
|
949
|
-
onKeyDown: (event) => {
|
|
950
|
-
if (event.key === "Enter") {
|
|
951
|
-
inputRef.current?.blur();
|
|
952
|
-
}
|
|
953
|
-
}
|
|
954
|
-
})), children);
|
|
955
|
-
} finally {
|
|
956
|
-
_effect.f();
|
|
957
|
-
}
|
|
958
|
-
};
|
|
959
|
-
|
|
960
|
-
// src/components/ObjectSettings/ObjectSettingsContainer.tsx
|
|
961
|
-
var ObjectSettingsContainer = ({ object, role }) => {
|
|
962
|
-
var _effect = _useSignals10();
|
|
963
|
-
try {
|
|
964
|
-
const data = useMemo2(() => ({
|
|
965
|
-
subject: object
|
|
966
|
-
}), [
|
|
967
|
-
object
|
|
968
|
-
]);
|
|
969
|
-
return /* @__PURE__ */ React10.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React10.createElement(StackItem2.Content, {
|
|
970
|
-
toolbar: true
|
|
971
|
-
}, /* @__PURE__ */ React10.createElement(Toolbar.Root, null), /* @__PURE__ */ React10.createElement("div", {
|
|
972
|
-
role: "none",
|
|
973
|
-
className: "overflow-y-auto pli-cardSpacingInline plb-cardSpacingBlock"
|
|
974
|
-
}, /* @__PURE__ */ React10.createElement(BaseObjectSettings, {
|
|
975
|
-
object
|
|
976
|
-
}, /* @__PURE__ */ React10.createElement(Surface, {
|
|
977
|
-
role: "base-object-settings",
|
|
978
|
-
data
|
|
979
|
-
})), /* @__PURE__ */ React10.createElement(Surface, {
|
|
980
|
-
role: "object-settings",
|
|
981
|
-
data
|
|
982
|
-
}))));
|
|
983
|
-
} finally {
|
|
984
|
-
_effect.f();
|
|
985
|
-
}
|
|
986
|
-
};
|
|
987
|
-
|
|
988
|
-
// src/components/PersistenceStatus.tsx
|
|
989
|
-
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
990
|
-
import React11, { useEffect as useEffect2, useState as useState4 } from "react";
|
|
991
|
-
import { debounce } from "@dxos/async";
|
|
992
|
-
import { Icon as Icon7, Tooltip, useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
993
|
-
import { mx, staticPlaceholderText, warningText } from "@dxos/react-ui-theme";
|
|
994
|
-
var PersistenceStatus = ({ db }) => {
|
|
995
|
-
var _effect = _useSignals11();
|
|
996
|
-
try {
|
|
997
|
-
const { t } = useTranslation10(SPACE_PLUGIN);
|
|
998
|
-
const [displayMessage, setDisplayMessage] = useState4(false);
|
|
999
|
-
const [status, naturalSetStatus] = useState4(0);
|
|
1000
|
-
const [prevStatus, setPrevStatus] = useState4(0);
|
|
1001
|
-
const _setStatus = debounce(naturalSetStatus, 500);
|
|
1002
|
-
useEffect2(() => {
|
|
1003
|
-
setPrevStatus(status);
|
|
1004
|
-
if (prevStatus !== status && status === 0) {
|
|
1005
|
-
setDisplayMessage(true);
|
|
1006
|
-
const timeout = setTimeout(() => setDisplayMessage(false), 5e3);
|
|
1007
|
-
return () => clearTimeout(timeout);
|
|
1008
|
-
}
|
|
1009
|
-
}, [
|
|
1010
|
-
status
|
|
1011
|
-
]);
|
|
1012
|
-
switch (status) {
|
|
1013
|
-
case 2:
|
|
1014
|
-
return /* @__PURE__ */ React11.createElement("div", {
|
|
1015
|
-
className: "flex items-center"
|
|
1016
|
-
}, /* @__PURE__ */ React11.createElement(Icon7, {
|
|
1017
|
-
icon: "ph--warning--regular",
|
|
1018
|
-
size: 4,
|
|
1019
|
-
classNames: "me-1"
|
|
1020
|
-
}), /* @__PURE__ */ React11.createElement("span", {
|
|
1021
|
-
className: mx("text-sm", warningText)
|
|
1022
|
-
}, t("persistence error label")));
|
|
1023
|
-
case 1:
|
|
1024
|
-
return /* @__PURE__ */ React11.createElement("div", {
|
|
1025
|
-
className: "flex items-center"
|
|
1026
|
-
}, /* @__PURE__ */ React11.createElement(Icon7, {
|
|
1027
|
-
icon: "ph--arrows-counter-clockwise--regular",
|
|
1028
|
-
size: 4,
|
|
1029
|
-
classNames: "me-1"
|
|
1030
|
-
}), /* @__PURE__ */ React11.createElement("span", {
|
|
1031
|
-
className: mx("text-sm", staticPlaceholderText)
|
|
1032
|
-
}, t("persistence pending label")));
|
|
1033
|
-
case 0:
|
|
1034
|
-
default:
|
|
1035
|
-
return /* @__PURE__ */ React11.createElement(Tooltip.Trigger, {
|
|
1036
|
-
delayDuration: 400,
|
|
1037
|
-
role: "status",
|
|
1038
|
-
content: t("persisted locally message"),
|
|
1039
|
-
className: "flex items-center"
|
|
1040
|
-
}, /* @__PURE__ */ React11.createElement(Icon7, {
|
|
1041
|
-
icon: "ph--check-circle--regular",
|
|
1042
|
-
size: 4,
|
|
1043
|
-
classNames: "me-1"
|
|
1044
|
-
}), displayMessage && /* @__PURE__ */ React11.createElement("span", {
|
|
1045
|
-
className: mx("text-sm", staticPlaceholderText)
|
|
1046
|
-
}, t("persisted locally label")));
|
|
1047
|
-
}
|
|
1048
|
-
} finally {
|
|
1049
|
-
_effect.f();
|
|
1050
|
-
}
|
|
1051
|
-
};
|
|
1052
|
-
|
|
1053
|
-
// src/components/PopoverRenameObject.tsx
|
|
1054
|
-
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1055
|
-
import React12, { useCallback as useCallback7, useRef as useRef4, useState as useState5 } from "react";
|
|
1056
|
-
import { LayoutAction as LayoutAction5, createIntent as createIntent6, useIntentDispatcher as useIntentDispatcher6 } from "@dxos/app-framework";
|
|
1057
|
-
import { Obj as Obj2 } from "@dxos/echo";
|
|
1058
|
-
import { log as log2 } from "@dxos/log";
|
|
1059
|
-
import { Button as Button5, Input as Input3, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1060
|
-
var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
1061
|
-
var POPOVER_RENAME_OBJECT = `${SPACE_PLUGIN}/PopoverRenameObject`;
|
|
1062
|
-
var PopoverRenameObject = ({ object }) => {
|
|
1063
|
-
var _effect = _useSignals12();
|
|
1064
|
-
try {
|
|
1065
|
-
const { t } = useTranslation11(SPACE_PLUGIN);
|
|
1066
|
-
const doneButton = useRef4(null);
|
|
1067
|
-
const [name, setName] = useState5(Obj2.getLabel(object));
|
|
929
|
+
const doneButton = useRef3(null);
|
|
930
|
+
const [name, setName] = useState4(Obj4.getLabel(object));
|
|
1068
931
|
const { dispatchPromise: dispatch } = useIntentDispatcher6();
|
|
1069
932
|
const handleDone = useCallback7(() => {
|
|
1070
933
|
try {
|
|
1071
|
-
name &&
|
|
934
|
+
name && Obj4.setLabel(object, name);
|
|
1072
935
|
} catch (err) {
|
|
1073
936
|
log2.error("Failed to rename object", {
|
|
1074
937
|
err
|
|
@@ -1091,21 +954,21 @@ var PopoverRenameObject = ({ object }) => {
|
|
|
1091
954
|
object,
|
|
1092
955
|
name
|
|
1093
956
|
]);
|
|
1094
|
-
return /* @__PURE__ */
|
|
957
|
+
return /* @__PURE__ */ React9.createElement("div", {
|
|
1095
958
|
role: "none",
|
|
1096
959
|
className: "p-2 flex gap-2"
|
|
1097
|
-
}, /* @__PURE__ */
|
|
960
|
+
}, /* @__PURE__ */ React9.createElement("div", {
|
|
1098
961
|
role: "none",
|
|
1099
962
|
className: "flex-1"
|
|
1100
|
-
}, /* @__PURE__ */
|
|
963
|
+
}, /* @__PURE__ */ React9.createElement(Input2.Root, null, /* @__PURE__ */ React9.createElement(Input2.Label, {
|
|
1101
964
|
srOnly: true
|
|
1102
|
-
}, t("object name label")), /* @__PURE__ */
|
|
965
|
+
}, t("object name label")), /* @__PURE__ */ React9.createElement(Input2.TextInput, {
|
|
1103
966
|
placeholder: t("object placeholder"),
|
|
1104
967
|
value: name,
|
|
1105
968
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1106
|
-
onChange: ({ target: { value } }) => setName(
|
|
969
|
+
onChange: ({ target: { value: value2 } }) => setName(value2),
|
|
1107
970
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1108
|
-
}))), /* @__PURE__ */
|
|
971
|
+
}))), /* @__PURE__ */ React9.createElement(Button3, {
|
|
1109
972
|
ref: doneButton,
|
|
1110
973
|
classNames: "self-stretch",
|
|
1111
974
|
onClick: handleDone
|
|
@@ -1117,18 +980,19 @@ var PopoverRenameObject = ({ object }) => {
|
|
|
1117
980
|
}
|
|
1118
981
|
};
|
|
1119
982
|
|
|
1120
|
-
// src/components/
|
|
1121
|
-
import { useSignals as
|
|
1122
|
-
import
|
|
1123
|
-
import { LayoutAction as LayoutAction6, createIntent as createIntent7
|
|
1124
|
-
import {
|
|
1125
|
-
|
|
1126
|
-
var
|
|
1127
|
-
|
|
983
|
+
// src/components/SpaceRenamePopover/SpaceRenamePopover.tsx
|
|
984
|
+
import { useSignals as _useSignals10 } from "@preact-signals/safe-react/tracking";
|
|
985
|
+
import React10, { useCallback as useCallback8, useRef as useRef4, useState as useState5 } from "react";
|
|
986
|
+
import { LayoutAction as LayoutAction6, createIntent as createIntent7 } from "@dxos/app-framework";
|
|
987
|
+
import { useIntentDispatcher as useIntentDispatcher7 } from "@dxos/app-framework/react";
|
|
988
|
+
import { Button as Button4, Input as Input3, Popover, useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
989
|
+
var SPACE_RENAME_POPOVER = `${meta.id}/SpaceRenamePopover`;
|
|
990
|
+
var SpaceRenamePopover = ({ space }) => {
|
|
991
|
+
var _effect = _useSignals10();
|
|
1128
992
|
try {
|
|
1129
|
-
const { t } =
|
|
1130
|
-
const doneButton =
|
|
1131
|
-
const [name, setName] =
|
|
993
|
+
const { t } = useTranslation10(meta.id);
|
|
994
|
+
const doneButton = useRef4(null);
|
|
995
|
+
const [name, setName] = useState5(space.properties.name ?? "");
|
|
1132
996
|
const { dispatchPromise: dispatch } = useIntentDispatcher7();
|
|
1133
997
|
const handleDone = useCallback8(() => {
|
|
1134
998
|
space.properties.name = name;
|
|
@@ -1144,24 +1008,24 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1144
1008
|
space,
|
|
1145
1009
|
name
|
|
1146
1010
|
]);
|
|
1147
|
-
return /* @__PURE__ */
|
|
1011
|
+
return /* @__PURE__ */ React10.createElement("div", {
|
|
1148
1012
|
role: "none",
|
|
1149
1013
|
className: "p-2 flex gap-2"
|
|
1150
|
-
}, /* @__PURE__ */
|
|
1014
|
+
}, /* @__PURE__ */ React10.createElement("div", {
|
|
1151
1015
|
role: "none",
|
|
1152
1016
|
className: "flex-1"
|
|
1153
|
-
}, /* @__PURE__ */
|
|
1017
|
+
}, /* @__PURE__ */ React10.createElement(Input3.Root, null, /* @__PURE__ */ React10.createElement(Input3.Label, {
|
|
1154
1018
|
srOnly: true
|
|
1155
|
-
}, t("space name label")), /* @__PURE__ */
|
|
1019
|
+
}, t("space name label")), /* @__PURE__ */ React10.createElement(Input3.TextInput, {
|
|
1156
1020
|
defaultValue: space.properties.name ?? "",
|
|
1157
1021
|
placeholder: t("unnamed space label"),
|
|
1158
|
-
onChange: ({ target: { value } }) => setName(
|
|
1022
|
+
onChange: ({ target: { value: value2 } }) => setName(value2),
|
|
1159
1023
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1160
1024
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1161
1025
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1162
|
-
}))), /* @__PURE__ */
|
|
1026
|
+
}))), /* @__PURE__ */ React10.createElement(Popover.Close, {
|
|
1163
1027
|
asChild: true
|
|
1164
|
-
}, /* @__PURE__ */
|
|
1028
|
+
}, /* @__PURE__ */ React10.createElement(Button4, {
|
|
1165
1029
|
ref: doneButton,
|
|
1166
1030
|
classNames: "self-stretch",
|
|
1167
1031
|
onClick: handleDone
|
|
@@ -1174,57 +1038,59 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1174
1038
|
};
|
|
1175
1039
|
|
|
1176
1040
|
// src/components/SchemaContainer.tsx
|
|
1177
|
-
import { useSignals as
|
|
1178
|
-
import
|
|
1179
|
-
import { useTranslation as
|
|
1041
|
+
import { useSignals as _useSignals11 } from "@preact-signals/safe-react/tracking";
|
|
1042
|
+
import React11, { useEffect as useEffect2, useState as useState6 } from "react";
|
|
1043
|
+
import { useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1180
1044
|
import { ControlPage as ControlPage2, ControlSection as ControlSection2, controlItemClasses } from "@dxos/react-ui-form";
|
|
1181
|
-
import { StackItem as
|
|
1182
|
-
var useQuerySpaceSchemas = (space) => {
|
|
1183
|
-
const [schemas, setSchemas] = useState7([]);
|
|
1184
|
-
useEffect3(() => {
|
|
1185
|
-
const query = space.db.schemaRegistry.query();
|
|
1186
|
-
const initialResults = query.runSync();
|
|
1187
|
-
setSchemas(initialResults);
|
|
1188
|
-
const unsubscribe = query.subscribe(() => setSchemas(query.results));
|
|
1189
|
-
return () => unsubscribe();
|
|
1190
|
-
}, [
|
|
1191
|
-
space
|
|
1192
|
-
]);
|
|
1193
|
-
return schemas;
|
|
1194
|
-
};
|
|
1045
|
+
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
1195
1046
|
var SchemaContainer = ({ space }) => {
|
|
1196
|
-
var _effect =
|
|
1047
|
+
var _effect = _useSignals11();
|
|
1197
1048
|
try {
|
|
1198
|
-
const { t } =
|
|
1049
|
+
const { t } = useTranslation11(meta.id);
|
|
1199
1050
|
const schemas = useQuerySpaceSchemas(space);
|
|
1200
|
-
return /* @__PURE__ */
|
|
1201
|
-
|
|
1202
|
-
}, /* @__PURE__ */
|
|
1051
|
+
return /* @__PURE__ */ React11.createElement(StackItem2.Content, {
|
|
1052
|
+
scrollable: true
|
|
1053
|
+
}, /* @__PURE__ */ React11.createElement(ControlPage2, null, /* @__PURE__ */ React11.createElement(ControlSection2, {
|
|
1203
1054
|
title: t("schema verbose label"),
|
|
1204
1055
|
description: t("schema description")
|
|
1205
|
-
}, /* @__PURE__ */
|
|
1056
|
+
}, /* @__PURE__ */ React11.createElement("div", {
|
|
1206
1057
|
role: "none",
|
|
1207
1058
|
className: controlItemClasses
|
|
1208
|
-
}, schemas.length === 0 && /* @__PURE__ */
|
|
1059
|
+
}, schemas.length === 0 && /* @__PURE__ */ React11.createElement("div", {
|
|
1209
1060
|
className: "text-center plb-4"
|
|
1210
|
-
}, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */
|
|
1061
|
+
}, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ React11.createElement("div", {
|
|
1062
|
+
role: "none",
|
|
1211
1063
|
key: schema.id
|
|
1212
|
-
},
|
|
1064
|
+
}, schema.typename))))));
|
|
1213
1065
|
} finally {
|
|
1214
1066
|
_effect.f();
|
|
1215
1067
|
}
|
|
1216
1068
|
};
|
|
1069
|
+
var useQuerySpaceSchemas = (space) => {
|
|
1070
|
+
const [schemas, setSchemas] = useState6([]);
|
|
1071
|
+
useEffect2(() => {
|
|
1072
|
+
const query = space.db.schemaRegistry.query();
|
|
1073
|
+
const initialResults = query.runSync();
|
|
1074
|
+
setSchemas(initialResults);
|
|
1075
|
+
const unsubscribe = query.subscribe(() => setSchemas(query.results));
|
|
1076
|
+
return () => unsubscribe();
|
|
1077
|
+
}, [
|
|
1078
|
+
space
|
|
1079
|
+
]);
|
|
1080
|
+
return schemas;
|
|
1081
|
+
};
|
|
1217
1082
|
|
|
1218
|
-
// src/components/SpacePresence.tsx
|
|
1219
|
-
import { useSignals as
|
|
1220
|
-
import
|
|
1221
|
-
import
|
|
1222
|
-
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework";
|
|
1083
|
+
// src/components/SpacePresence/SpacePresence.tsx
|
|
1084
|
+
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1085
|
+
import * as Option2 from "effect/Option";
|
|
1086
|
+
import React12, { forwardRef, useCallback as useCallback9, useEffect as useEffect3, useState as useState7 } from "react";
|
|
1087
|
+
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework/react";
|
|
1223
1088
|
import { generateName } from "@dxos/display-name";
|
|
1089
|
+
import { Obj as Obj5 } from "@dxos/echo";
|
|
1224
1090
|
import { PublicKey, useClient as useClient5 } from "@dxos/react-client";
|
|
1225
|
-
import {
|
|
1091
|
+
import { getSpace as getSpace3, useMembers } from "@dxos/react-client/echo";
|
|
1226
1092
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
1227
|
-
import { Avatar, List, ListItem, Popover as Popover2, Tooltip
|
|
1093
|
+
import { Avatar, List, ListItem, Popover as Popover2, Tooltip, useDefaultValue as useDefaultValue2, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1228
1094
|
import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
|
|
1229
1095
|
import { ComplexMap, keyToFallback } from "@dxos/util";
|
|
1230
1096
|
var REFRESH_INTERVAL = 5e3;
|
|
@@ -1232,15 +1098,15 @@ var ACTIVITY_DURATION = 3e4;
|
|
|
1232
1098
|
var noViewers = new ComplexMap(PublicKey.hash);
|
|
1233
1099
|
var getName = (identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
|
|
1234
1100
|
var SpacePresence = ({ object, spaceKey }) => {
|
|
1235
|
-
var _effect =
|
|
1101
|
+
var _effect = _useSignals12();
|
|
1236
1102
|
try {
|
|
1237
1103
|
const spaceState = useCapability(SpaceCapabilities.MutableState);
|
|
1238
1104
|
const client = useClient5();
|
|
1239
1105
|
const identity = useIdentity();
|
|
1240
1106
|
const space = spaceKey ? client.spaces.get(spaceKey) : getSpace3(object);
|
|
1241
1107
|
const spaceMembers = useMembers(space?.key);
|
|
1242
|
-
const [_moment, setMoment] =
|
|
1243
|
-
|
|
1108
|
+
const [_moment, setMoment] = useState7(Date.now());
|
|
1109
|
+
useEffect3(() => {
|
|
1244
1110
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1245
1111
|
return () => clearInterval(interval);
|
|
1246
1112
|
}, []);
|
|
@@ -1251,7 +1117,7 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1251
1117
|
if (!identity || !spaceState || !space) {
|
|
1252
1118
|
return null;
|
|
1253
1119
|
}
|
|
1254
|
-
const currentObjectViewers = spaceState.viewersByObject[
|
|
1120
|
+
const currentObjectViewers = spaceState.viewersByObject[Obj5.getDXN(object).toString()] ?? noViewers;
|
|
1255
1121
|
const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
|
|
1256
1122
|
const objectView = currentObjectViewers.get(member.identity.identityKey);
|
|
1257
1123
|
const lastSeen = objectView?.lastSeen ?? -Infinity;
|
|
@@ -1262,7 +1128,7 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1262
1128
|
lastSeen
|
|
1263
1129
|
};
|
|
1264
1130
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1265
|
-
return /* @__PURE__ */
|
|
1131
|
+
return /* @__PURE__ */ React12.createElement(FullPresence, {
|
|
1266
1132
|
members: membersForObject
|
|
1267
1133
|
});
|
|
1268
1134
|
} finally {
|
|
@@ -1270,46 +1136,46 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1270
1136
|
}
|
|
1271
1137
|
};
|
|
1272
1138
|
var FullPresence = (props) => {
|
|
1273
|
-
var _effect =
|
|
1139
|
+
var _effect = _useSignals12();
|
|
1274
1140
|
try {
|
|
1275
1141
|
const { size = 9, onMemberClick } = props;
|
|
1276
1142
|
const members = useDefaultValue2(props.members, () => []);
|
|
1277
1143
|
if (members.length === 0) {
|
|
1278
1144
|
return null;
|
|
1279
1145
|
}
|
|
1280
|
-
return /* @__PURE__ */
|
|
1146
|
+
return /* @__PURE__ */ React12.createElement("div", {
|
|
1281
1147
|
className: "dx-avatar-group",
|
|
1282
1148
|
"data-testid": "spacePlugin.presence"
|
|
1283
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1149
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
|
|
1284
1150
|
key: member.identity.identityKey.toHex(),
|
|
1285
1151
|
side: "bottom",
|
|
1286
1152
|
content: getName(member.identity),
|
|
1287
1153
|
className: "grid focus:outline-none"
|
|
1288
|
-
}, /* @__PURE__ */
|
|
1154
|
+
}, /* @__PURE__ */ React12.createElement(PresenceAvatar, {
|
|
1289
1155
|
identity: member.identity,
|
|
1290
1156
|
match: member.currentlyAttended,
|
|
1291
1157
|
index: members.length - i,
|
|
1292
1158
|
onClick: () => onMemberClick?.(member),
|
|
1293
1159
|
size
|
|
1294
|
-
}))), members.length > 3 && /* @__PURE__ */
|
|
1160
|
+
}))), members.length > 3 && /* @__PURE__ */ React12.createElement(Popover2.Root, null, /* @__PURE__ */ React12.createElement(Popover2.Trigger, {
|
|
1295
1161
|
className: "grid focus:outline-none"
|
|
1296
|
-
}, /* @__PURE__ */
|
|
1162
|
+
}, /* @__PURE__ */ React12.createElement(Avatar.Root, null, /* @__PURE__ */ React12.createElement(Avatar.Content, {
|
|
1297
1163
|
status: "inactive",
|
|
1298
1164
|
style: {
|
|
1299
1165
|
zIndex: members.length - 4
|
|
1300
1166
|
},
|
|
1301
1167
|
fallback: `+${members.length - 3}`,
|
|
1302
1168
|
size
|
|
1303
|
-
}))), /* @__PURE__ */
|
|
1169
|
+
}))), /* @__PURE__ */ React12.createElement(Popover2.Portal, null, /* @__PURE__ */ React12.createElement(Popover2.Content, {
|
|
1304
1170
|
side: "bottom"
|
|
1305
|
-
}, /* @__PURE__ */
|
|
1171
|
+
}, /* @__PURE__ */ React12.createElement(Popover2.Arrow, null), /* @__PURE__ */ React12.createElement(Popover2.Viewport, {
|
|
1306
1172
|
classNames: "max-bs-56"
|
|
1307
|
-
}, /* @__PURE__ */
|
|
1173
|
+
}, /* @__PURE__ */ React12.createElement(List, null, members.map((member) => /* @__PURE__ */ React12.createElement(ListItem.Root, {
|
|
1308
1174
|
key: member.identity.identityKey.toHex(),
|
|
1309
1175
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1310
1176
|
onClick: () => onMemberClick?.(member),
|
|
1311
1177
|
"data-testid": "identity-list-item"
|
|
1312
|
-
}, /* @__PURE__ */
|
|
1178
|
+
}, /* @__PURE__ */ React12.createElement(PresenceAvatar, {
|
|
1313
1179
|
identity: member.identity,
|
|
1314
1180
|
size,
|
|
1315
1181
|
showName: true,
|
|
@@ -1319,12 +1185,12 @@ var FullPresence = (props) => {
|
|
|
1319
1185
|
_effect.f();
|
|
1320
1186
|
}
|
|
1321
1187
|
};
|
|
1322
|
-
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
|
|
1323
|
-
var _effect =
|
|
1188
|
+
var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match: match2, index, onClick, size }, forwardedRef) => {
|
|
1189
|
+
var _effect = _useSignals12();
|
|
1324
1190
|
try {
|
|
1325
|
-
const status =
|
|
1191
|
+
const status = match2 ? "current" : "active";
|
|
1326
1192
|
const fallbackValue = keyToFallback(identity.identityKey);
|
|
1327
|
-
return /* @__PURE__ */
|
|
1193
|
+
return /* @__PURE__ */ React12.createElement(Avatar.Root, null, /* @__PURE__ */ React12.createElement(Avatar.Content, {
|
|
1328
1194
|
status,
|
|
1329
1195
|
hue: identity.profile?.data?.hue || fallbackValue.hue,
|
|
1330
1196
|
"data-testid": "spacePlugin.presence.member",
|
|
@@ -1338,7 +1204,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
|
|
|
1338
1204
|
onClick,
|
|
1339
1205
|
fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
|
|
1340
1206
|
ref: forwardedRef
|
|
1341
|
-
}), /* @__PURE__ */
|
|
1207
|
+
}), /* @__PURE__ */ React12.createElement(Avatar.Label, {
|
|
1342
1208
|
classNames: showName ? "text-sm truncate pli-2" : "sr-only"
|
|
1343
1209
|
}, getName(identity)));
|
|
1344
1210
|
} finally {
|
|
@@ -1346,7 +1212,7 @@ var PresenceAvatar = /* @__PURE__ */ forwardRef(({ identity, showName, match, in
|
|
|
1346
1212
|
}
|
|
1347
1213
|
});
|
|
1348
1214
|
var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
1349
|
-
var _effect =
|
|
1215
|
+
var _effect = _useSignals12();
|
|
1350
1216
|
try {
|
|
1351
1217
|
const { hasAttention, isAncestor, isRelated } = useAttention(id);
|
|
1352
1218
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
@@ -1359,8 +1225,8 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1359
1225
|
const moment = Date.now();
|
|
1360
1226
|
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
1361
1227
|
};
|
|
1362
|
-
const [activeViewers, setActiveViewers] =
|
|
1363
|
-
|
|
1228
|
+
const [activeViewers, setActiveViewers] = useState7(viewers ? getActiveViewers(viewers) : []);
|
|
1229
|
+
useEffect3(() => {
|
|
1364
1230
|
if (viewers) {
|
|
1365
1231
|
setActiveViewers(getActiveViewers(viewers));
|
|
1366
1232
|
const interval = setInterval(() => {
|
|
@@ -1371,7 +1237,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1371
1237
|
}, [
|
|
1372
1238
|
viewers
|
|
1373
1239
|
]);
|
|
1374
|
-
return /* @__PURE__ */
|
|
1240
|
+
return /* @__PURE__ */ React12.createElement(SmallPresence, {
|
|
1375
1241
|
count: activeViewers.length,
|
|
1376
1242
|
attended: isAttended,
|
|
1377
1243
|
containsAttended
|
|
@@ -1381,16 +1247,16 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1381
1247
|
}
|
|
1382
1248
|
};
|
|
1383
1249
|
var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
1384
|
-
var _effect =
|
|
1250
|
+
var _effect = _useSignals12();
|
|
1385
1251
|
try {
|
|
1386
|
-
const { t } =
|
|
1387
|
-
return /* @__PURE__ */
|
|
1252
|
+
const { t } = useTranslation12(meta.id);
|
|
1253
|
+
return /* @__PURE__ */ React12.createElement(Tooltip.Trigger, {
|
|
1388
1254
|
asChild: true,
|
|
1389
1255
|
content: t("presence label", {
|
|
1390
1256
|
count
|
|
1391
1257
|
}),
|
|
1392
1258
|
side: "bottom"
|
|
1393
|
-
}, /* @__PURE__ */
|
|
1259
|
+
}, /* @__PURE__ */ React12.createElement(AttentionGlyph, {
|
|
1394
1260
|
attended,
|
|
1395
1261
|
containsAttended,
|
|
1396
1262
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
@@ -1402,43 +1268,44 @@ var SmallPresence = ({ count = 0, attended, containsAttended }) => {
|
|
|
1402
1268
|
};
|
|
1403
1269
|
|
|
1404
1270
|
// src/components/SpacePluginSettings.tsx
|
|
1405
|
-
import { useSignals as
|
|
1406
|
-
import
|
|
1407
|
-
import { createIntent as createIntent8
|
|
1271
|
+
import { useSignals as _useSignals13 } from "@preact-signals/safe-react/tracking";
|
|
1272
|
+
import React13 from "react";
|
|
1273
|
+
import { createIntent as createIntent8 } from "@dxos/app-framework";
|
|
1274
|
+
import { useIntentDispatcher as useIntentDispatcher8 } from "@dxos/app-framework/react";
|
|
1408
1275
|
import { useClient as useClient6 } from "@dxos/react-client";
|
|
1409
1276
|
import { useSpaces as useSpaces2 } from "@dxos/react-client/echo";
|
|
1410
|
-
import { IconButton, Input as
|
|
1277
|
+
import { IconButton as IconButton3, Input as Input4, List as List2, ListItem as ListItem2, toLocalizedString as toLocalizedString3, useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1411
1278
|
import { ControlGroup, ControlItemInput as ControlItemInput2, ControlPage as ControlPage3, ControlSection as ControlSection3, controlItemClasses as controlItemClasses2 } from "@dxos/react-ui-form";
|
|
1412
1279
|
var SpacePluginSettings = ({ settings }) => {
|
|
1413
|
-
var _effect =
|
|
1280
|
+
var _effect = _useSignals13();
|
|
1414
1281
|
try {
|
|
1415
|
-
const { t } =
|
|
1282
|
+
const { t } = useTranslation13(meta.id);
|
|
1416
1283
|
const client = useClient6();
|
|
1417
1284
|
const spaces = useSpaces2({
|
|
1418
1285
|
all: settings.showHidden
|
|
1419
1286
|
});
|
|
1420
1287
|
const { dispatchPromise: dispatch } = useIntentDispatcher8();
|
|
1421
|
-
return /* @__PURE__ */
|
|
1288
|
+
return /* @__PURE__ */ React13.createElement(ControlPage3, null, /* @__PURE__ */ React13.createElement(ControlSection3, {
|
|
1422
1289
|
title: t("space settings label"),
|
|
1423
1290
|
description: t("space settings description")
|
|
1424
|
-
}, /* @__PURE__ */
|
|
1291
|
+
}, /* @__PURE__ */ React13.createElement(ControlGroup, null, /* @__PURE__ */ React13.createElement(ControlItemInput2, {
|
|
1425
1292
|
title: t("show hidden spaces label")
|
|
1426
|
-
}, /* @__PURE__ */
|
|
1293
|
+
}, /* @__PURE__ */ React13.createElement(Input4.Switch, {
|
|
1427
1294
|
checked: settings.showHidden,
|
|
1428
1295
|
onCheckedChange: (checked) => settings.showHidden = !!checked
|
|
1429
|
-
}))), /* @__PURE__ */
|
|
1296
|
+
}))), /* @__PURE__ */ React13.createElement(List2, {
|
|
1430
1297
|
classNames: [
|
|
1431
1298
|
controlItemClasses2,
|
|
1432
1299
|
"flex flex-col gap-trimSm"
|
|
1433
1300
|
]
|
|
1434
|
-
}, spaces.map((space) => /* @__PURE__ */
|
|
1301
|
+
}, spaces.map((space) => /* @__PURE__ */ React13.createElement(ListItem2.Root, {
|
|
1435
1302
|
key: space.id,
|
|
1436
1303
|
classNames: "is-full items-center"
|
|
1437
|
-
}, /* @__PURE__ */
|
|
1304
|
+
}, /* @__PURE__ */ React13.createElement(ListItem2.Heading, {
|
|
1438
1305
|
classNames: "grow truncate !min-bs-0"
|
|
1439
1306
|
}, toLocalizedString3(getSpaceDisplayName(space, {
|
|
1440
1307
|
personal: space === client.spaces.default
|
|
1441
|
-
}), t)), /* @__PURE__ */
|
|
1308
|
+
}), t)), /* @__PURE__ */ React13.createElement(IconButton3, {
|
|
1442
1309
|
icon: "ph--faders--regular",
|
|
1443
1310
|
onClick: () => dispatch(createIntent8(SpaceAction.OpenSettings, {
|
|
1444
1311
|
space
|
|
@@ -1451,38 +1318,40 @@ var SpacePluginSettings = ({ settings }) => {
|
|
|
1451
1318
|
};
|
|
1452
1319
|
|
|
1453
1320
|
// src/components/SpaceSettings/SpaceSettingsContainer.tsx
|
|
1454
|
-
import { useSignals as
|
|
1455
|
-
import
|
|
1456
|
-
import
|
|
1457
|
-
import {
|
|
1321
|
+
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1322
|
+
import * as Function3 from "effect/Function";
|
|
1323
|
+
import * as Schema from "effect/Schema";
|
|
1324
|
+
import React14, { useCallback as useCallback10, useMemo as useMemo2, useState as useState8 } from "react";
|
|
1325
|
+
import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9 } from "@dxos/app-framework";
|
|
1326
|
+
import { useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework/react";
|
|
1458
1327
|
import { log as log3 } from "@dxos/log";
|
|
1459
1328
|
import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1460
1329
|
import { useClient as useClient7 } from "@dxos/react-client";
|
|
1461
|
-
import { SpaceState
|
|
1462
|
-
import { Button as
|
|
1330
|
+
import { SpaceState } from "@dxos/react-client/echo";
|
|
1331
|
+
import { Button as Button5, Input as Input5, useFileDownload, useMulticastObservable, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
1463
1332
|
import { ControlItem, ControlItemInput as ControlItemInput3, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
|
|
1464
1333
|
import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
|
|
1465
|
-
import { StackItem as
|
|
1334
|
+
import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
|
|
1466
1335
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
|
|
1467
1336
|
var FormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
|
|
1468
1337
|
archived: Schema.Boolean.annotations({
|
|
1469
|
-
title: "Archive
|
|
1338
|
+
title: "Archive Space"
|
|
1470
1339
|
})
|
|
1471
1340
|
})));
|
|
1472
1341
|
var SpaceSettingsContainer = ({ space }) => {
|
|
1473
|
-
var _effect =
|
|
1342
|
+
var _effect = _useSignals14();
|
|
1474
1343
|
try {
|
|
1475
|
-
const { t } =
|
|
1344
|
+
const { t } = useTranslation14(meta.id);
|
|
1476
1345
|
const { dispatchPromise: dispatch } = useIntentDispatcher9();
|
|
1477
1346
|
const client = useClient7();
|
|
1478
|
-
const archived = useMulticastObservable(space.state) ===
|
|
1479
|
-
const [edgeReplication, setEdgeReplication] =
|
|
1347
|
+
const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;
|
|
1348
|
+
const [edgeReplication, setEdgeReplication] = useState8(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
|
|
1480
1349
|
const toggleEdgeReplication = useCallback10(async (next) => {
|
|
1481
1350
|
setEdgeReplication(next);
|
|
1482
1351
|
await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1483
1352
|
log3.catch(err, void 0, {
|
|
1484
1353
|
F: __dxlog_file4,
|
|
1485
|
-
L:
|
|
1354
|
+
L: 57,
|
|
1486
1355
|
S: void 0,
|
|
1487
1356
|
C: (f, a) => f(...a)
|
|
1488
1357
|
});
|
|
@@ -1503,7 +1372,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1503
1372
|
space.properties.hue = properties.hue;
|
|
1504
1373
|
}
|
|
1505
1374
|
if (properties.archived && !archived) {
|
|
1506
|
-
void dispatch(
|
|
1375
|
+
void dispatch(Function3.pipe(createIntent9(SpaceAction.Close, {
|
|
1507
1376
|
space
|
|
1508
1377
|
}), chain2(LayoutAction7.SwitchWorkspace, {
|
|
1509
1378
|
part: "workspace",
|
|
@@ -1519,7 +1388,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1519
1388
|
toggleEdgeReplication,
|
|
1520
1389
|
archived
|
|
1521
1390
|
]);
|
|
1522
|
-
const values =
|
|
1391
|
+
const values = useMemo2(() => ({
|
|
1523
1392
|
name: space.properties.name,
|
|
1524
1393
|
icon: space.properties.icon,
|
|
1525
1394
|
hue: space.properties.hue,
|
|
@@ -1532,16 +1401,16 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1532
1401
|
edgeReplication,
|
|
1533
1402
|
archived
|
|
1534
1403
|
]);
|
|
1535
|
-
const customElements =
|
|
1404
|
+
const customElements = useMemo2(() => ({
|
|
1536
1405
|
name: ({ type, label, getValue, onValueChange }) => {
|
|
1537
|
-
const handleChange = useCallback10(({ target: { value } }) => onValueChange(type,
|
|
1406
|
+
const handleChange = useCallback10(({ target: { value: value2 } }) => onValueChange(type, value2), [
|
|
1538
1407
|
onValueChange,
|
|
1539
1408
|
type
|
|
1540
1409
|
]);
|
|
1541
|
-
return /* @__PURE__ */
|
|
1410
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1542
1411
|
title: label,
|
|
1543
1412
|
description: t("display name description")
|
|
1544
|
-
}, /* @__PURE__ */
|
|
1413
|
+
}, /* @__PURE__ */ React14.createElement(Input5.TextInput, {
|
|
1545
1414
|
value: getValue(),
|
|
1546
1415
|
onChange: handleChange,
|
|
1547
1416
|
placeholder: t("display name input placeholder"),
|
|
@@ -1549,23 +1418,22 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1549
1418
|
}));
|
|
1550
1419
|
},
|
|
1551
1420
|
icon: ({ type, label, getValue, onValueChange }) => {
|
|
1552
|
-
const handleChange = useCallback10((
|
|
1421
|
+
const handleChange = useCallback10((icon) => onValueChange(type, icon), [
|
|
1553
1422
|
onValueChange,
|
|
1554
1423
|
type
|
|
1555
1424
|
]);
|
|
1556
|
-
const
|
|
1425
|
+
const handleReset = useCallback10(() => onValueChange(type, void 0), [
|
|
1557
1426
|
onValueChange,
|
|
1558
1427
|
type
|
|
1559
1428
|
]);
|
|
1560
|
-
return /* @__PURE__ */
|
|
1429
|
+
return /* @__PURE__ */ React14.createElement(ControlItem, {
|
|
1561
1430
|
title: label,
|
|
1562
1431
|
description: t("icon description")
|
|
1563
|
-
}, /* @__PURE__ */
|
|
1432
|
+
}, /* @__PURE__ */ React14.createElement(IconPicker, {
|
|
1564
1433
|
value: getValue(),
|
|
1565
1434
|
onChange: handleChange,
|
|
1566
|
-
onReset:
|
|
1567
|
-
classNames: "justify-self-end"
|
|
1568
|
-
iconSize: 5
|
|
1435
|
+
onReset: handleReset,
|
|
1436
|
+
classNames: "justify-self-end"
|
|
1569
1437
|
}));
|
|
1570
1438
|
},
|
|
1571
1439
|
hue: ({ type, label, getValue, onValueChange }) => {
|
|
@@ -1573,18 +1441,18 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1573
1441
|
onValueChange,
|
|
1574
1442
|
type
|
|
1575
1443
|
]);
|
|
1576
|
-
const
|
|
1444
|
+
const handleReset = useCallback10(() => onValueChange(type, void 0), [
|
|
1577
1445
|
onValueChange,
|
|
1578
1446
|
type
|
|
1579
1447
|
]);
|
|
1580
|
-
return /* @__PURE__ */
|
|
1448
|
+
return /* @__PURE__ */ React14.createElement(ControlItem, {
|
|
1581
1449
|
title: label,
|
|
1582
1450
|
description: t("hue description")
|
|
1583
|
-
}, /* @__PURE__ */
|
|
1451
|
+
}, /* @__PURE__ */ React14.createElement(HuePicker, {
|
|
1584
1452
|
value: getValue(),
|
|
1585
1453
|
onChange: handleChange,
|
|
1586
|
-
onReset:
|
|
1587
|
-
classNames: "
|
|
1454
|
+
onReset: handleReset,
|
|
1455
|
+
classNames: "justify-self-end"
|
|
1588
1456
|
}));
|
|
1589
1457
|
},
|
|
1590
1458
|
edgeReplication: ({ type, label, getValue, onValueChange }) => {
|
|
@@ -1592,10 +1460,10 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1592
1460
|
onValueChange,
|
|
1593
1461
|
type
|
|
1594
1462
|
]);
|
|
1595
|
-
return /* @__PURE__ */
|
|
1463
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1596
1464
|
title: label,
|
|
1597
1465
|
description: t("edge replication description")
|
|
1598
|
-
}, /* @__PURE__ */
|
|
1466
|
+
}, /* @__PURE__ */ React14.createElement(Input5.Switch, {
|
|
1599
1467
|
checked: getValue(),
|
|
1600
1468
|
onCheckedChange: handleChange,
|
|
1601
1469
|
classNames: "justify-self-end"
|
|
@@ -1607,11 +1475,12 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1607
1475
|
type,
|
|
1608
1476
|
getValue
|
|
1609
1477
|
]);
|
|
1610
|
-
return /* @__PURE__ */
|
|
1478
|
+
return /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1611
1479
|
title: label,
|
|
1612
1480
|
description: t("archive space description")
|
|
1613
|
-
}, /* @__PURE__ */
|
|
1481
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1614
1482
|
disabled: space === client.spaces.default,
|
|
1483
|
+
variant: getValue() ? "default" : "destructive",
|
|
1615
1484
|
onClick: handleChange
|
|
1616
1485
|
}, getValue() ? t("unarchive space label") : t("archive space label")));
|
|
1617
1486
|
}
|
|
@@ -1619,16 +1488,26 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1619
1488
|
t,
|
|
1620
1489
|
space
|
|
1621
1490
|
]);
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1491
|
+
const download = useFileDownload();
|
|
1492
|
+
const handleBackup = useCallback10(async () => {
|
|
1493
|
+
const archive = await space.internal.export();
|
|
1494
|
+
download(new Blob([
|
|
1495
|
+
archive.contents
|
|
1496
|
+
]), archive.filename);
|
|
1497
|
+
}, [
|
|
1498
|
+
space,
|
|
1499
|
+
download
|
|
1500
|
+
]);
|
|
1501
|
+
return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
|
|
1502
|
+
scrollable: true
|
|
1503
|
+
}, /* @__PURE__ */ React14.createElement(ControlPage4, null, /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
1625
1504
|
title: t("space properties settings verbose label", {
|
|
1626
|
-
ns:
|
|
1505
|
+
ns: meta.id
|
|
1627
1506
|
}),
|
|
1628
1507
|
description: t("space properties settings description", {
|
|
1629
|
-
ns:
|
|
1508
|
+
ns: meta.id
|
|
1630
1509
|
})
|
|
1631
|
-
}, /* @__PURE__ */
|
|
1510
|
+
}, /* @__PURE__ */ React14.createElement(Form3, {
|
|
1632
1511
|
schema: FormSchema,
|
|
1633
1512
|
values,
|
|
1634
1513
|
autoSave: true,
|
|
@@ -1636,29 +1515,38 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1636
1515
|
Custom: customElements,
|
|
1637
1516
|
outerSpacing: false,
|
|
1638
1517
|
classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
1639
|
-
}))
|
|
1518
|
+
})), /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1519
|
+
title: t("backup space label", {
|
|
1520
|
+
ns: meta.id
|
|
1521
|
+
}),
|
|
1522
|
+
description: t("backup space description", {
|
|
1523
|
+
ns: meta.id
|
|
1524
|
+
})
|
|
1525
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1526
|
+
onClick: handleBackup
|
|
1527
|
+
}, t("download backup")))));
|
|
1640
1528
|
} finally {
|
|
1641
1529
|
_effect.f();
|
|
1642
1530
|
}
|
|
1643
1531
|
};
|
|
1644
1532
|
|
|
1645
1533
|
// src/components/SyncStatus/InlineSyncStatus.tsx
|
|
1646
|
-
import { useSignals as
|
|
1647
|
-
import
|
|
1648
|
-
import
|
|
1649
|
-
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework";
|
|
1534
|
+
import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
|
|
1535
|
+
import * as Option3 from "effect/Option";
|
|
1536
|
+
import React15, { useEffect as useEffect4, useState as useState9 } from "react";
|
|
1537
|
+
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework/react";
|
|
1650
1538
|
import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
|
|
1651
1539
|
import { EdgeReplicationSetting as EdgeReplicationSetting2 } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1652
1540
|
import { useClient as useClient8 } from "@dxos/react-client";
|
|
1653
1541
|
import { useSpaceSyncState } from "@dxos/react-client/echo";
|
|
1654
|
-
import { Tooltip as
|
|
1542
|
+
import { Tooltip as Tooltip2, useTranslation as useTranslation15 } from "@dxos/react-ui";
|
|
1655
1543
|
import { AttentionGlyph as AttentionGlyph2, useAttended as useAttended2, useAttention as useAttention2 } from "@dxos/react-ui-attention";
|
|
1656
1544
|
var useEdgeStatus = () => {
|
|
1657
|
-
const [status, setStatus] =
|
|
1545
|
+
const [status, setStatus] = useState9(EdgeStatus.ConnectionState.NOT_CONNECTED);
|
|
1658
1546
|
const client = useClient8();
|
|
1659
|
-
|
|
1547
|
+
useEffect4(() => {
|
|
1660
1548
|
client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
|
|
1661
|
-
setStatus(status2);
|
|
1549
|
+
setStatus(status2.state);
|
|
1662
1550
|
});
|
|
1663
1551
|
}, [
|
|
1664
1552
|
client
|
|
@@ -1666,9 +1554,9 @@ var useEdgeStatus = () => {
|
|
|
1666
1554
|
return status;
|
|
1667
1555
|
};
|
|
1668
1556
|
var InlineSyncStatus = ({ space, open }) => {
|
|
1669
|
-
var _effect =
|
|
1557
|
+
var _effect = _useSignals15();
|
|
1670
1558
|
try {
|
|
1671
|
-
const { t } =
|
|
1559
|
+
const { t } = useTranslation15(meta.id);
|
|
1672
1560
|
const id = space.id;
|
|
1673
1561
|
const { hasAttention, isAncestor, isRelated } = useAttention2(id);
|
|
1674
1562
|
const isAttended = hasAttention || isAncestor || isRelated;
|
|
@@ -1677,15 +1565,15 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1677
1565
|
const startOfAttention = attended.at(-1);
|
|
1678
1566
|
const path = usePath(graph, startOfAttention);
|
|
1679
1567
|
const containsAttended = !open && !isAttended && id && Option3.isSome(path) ? path.value.includes(id) : false;
|
|
1680
|
-
const connectedToEdge = useEdgeStatus() === EdgeStatus.CONNECTED;
|
|
1568
|
+
const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
|
|
1681
1569
|
const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
|
|
1682
1570
|
const syncState = useSpaceSyncState(space);
|
|
1683
1571
|
const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
|
|
1684
|
-
return /* @__PURE__ */
|
|
1572
|
+
return /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
|
|
1685
1573
|
asChild: true,
|
|
1686
1574
|
content: t("syncing label"),
|
|
1687
1575
|
side: "bottom"
|
|
1688
|
-
}, /* @__PURE__ */
|
|
1576
|
+
}, /* @__PURE__ */ React15.createElement(AttentionGlyph2, {
|
|
1689
1577
|
syncing,
|
|
1690
1578
|
attended: isAttended,
|
|
1691
1579
|
containsAttended,
|
|
@@ -1697,12 +1585,16 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1697
1585
|
};
|
|
1698
1586
|
|
|
1699
1587
|
// src/components/SyncStatus/SyncStatus.tsx
|
|
1700
|
-
import { useSignals as
|
|
1701
|
-
import
|
|
1588
|
+
import { useSignals as _useSignals16 } from "@preact-signals/safe-react/tracking";
|
|
1589
|
+
import React16, { useEffect as useEffect5, useState as useState10 } from "react";
|
|
1702
1590
|
import { StatusBar } from "@dxos/plugin-status-bar";
|
|
1591
|
+
import { EdgeStatus as EdgeStatus2 } from "@dxos/protocols/proto/dxos/client/services";
|
|
1703
1592
|
import { useClient as useClient9 } from "@dxos/react-client";
|
|
1593
|
+
import { useStream } from "@dxos/react-client/devtools";
|
|
1704
1594
|
import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
|
|
1705
|
-
import { Icon as
|
|
1595
|
+
import { Icon as Icon5, Popover as Popover3, useTranslation as useTranslation16 } from "@dxos/react-ui";
|
|
1596
|
+
import { mx } from "@dxos/react-ui-theme";
|
|
1597
|
+
import { Unit } from "@dxos/util";
|
|
1706
1598
|
|
|
1707
1599
|
// src/components/SyncStatus/save-tracker.ts
|
|
1708
1600
|
import { Context } from "@dxos/context";
|
|
@@ -1798,17 +1690,13 @@ var getIcon = (status) => {
|
|
|
1798
1690
|
// src/components/SyncStatus/SyncStatus.tsx
|
|
1799
1691
|
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1800
1692
|
var SyncStatus = () => {
|
|
1801
|
-
var _effect =
|
|
1693
|
+
var _effect = _useSignals16();
|
|
1802
1694
|
try {
|
|
1803
1695
|
const client = useClient9();
|
|
1804
1696
|
const state = useSyncState();
|
|
1805
|
-
const [saved, setSaved] =
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
setSaved(state2 === "saved");
|
|
1809
|
-
});
|
|
1810
|
-
}, []);
|
|
1811
|
-
return /* @__PURE__ */ React19.createElement(SyncStatusIndicator, {
|
|
1697
|
+
const [saved, setSaved] = useState10(true);
|
|
1698
|
+
useEffect5(() => createClientSaveTracker(client, (state2) => setSaved(state2 === "saved")), []);
|
|
1699
|
+
return /* @__PURE__ */ React16.createElement(SyncStatusIndicator, {
|
|
1812
1700
|
state,
|
|
1813
1701
|
saved
|
|
1814
1702
|
});
|
|
@@ -1817,9 +1705,9 @@ var SyncStatus = () => {
|
|
|
1817
1705
|
}
|
|
1818
1706
|
};
|
|
1819
1707
|
var SyncStatusIndicator = ({ state, saved }) => {
|
|
1820
|
-
var _effect =
|
|
1708
|
+
var _effect = _useSignals16();
|
|
1821
1709
|
try {
|
|
1822
|
-
const { t } =
|
|
1710
|
+
const { t } = useTranslation16(meta.id);
|
|
1823
1711
|
const summary = getSyncSummary(state);
|
|
1824
1712
|
const offline = Object.values(state).length === 0;
|
|
1825
1713
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
@@ -1830,8 +1718,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1830
1718
|
needsToUpload,
|
|
1831
1719
|
needsToDownload
|
|
1832
1720
|
});
|
|
1833
|
-
const [classNames, setClassNames] =
|
|
1834
|
-
|
|
1721
|
+
const [classNames, setClassNames] = useState10();
|
|
1722
|
+
useEffect5(() => {
|
|
1835
1723
|
setClassNames(void 0);
|
|
1836
1724
|
if (offline || !needsToUpload && !needsToDownload) {
|
|
1837
1725
|
return;
|
|
@@ -1846,60 +1734,254 @@ var SyncStatusIndicator = ({ state, saved }) => {
|
|
|
1846
1734
|
needsToDownload
|
|
1847
1735
|
]);
|
|
1848
1736
|
const title = t(`${status} label`);
|
|
1849
|
-
const icon = /* @__PURE__ */
|
|
1737
|
+
const icon = /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1850
1738
|
icon: getIcon(status),
|
|
1851
|
-
size: 4,
|
|
1852
1739
|
classNames
|
|
1853
1740
|
});
|
|
1854
|
-
return /* @__PURE__ */
|
|
1741
|
+
return /* @__PURE__ */ React16.createElement(Popover3.Root, null, /* @__PURE__ */ React16.createElement(Popover3.Trigger, {
|
|
1742
|
+
asChild: true
|
|
1743
|
+
}, /* @__PURE__ */ React16.createElement(StatusBar.Item, {
|
|
1855
1744
|
title
|
|
1856
|
-
}, icon);
|
|
1745
|
+
}, icon)), /* @__PURE__ */ React16.createElement(Popover3.Portal, null, /* @__PURE__ */ React16.createElement(Popover3.Content, null, /* @__PURE__ */ React16.createElement(EdgeConnectionPopover, null), /* @__PURE__ */ React16.createElement(Popover3.Arrow, null))));
|
|
1746
|
+
} finally {
|
|
1747
|
+
_effect.f();
|
|
1748
|
+
}
|
|
1749
|
+
};
|
|
1750
|
+
var useEdgeStatus2 = () => {
|
|
1751
|
+
const client = useClient9();
|
|
1752
|
+
const { status } = useStream(() => client.services.services.EdgeAgentService.queryEdgeStatus(), {});
|
|
1753
|
+
return status;
|
|
1754
|
+
};
|
|
1755
|
+
var EdgeConnectionPopover = () => {
|
|
1756
|
+
var _effect = _useSignals16();
|
|
1757
|
+
try {
|
|
1758
|
+
const status = useEdgeStatus2();
|
|
1759
|
+
const { t } = useTranslation16(meta.id);
|
|
1760
|
+
const isConnected = status?.state === EdgeStatus2.ConnectionState.CONNECTED;
|
|
1761
|
+
return /* @__PURE__ */ React16.createElement("div", {
|
|
1762
|
+
className: "min-is-[240px] p-2"
|
|
1763
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1764
|
+
className: "flex items-center gap-2 mbe-2"
|
|
1765
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1766
|
+
icon: isConnected ? "ph--check-circle--regular" : "ph--warning-circle--regular",
|
|
1767
|
+
classNames: mx(isConnected ? "text-successText" : "text-errorText animate-pulse")
|
|
1768
|
+
}), /* @__PURE__ */ React16.createElement("span", {
|
|
1769
|
+
className: "font-medium text-sm"
|
|
1770
|
+
}, isConnected ? t("sync edge connected label") : t("sync edge disconnected label"))), status?.state === EdgeStatus2.ConnectionState.NOT_CONNECTED && /* @__PURE__ */ React16.createElement("div", {
|
|
1771
|
+
className: "flex items-center gap-2 text-sm text-description"
|
|
1772
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1773
|
+
icon: "ph--cloud-x--regular"
|
|
1774
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync no connection label"))), status?.state === EdgeStatus2.ConnectionState.CONNECTED && /* @__PURE__ */ React16.createElement("div", {
|
|
1775
|
+
className: "space-y-2"
|
|
1776
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1777
|
+
className: "flex items-center justify-between text-sm"
|
|
1778
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1779
|
+
className: "flex items-center gap-2 text-description"
|
|
1780
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1781
|
+
icon: "ph--timer--regular"
|
|
1782
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync latency label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1783
|
+
value: status.rtt,
|
|
1784
|
+
format: Unit.Millisecond
|
|
1785
|
+
})), /* @__PURE__ */ React16.createElement("div", {
|
|
1786
|
+
className: "flex items-center justify-between text-sm"
|
|
1787
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1788
|
+
className: "flex items-center gap-2 text-description"
|
|
1789
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1790
|
+
icon: "ph--arrow-up--regular"
|
|
1791
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync upload label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1792
|
+
value: status.rateBytesUp,
|
|
1793
|
+
format: Unit.Kilobyte,
|
|
1794
|
+
suffix: "/s"
|
|
1795
|
+
})), /* @__PURE__ */ React16.createElement("div", {
|
|
1796
|
+
className: "flex items-center justify-between text-sm"
|
|
1797
|
+
}, /* @__PURE__ */ React16.createElement("div", {
|
|
1798
|
+
className: "flex items-center gap-2 text-sm text-description"
|
|
1799
|
+
}, /* @__PURE__ */ React16.createElement(Icon5, {
|
|
1800
|
+
icon: "ph--arrow-down--regular"
|
|
1801
|
+
}), /* @__PURE__ */ React16.createElement("span", null, t("sync download label"))), /* @__PURE__ */ React16.createElement(UnitValue, {
|
|
1802
|
+
value: status.rateBytesDown,
|
|
1803
|
+
format: Unit.Kilobyte,
|
|
1804
|
+
suffix: "/s"
|
|
1805
|
+
}))));
|
|
1806
|
+
} finally {
|
|
1807
|
+
_effect.f();
|
|
1808
|
+
}
|
|
1809
|
+
};
|
|
1810
|
+
var UnitValue = ({ value: input, format, suffix }) => {
|
|
1811
|
+
var _effect = _useSignals16();
|
|
1812
|
+
try {
|
|
1813
|
+
const { formattedValue, unit } = format(input);
|
|
1814
|
+
return /* @__PURE__ */ React16.createElement("span", {
|
|
1815
|
+
className: "font-mono"
|
|
1816
|
+
}, formattedValue, /* @__PURE__ */ React16.createElement("span", {
|
|
1817
|
+
className: "mis-1 text-subdued"
|
|
1818
|
+
}, unit.symbol, suffix));
|
|
1857
1819
|
} finally {
|
|
1858
1820
|
_effect.f();
|
|
1859
1821
|
}
|
|
1860
1822
|
};
|
|
1861
1823
|
|
|
1824
|
+
// src/helpers/query.ts
|
|
1825
|
+
import * as Array2 from "effect/Array";
|
|
1826
|
+
import * as Effect3 from "effect/Effect";
|
|
1827
|
+
import * as EffectFunction from "effect/Function";
|
|
1828
|
+
import * as Match from "effect/Match";
|
|
1829
|
+
import * as Option4 from "effect/Option";
|
|
1830
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
1831
|
+
import { DXN, Filter as Filter2, Query as Query2 } from "@dxos/echo";
|
|
1832
|
+
import { ReferenceAnnotationId, getTypeAnnotation as getTypeAnnotation2, unwrapOptional } from "@dxos/echo/internal";
|
|
1833
|
+
import { log as log4 } from "@dxos/log";
|
|
1834
|
+
import { Person } from "@dxos/types";
|
|
1835
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/helpers/query.ts";
|
|
1836
|
+
var evalQuery = (queryString) => {
|
|
1837
|
+
const globals = {
|
|
1838
|
+
Query: Query2,
|
|
1839
|
+
Filter: Filter2,
|
|
1840
|
+
Person
|
|
1841
|
+
};
|
|
1842
|
+
try {
|
|
1843
|
+
return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));
|
|
1844
|
+
} catch (err) {
|
|
1845
|
+
log4.catch(err, void 0, {
|
|
1846
|
+
F: __dxlog_file6,
|
|
1847
|
+
L: 33,
|
|
1848
|
+
S: void 0,
|
|
1849
|
+
C: (f, a) => f(...a)
|
|
1850
|
+
});
|
|
1851
|
+
return Query2.select(Filter2.nothing());
|
|
1852
|
+
}
|
|
1853
|
+
};
|
|
1854
|
+
var resolveSchemaWithClientAndSpace = (client, space, query) => {
|
|
1855
|
+
const resolve = Effect3.fn(function* (dxn) {
|
|
1856
|
+
const typename = DXN.parse(dxn).asTypeDXN()?.type;
|
|
1857
|
+
if (!typename) {
|
|
1858
|
+
return Option4.none();
|
|
1859
|
+
}
|
|
1860
|
+
const staticSchema = client.graph.schemaRegistry.getSchema(typename);
|
|
1861
|
+
if (staticSchema) {
|
|
1862
|
+
return Option4.some(staticSchema);
|
|
1863
|
+
}
|
|
1864
|
+
const query2 = space.db.schemaRegistry.query({
|
|
1865
|
+
typename
|
|
1866
|
+
});
|
|
1867
|
+
const schemas = yield* Effect3.promise(() => query2.run());
|
|
1868
|
+
return Array2.head(schemas).pipe(Option4.map((schema) => schema.snapshot));
|
|
1869
|
+
});
|
|
1870
|
+
return resolveSchema(query, resolve).pipe(Effect3.map((schema) => Option4.getOrUndefined(schema)), Effect3.runPromise);
|
|
1871
|
+
};
|
|
1872
|
+
var resolveSchema = (query, resolve) => {
|
|
1873
|
+
return Match.value(query).pipe(
|
|
1874
|
+
Match.withReturnType(),
|
|
1875
|
+
// TODO(wittjosiah): Reconcile with filter match?
|
|
1876
|
+
Match.when({
|
|
1877
|
+
type: "select"
|
|
1878
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option4.map((typename) => resolve(typename)), Option4.getOrElse(() => Effect3.succeed(Option4.none())))),
|
|
1879
|
+
Match.when({
|
|
1880
|
+
type: "filter"
|
|
1881
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option4.map((typename) => resolve(typename)), Option4.getOrElse(() => Effect3.succeed(Option4.none())))),
|
|
1882
|
+
Match.when({
|
|
1883
|
+
type: "reference-traversal"
|
|
1884
|
+
}, ({ anchor, property }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(Option4.map((schema) => SchemaAST.getPropertySignatures(schema.ast)), Option4.flatMap((properties) => Array2.findFirst(properties, (p) => p.name === property)), Option4.flatMap((property2) => SchemaAST.getAnnotation(ReferenceAnnotationId)(unwrapOptional(property2))), Option4.map((annotation) => annotation.typename))), Effect3.flatMap(Option4.match({
|
|
1885
|
+
onNone: () => Effect3.succeed(Option4.none()),
|
|
1886
|
+
onSome: (typename) => resolve(DXN.fromTypename(typename).toString())
|
|
1887
|
+
})))),
|
|
1888
|
+
Match.when({
|
|
1889
|
+
type: "relation",
|
|
1890
|
+
filter: Match.defined
|
|
1891
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option4.map((typename) => resolve(typename)), Option4.getOrElse(() => Effect3.succeed(Option4.none())))),
|
|
1892
|
+
Match.when({
|
|
1893
|
+
type: "relation-traversal"
|
|
1894
|
+
}, ({ anchor, direction }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(Option4.map((schema) => getTypeAnnotation2(schema)), Option4.flatMap((annotation) => Option4.fromNullable(direction === "source" ? annotation?.sourceSchema : annotation?.targetSchema)))), Effect3.flatMap(Option4.match({
|
|
1895
|
+
onNone: () => Effect3.succeed(Option4.none()),
|
|
1896
|
+
onSome: (typename) => resolve(typename)
|
|
1897
|
+
})))),
|
|
1898
|
+
Match.when({
|
|
1899
|
+
type: "options"
|
|
1900
|
+
}, ({ query: query2 }) => resolveSchema(query2, resolve)),
|
|
1901
|
+
Match.orElse((_q) => {
|
|
1902
|
+
return Effect3.succeed(Option4.none());
|
|
1903
|
+
})
|
|
1904
|
+
);
|
|
1905
|
+
};
|
|
1906
|
+
var typenameFromFilter = (filter) => Match.value(filter).pipe(Match.withReturnType(), Match.when({
|
|
1907
|
+
type: "object"
|
|
1908
|
+
}, ({ typename }) => Option4.fromNullable(typename)), Match.when({
|
|
1909
|
+
type: "and"
|
|
1910
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option4.isSome), Option4.flatten)), Match.when({
|
|
1911
|
+
type: "or"
|
|
1912
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option4.isSome), Option4.flatten)), Match.orElse(() => Option4.none()));
|
|
1913
|
+
var getQueryTarget = (query, space) => {
|
|
1914
|
+
return Match.value(query).pipe(Match.when({
|
|
1915
|
+
type: "options"
|
|
1916
|
+
}, ({ options }) => {
|
|
1917
|
+
return Option4.fromNullable(options.queues).pipe(Option4.flatMap((queues) => Array2.head(queues)), Option4.flatMap((queueDxn) => Option4.fromNullable(DXN.tryParse(queueDxn))), Option4.flatMap((queueDxn) => Option4.fromNullable(space?.queues.get(queueDxn))), Option4.getOrElse(() => space));
|
|
1918
|
+
}), Match.orElse(() => space));
|
|
1919
|
+
};
|
|
1920
|
+
|
|
1862
1921
|
// src/components/ViewEditor.tsx
|
|
1863
|
-
import { useSignals as
|
|
1864
|
-
import
|
|
1865
|
-
import {
|
|
1866
|
-
import {
|
|
1867
|
-
import {
|
|
1922
|
+
import { useSignals as _useSignals17 } from "@preact-signals/safe-react/tracking";
|
|
1923
|
+
import * as Schema2 from "effect/Schema";
|
|
1924
|
+
import React17, { useCallback as useCallback11, useState as useState11 } from "react";
|
|
1925
|
+
import { createIntent as createIntent10 } from "@dxos/app-framework";
|
|
1926
|
+
import { useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework/react";
|
|
1927
|
+
import { DXN as DXN2, Filter as Filter3, Obj as Obj6, Query as Query3, Tag, Type as Type3 } from "@dxos/echo";
|
|
1868
1928
|
import { useClient as useClient10 } from "@dxos/react-client";
|
|
1869
|
-
import { getSpace as getSpace4,
|
|
1929
|
+
import { getSpace as getSpace4, useQuery as useQuery3 } from "@dxos/react-client/echo";
|
|
1930
|
+
import { useAsyncEffect } from "@dxos/react-ui";
|
|
1870
1931
|
import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
|
|
1871
|
-
import {
|
|
1872
|
-
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ViewEditor.tsx";
|
|
1932
|
+
import { View } from "@dxos/schema";
|
|
1873
1933
|
var ViewEditor = ({ view }) => {
|
|
1874
|
-
var _effect =
|
|
1934
|
+
var _effect = _useSignals17();
|
|
1875
1935
|
try {
|
|
1876
1936
|
const { dispatchPromise: dispatch } = useIntentDispatcher10();
|
|
1877
1937
|
const client = useClient10();
|
|
1878
1938
|
const space = getSpace4(view);
|
|
1879
|
-
const
|
|
1880
|
-
const
|
|
1881
|
-
const
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1939
|
+
const [schema, setSchema] = useState11(() => Schema2.Struct({}));
|
|
1940
|
+
const tags = useQuery3(space, Filter3.type(Tag.Tag));
|
|
1941
|
+
const types = useTypeOptions({
|
|
1942
|
+
space,
|
|
1943
|
+
annotation: [
|
|
1944
|
+
"dynamic",
|
|
1945
|
+
"limited-static",
|
|
1946
|
+
"object-form"
|
|
1947
|
+
]
|
|
1948
|
+
});
|
|
1949
|
+
useAsyncEffect(async () => {
|
|
1950
|
+
if (!view?.query || !space) {
|
|
1951
|
+
return;
|
|
1952
|
+
}
|
|
1953
|
+
const foundSchema = await resolveSchemaWithClientAndSpace(client, space, view.query.ast);
|
|
1954
|
+
if (foundSchema && foundSchema !== schema) {
|
|
1955
|
+
setSchema(() => foundSchema);
|
|
1956
|
+
}
|
|
1957
|
+
}, [
|
|
1958
|
+
client,
|
|
1959
|
+
space,
|
|
1960
|
+
view,
|
|
1961
|
+
schema
|
|
1962
|
+
]);
|
|
1963
|
+
const handleQueryChanged = useCallback11(async (newQuery, target) => {
|
|
1964
|
+
if (!view || !space) {
|
|
1965
|
+
return;
|
|
1966
|
+
}
|
|
1967
|
+
const queue = target && DXN2.tryParse(target) ? target : void 0;
|
|
1968
|
+
const query = queue ? Query3.fromAst(newQuery).options({
|
|
1969
|
+
queues: [
|
|
1970
|
+
queue
|
|
1898
1971
|
]
|
|
1972
|
+
}) : Query3.fromAst(newQuery);
|
|
1973
|
+
view.query.ast = query.ast;
|
|
1974
|
+
const newSchema = await resolveSchemaWithClientAndSpace(client, space, query.ast);
|
|
1975
|
+
if (!newSchema) {
|
|
1976
|
+
return;
|
|
1977
|
+
}
|
|
1978
|
+
const newView = View.make({
|
|
1979
|
+
query,
|
|
1980
|
+
jsonSchema: Type3.toJsonSchema(newSchema),
|
|
1981
|
+
presentation: Obj6.make(Type3.Expando, {})
|
|
1899
1982
|
});
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
schema.updateTypename(typename2);
|
|
1983
|
+
view.projection = Obj6.getSnapshot(newView).projection;
|
|
1984
|
+
setSchema(() => newSchema);
|
|
1903
1985
|
}, [
|
|
1904
1986
|
view,
|
|
1905
1987
|
schema
|
|
@@ -1916,13 +1998,16 @@ var ViewEditor = ({ view }) => {
|
|
|
1916
1998
|
if (!space || !schema) {
|
|
1917
1999
|
return null;
|
|
1918
2000
|
}
|
|
1919
|
-
return /* @__PURE__ */
|
|
2001
|
+
return /* @__PURE__ */ React17.createElement(NaturalViewEditor, {
|
|
1920
2002
|
registry: space.db.schemaRegistry,
|
|
1921
2003
|
schema,
|
|
1922
2004
|
view,
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
2005
|
+
mode: "query",
|
|
2006
|
+
outerSpacing: false,
|
|
2007
|
+
tags,
|
|
2008
|
+
types,
|
|
2009
|
+
onQueryChanged: handleQueryChanged,
|
|
2010
|
+
onDelete: Type3.isMutable(schema) ? handleDelete : void 0
|
|
1926
2011
|
});
|
|
1927
2012
|
} finally {
|
|
1928
2013
|
_effect.f();
|
|
@@ -1930,10 +2015,11 @@ var ViewEditor = ({ view }) => {
|
|
|
1930
2015
|
};
|
|
1931
2016
|
|
|
1932
2017
|
// src/components/index.ts
|
|
1933
|
-
import { lazy
|
|
1934
|
-
var
|
|
1935
|
-
var ObjectDetailsPanel =
|
|
1936
|
-
var
|
|
2018
|
+
import { lazy } from "react";
|
|
2019
|
+
var CollectionArticle = lazy(() => import("./CollectionArticle-KHXYT3SH.mjs"));
|
|
2020
|
+
var ObjectDetailsPanel = lazy(() => import("./ObjectDetailsPanel-6PZQIQG3.mjs"));
|
|
2021
|
+
var ObjectSettingsContainer = lazy(() => import("./ObjectSettings-OQSBOH7K.mjs"));
|
|
2022
|
+
var RecordArticle = lazy(() => import("./RecordArticle-NACBH42P.mjs"));
|
|
1937
2023
|
|
|
1938
2024
|
export {
|
|
1939
2025
|
AwaitingObject,
|
|
@@ -1946,14 +2032,12 @@ export {
|
|
|
1946
2032
|
JoinDialog,
|
|
1947
2033
|
MembersContainer,
|
|
1948
2034
|
MenuFooter,
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
POPOVER_RENAME_SPACE,
|
|
1954
|
-
PopoverRenameSpace,
|
|
1955
|
-
useQuerySpaceSchemas,
|
|
2035
|
+
OBJECT_RENAME_POPOVER,
|
|
2036
|
+
ObjectRenamePopover,
|
|
2037
|
+
SPACE_RENAME_POPOVER,
|
|
2038
|
+
SpaceRenamePopover,
|
|
1956
2039
|
SchemaContainer,
|
|
2040
|
+
useQuerySpaceSchemas,
|
|
1957
2041
|
SpacePresence,
|
|
1958
2042
|
FullPresence,
|
|
1959
2043
|
SmallPresenceLive,
|
|
@@ -1963,19 +2047,13 @@ export {
|
|
|
1963
2047
|
InlineSyncStatus,
|
|
1964
2048
|
SyncStatus,
|
|
1965
2049
|
SyncStatusIndicator,
|
|
2050
|
+
evalQuery,
|
|
2051
|
+
resolveSchemaWithClientAndSpace,
|
|
2052
|
+
getQueryTarget,
|
|
1966
2053
|
ViewEditor,
|
|
1967
|
-
|
|
2054
|
+
CollectionArticle,
|
|
1968
2055
|
ObjectDetailsPanel,
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
AppGraphSerializer,
|
|
1972
|
-
IdentityCreated,
|
|
1973
|
-
IntentResolver,
|
|
1974
|
-
ReactRoot,
|
|
1975
|
-
ReactSurface,
|
|
1976
|
-
SchemaDefs,
|
|
1977
|
-
SpaceSettings,
|
|
1978
|
-
SpaceState,
|
|
1979
|
-
SpacesReady
|
|
2056
|
+
ObjectSettingsContainer,
|
|
2057
|
+
RecordArticle
|
|
1980
2058
|
};
|
|
1981
|
-
//# sourceMappingURL=chunk-
|
|
2059
|
+
//# sourceMappingURL=chunk-XGAMJC5C.mjs.map
|