@dxos/plugin-space 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3
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-FLF7XMQO.mjs → app-graph-builder-VQAB3GCQ.mjs} +109 -97
- package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-3A6KBYWT.mjs → app-graph-serializer-KSLKMEPP.mjs} +19 -19
- package/dist/lib/browser/app-graph-serializer-KSLKMEPP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-DCY3W36E.mjs → chunk-ERQMHU7L.mjs} +71 -61
- package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +7 -0
- package/dist/lib/browser/{chunk-J6YZG77T.mjs → chunk-J2BUK5E6.mjs} +554 -481
- package/dist/lib/browser/chunk-J2BUK5E6.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-RQVV4XVF.mjs → chunk-M2Z6D4ZI.mjs} +27 -21
- package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WAXS2ZVX.mjs → chunk-OLBBSOVI.mjs} +26 -13
- package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +7 -0
- package/dist/lib/browser/chunk-PU5IOFMG.mjs +167 -0
- package/dist/lib/browser/chunk-PU5IOFMG.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/{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 +89 -85
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-7E3IZIJS.mjs → intent-resolver-Q2XWHAVA.mjs} +78 -84
- package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-MM4HADPE.mjs +30 -0
- package/dist/lib/browser/react-root-MM4HADPE.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-GL4CE2F4.mjs → react-surface-SGZC3Y4U.mjs} +71 -105
- package/dist/lib/browser/react-surface-SGZC3Y4U.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-B6MMHLPS.mjs → settings-WKLGKUHQ.mjs} +5 -5
- package/dist/lib/browser/{settings-B6MMHLPS.mjs.map → settings-WKLGKUHQ.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-QVABOCO3.mjs → spaces-ready-C5QC2UFL.mjs} +15 -14
- package/dist/lib/browser/spaces-ready-C5QC2UFL.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-D5YPOJS5.mjs → app-graph-builder-24JCLJPX.mjs} +109 -97
- package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-M45TH5LR.mjs → app-graph-serializer-R723K764.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-serializer-R723K764.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-WKQTO37U.mjs → chunk-2PN7QNGV.mjs} +27 -21
- package/dist/lib/node-esm/chunk-2PN7QNGV.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-ZCEH2VYE.mjs → chunk-ITQFSFQ3.mjs} +554 -481
- package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TJPQDQNI.mjs +168 -0
- package/dist/lib/node-esm/chunk-TJPQDQNI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AUQ3SKL2.mjs → chunk-VH2EBZEV.mjs} +71 -61
- package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HYIZVPOA.mjs → chunk-WC4VBFMA.mjs} +26 -13
- package/dist/lib/node-esm/chunk-WC4VBFMA.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 +89 -85
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-UVO4MKWX.mjs → intent-resolver-YK4ESSET.mjs} +78 -84
- package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-5EKYI66P.mjs → react-root-5ANDLQMX.mjs} +13 -12
- package/dist/lib/node-esm/react-root-5ANDLQMX.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-IOC6YSVQ.mjs → react-surface-V7J2QB44.mjs} +71 -105
- package/dist/lib/node-esm/react-surface-V7J2QB44.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-IOFU6EAS.mjs → settings-RBB5633M.mjs} +5 -5
- package/dist/lib/node-esm/{settings-IOFU6EAS.mjs.map → settings-RBB5633M.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-MS6GHPFR.mjs → spaces-ready-SJCXV6YH.mjs} +15 -14
- package/dist/lib/node-esm/spaces-ready-SJCXV6YH.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 +110 -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 +1697 -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 +1530 -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/ObjectSettingsContainer.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} +111 -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} +112 -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 +110 -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 +111 -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 +1322 -22
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +59 -76
- 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 +64 -59
- package/src/SpacePlugin.ts +228 -212
- package/src/capabilities/app-graph-builder.ts +158 -123
- 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 +68 -61
- 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 +38 -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 +4 -3
- 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 -23
- 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 +26 -22
- package/src/util.tsx +79 -64
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +0 -88
- package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.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-FLF7XMQO.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-3A6KBYWT.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-DCY3W36E.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-J6YZG77T.mjs.map +0 -7
- package/dist/lib/browser/chunk-RQVV4XVF.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-WAXS2ZVX.mjs.map +0 -7
- package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-7E3IZIJS.mjs.map +0 -7
- package/dist/lib/browser/react-root-RWMT2RCK.mjs +0 -29
- package/dist/lib/browser/react-root-RWMT2RCK.mjs.map +0 -7
- package/dist/lib/browser/react-surface-GL4CE2F4.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-QVABOCO3.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-3MYLTMXN.mjs +0 -89
- package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.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-D5YPOJS5.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-M45TH5LR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AUQ3SKL2.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-HYIZVPOA.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-WKQTO37U.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZCEH2VYE.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-UVO4MKWX.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-5EKYI66P.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-IOC6YSVQ.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-MS6GHPFR.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 -77
- 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
|
@@ -2,39 +2,42 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
5
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
6
|
+
import * as Array from 'effect/Array';
|
|
7
|
+
import * as Function from 'effect/Function';
|
|
8
|
+
import * as Option from 'effect/Option';
|
|
9
|
+
import * as Schema from 'effect/Schema';
|
|
7
10
|
|
|
8
11
|
import { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
|
|
9
|
-
import { type QueryResult, type Space, SpaceState, getSpace, isSpace
|
|
10
|
-
import { Filter, Obj, Query, Type } from '@dxos/echo';
|
|
12
|
+
import { type QueryResult, type Space, SpaceState, getSpace, isSpace } from '@dxos/client/echo';
|
|
13
|
+
import { DXN, Filter, Obj, Query, Type } from '@dxos/echo';
|
|
11
14
|
import { log } from '@dxos/log';
|
|
12
15
|
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
13
16
|
import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
|
|
14
|
-
import { ROOT_ID,
|
|
15
|
-
import {
|
|
17
|
+
import { ROOT_ID, atomFromObservable, atomFromSignal, createExtension } from '@dxos/plugin-graph';
|
|
18
|
+
import { Collection, StoredSchema, View, getTypenameFromQuery } from '@dxos/schema';
|
|
16
19
|
import { isNonNullable } from '@dxos/util';
|
|
17
20
|
|
|
18
21
|
import { getActiveSpace } from '../hooks';
|
|
19
|
-
import {
|
|
22
|
+
import { meta } from '../meta';
|
|
20
23
|
import { SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';
|
|
21
24
|
import {
|
|
22
25
|
SHARED,
|
|
23
26
|
SPACES,
|
|
27
|
+
atomFromQuery,
|
|
24
28
|
constructObjectActions,
|
|
25
29
|
constructSpaceActions,
|
|
26
30
|
constructSpaceNode,
|
|
27
31
|
createObjectNode,
|
|
28
32
|
createStaticSchemaActions,
|
|
29
33
|
createStaticSchemaNode,
|
|
30
|
-
rxFromQuery,
|
|
31
34
|
} from '../util';
|
|
32
35
|
|
|
33
36
|
import { SpaceCapabilities } from './capabilities';
|
|
34
37
|
|
|
35
38
|
export default (context: PluginContext) => {
|
|
36
|
-
// TODO(wittjosiah):
|
|
37
|
-
const resolve = (typename: string) =>
|
|
39
|
+
// TODO(wittjosiah): Using `get` and being reactive seems to cause a bug with Atom where disposed atoms are accessed.
|
|
40
|
+
const resolve = (get: Atom.Context) => (typename: string) =>
|
|
38
41
|
context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
39
42
|
|
|
40
43
|
const spacesNode = {
|
|
@@ -42,7 +45,7 @@ export default (context: PluginContext) => {
|
|
|
42
45
|
type: SPACES,
|
|
43
46
|
cacheable: ['label', 'role'],
|
|
44
47
|
properties: {
|
|
45
|
-
label: ['spaces label', { ns:
|
|
48
|
+
label: ['spaces label', { ns: meta.id }],
|
|
46
49
|
icon: 'ph--planet--regular',
|
|
47
50
|
testId: 'spacePlugin.spaces',
|
|
48
51
|
role: 'branch',
|
|
@@ -77,11 +80,11 @@ export default (context: PluginContext) => {
|
|
|
77
80
|
return contributes(Capabilities.AppGraphBuilder, [
|
|
78
81
|
// Primary actions.
|
|
79
82
|
createExtension({
|
|
80
|
-
id: `${
|
|
83
|
+
id: `${meta.id}/primary-actions`,
|
|
81
84
|
position: 'hoist',
|
|
82
85
|
actions: (node) =>
|
|
83
|
-
|
|
84
|
-
pipe(
|
|
86
|
+
Atom.make((get) =>
|
|
87
|
+
Function.pipe(
|
|
85
88
|
get(node),
|
|
86
89
|
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
87
90
|
Option.map(() => [
|
|
@@ -92,7 +95,7 @@ export default (context: PluginContext) => {
|
|
|
92
95
|
await dispatch(createIntent(SpaceAction.OpenCreateSpace));
|
|
93
96
|
},
|
|
94
97
|
properties: {
|
|
95
|
-
label: ['create space label', { ns:
|
|
98
|
+
label: ['create space label', { ns: meta.id }],
|
|
96
99
|
icon: 'ph--plus--regular',
|
|
97
100
|
testId: 'spacePlugin.createSpace',
|
|
98
101
|
disposition: 'menu',
|
|
@@ -105,7 +108,7 @@ export default (context: PluginContext) => {
|
|
|
105
108
|
await dispatch(createIntent(SpaceAction.Join));
|
|
106
109
|
},
|
|
107
110
|
properties: {
|
|
108
|
-
label: ['join space label', { ns:
|
|
111
|
+
label: ['join space label', { ns: meta.id }],
|
|
109
112
|
icon: 'ph--sign-in--regular',
|
|
110
113
|
testId: 'spacePlugin.joinSpace',
|
|
111
114
|
disposition: 'menu',
|
|
@@ -120,7 +123,7 @@ export default (context: PluginContext) => {
|
|
|
120
123
|
await dispatch(createIntent(SpaceAction.OpenMembers, { space }));
|
|
121
124
|
},
|
|
122
125
|
properties: {
|
|
123
|
-
label: ['share space label', { ns:
|
|
126
|
+
label: ['share space label', { ns: meta.id }],
|
|
124
127
|
icon: 'ph--users--regular',
|
|
125
128
|
testId: 'spacePlugin.shareSpace',
|
|
126
129
|
keyBinding: {
|
|
@@ -138,7 +141,7 @@ export default (context: PluginContext) => {
|
|
|
138
141
|
await dispatch(createIntent(SpaceAction.OpenSettings, { space }));
|
|
139
142
|
},
|
|
140
143
|
properties: {
|
|
141
|
-
label: ['open current space settings label', { ns:
|
|
144
|
+
label: ['open current space settings label', { ns: meta.id }],
|
|
142
145
|
icon: 'ph--faders--regular',
|
|
143
146
|
keyBinding: {
|
|
144
147
|
macos: 'meta+shift+,',
|
|
@@ -154,11 +157,11 @@ export default (context: PluginContext) => {
|
|
|
154
157
|
|
|
155
158
|
// Create spaces group node.
|
|
156
159
|
createExtension({
|
|
157
|
-
id: `${
|
|
160
|
+
id: `${meta.id}/root`,
|
|
158
161
|
position: 'hoist',
|
|
159
162
|
connector: (node) =>
|
|
160
|
-
|
|
161
|
-
pipe(
|
|
163
|
+
Atom.make((get) =>
|
|
164
|
+
Function.pipe(
|
|
162
165
|
get(node),
|
|
163
166
|
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
164
167
|
Option.map(() => [spacesNode]),
|
|
@@ -173,25 +176,25 @@ export default (context: PluginContext) => {
|
|
|
173
176
|
id: SPACES,
|
|
174
177
|
connector: (node) => {
|
|
175
178
|
let query: QueryResult<Type.Expando> | undefined;
|
|
176
|
-
return
|
|
177
|
-
pipe(
|
|
179
|
+
return Atom.make((get) =>
|
|
180
|
+
Function.pipe(
|
|
178
181
|
get(node),
|
|
179
182
|
Option.flatMap((node) => (node.id === SPACES ? Option.some(node) : Option.none())),
|
|
180
183
|
Option.map(() => {
|
|
181
184
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
182
185
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
183
|
-
const
|
|
184
|
-
const
|
|
186
|
+
const spacesAtom = atomFromObservable(client.spaces);
|
|
187
|
+
const isReadyAtom = atomFromObservable(client.spaces.isReady);
|
|
185
188
|
|
|
186
|
-
const spaces = get(
|
|
187
|
-
const isReady = get(
|
|
189
|
+
const spaces = get(spacesAtom);
|
|
190
|
+
const isReady = get(isReadyAtom);
|
|
188
191
|
|
|
189
192
|
if (!spaces || !isReady) {
|
|
190
193
|
return [];
|
|
191
194
|
}
|
|
192
195
|
|
|
193
196
|
const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(
|
|
194
|
-
|
|
197
|
+
meta.id,
|
|
195
198
|
)?.value;
|
|
196
199
|
|
|
197
200
|
// TODO(wittjosiah): During client reset, accessing default space throws.
|
|
@@ -199,9 +202,9 @@ export default (context: PluginContext) => {
|
|
|
199
202
|
if (!query) {
|
|
200
203
|
query = client.spaces.default.db.query(Filter.type(Type.Expando, { key: SHARED }));
|
|
201
204
|
}
|
|
202
|
-
const [spacesOrder] = get(
|
|
205
|
+
const [spacesOrder] = get(atomFromQuery(query));
|
|
203
206
|
return get(
|
|
204
|
-
|
|
207
|
+
atomFromSignal(() => {
|
|
205
208
|
const order: string[] = spacesOrder?.order ?? [];
|
|
206
209
|
const orderMap = new Map(order.map((id, index) => [id, index]));
|
|
207
210
|
return [
|
|
@@ -219,7 +222,7 @@ export default (context: PluginContext) => {
|
|
|
219
222
|
navigable: state.navigableCollections,
|
|
220
223
|
personal: space === client.spaces.default,
|
|
221
224
|
namesCache: state.spaceNames,
|
|
222
|
-
resolve,
|
|
225
|
+
resolve: resolve(get),
|
|
223
226
|
}),
|
|
224
227
|
);
|
|
225
228
|
}),
|
|
@@ -276,10 +279,10 @@ export default (context: PluginContext) => {
|
|
|
276
279
|
|
|
277
280
|
// Create space actions.
|
|
278
281
|
createExtension({
|
|
279
|
-
id: `${
|
|
282
|
+
id: `${meta.id}/actions`,
|
|
280
283
|
actions: (node) =>
|
|
281
|
-
|
|
282
|
-
pipe(
|
|
284
|
+
Atom.make((get) =>
|
|
285
|
+
Function.pipe(
|
|
283
286
|
get(node),
|
|
284
287
|
Option.flatMap((node) =>
|
|
285
288
|
node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),
|
|
@@ -308,24 +311,24 @@ export default (context: PluginContext) => {
|
|
|
308
311
|
|
|
309
312
|
// Create nodes for objects in the root collection of a space.
|
|
310
313
|
createExtension({
|
|
311
|
-
id: `${
|
|
314
|
+
id: `${meta.id}/root-collection`,
|
|
312
315
|
connector: (node) =>
|
|
313
|
-
|
|
314
|
-
pipe(
|
|
316
|
+
Atom.make((get) =>
|
|
317
|
+
Function.pipe(
|
|
315
318
|
get(node),
|
|
316
319
|
Option.flatMap((node) =>
|
|
317
320
|
node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),
|
|
318
321
|
),
|
|
319
322
|
Option.map((space) => {
|
|
320
323
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
321
|
-
const spaceState = get(
|
|
324
|
+
const spaceState = get(atomFromObservable(space.state));
|
|
322
325
|
if (spaceState !== SpaceState.SPACE_READY) {
|
|
323
326
|
return [];
|
|
324
327
|
}
|
|
325
328
|
|
|
326
329
|
const collection = get(
|
|
327
|
-
|
|
328
|
-
() => space.properties[
|
|
330
|
+
atomFromSignal(
|
|
331
|
+
() => space.properties[Collection.Collection.typename]?.target as Collection.Collection | undefined,
|
|
329
332
|
),
|
|
330
333
|
);
|
|
331
334
|
if (!collection) {
|
|
@@ -333,8 +336,8 @@ export default (context: PluginContext) => {
|
|
|
333
336
|
}
|
|
334
337
|
|
|
335
338
|
return get(
|
|
336
|
-
|
|
337
|
-
pipe(
|
|
339
|
+
atomFromSignal(() =>
|
|
340
|
+
Function.pipe(
|
|
338
341
|
collection.objects,
|
|
339
342
|
Array.map((object) => object.target),
|
|
340
343
|
Array.filter(isNonNullable),
|
|
@@ -342,7 +345,7 @@ export default (context: PluginContext) => {
|
|
|
342
345
|
createObjectNode({
|
|
343
346
|
space,
|
|
344
347
|
object,
|
|
345
|
-
resolve,
|
|
348
|
+
resolve: resolve(get),
|
|
346
349
|
navigable: state.navigableCollections,
|
|
347
350
|
}),
|
|
348
351
|
),
|
|
@@ -358,27 +361,33 @@ export default (context: PluginContext) => {
|
|
|
358
361
|
|
|
359
362
|
// Create nodes for objects in a collection or by its fully qualified id.
|
|
360
363
|
createExtension({
|
|
361
|
-
id: `${
|
|
364
|
+
id: `${meta.id}/objects`,
|
|
362
365
|
connector: (node) =>
|
|
363
|
-
|
|
364
|
-
pipe(
|
|
366
|
+
Atom.make((get) =>
|
|
367
|
+
Function.pipe(
|
|
365
368
|
get(node),
|
|
366
369
|
Option.flatMap((node) =>
|
|
367
|
-
Obj.instanceOf(
|
|
370
|
+
Obj.instanceOf(Collection.Collection, node.data) ? Option.some(node.data) : Option.none(),
|
|
368
371
|
),
|
|
369
372
|
Option.map((collection) => {
|
|
370
373
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
371
374
|
const space = getSpace(collection);
|
|
372
375
|
|
|
373
376
|
return get(
|
|
374
|
-
|
|
375
|
-
pipe(
|
|
377
|
+
atomFromSignal(() =>
|
|
378
|
+
Function.pipe(
|
|
376
379
|
collection.objects,
|
|
377
380
|
Array.map((object) => object.target),
|
|
378
381
|
Array.filter(isNonNullable),
|
|
379
382
|
Array.map(
|
|
380
383
|
(object) =>
|
|
381
|
-
space &&
|
|
384
|
+
space &&
|
|
385
|
+
createObjectNode({
|
|
386
|
+
object,
|
|
387
|
+
space,
|
|
388
|
+
resolve: resolve(get),
|
|
389
|
+
navigable: state.navigableCollections,
|
|
390
|
+
}),
|
|
382
391
|
),
|
|
383
392
|
Array.filter(isNonNullable),
|
|
384
393
|
),
|
|
@@ -429,20 +438,19 @@ export default (context: PluginContext) => {
|
|
|
429
438
|
|
|
430
439
|
// Create nodes for objects in a query collection.
|
|
431
440
|
createExtension({
|
|
432
|
-
id: `${
|
|
441
|
+
id: `${meta.id}/query-collection-objects`,
|
|
433
442
|
connector: (node) => {
|
|
434
443
|
let query: QueryResult<Type.Expando> | undefined;
|
|
435
|
-
return
|
|
436
|
-
pipe(
|
|
444
|
+
return Atom.make((get) =>
|
|
445
|
+
Function.pipe(
|
|
437
446
|
get(node),
|
|
438
447
|
Option.flatMap((node) =>
|
|
439
|
-
Obj.instanceOf(
|
|
448
|
+
Obj.instanceOf(Collection.QueryCollection, node.data) ? Option.some(node.data) : Option.none(),
|
|
440
449
|
),
|
|
441
450
|
Option.flatMap((collection) => {
|
|
442
451
|
const space = getSpace(collection);
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
: Option.none();
|
|
452
|
+
const typename = getTypenameFromQuery(collection.query);
|
|
453
|
+
return typename && space ? Option.some({ typename, space }) : Option.none();
|
|
446
454
|
}),
|
|
447
455
|
Option.map(({ typename, space }) => {
|
|
448
456
|
const state = context.getCapability(SpaceCapabilities.State);
|
|
@@ -454,22 +462,22 @@ export default (context: PluginContext) => {
|
|
|
454
462
|
// It will return all objects in the collection, not just the ones of the given type.
|
|
455
463
|
// However this works fine for now because this query is only used for exclusions.
|
|
456
464
|
Query.select(Filter.typename(typename))
|
|
457
|
-
.referencedBy(
|
|
465
|
+
.referencedBy(Collection.Collection, 'objects')
|
|
458
466
|
.reference('objects'),
|
|
459
467
|
),
|
|
460
468
|
);
|
|
461
469
|
}
|
|
462
470
|
return (
|
|
463
|
-
get(
|
|
471
|
+
get(atomFromQuery(query))
|
|
464
472
|
// TODO(wittjosiah): This should be the default sort order.
|
|
465
473
|
.toSorted((a, b) => a.id.localeCompare(b.id))
|
|
466
474
|
.map((object) =>
|
|
467
475
|
get(
|
|
468
|
-
|
|
476
|
+
atomFromSignal(() =>
|
|
469
477
|
createObjectNode({
|
|
470
478
|
object,
|
|
471
479
|
space,
|
|
472
|
-
resolve,
|
|
480
|
+
resolve: resolve(get),
|
|
473
481
|
droppable: false, // Cannot rearrange query collections.
|
|
474
482
|
navigable: state.navigableCollections,
|
|
475
483
|
}),
|
|
@@ -487,15 +495,15 @@ export default (context: PluginContext) => {
|
|
|
487
495
|
|
|
488
496
|
// Static schema records.
|
|
489
497
|
createExtension({
|
|
490
|
-
id: `${
|
|
498
|
+
id: `${meta.id}/static-schemas`,
|
|
491
499
|
connector: (node) => {
|
|
492
500
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
493
|
-
return
|
|
494
|
-
pipe(
|
|
501
|
+
return Atom.make((get) =>
|
|
502
|
+
Function.pipe(
|
|
495
503
|
get(node),
|
|
496
504
|
Option.flatMap((node) =>
|
|
497
|
-
Obj.instanceOf(
|
|
498
|
-
node.data.query
|
|
505
|
+
Obj.instanceOf(Collection.QueryCollection, node.data) &&
|
|
506
|
+
getTypenameFromQuery(node.data.query) === StoredSchema.typename
|
|
499
507
|
? Option.some(node.data)
|
|
500
508
|
: Option.none(),
|
|
501
509
|
),
|
|
@@ -504,7 +512,7 @@ export default (context: PluginContext) => {
|
|
|
504
512
|
return space?.properties.staticRecords ? Option.some(space) : Option.none();
|
|
505
513
|
}),
|
|
506
514
|
Option.map((space) => {
|
|
507
|
-
return get(
|
|
515
|
+
return get(atomFromSignal(() => (space.properties.staticRecords ?? []) as string[]))
|
|
508
516
|
.map((typename) =>
|
|
509
517
|
client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename),
|
|
510
518
|
)
|
|
@@ -519,11 +527,11 @@ export default (context: PluginContext) => {
|
|
|
519
527
|
|
|
520
528
|
// Create static schema actions.
|
|
521
529
|
createExtension({
|
|
522
|
-
id: `${
|
|
530
|
+
id: `${meta.id}/static-schema-actions`,
|
|
523
531
|
actions: (node) => {
|
|
524
|
-
let query: QueryResult<
|
|
525
|
-
return
|
|
526
|
-
pipe(
|
|
532
|
+
let query: QueryResult<View.View> | undefined;
|
|
533
|
+
return Atom.make((get) =>
|
|
534
|
+
Function.pipe(
|
|
527
535
|
get(node),
|
|
528
536
|
Option.flatMap((node) => {
|
|
529
537
|
const space = isSpace(node.properties.space) ? node.properties.space : undefined;
|
|
@@ -532,14 +540,16 @@ export default (context: PluginContext) => {
|
|
|
532
540
|
Option.map(({ space, schema }) => {
|
|
533
541
|
if (!query) {
|
|
534
542
|
// TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).
|
|
535
|
-
query = space.db.query(Filter.type(
|
|
543
|
+
query = space.db.query(Filter.type(View.View));
|
|
536
544
|
}
|
|
537
545
|
|
|
538
|
-
const views = get(
|
|
546
|
+
const views = get(atomFromQuery(query));
|
|
539
547
|
const filteredViews = get(
|
|
540
|
-
|
|
548
|
+
atomFromSignal(() =>
|
|
541
549
|
// TODO(wittjosiah): Remove cast.
|
|
542
|
-
views.filter(
|
|
550
|
+
views.filter(
|
|
551
|
+
(view) => getTypenameFromQuery(view.query.ast) === Type.getTypename(schema as Type.Obj.Any),
|
|
552
|
+
),
|
|
543
553
|
),
|
|
544
554
|
);
|
|
545
555
|
const deletable = filteredViews.length === 0;
|
|
@@ -565,41 +575,57 @@ export default (context: PluginContext) => {
|
|
|
565
575
|
|
|
566
576
|
// Create nodes for schema views.
|
|
567
577
|
createExtension({
|
|
568
|
-
id: `${
|
|
578
|
+
id: `${meta.id}/schema-views`,
|
|
569
579
|
connector: (node) => {
|
|
570
|
-
let query: QueryResult<
|
|
571
|
-
return
|
|
572
|
-
pipe(
|
|
580
|
+
let query: QueryResult<View.View> | undefined;
|
|
581
|
+
return Atom.make((get) =>
|
|
582
|
+
Function.pipe(
|
|
573
583
|
get(node),
|
|
574
584
|
Option.flatMap((node) => {
|
|
575
585
|
const space = getSpace(node.data) ?? (isSpace(node.properties.space) ? node.properties.space : undefined);
|
|
576
|
-
return space && (Obj.instanceOf(
|
|
586
|
+
return space && (Obj.instanceOf(StoredSchema, node.data) || Schema.isSchema(node.data))
|
|
577
587
|
? Option.some({ space, schema: node.data })
|
|
578
588
|
: Option.none();
|
|
579
589
|
}),
|
|
580
590
|
Option.map(({ space, schema }) => {
|
|
581
591
|
if (!query) {
|
|
582
592
|
// TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).
|
|
583
|
-
query = space.db.query(Filter.type(
|
|
593
|
+
query = space.db.query(Filter.type(View.View));
|
|
584
594
|
}
|
|
585
595
|
|
|
586
596
|
// TODO(wittjosiah): Remove cast.
|
|
587
597
|
const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;
|
|
588
|
-
return
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
+
return (
|
|
599
|
+
get(atomFromQuery(query))
|
|
600
|
+
.filter((view) => getTypenameFromQuery(view.query.ast) === typename)
|
|
601
|
+
// Filter out Collection views from Projects.
|
|
602
|
+
.filter((view) =>
|
|
603
|
+
get(
|
|
604
|
+
atomFromSignal(() => {
|
|
605
|
+
const presentation = view.presentation.target;
|
|
606
|
+
if (presentation) {
|
|
607
|
+
const typename = Obj.getTypename(presentation);
|
|
608
|
+
return typename !== Collection.Collection.typename;
|
|
609
|
+
} else {
|
|
610
|
+
return false;
|
|
611
|
+
}
|
|
598
612
|
}),
|
|
599
613
|
),
|
|
600
|
-
)
|
|
601
|
-
|
|
602
|
-
|
|
614
|
+
)
|
|
615
|
+
.map((view) =>
|
|
616
|
+
get(
|
|
617
|
+
atomFromSignal(() =>
|
|
618
|
+
createObjectNode({
|
|
619
|
+
object: view,
|
|
620
|
+
space,
|
|
621
|
+
resolve: resolve(get),
|
|
622
|
+
droppable: false,
|
|
623
|
+
}),
|
|
624
|
+
),
|
|
625
|
+
),
|
|
626
|
+
)
|
|
627
|
+
.filter(isNonNullable)
|
|
628
|
+
);
|
|
603
629
|
}),
|
|
604
630
|
Option.getOrElse(() => []),
|
|
605
631
|
),
|
|
@@ -609,65 +635,74 @@ export default (context: PluginContext) => {
|
|
|
609
635
|
|
|
610
636
|
// Create record nodes.
|
|
611
637
|
createExtension({
|
|
612
|
-
id: `${
|
|
638
|
+
id: `${meta.id}/records`,
|
|
613
639
|
resolver: (id) => {
|
|
614
640
|
let query: QueryResult<Type.Expando> | undefined;
|
|
615
|
-
return
|
|
641
|
+
return Atom.make((get) => {
|
|
616
642
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
617
|
-
const
|
|
618
|
-
if (!
|
|
643
|
+
const dxn = DXN.tryParse(id)?.asEchoDXN();
|
|
644
|
+
if (!dxn || !dxn.spaceId) {
|
|
619
645
|
return null;
|
|
620
646
|
}
|
|
621
647
|
|
|
622
|
-
const space = client.spaces.get(spaceId);
|
|
648
|
+
const space = client.spaces.get(dxn.spaceId);
|
|
623
649
|
if (!space) {
|
|
624
650
|
return null;
|
|
625
651
|
}
|
|
626
652
|
|
|
627
653
|
if (!query) {
|
|
628
|
-
query = space.db.query(Filter.ids(
|
|
654
|
+
query = space.db.query(Filter.ids(dxn.echoId));
|
|
629
655
|
}
|
|
630
656
|
|
|
631
|
-
const object = get(
|
|
657
|
+
const object = get(atomFromQuery(query)).at(0);
|
|
632
658
|
if (!object) {
|
|
633
659
|
return null;
|
|
634
660
|
}
|
|
635
661
|
|
|
636
|
-
return createObjectNode({
|
|
662
|
+
return createObjectNode({
|
|
663
|
+
object,
|
|
664
|
+
space,
|
|
665
|
+
resolve: resolve(get),
|
|
666
|
+
disposition: 'hidden',
|
|
667
|
+
});
|
|
637
668
|
});
|
|
638
669
|
},
|
|
639
670
|
}),
|
|
640
671
|
|
|
641
672
|
// Create collection actions and action groups.
|
|
642
673
|
createExtension({
|
|
643
|
-
id: `${
|
|
674
|
+
id: `${meta.id}/object-actions`,
|
|
644
675
|
actions: (node) => {
|
|
645
|
-
let query: QueryResult<
|
|
646
|
-
return
|
|
647
|
-
pipe(
|
|
676
|
+
let query: QueryResult<View.View> | undefined;
|
|
677
|
+
return Atom.make((get) =>
|
|
678
|
+
Function.pipe(
|
|
648
679
|
get(node),
|
|
649
680
|
Option.flatMap((node) => {
|
|
650
681
|
const space = getSpace(node.data);
|
|
651
|
-
return space && Obj.isObject(node.data)
|
|
682
|
+
return space && Obj.isObject(node.data) && Obj.getTypename(node.data) === node.type
|
|
683
|
+
? Option.some({ space, object: node.data })
|
|
684
|
+
: Option.none();
|
|
652
685
|
}),
|
|
653
686
|
Option.flatMap(({ space, object }) => {
|
|
654
|
-
const isSchema = Obj.instanceOf(
|
|
687
|
+
const isSchema = Obj.instanceOf(StoredSchema, object);
|
|
655
688
|
if (!query && isSchema) {
|
|
656
689
|
// TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).
|
|
657
|
-
query = space.db.query(Filter.type(
|
|
690
|
+
query = space.db.query(Filter.type(View.View));
|
|
658
691
|
}
|
|
659
692
|
|
|
660
693
|
let deletable =
|
|
661
694
|
!isSchema &&
|
|
662
695
|
// Don't allow the Records smart collection to be deleted.
|
|
663
696
|
!(
|
|
664
|
-
Obj.instanceOf(
|
|
665
|
-
object.query
|
|
697
|
+
Obj.instanceOf(Collection.QueryCollection, object) &&
|
|
698
|
+
getTypenameFromQuery(object.query) === StoredSchema.typename
|
|
666
699
|
);
|
|
667
700
|
if (isSchema && query) {
|
|
668
|
-
const views = get(
|
|
701
|
+
const views = get(atomFromQuery(query));
|
|
669
702
|
const filteredViews = get(
|
|
670
|
-
|
|
703
|
+
atomFromSignal(() =>
|
|
704
|
+
views.filter((view) => getTypenameFromQuery(view.query.ast) === object.typename),
|
|
705
|
+
),
|
|
671
706
|
);
|
|
672
707
|
deletable = filteredViews.length === 0;
|
|
673
708
|
}
|
|
@@ -686,7 +721,7 @@ export default (context: PluginContext) => {
|
|
|
686
721
|
dispatch: dispatcher.dispatchPromise,
|
|
687
722
|
objectForms,
|
|
688
723
|
deletable,
|
|
689
|
-
navigable: get(
|
|
724
|
+
navigable: get(atomFromSignal(() => state.navigableCollections)),
|
|
690
725
|
});
|
|
691
726
|
}
|
|
692
727
|
}),
|
|
@@ -699,19 +734,19 @@ export default (context: PluginContext) => {
|
|
|
699
734
|
|
|
700
735
|
// View selected objects.
|
|
701
736
|
createExtension({
|
|
702
|
-
id: `${
|
|
737
|
+
id: `${meta.id}/selected-objects`,
|
|
703
738
|
connector: (node) =>
|
|
704
|
-
|
|
705
|
-
pipe(
|
|
739
|
+
Atom.make((get) =>
|
|
740
|
+
Function.pipe(
|
|
706
741
|
get(node),
|
|
707
|
-
Option.flatMap((node) => (Obj.instanceOf(
|
|
742
|
+
Option.flatMap((node) => (Obj.instanceOf(View.View, node.data) ? Option.some(node) : Option.none())),
|
|
708
743
|
Option.map((node) => [
|
|
709
744
|
{
|
|
710
745
|
id: [node.id, 'selected-objects'].join(ATTENDABLE_PATH_SEPARATOR),
|
|
711
746
|
type: PLANK_COMPANION_TYPE,
|
|
712
747
|
data: 'selected-objects',
|
|
713
748
|
properties: {
|
|
714
|
-
label: ['companion selected objects label', { ns:
|
|
749
|
+
label: ['companion selected objects label', { ns: meta.id }],
|
|
715
750
|
icon: 'ph--tree-view--regular',
|
|
716
751
|
disposition: 'hidden',
|
|
717
752
|
},
|
|
@@ -724,10 +759,10 @@ export default (context: PluginContext) => {
|
|
|
724
759
|
|
|
725
760
|
// Object settings plank companion.
|
|
726
761
|
createExtension({
|
|
727
|
-
id: `${
|
|
762
|
+
id: `${meta.id}/settings`,
|
|
728
763
|
connector: (node) =>
|
|
729
|
-
|
|
730
|
-
pipe(
|
|
764
|
+
Atom.make((get) =>
|
|
765
|
+
Function.pipe(
|
|
731
766
|
get(node),
|
|
732
767
|
Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node) : Option.none())),
|
|
733
768
|
Option.map((node) => [
|
|
@@ -736,7 +771,7 @@ export default (context: PluginContext) => {
|
|
|
736
771
|
type: PLANK_COMPANION_TYPE,
|
|
737
772
|
data: 'settings',
|
|
738
773
|
properties: {
|
|
739
|
-
label: ['object settings label', { ns:
|
|
774
|
+
label: ['object settings label', { ns: meta.id }],
|
|
740
775
|
icon: 'ph--sliders--regular',
|
|
741
776
|
disposition: 'hidden',
|
|
742
777
|
position: 'fallback',
|