@dxos/plugin-space 0.8.4-main.67995b8 → 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-V3MP3CDK.mjs → app-graph-builder-VQAB3GCQ.mjs} +138 -90
- package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.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-XUYKJUU7.mjs → chunk-ERQMHU7L.mjs} +124 -63
- package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FBJEXW54.mjs → chunk-J2BUK5E6.mjs} +587 -513
- 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-SGTQ52SU.mjs → chunk-M2Z6D4ZI.mjs} +32 -21
- package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-OLBBSOVI.mjs} +30 -17
- 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-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +91 -91
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-XHGD73WZ.mjs → intent-resolver-Q2XWHAVA.mjs} +87 -85
- 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-YWZZQF7H.mjs → react-surface-SGZC3Y4U.mjs} +81 -105
- package/dist/lib/browser/react-surface-SGZC3Y4U.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
- package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
- package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-WKLGKUHQ.mjs} +5 -5
- package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-WKLGKUHQ.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-C5QC2UFL.mjs} +21 -18
- package/dist/lib/browser/spaces-ready-C5QC2UFL.mjs.map +7 -0
- package/dist/lib/browser/{state-QYZAB45H.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-SG4VECBB.mjs → app-graph-builder-24JCLJPX.mjs} +138 -90
- package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.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-JH6F4C3I.mjs → chunk-2PN7QNGV.mjs} +32 -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-2A3VBXBP.mjs → chunk-ITQFSFQ3.mjs} +587 -513
- 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-4AOMYKDE.mjs → chunk-VH2EBZEV.mjs} +124 -63
- package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-WC4VBFMA.mjs} +30 -17
- 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-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +91 -91
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-LEANKSKZ.mjs → intent-resolver-YK4ESSET.mjs} +87 -85
- 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-5Y7LJRX6.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-YQFNIKYT.mjs → react-surface-V7J2QB44.mjs} +81 -105
- package/dist/lib/node-esm/react-surface-V7J2QB44.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-WHJM7UZE.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-SAOBPND3.mjs → settings-RBB5633M.mjs} +5 -5
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-RBB5633M.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-SJCXV6YH.mjs} +21 -18
- package/dist/lib/node-esm/spaces-ready-SJCXV6YH.mjs.map +7 -0
- package/dist/lib/node-esm/{state-ZVEHQ4BJ.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 +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +7 -6
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts +6 -0
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/components/CollectionSection.d.ts +3 -4
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1694 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +7 -5
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
- package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
- package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
- package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
- package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1697 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
- package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
- package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +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/RecordArticle.stories.d.ts +1697 -0
- 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/SpacePresence.stories.d.ts +1527 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
- package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1527 -4
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1528 -5
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts +3 -4
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +10 -11
- 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 +1326 -26
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +78 -96
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +16 -11
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +68 -63
- package/src/SpacePlugin.ts +230 -220
- package/src/capabilities/app-graph-builder.ts +214 -133
- package/src/capabilities/app-graph-serializer.ts +12 -12
- package/src/capabilities/capabilities.ts +19 -13
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +81 -65
- package/src/capabilities/react-root.tsx +6 -4
- package/src/capabilities/react-surface.tsx +78 -145
- package/src/capabilities/schema-defs.ts +4 -3
- package/src/capabilities/spaces-ready.ts +16 -10
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +12 -14
- package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
- package/src/components/CollectionSection.tsx +8 -6
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
- package/src/components/CreateDialog/CreateObjectDialog.tsx +51 -33
- package/src/components/CreateDialog/CreateObjectPanel.tsx +24 -13
- 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/MembersContainer.stories.tsx +56 -0
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/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} +10 -16
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -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 +25 -28
- package/src/components/SpacePluginSettings.tsx +16 -11
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +49 -28
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
- package/src/components/SyncStatus/SyncStatus.tsx +109 -12
- package/src/components/ViewEditor.tsx +51 -23
- package/src/components/index.ts +7 -7
- package/src/events.ts +7 -7
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +158 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +3 -2
- 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 +29 -14
- package/src/types/types.ts +31 -22
- package/src/util.tsx +131 -66
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-V3MP3CDK.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
- package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
- package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
- package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBJEXW54.mjs.map +0 -7
- package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
- package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
- package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
- package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
- package/dist/lib/browser/chunk-VLBRSGJ2.mjs +0 -94
- package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
- package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
- package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-XHGD73WZ.mjs.map +0 -7
- package/dist/lib/browser/react-root-CMWOGJG5.mjs +0 -29
- package/dist/lib/browser/react-root-CMWOGJG5.mjs.map +0 -7
- package/dist/lib/browser/react-surface-YWZZQF7H.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
- package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-SG4VECBB.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2A3VBXBP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
- package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SSLBYZEY.mjs +0 -96
- package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-LEANKSKZ.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-5Y7LJRX6.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-YQFNIKYT.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
- package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
- package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
- package/dist/types/src/components/CollectionMain.d.ts +0 -7
- package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
- package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
- package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
- package/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
- package/src/components/MembersContainer.stories.tsx +0 -30
- package/src/components/ObjectDetailsPanel.tsx +0 -77
- package/src/components/PersistenceStatus.tsx +0 -83
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Array from 'effect/Array';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
|
+
import * as EffectFunction from 'effect/Function';
|
|
8
|
+
import * as Match from 'effect/Match';
|
|
9
|
+
import * as Option from 'effect/Option';
|
|
10
|
+
import type * as Schema from 'effect/Schema';
|
|
11
|
+
import * as SchemaAST from 'effect/SchemaAST';
|
|
12
|
+
|
|
13
|
+
import { DXN, Filter, Query, type QueryAST } from '@dxos/echo';
|
|
14
|
+
import {
|
|
15
|
+
ReferenceAnnotationId,
|
|
16
|
+
type ReferenceAnnotationValue,
|
|
17
|
+
getTypeAnnotation,
|
|
18
|
+
unwrapOptional,
|
|
19
|
+
} from '@dxos/echo/internal';
|
|
20
|
+
import { log } from '@dxos/log';
|
|
21
|
+
import { type Client } from '@dxos/react-client';
|
|
22
|
+
import { type Space } from '@dxos/react-client/echo';
|
|
23
|
+
import { Person } from '@dxos/types';
|
|
24
|
+
|
|
25
|
+
// TODO(wittjosiah): Factor out and add tests.
|
|
26
|
+
// TODO(wittjosiah): Support arbitrary type imports.
|
|
27
|
+
export const evalQuery = (queryString: string): Query.Any => {
|
|
28
|
+
const globals = { Query, Filter, Person };
|
|
29
|
+
try {
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-implied-eval
|
|
31
|
+
return new Function(...Object.keys(globals), `return ${queryString}`)(...Object.values(globals));
|
|
32
|
+
} catch (err) {
|
|
33
|
+
log.catch(err);
|
|
34
|
+
return Query.select(Filter.nothing());
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const resolveSchemaWithClientAndSpace = (client: Client, space: Space, query: QueryAST.Query) => {
|
|
39
|
+
const resolve = Effect.fn(function* (dxn: string) {
|
|
40
|
+
const typename = DXN.parse(dxn).asTypeDXN()?.type;
|
|
41
|
+
if (!typename) {
|
|
42
|
+
return Option.none();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const staticSchema = client.graph.schemaRegistry.getSchema(typename);
|
|
46
|
+
if (staticSchema) {
|
|
47
|
+
return Option.some(staticSchema);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const query = space.db.schemaRegistry.query({ typename });
|
|
51
|
+
const schemas = yield* Effect.promise(() => query.run());
|
|
52
|
+
return Array.head(schemas).pipe(Option.map((schema) => schema.snapshot));
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
return resolveSchema(query, resolve).pipe(
|
|
56
|
+
Effect.map((schema) => Option.getOrUndefined(schema)),
|
|
57
|
+
Effect.runPromise,
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const resolveSchema = (
|
|
62
|
+
query: QueryAST.Query,
|
|
63
|
+
resolve: (dxn: string) => Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>>,
|
|
64
|
+
): Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>> => {
|
|
65
|
+
return Match.value(query).pipe(
|
|
66
|
+
Match.withReturnType<Effect.Effect<Option.Option<Schema.Schema.AnyNoContext>>>(),
|
|
67
|
+
// TODO(wittjosiah): Reconcile with filter match?
|
|
68
|
+
Match.when({ type: 'select' }, ({ filter }) =>
|
|
69
|
+
typenameFromFilter(filter).pipe(
|
|
70
|
+
Option.map((typename) => resolve(typename)),
|
|
71
|
+
Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),
|
|
72
|
+
),
|
|
73
|
+
),
|
|
74
|
+
Match.when({ type: 'filter' }, ({ filter }) =>
|
|
75
|
+
typenameFromFilter(filter).pipe(
|
|
76
|
+
Option.map((typename) => resolve(typename)),
|
|
77
|
+
Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),
|
|
78
|
+
),
|
|
79
|
+
),
|
|
80
|
+
Match.when({ type: 'reference-traversal' }, ({ anchor, property }) =>
|
|
81
|
+
resolveSchema(anchor, resolve).pipe(
|
|
82
|
+
Effect.map((base) =>
|
|
83
|
+
base.pipe(
|
|
84
|
+
Option.map((schema) => SchemaAST.getPropertySignatures(schema.ast)),
|
|
85
|
+
Option.flatMap((properties) => Array.findFirst(properties, (p) => p.name === property)),
|
|
86
|
+
Option.flatMap((property) =>
|
|
87
|
+
SchemaAST.getAnnotation<ReferenceAnnotationValue>(ReferenceAnnotationId)(unwrapOptional(property)),
|
|
88
|
+
),
|
|
89
|
+
Option.map((annotation) => annotation.typename),
|
|
90
|
+
),
|
|
91
|
+
),
|
|
92
|
+
Effect.flatMap(
|
|
93
|
+
Option.match({
|
|
94
|
+
onNone: () => Effect.succeed(Option.none()),
|
|
95
|
+
onSome: (typename) => resolve(DXN.fromTypename(typename).toString()),
|
|
96
|
+
}),
|
|
97
|
+
),
|
|
98
|
+
),
|
|
99
|
+
),
|
|
100
|
+
Match.when({ type: 'relation', filter: Match.defined }, ({ filter }) =>
|
|
101
|
+
typenameFromFilter(filter).pipe(
|
|
102
|
+
Option.map((typename) => resolve(typename)),
|
|
103
|
+
Option.getOrElse(() => Effect.succeed(Option.none<Schema.Schema.AnyNoContext>())),
|
|
104
|
+
),
|
|
105
|
+
),
|
|
106
|
+
Match.when({ type: 'relation-traversal' }, ({ anchor, direction }) =>
|
|
107
|
+
resolveSchema(anchor, resolve).pipe(
|
|
108
|
+
Effect.map((base) =>
|
|
109
|
+
base.pipe(
|
|
110
|
+
Option.map((schema) => getTypeAnnotation(schema)),
|
|
111
|
+
Option.flatMap((annotation) =>
|
|
112
|
+
Option.fromNullable(direction === 'source' ? annotation?.sourceSchema : annotation?.targetSchema),
|
|
113
|
+
),
|
|
114
|
+
),
|
|
115
|
+
),
|
|
116
|
+
Effect.flatMap(
|
|
117
|
+
Option.match({
|
|
118
|
+
onNone: () => Effect.succeed(Option.none()),
|
|
119
|
+
onSome: (typename) => resolve(typename),
|
|
120
|
+
}),
|
|
121
|
+
),
|
|
122
|
+
),
|
|
123
|
+
),
|
|
124
|
+
Match.when({ type: 'options' }, ({ query }) => resolveSchema(query, resolve)),
|
|
125
|
+
Match.orElse((_q) => {
|
|
126
|
+
// TODO(wittjosiah): Implement other cases.
|
|
127
|
+
return Effect.succeed(Option.none());
|
|
128
|
+
}),
|
|
129
|
+
);
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
const typenameFromFilter = (filter: QueryAST.Filter): Option.Option<string> =>
|
|
133
|
+
Match.value(filter).pipe(
|
|
134
|
+
Match.withReturnType<Option.Option<string>>(),
|
|
135
|
+
Match.when({ type: 'object' }, ({ typename }) => Option.fromNullable(typename)),
|
|
136
|
+
Match.when({ type: 'and' }, ({ filters }) =>
|
|
137
|
+
EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten),
|
|
138
|
+
),
|
|
139
|
+
Match.when({ type: 'or' }, ({ filters }) =>
|
|
140
|
+
EffectFunction.pipe(filters, Array.map(typenameFromFilter), Array.findFirst(Option.isSome), Option.flatten),
|
|
141
|
+
),
|
|
142
|
+
Match.orElse(() => Option.none()),
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
// TODO(wittjosiah): Currently assumes options is at the top-level of the ast.
|
|
146
|
+
export const getQueryTarget = (query: QueryAST.Query, space?: Space) => {
|
|
147
|
+
return Match.value(query).pipe(
|
|
148
|
+
Match.when({ type: 'options' }, ({ options }) => {
|
|
149
|
+
return Option.fromNullable(options.queues).pipe(
|
|
150
|
+
Option.flatMap((queues) => Array.head(queues)),
|
|
151
|
+
Option.flatMap((queueDxn) => Option.fromNullable(DXN.tryParse(queueDxn))),
|
|
152
|
+
Option.flatMap((queueDxn) => Option.fromNullable(space?.queues.get(queueDxn))),
|
|
153
|
+
Option.getOrElse(() => space),
|
|
154
|
+
);
|
|
155
|
+
}),
|
|
156
|
+
Match.orElse(() => space),
|
|
157
|
+
);
|
|
158
|
+
};
|
package/src/hooks/index.ts
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities,
|
|
5
|
+
import { Capabilities, type PluginContext } from '@dxos/app-framework';
|
|
6
|
+
import { useLayout } from '@dxos/app-framework/react';
|
|
6
7
|
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
7
8
|
import { parseId, useSpace } from '@dxos/react-client/echo';
|
|
8
9
|
|
|
9
10
|
export const getActiveSpace = (context: PluginContext) => {
|
|
10
|
-
const layout = context.getCapability(Capabilities.Layout);
|
|
11
11
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
12
|
+
const layout = context.getCapability(Capabilities.Layout);
|
|
12
13
|
const { spaceId } = parseId(layout.workspace);
|
|
13
14
|
return spaceId ? client.spaces.get(spaceId) : undefined;
|
|
14
15
|
};
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import type * as Schema from 'effect/Schema';
|
|
6
6
|
import React, { useCallback } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { Surface, isSurfaceAvailable, usePluginManager } from '@dxos/app-framework/react';
|
|
9
9
|
import { type InputProps } from '@dxos/react-ui-form';
|
|
10
10
|
|
|
11
11
|
// TODO(ZaymonFC): Move this if you find yourself needing it elsewhere.
|
|
@@ -20,7 +20,12 @@ export const useInputSurfaceLookup = (baseData?: Record<string, any>) => {
|
|
|
20
20
|
return useCallback(
|
|
21
21
|
({ prop, schema, inputProps }: { prop: string; schema: Schema.Schema<any>; inputProps: InputProps }) => {
|
|
22
22
|
const composedData = { prop, schema, ...baseData };
|
|
23
|
-
if (
|
|
23
|
+
if (
|
|
24
|
+
!isSurfaceAvailable(pluginManager.context, {
|
|
25
|
+
role: 'form-input',
|
|
26
|
+
data: composedData,
|
|
27
|
+
})
|
|
28
|
+
) {
|
|
24
29
|
return undefined;
|
|
25
30
|
}
|
|
26
31
|
|
package/src/hooks/usePath.ts
CHANGED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { useMemo } from 'react';
|
|
6
|
+
|
|
7
|
+
import { useCapabilities } from '@dxos/app-framework/react';
|
|
8
|
+
import { Type } from '@dxos/echo';
|
|
9
|
+
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
10
|
+
import { useClient } from '@dxos/react-client';
|
|
11
|
+
import { type Space } from '@dxos/react-client/echo';
|
|
12
|
+
import { useTranslation } from '@dxos/react-ui';
|
|
13
|
+
import { Collection, type TypenameAnnotation, getTypenames } from '@dxos/schema';
|
|
14
|
+
|
|
15
|
+
import { SpaceCapabilities } from '../capabilities';
|
|
16
|
+
|
|
17
|
+
const OMIT = [Collection.Collection.typename, Type.getTypename(Collection.QueryCollection)];
|
|
18
|
+
|
|
19
|
+
export const useTypeOptions = ({ space, annotation }: { space?: Space; annotation: TypenameAnnotation[] }) => {
|
|
20
|
+
const { t } = useTranslation();
|
|
21
|
+
const client = useClient();
|
|
22
|
+
|
|
23
|
+
const schemaWhitelists = useCapabilities(ClientCapabilities.SchemaWhiteList);
|
|
24
|
+
const whitelistedTypenames = useMemo(
|
|
25
|
+
() => new Set(schemaWhitelists.flatMap((typeArray) => typeArray.map((type) => Type.getTypename(type)))),
|
|
26
|
+
[schemaWhitelists],
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
const objectForms = useCapabilities(SpaceCapabilities.ObjectForm);
|
|
30
|
+
const objectFormTypenames = useMemo(
|
|
31
|
+
() =>
|
|
32
|
+
new Set(
|
|
33
|
+
objectForms
|
|
34
|
+
.map((form) => Type.getTypename(form.objectSchema))
|
|
35
|
+
// TODO(wittjosiah): Remove.
|
|
36
|
+
.filter((typename) => !OMIT.includes(typename) && !typename.endsWith('View')),
|
|
37
|
+
),
|
|
38
|
+
[objectForms],
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
const typenames = getTypenames({
|
|
42
|
+
annotation,
|
|
43
|
+
whitelistedTypenames,
|
|
44
|
+
objectFormTypenames,
|
|
45
|
+
space,
|
|
46
|
+
client,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return useMemo(
|
|
50
|
+
() =>
|
|
51
|
+
typenames
|
|
52
|
+
.map((typename) => ({
|
|
53
|
+
value: typename,
|
|
54
|
+
label: t('typename label', { ns: typename, defaultValue: typename }),
|
|
55
|
+
}))
|
|
56
|
+
.toSorted((a, b) => a.label.localeCompare(b.label)),
|
|
57
|
+
[t, typenames],
|
|
58
|
+
);
|
|
59
|
+
};
|
package/src/index.ts
CHANGED
package/src/meta.ts
CHANGED
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type PluginMeta } from '@dxos/app-framework';
|
|
6
|
-
|
|
7
|
-
export const SPACE_PLUGIN = 'dxos.org/plugin/space';
|
|
6
|
+
import { trim } from '@dxos/util';
|
|
8
7
|
|
|
9
8
|
export const meta: PluginMeta = {
|
|
10
|
-
id:
|
|
9
|
+
id: 'dxos.org/plugin/space',
|
|
11
10
|
name: 'Spaces',
|
|
11
|
+
description: trim`
|
|
12
|
+
Core workspace container system for organizing and sharing collaborative environments.
|
|
13
|
+
Create, manage, and share spaces with granular access control and invitation management.
|
|
14
|
+
`,
|
|
12
15
|
icon: 'ph--planet--regular',
|
|
13
16
|
};
|
package/src/translations.ts
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Type } from '@dxos/echo';
|
|
6
|
+
import { StoredSchema } from '@dxos/echo/internal';
|
|
6
7
|
import { type Resource } from '@dxos/react-ui';
|
|
7
|
-
import {
|
|
8
|
+
import { Collection, View } from '@dxos/schema';
|
|
9
|
+
import { Event, Organization, Person, Project, Task } from '@dxos/types';
|
|
8
10
|
|
|
9
11
|
import { meta } from './meta';
|
|
10
12
|
|
|
@@ -12,7 +14,7 @@ import { meta } from './meta';
|
|
|
12
14
|
export const translations = [
|
|
13
15
|
{
|
|
14
16
|
'en-US': {
|
|
15
|
-
[
|
|
17
|
+
[Collection.Collection.typename]: {
|
|
16
18
|
'typename label': 'Collection',
|
|
17
19
|
'typename label_zero': 'Collections',
|
|
18
20
|
'typename label_one': 'Collection',
|
|
@@ -21,7 +23,7 @@ export const translations = [
|
|
|
21
23
|
'rename object label': 'Rename collection',
|
|
22
24
|
'delete object label': 'Delete collection',
|
|
23
25
|
},
|
|
24
|
-
[
|
|
26
|
+
[Type.getTypename(Collection.QueryCollection)]: {
|
|
25
27
|
'typename label': 'Smart Collection',
|
|
26
28
|
'typename label_zero': 'Smart Collections',
|
|
27
29
|
'typename label_one': 'Smart Collection',
|
|
@@ -39,7 +41,7 @@ export const translations = [
|
|
|
39
41
|
'rename object label': 'Rename record type',
|
|
40
42
|
'delete object label': 'Delete record type',
|
|
41
43
|
},
|
|
42
|
-
[
|
|
44
|
+
[Type.getTypename(View.View)]: {
|
|
43
45
|
'typename label': 'View',
|
|
44
46
|
'typename label_zero': 'Views',
|
|
45
47
|
'typename label_one': 'View',
|
|
@@ -48,35 +50,35 @@ export const translations = [
|
|
|
48
50
|
'rename object label': 'Rename view',
|
|
49
51
|
'delete object label': 'Delete view',
|
|
50
52
|
},
|
|
51
|
-
[
|
|
53
|
+
[Event.Event.typename]: {
|
|
52
54
|
'typename label': 'Event',
|
|
53
55
|
'typename label_zero': 'Events',
|
|
54
56
|
'typename label_one': 'Event',
|
|
55
57
|
'typename label_other': 'Events',
|
|
56
58
|
'object name placeholder': 'New event',
|
|
57
59
|
},
|
|
58
|
-
[
|
|
60
|
+
[Organization.Organization.typename]: {
|
|
59
61
|
'typename label': 'Organization',
|
|
60
62
|
'typename label_zero': 'Organizations',
|
|
61
63
|
'typename label_one': 'Organization',
|
|
62
64
|
'typename label_other': 'Organizations',
|
|
63
65
|
'object name placeholder': 'New organization',
|
|
64
66
|
},
|
|
65
|
-
[
|
|
67
|
+
[Person.Person.typename]: {
|
|
66
68
|
'typename label': 'Person',
|
|
67
69
|
'typename label_zero': 'People',
|
|
68
70
|
'typename label_one': 'Person',
|
|
69
71
|
'typename label_other': 'People',
|
|
70
72
|
'object name placeholder': 'New person',
|
|
71
73
|
},
|
|
72
|
-
[
|
|
74
|
+
[Project.Project.typename]: {
|
|
73
75
|
'typename label': 'Project',
|
|
74
76
|
'typename label_zero': 'Projects',
|
|
75
77
|
'typename label_one': 'Project',
|
|
76
78
|
'typename label_other': 'Projects',
|
|
77
79
|
'object name placeholder': 'New project',
|
|
78
80
|
},
|
|
79
|
-
[
|
|
81
|
+
[Task.Task.typename]: {
|
|
80
82
|
'typename label': 'Task',
|
|
81
83
|
'typename label_zero': 'Tasks',
|
|
82
84
|
'typename label_one': 'Task',
|
|
@@ -189,10 +191,12 @@ export const translations = [
|
|
|
189
191
|
'creating in collection label': 'In Collection',
|
|
190
192
|
'clear input label': 'Clear',
|
|
191
193
|
'expose object label': 'Expose in navtree',
|
|
194
|
+
'add tag label': 'Add tag',
|
|
192
195
|
'advanced settings label': 'Advanced',
|
|
193
196
|
'foreign keys': 'Foreign Keys',
|
|
194
197
|
'add key': 'Add Key',
|
|
195
198
|
'open space settings label': 'Open settings',
|
|
199
|
+
'related objects label': 'Related Items',
|
|
196
200
|
|
|
197
201
|
'row details no selection label': 'No objects selected',
|
|
198
202
|
'companion selected objects label': 'Selected',
|
|
@@ -214,10 +218,10 @@ export const translations = [
|
|
|
214
218
|
'space settings properties label': 'General settings',
|
|
215
219
|
'space properties settings verbose label': 'Manage space properties',
|
|
216
220
|
'space properties settings description': 'You can configure how this space is displayed in the app here.',
|
|
217
|
-
'space settings schema label': '
|
|
218
|
-
'schema verbose label': 'Manage
|
|
219
|
-
'schema description': 'You can manage all of the
|
|
220
|
-
'no schemas found message': 'No
|
|
221
|
+
'space settings schema label': 'Record types',
|
|
222
|
+
'schema verbose label': 'Manage record types',
|
|
223
|
+
'schema description': 'You can manage all of the record types stored within this space here.',
|
|
224
|
+
'no schemas found message': 'No record types found',
|
|
221
225
|
'display name input placeholder': 'Space name',
|
|
222
226
|
'display name description': 'Name of the space as it appears in the app.',
|
|
223
227
|
'icon description': 'Icon used to represent the space in the app.',
|
|
@@ -227,7 +231,18 @@ export const translations = [
|
|
|
227
231
|
'archive space description':
|
|
228
232
|
'Archiving a space will remove it from the sidebar and stop replicating updates, but will not delete the data. You can unarchive it by enabling archived spaces in the app settings.',
|
|
229
233
|
'archive space label': 'Archive',
|
|
234
|
+
'backup space label': 'Backup',
|
|
235
|
+
'backup space description':
|
|
236
|
+
'Download a backup of the space. Contains all data in the space in an unencrypted format.',
|
|
237
|
+
'download backup': 'Download backup',
|
|
230
238
|
'unarchive space label': 'Unarchive',
|
|
239
|
+
|
|
240
|
+
'sync edge connected label': 'Edge connected',
|
|
241
|
+
'sync edge disconnected label': 'Edge disconnected',
|
|
242
|
+
'sync no connection label': 'No connection to edge service',
|
|
243
|
+
'sync latency label': 'Latency',
|
|
244
|
+
'sync upload label': 'Upload',
|
|
245
|
+
'sync download label': 'Download',
|
|
231
246
|
},
|
|
232
247
|
},
|
|
233
248
|
},
|
package/src/types/types.ts
CHANGED
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
|
|
7
7
|
import { type AnyIntentChain } from '@dxos/app-framework';
|
|
8
8
|
import { type Obj, Type } from '@dxos/echo';
|
|
9
|
-
import {
|
|
9
|
+
import { type BaseObject, EchoSchema, StoredSchema } from '@dxos/echo/internal';
|
|
10
10
|
import { type PublicKey } from '@dxos/react-client';
|
|
11
11
|
// TODO(wittjosiah): This pulls in full client.
|
|
12
12
|
import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
|
|
13
13
|
import { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';
|
|
14
|
-
import {
|
|
14
|
+
import { Collection, FieldSchema, TypenameAnnotationId, View } from '@dxos/schema';
|
|
15
15
|
import { type ComplexMap } from '@dxos/util';
|
|
16
16
|
|
|
17
|
-
import {
|
|
17
|
+
import { meta } from '../meta';
|
|
18
|
+
|
|
19
|
+
export const SPACE_DIRECTORY_HANDLE = `${meta.id}/directory`;
|
|
18
20
|
|
|
19
|
-
export const SPACE_DIRECTORY_HANDLE = 'dxos.org/plugin/space/directory';
|
|
20
21
|
export const SPACE_TYPE = 'dxos.org/type/Space';
|
|
21
22
|
|
|
22
23
|
export type ObjectViewerProps = {
|
|
@@ -105,8 +106,7 @@ export const SpaceForm = Schema.Struct({
|
|
|
105
106
|
});
|
|
106
107
|
|
|
107
108
|
export type ObjectForm<T extends BaseObject = BaseObject> = {
|
|
108
|
-
|
|
109
|
-
objectSchema: TypedObject;
|
|
109
|
+
objectSchema: Schema.Schema.AnyNoContext;
|
|
110
110
|
formSchema?: Schema.Schema<T, any>;
|
|
111
111
|
hidden?: boolean;
|
|
112
112
|
getIntent: (props: T, options: { space: Space }) => AnyIntentChain;
|
|
@@ -114,7 +114,7 @@ export type ObjectForm<T extends BaseObject = BaseObject> = {
|
|
|
114
114
|
|
|
115
115
|
export const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;
|
|
116
116
|
|
|
117
|
-
export const SPACE_ACTION = `${
|
|
117
|
+
export const SPACE_ACTION = `${meta.id}/action`;
|
|
118
118
|
|
|
119
119
|
export namespace SpaceAction {
|
|
120
120
|
export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {
|
|
@@ -230,6 +230,8 @@ export namespace SpaceAction {
|
|
|
230
230
|
input: Schema.Struct({
|
|
231
231
|
space: SpaceSchema,
|
|
232
232
|
typename: Schema.String,
|
|
233
|
+
// TODO(wittjosiah): This is leaky.
|
|
234
|
+
show: Schema.optional(Schema.Boolean),
|
|
233
235
|
}),
|
|
234
236
|
output: Schema.Struct({}),
|
|
235
237
|
}) {}
|
|
@@ -238,8 +240,13 @@ export namespace SpaceAction {
|
|
|
238
240
|
input: Schema.Struct({
|
|
239
241
|
space: SpaceSchema,
|
|
240
242
|
name: Schema.optional(Schema.String),
|
|
243
|
+
typename: Schema.optional(Schema.String),
|
|
244
|
+
// TODO(wittjosiah): Semantic version format.
|
|
245
|
+
version: Schema.optional(Schema.String),
|
|
241
246
|
// TODO(wittjosiah): Schema for schema?
|
|
242
247
|
schema: Schema.Any,
|
|
248
|
+
// TODO(wittjosiah): This is leaky.
|
|
249
|
+
show: Schema.optional(Schema.Boolean),
|
|
243
250
|
}),
|
|
244
251
|
output: Schema.Struct({
|
|
245
252
|
// TODO(wittjosiah): ObjectId.
|
|
@@ -251,7 +258,7 @@ export namespace SpaceAction {
|
|
|
251
258
|
|
|
252
259
|
export class DeleteField extends Schema.TaggedClass<DeleteField>()(`${SPACE_ACTION}/delete-field`, {
|
|
253
260
|
input: Schema.Struct({
|
|
254
|
-
view:
|
|
261
|
+
view: View.View,
|
|
255
262
|
fieldId: Schema.String,
|
|
256
263
|
// TODO(wittjosiah): Separate fields for undo data?
|
|
257
264
|
deletionData: Schema.optional(
|
|
@@ -269,8 +276,10 @@ export namespace SpaceAction {
|
|
|
269
276
|
|
|
270
277
|
export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
|
|
271
278
|
input: Schema.Struct({
|
|
272
|
-
target: Schema.Union(SpaceSchema,
|
|
279
|
+
target: Schema.Union(SpaceSchema, Collection.Collection),
|
|
280
|
+
views: Schema.optional(Schema.Boolean),
|
|
273
281
|
typename: Schema.optional(Schema.String),
|
|
282
|
+
initialFormValues: Schema.optional(Schema.Any),
|
|
274
283
|
navigable: Schema.optional(Schema.Boolean),
|
|
275
284
|
// TODO(wittjosiah): This is a function, is there a better way to handle this?
|
|
276
285
|
onCreateObject: Schema.optional(Schema.Any),
|
|
@@ -281,7 +290,7 @@ export namespace SpaceAction {
|
|
|
281
290
|
export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {
|
|
282
291
|
input: Schema.Struct({
|
|
283
292
|
object: ReactiveObjectSchema,
|
|
284
|
-
target: Schema.Union(SpaceSchema,
|
|
293
|
+
target: Schema.Union(SpaceSchema, Collection.Collection),
|
|
285
294
|
hidden: Schema.optional(Schema.Boolean),
|
|
286
295
|
}),
|
|
287
296
|
output: Schema.Struct({
|
|
@@ -309,7 +318,7 @@ export namespace SpaceAction {
|
|
|
309
318
|
|
|
310
319
|
export const DeletionData = Schema.Struct({
|
|
311
320
|
objects: Schema.Array(EchoObjectSchema),
|
|
312
|
-
parentCollection:
|
|
321
|
+
parentCollection: Collection.Collection,
|
|
313
322
|
indices: Schema.Array(Schema.Number),
|
|
314
323
|
nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),
|
|
315
324
|
wasActive: Schema.Array(Schema.String),
|
|
@@ -319,8 +328,9 @@ export namespace SpaceAction {
|
|
|
319
328
|
|
|
320
329
|
export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {
|
|
321
330
|
input: Schema.Struct({
|
|
322
|
-
|
|
323
|
-
|
|
331
|
+
// TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).
|
|
332
|
+
objects: Schema.Array(ReactiveObjectSchema),
|
|
333
|
+
target: Schema.optional(Collection.Collection),
|
|
324
334
|
deletionData: Schema.optional(DeletionData),
|
|
325
335
|
}),
|
|
326
336
|
output: Schema.Void,
|
|
@@ -337,7 +347,7 @@ export namespace SpaceAction {
|
|
|
337
347
|
export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {
|
|
338
348
|
input: Schema.Struct({
|
|
339
349
|
object: EchoObjectSchema,
|
|
340
|
-
target: Schema.Union(SpaceSchema,
|
|
350
|
+
target: Schema.Union(SpaceSchema, Collection.Collection),
|
|
341
351
|
}),
|
|
342
352
|
output: Schema.Void,
|
|
343
353
|
}) {}
|
|
@@ -356,17 +366,15 @@ export namespace CollectionAction {
|
|
|
356
366
|
name: Schema.optional(Schema.String),
|
|
357
367
|
}),
|
|
358
368
|
output: Schema.Struct({
|
|
359
|
-
object:
|
|
369
|
+
object: Collection.Collection,
|
|
360
370
|
}),
|
|
361
371
|
}) {}
|
|
362
372
|
|
|
363
373
|
export const QueryCollectionForm = Schema.Struct({
|
|
364
374
|
name: Schema.optional(Schema.String),
|
|
365
|
-
typename: Schema.
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
}),
|
|
369
|
-
),
|
|
375
|
+
typename: Schema.String.annotations({
|
|
376
|
+
[TypenameAnnotationId]: ['object-form'],
|
|
377
|
+
}),
|
|
370
378
|
});
|
|
371
379
|
|
|
372
380
|
export class CreateQueryCollection extends Schema.TaggedClass<CreateQueryCollection>()(
|
|
@@ -374,7 +382,8 @@ export namespace CollectionAction {
|
|
|
374
382
|
{
|
|
375
383
|
input: QueryCollectionForm,
|
|
376
384
|
output: Schema.Struct({
|
|
377
|
-
|
|
385
|
+
// TODO(wittjosiah): Remove cast.
|
|
386
|
+
object: EchoObjectSchema, // Collection.QueryCollection,
|
|
378
387
|
}),
|
|
379
388
|
},
|
|
380
389
|
) {}
|