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