@dxos/plugin-space 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
- package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
- package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs +144 -0
- package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetails-666IBRHE.mjs +144 -0
- package/dist/lib/browser/ObjectDetails-666IBRHE.mjs.map +7 -0
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs +116 -0
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs +551 -0
- package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-SXIQ425K.mjs} +19 -19
- package/dist/lib/browser/app-graph-serializer-SXIQ425K.mjs.map +7 -0
- package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-5CSSKOWR.mjs} +42 -16
- package/dist/lib/browser/chunk-5CSSKOWR.mjs.map +7 -0
- package/dist/lib/browser/chunk-C6DAPIFF.mjs +20 -0
- package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
- package/dist/lib/browser/chunk-E4BEMEZ3.mjs +399 -0
- package/dist/lib/browser/chunk-E4BEMEZ3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-IJCMB5B5.mjs} +269 -145
- package/dist/lib/browser/chunk-IJCMB5B5.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-POFUXISV.mjs} +69 -62
- package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
- package/dist/lib/browser/chunk-WJXU4GKV.mjs +19 -0
- package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
- package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-XKQCDLXX.mjs} +734 -615
- package/dist/lib/browser/chunk-XKQCDLXX.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
- package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +92 -139
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-QEIM7NQT.mjs} +118 -109
- package/dist/lib/browser/intent-resolver-QEIM7NQT.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react-root-T6ZETLD2.mjs +30 -0
- package/dist/lib/browser/react-root-T6ZETLD2.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-MLN5BZ2G.mjs} +120 -120
- package/dist/lib/browser/react-surface-MLN5BZ2G.mjs.map +7 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
- package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-EGTCHS7U.mjs} +5 -5
- package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-EGTCHS7U.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-YS4BBZXW.mjs} +29 -20
- package/dist/lib/browser/spaces-ready-YS4BBZXW.mjs.map +7 -0
- package/dist/lib/browser/{state-QYZAB45H.mjs → state-C7N6EDDZ.mjs} +7 -7
- package/dist/lib/browser/state-C7N6EDDZ.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +10 -4
- package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
- package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs +145 -0
- package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs +145 -0
- package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs.map +7 -0
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs +117 -0
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs +552 -0
- package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-P2X4W7LI.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-serializer-P2X4W7LI.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-3D4NGZPW.mjs} +269 -145
- package/dist/lib/node-esm/chunk-3D4NGZPW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-AX3UGL5D.mjs} +69 -62
- package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
- package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
- package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QQQE2ZCX.mjs +400 -0
- package/dist/lib/node-esm/chunk-QQQE2ZCX.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-UMZ7G6G4.mjs} +41 -16
- package/dist/lib/node-esm/chunk-UMZ7G6G4.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs +21 -0
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-XD532BVR.mjs} +734 -615
- package/dist/lib/node-esm/chunk-XD532BVR.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
- package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +92 -139
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-ZWCBVABN.mjs} +118 -109
- package/dist/lib/node-esm/intent-resolver-ZWCBVABN.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-SKB4UJ4K.mjs} +13 -12
- package/dist/lib/node-esm/react-root-SKB4UJ4K.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-BVZGNSBB.mjs} +120 -120
- package/dist/lib/node-esm/react-surface-BVZGNSBB.mjs.map +7 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-N3F6JCIR.mjs} +5 -5
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-N3F6JCIR.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-U2K5P4LB.mjs} +29 -20
- package/dist/lib/node-esm/spaces-ready-U2K5P4LB.mjs.map +7 -0
- package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-45TXZQJ6.mjs} +7 -7
- package/dist/lib/node-esm/state-45TXZQJ6.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +10 -4
- package/dist/types/src/SpacePlugin.d.ts +1 -1
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +14 -8
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/repair.d.ts +4 -0
- package/dist/types/src/capabilities/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts +6 -0
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/components/CollectionSection.d.ts +3 -4
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1588 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +18 -9
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
- package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
- package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
- package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
- package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1591 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
- package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
- package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts +9 -0
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
- package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
- package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +1424 -0
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
- package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +8 -0
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/RecordArticle.d.ts +5 -0
- package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/components/RecordArticle.stories.d.ts +1591 -0
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
- package/dist/types/src/components/SchemaContainer.d.ts +2 -2
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +6 -5
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1421 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
- package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1421 -4
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1422 -5
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts +3 -4
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +10 -12
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/helpers/index.d.ts +2 -0
- package/dist/types/src/helpers/index.d.ts.map +1 -0
- package/dist/types/src/helpers/query.d.ts +7 -0
- package/dist/types/src/helpers/query.d.ts.map +1 -0
- package/dist/types/src/helpers/query.test.d.ts +2 -0
- package/dist/types/src/helpers/query.test.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts +1 -1
- package/dist/types/src/hooks/usePath.d.ts.map +1 -1
- package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
- package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1261 -67
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +22 -0
- package/dist/types/src/types/form.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +96 -157
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +25 -36
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +70 -59
- package/src/SpacePlugin.ts +182 -222
- package/src/capabilities/app-graph-builder.ts +271 -246
- package/src/capabilities/app-graph-serializer.ts +12 -12
- package/src/capabilities/capabilities.ts +28 -17
- package/src/capabilities/identity-created.ts +3 -3
- package/src/capabilities/index.ts +1 -2
- package/src/capabilities/intent-resolver.ts +92 -81
- package/src/capabilities/react-root.tsx +6 -4
- package/src/capabilities/react-surface.tsx +127 -155
- package/src/capabilities/repair.ts +57 -0
- package/src/capabilities/spaces-ready.ts +38 -17
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +12 -14
- package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
- package/src/components/CollectionSection.tsx +8 -6
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
- package/src/components/CreateDialog/CreateObjectDialog.tsx +74 -46
- package/src/components/CreateDialog/CreateObjectPanel.tsx +65 -43
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +45 -22
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectCardStack/ObjectCardStack.tsx +64 -0
- package/src/components/ObjectCardStack/ObjectForm.tsx +90 -0
- package/src/components/ObjectCardStack/index.ts +7 -0
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +118 -0
- package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +8 -8
- package/src/components/ObjectDetails/ObjectDetails.tsx +35 -0
- package/src/components/ObjectDetails/index.ts +7 -0
- package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +10 -16
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/RecordArticle.stories.tsx +115 -0
- package/src/components/RecordArticle.tsx +114 -0
- package/src/components/SchemaContainer.tsx +26 -29
- package/src/components/SpacePluginSettings.tsx +16 -11
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +190 -155
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
- package/src/components/SyncStatus/SyncStatus.tsx +109 -12
- package/src/components/ViewEditor.tsx +56 -23
- package/src/components/index.ts +7 -7
- package/src/events.ts +7 -7
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +152 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +3 -2
- package/src/hooks/useInputSurfaceLookup.tsx +9 -13
- package/src/hooks/usePath.ts +1 -1
- package/src/hooks/useTypeOptions.ts +25 -0
- package/src/index.ts +1 -0
- package/src/meta.ts +6 -3
- package/src/translations.ts +68 -58
- package/src/types/form.ts +69 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +51 -52
- package/src/util.tsx +269 -147
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs +0 -479
- package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
- package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
- package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
- package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
- package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
- package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
- package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
- package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
- package/dist/lib/browser/chunk-SGTQ52SU.mjs +0 -338
- package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
- package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
- package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
- package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
- package/dist/lib/browser/react-root-N2J7TDRX.mjs +0 -29
- package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
- package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs +0 -26
- package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
- package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
- package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs +0 -480
- package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
- package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
- package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs +0 -339
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
- package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
- package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
- package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
- package/dist/types/src/components/CollectionMain.d.ts +0 -7
- package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
- package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts +0 -2
- package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
- package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
- package/src/capabilities/schema-defs.ts +0 -30
- package/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
- package/src/components/MembersContainer.stories.tsx +0 -30
- package/src/components/ObjectDetailsPanel.tsx +0 -77
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -80
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -47
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -36
- package/src/components/ObjectSettings/index.ts +0 -5
- package/src/components/PersistenceStatus.tsx +0 -83
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { useMemo } from 'react';
|
|
6
|
+
|
|
7
|
+
import { type Space } from '@dxos/react-client/echo';
|
|
8
|
+
import { useTranslation } from '@dxos/react-ui';
|
|
9
|
+
|
|
10
|
+
import { type TypeInputOptions, getTypenames } from '../types';
|
|
11
|
+
|
|
12
|
+
export const useTypeOptions = ({ space, annotation }: { space?: Space; annotation: TypeInputOptions }) => {
|
|
13
|
+
const { t } = useTranslation();
|
|
14
|
+
const typenames = getTypenames({ annotation, space });
|
|
15
|
+
return useMemo(
|
|
16
|
+
() =>
|
|
17
|
+
typenames
|
|
18
|
+
.map((typename) => ({
|
|
19
|
+
value: typename,
|
|
20
|
+
label: t('typename label', { ns: typename, defaultValue: typename }),
|
|
21
|
+
}))
|
|
22
|
+
.toSorted((a, b) => a.label.localeCompare(b.label)),
|
|
23
|
+
[t, typenames],
|
|
24
|
+
);
|
|
25
|
+
};
|
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,10 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Type } from '@dxos/echo';
|
|
6
6
|
import { type Resource } from '@dxos/react-ui';
|
|
7
|
-
import {
|
|
7
|
+
import { Collection } from '@dxos/schema';
|
|
8
|
+
import { Event, Message, Organization, Person, Project, Task } from '@dxos/types';
|
|
8
9
|
|
|
9
10
|
import { meta } from './meta';
|
|
10
11
|
|
|
@@ -12,7 +13,7 @@ import { meta } from './meta';
|
|
|
12
13
|
export const translations = [
|
|
13
14
|
{
|
|
14
15
|
'en-US': {
|
|
15
|
-
[
|
|
16
|
+
[Collection.Collection.typename]: {
|
|
16
17
|
'typename label': 'Collection',
|
|
17
18
|
'typename label_zero': 'Collections',
|
|
18
19
|
'typename label_one': 'Collection',
|
|
@@ -20,63 +21,54 @@ export const translations = [
|
|
|
20
21
|
'object name placeholder': 'New collection',
|
|
21
22
|
'rename object label': 'Rename collection',
|
|
22
23
|
'delete object label': 'Delete collection',
|
|
24
|
+
'object deleted label': 'Collection deleted',
|
|
23
25
|
},
|
|
24
|
-
[
|
|
25
|
-
'typename label': '
|
|
26
|
-
'typename label_zero': '
|
|
27
|
-
'typename label_one': '
|
|
28
|
-
'typename label_other': '
|
|
29
|
-
'object name placeholder': 'New
|
|
30
|
-
'rename object label': 'Rename
|
|
31
|
-
'delete object label': 'Delete
|
|
26
|
+
[Type.getTypename(Type.PersistentType)]: {
|
|
27
|
+
'typename label': 'Type',
|
|
28
|
+
'typename label_zero': 'Types',
|
|
29
|
+
'typename label_one': 'Type',
|
|
30
|
+
'typename label_other': 'Types',
|
|
31
|
+
'object name placeholder': 'New type',
|
|
32
|
+
'rename object label': 'Rename type',
|
|
33
|
+
'delete object label': 'Delete type',
|
|
34
|
+
'object deleted label': 'Type deleted',
|
|
32
35
|
},
|
|
33
|
-
[
|
|
34
|
-
'typename label': 'Record',
|
|
35
|
-
'typename label_zero': 'Records',
|
|
36
|
-
'typename label_one': 'Record',
|
|
37
|
-
'typename label_other': 'Records',
|
|
38
|
-
'object name placeholder': 'New record type',
|
|
39
|
-
'rename object label': 'Rename record type',
|
|
40
|
-
'delete object label': 'Delete record type',
|
|
41
|
-
},
|
|
42
|
-
[DataType.View.typename]: {
|
|
43
|
-
'typename label': 'View',
|
|
44
|
-
'typename label_zero': 'Views',
|
|
45
|
-
'typename label_one': 'View',
|
|
46
|
-
'typename label_other': 'Views',
|
|
47
|
-
'object name placeholder': 'New view',
|
|
48
|
-
'rename object label': 'Rename view',
|
|
49
|
-
'delete object label': 'Delete view',
|
|
50
|
-
},
|
|
51
|
-
[DataType.Event.typename]: {
|
|
36
|
+
[Event.Event.typename]: {
|
|
52
37
|
'typename label': 'Event',
|
|
53
38
|
'typename label_zero': 'Events',
|
|
54
39
|
'typename label_one': 'Event',
|
|
55
40
|
'typename label_other': 'Events',
|
|
56
41
|
'object name placeholder': 'New event',
|
|
57
42
|
},
|
|
58
|
-
[
|
|
43
|
+
[Message.Message.typename]: {
|
|
44
|
+
'typename label': 'Message',
|
|
45
|
+
'typename label_zero': 'Messages',
|
|
46
|
+
'typename label_one': 'Message',
|
|
47
|
+
'typename label_other': 'Messages',
|
|
48
|
+
'object name placeholder': 'New message',
|
|
49
|
+
},
|
|
50
|
+
[Organization.Organization.typename]: {
|
|
59
51
|
'typename label': 'Organization',
|
|
60
52
|
'typename label_zero': 'Organizations',
|
|
61
53
|
'typename label_one': 'Organization',
|
|
62
54
|
'typename label_other': 'Organizations',
|
|
63
55
|
'object name placeholder': 'New organization',
|
|
64
56
|
},
|
|
65
|
-
[
|
|
57
|
+
[Person.Person.typename]: {
|
|
66
58
|
'typename label': 'Person',
|
|
67
59
|
'typename label_zero': 'People',
|
|
68
60
|
'typename label_one': 'Person',
|
|
69
61
|
'typename label_other': 'People',
|
|
70
62
|
'object name placeholder': 'New person',
|
|
71
63
|
},
|
|
72
|
-
[
|
|
64
|
+
[Project.Project.typename]: {
|
|
73
65
|
'typename label': 'Project',
|
|
74
66
|
'typename label_zero': 'Projects',
|
|
75
67
|
'typename label_one': 'Project',
|
|
76
68
|
'typename label_other': 'Projects',
|
|
77
69
|
'object name placeholder': 'New project',
|
|
78
70
|
},
|
|
79
|
-
[
|
|
71
|
+
[Task.Task.typename]: {
|
|
80
72
|
'typename label': 'Task',
|
|
81
73
|
'typename label_zero': 'Tasks',
|
|
82
74
|
'typename label_one': 'Task',
|
|
@@ -98,7 +90,7 @@ export const translations = [
|
|
|
98
90
|
'rename space label': 'Rename space',
|
|
99
91
|
'active space label': 'Active space:',
|
|
100
92
|
'space name label': 'Space name',
|
|
101
|
-
'object name label': '
|
|
93
|
+
'object name label': 'Object name',
|
|
102
94
|
'close space label': 'Close space',
|
|
103
95
|
'open space label': 'Open space',
|
|
104
96
|
'export data label': 'Export data',
|
|
@@ -116,32 +108,31 @@ export const translations = [
|
|
|
116
108
|
'spaces label': 'Spaces',
|
|
117
109
|
'space settings label': 'Spaces',
|
|
118
110
|
'space settings description':
|
|
119
|
-
'Each space has its own settings you can configure, where you can adjust its properties, membership, integrations, and other
|
|
111
|
+
'Each space has its own settings you can configure, where you can adjust its properties, membership, integrations, and other objects specific to that space.',
|
|
120
112
|
'show hidden spaces label': 'Show archived spaces',
|
|
121
113
|
'save files to directory label': 'Save files to disk',
|
|
122
114
|
'select path label': 'Select path',
|
|
115
|
+
'snapshot by schema label': 'Snapshot of objects',
|
|
123
116
|
'rename collection label': 'Rename collection',
|
|
124
|
-
'rename object label': 'Rename
|
|
125
|
-
'duplicate object label': 'Duplicate
|
|
126
|
-
'
|
|
127
|
-
'
|
|
128
|
-
'
|
|
129
|
-
'object deleted label': 'Item deleted',
|
|
130
|
-
'objects deleted label': 'Items deleted',
|
|
131
|
-
'go to object label': 'Open item',
|
|
117
|
+
'rename object label': 'Rename object',
|
|
118
|
+
'duplicate object label': 'Duplicate object',
|
|
119
|
+
'object deleted label': 'Object deleted',
|
|
120
|
+
'objects deleted label': 'Objects deleted',
|
|
121
|
+
'go to object label': 'Open object',
|
|
132
122
|
'found object label': 'Ready.',
|
|
133
|
-
'found object description': 'The requested
|
|
123
|
+
'found object description': 'The requested object is now available.',
|
|
134
124
|
'waiting for object label': 'Loading…',
|
|
135
|
-
'waiting for object description': 'The requested
|
|
125
|
+
'waiting for object description': 'The requested object is still being synchronized.',
|
|
136
126
|
'object not found label': 'Nothing found.',
|
|
137
127
|
'object not found description':
|
|
138
|
-
'The requested
|
|
139
|
-
'missing object message': '
|
|
128
|
+
'The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.',
|
|
129
|
+
'missing object message': 'Object not available.',
|
|
140
130
|
'missing object description':
|
|
141
|
-
'The requested
|
|
131
|
+
'The requested object has not been found yet. Ensure there are enough peers online in the space with an updated copy.',
|
|
142
132
|
'create object in space label': 'Add to space',
|
|
143
133
|
'create object in collection label': 'Add to collection',
|
|
144
|
-
'create object in
|
|
134
|
+
'create object in system collection label': 'Add to system collection',
|
|
135
|
+
'add view to schema label': 'Add view to type',
|
|
145
136
|
'space members label': 'Space members',
|
|
146
137
|
'active space members heading': 'Online ({{count}})',
|
|
147
138
|
'inactive space members heading': 'Offline ({{count}})',
|
|
@@ -159,10 +150,10 @@ export const translations = [
|
|
|
159
150
|
'location label': 'Located in',
|
|
160
151
|
'space limit label': 'Space Limit Reached',
|
|
161
152
|
'space limit description':
|
|
162
|
-
'This space has reached the maximum number of
|
|
153
|
+
'This space has reached the maximum number of objects for the beta. This limit includes deleted objects currently, but those can be permanently removed with the cleanup action.',
|
|
163
154
|
'space limit close label': 'Close',
|
|
164
155
|
'remove deleted objects label': 'Cleanup',
|
|
165
|
-
'remove deleted objects alt': 'Permanently remove deleted
|
|
156
|
+
'remove deleted objects alt': 'Permanently remove deleted objects to free up space.',
|
|
166
157
|
'copy link label': 'Copy link',
|
|
167
158
|
'default on space create label': 'On space create',
|
|
168
159
|
'sync status title': 'Sync status',
|
|
@@ -179,20 +170,22 @@ export const translations = [
|
|
|
179
170
|
'remote synced label': 'Synced with peers',
|
|
180
171
|
'syncing label': 'Space syncing',
|
|
181
172
|
'show all label': 'Show all',
|
|
182
|
-
'no sync status label': 'No space with missing
|
|
173
|
+
'no sync status label': 'No space with missing objects.',
|
|
183
174
|
'create space dialog title': 'Create Space',
|
|
184
175
|
'create object dialog title': 'Create {{object}}',
|
|
185
176
|
'space input placeholder': 'Select space',
|
|
186
|
-
'schema input placeholder': 'Select
|
|
177
|
+
'schema input placeholder': 'Select type',
|
|
187
178
|
'creating object type label': 'Type',
|
|
188
179
|
'creating in space label': 'Location',
|
|
189
180
|
'creating in collection label': 'In Collection',
|
|
190
181
|
'clear input label': 'Clear',
|
|
191
182
|
'expose object label': 'Expose in navtree',
|
|
183
|
+
'add tag label': 'Add tag',
|
|
192
184
|
'advanced settings label': 'Advanced',
|
|
193
185
|
'foreign keys': 'Foreign Keys',
|
|
194
186
|
'add key': 'Add Key',
|
|
195
187
|
'open space settings label': 'Open settings',
|
|
188
|
+
'related objects label': 'Related Objects',
|
|
196
189
|
|
|
197
190
|
'row details no selection label': 'No objects selected',
|
|
198
191
|
'companion selected objects label': 'Selected',
|
|
@@ -214,10 +207,10 @@ export const translations = [
|
|
|
214
207
|
'space settings properties label': 'General settings',
|
|
215
208
|
'space properties settings verbose label': 'Manage space properties',
|
|
216
209
|
'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
|
|
210
|
+
'space settings schema label': 'Types',
|
|
211
|
+
'schema verbose label': 'Manage types',
|
|
212
|
+
'schema description': 'You can manage all of the types stored within this space here.',
|
|
213
|
+
'no schemas found message': 'No types found',
|
|
221
214
|
'display name input placeholder': 'Space name',
|
|
222
215
|
'display name description': 'Name of the space as it appears in the app.',
|
|
223
216
|
'icon description': 'Icon used to represent the space in the app.',
|
|
@@ -228,6 +221,23 @@ export const translations = [
|
|
|
228
221
|
'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
222
|
'archive space label': 'Archive',
|
|
230
223
|
'unarchive space label': 'Unarchive',
|
|
224
|
+
|
|
225
|
+
'space controls title': 'Space Controls',
|
|
226
|
+
'space controls description': 'Advanced controls for this space.',
|
|
227
|
+
'backup space title': 'Backup Space',
|
|
228
|
+
'backup space description':
|
|
229
|
+
'Download a backup of the space. Contains all data in the space in an unencrypted format.',
|
|
230
|
+
'download backup label': 'Download backup',
|
|
231
|
+
'repair space title': 'Repair Space',
|
|
232
|
+
'repair space description': 'Run repair operations on the space.',
|
|
233
|
+
'repair space label': 'Run repairs',
|
|
234
|
+
|
|
235
|
+
'sync edge connected label': 'Edge connected',
|
|
236
|
+
'sync edge disconnected label': 'Edge disconnected',
|
|
237
|
+
'sync no connection label': 'No connection to edge service',
|
|
238
|
+
'sync latency label': 'Latency',
|
|
239
|
+
'sync upload label': 'Upload',
|
|
240
|
+
'sync download label': 'Download',
|
|
231
241
|
},
|
|
232
242
|
},
|
|
233
243
|
},
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Option from 'effect/Option';
|
|
6
|
+
import * as Schema from 'effect/Schema';
|
|
7
|
+
|
|
8
|
+
import { type Space } from '@dxos/client/echo';
|
|
9
|
+
import { Type } from '@dxos/echo';
|
|
10
|
+
import { EntityKind, SystemTypeAnnotation, createAnnotationHelper, getTypeAnnotation } from '@dxos/echo/internal';
|
|
11
|
+
|
|
12
|
+
export const TypeInputOptions = Schema.Struct({
|
|
13
|
+
location: Schema.Array(Schema.Literal('database', 'runtime')),
|
|
14
|
+
kind: Schema.Array(Schema.Literal('system', 'user')),
|
|
15
|
+
registered: Schema.Array(Schema.Literal('registered', 'unregistered')),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type TypeInputOptions = Schema.Schema.Type<typeof TypeInputOptions>;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Used in forms to identify the field representing an object's type and determine which types are shown as options.
|
|
22
|
+
*/
|
|
23
|
+
export const TypeInputOptionsAnnotationId = Symbol.for('@dxos/schema/annotation/TypeInputOptions');
|
|
24
|
+
export const TypeInputOptionsAnnotation = createAnnotationHelper<TypeInputOptions>(TypeInputOptionsAnnotationId);
|
|
25
|
+
|
|
26
|
+
// TODO(wittjosiah): This is too complicated and needs to be simplified.
|
|
27
|
+
export const getTypenames = ({ annotation, space }: { annotation: TypeInputOptions; space?: Space }) => {
|
|
28
|
+
const includeRuntime = annotation.location.includes('runtime');
|
|
29
|
+
const includeDatabase = annotation.location.includes('database');
|
|
30
|
+
const includeSystemType = annotation.kind.includes('system');
|
|
31
|
+
const includeUserType = annotation.kind.includes('user');
|
|
32
|
+
const includeRegistered = annotation.registered.includes('registered');
|
|
33
|
+
const includeUnregistered = annotation.registered.includes('unregistered');
|
|
34
|
+
|
|
35
|
+
const runtimeTypenames =
|
|
36
|
+
includeRuntime && space
|
|
37
|
+
? space.db.schemaRegistry
|
|
38
|
+
.query({ location: ['runtime'] })
|
|
39
|
+
.runSync()
|
|
40
|
+
.filter((schema) => {
|
|
41
|
+
const relation = getTypeAnnotation(schema)?.kind === EntityKind.Relation;
|
|
42
|
+
if (relation) {
|
|
43
|
+
return includeSystemType;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const system = SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false));
|
|
47
|
+
if (system) {
|
|
48
|
+
return includeSystemType;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return includeUserType;
|
|
52
|
+
})
|
|
53
|
+
.filter((schema) => {
|
|
54
|
+
const registered = space?.properties.staticRecords?.includes(Type.getTypename(schema));
|
|
55
|
+
return registered ? includeRegistered : includeUnregistered;
|
|
56
|
+
})
|
|
57
|
+
.map((schema) => Type.getTypename(schema))
|
|
58
|
+
: [];
|
|
59
|
+
|
|
60
|
+
const databaseTypenames =
|
|
61
|
+
includeDatabase && includeRegistered && space
|
|
62
|
+
? space.db.schemaRegistry
|
|
63
|
+
.query({ location: ['database'] })
|
|
64
|
+
.runSync()
|
|
65
|
+
.map((schema) => Type.getTypename(schema))
|
|
66
|
+
: [];
|
|
67
|
+
|
|
68
|
+
return Array.from(new Set<string>([...runtimeTypenames, ...databaseTypenames])).sort();
|
|
69
|
+
};
|
package/src/types/index.ts
CHANGED
package/src/types/types.ts
CHANGED
|
@@ -2,21 +2,23 @@
|
|
|
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
|
-
import { type Obj, Type } from '@dxos/echo';
|
|
9
|
-
import { EchoSchema, StoredSchema, type TypedObject, type BaseObject } from '@dxos/echo-schema';
|
|
8
|
+
import { type Obj, QueryAST, Type } from '@dxos/echo';
|
|
10
9
|
import { type PublicKey } from '@dxos/react-client';
|
|
11
10
|
// TODO(wittjosiah): This pulls in full client.
|
|
12
11
|
import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
|
|
13
12
|
import { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';
|
|
14
|
-
import {
|
|
13
|
+
import { Collection, FieldSchema, View } from '@dxos/schema';
|
|
15
14
|
import { type ComplexMap } from '@dxos/util';
|
|
16
15
|
|
|
17
|
-
import {
|
|
16
|
+
import { meta } from '../meta';
|
|
17
|
+
|
|
18
|
+
import { TypeInputOptionsAnnotation } from './form';
|
|
19
|
+
|
|
20
|
+
export const SPACE_DIRECTORY_HANDLE = `${meta.id}/directory`;
|
|
18
21
|
|
|
19
|
-
export const SPACE_DIRECTORY_HANDLE = 'dxos.org/plugin/space/directory';
|
|
20
22
|
export const SPACE_TYPE = 'dxos.org/type/Space';
|
|
21
23
|
|
|
22
24
|
export type ObjectViewerProps = {
|
|
@@ -81,7 +83,7 @@ export type SpaceSettingsProps = Schema.Schema.Type<typeof SpaceSettingsSchema>;
|
|
|
81
83
|
|
|
82
84
|
export type SerializerMap = Record<string, TypedObjectSerializer>;
|
|
83
85
|
|
|
84
|
-
export interface TypedObjectSerializer<T extends Obj.Any =
|
|
86
|
+
export interface TypedObjectSerializer<T extends Obj.Any = Obj.Any> {
|
|
85
87
|
serialize(params: { object: T }): Promise<string>;
|
|
86
88
|
|
|
87
89
|
/**
|
|
@@ -92,29 +94,21 @@ export interface TypedObjectSerializer<T extends Obj.Any = Type.Expando> {
|
|
|
92
94
|
deserialize(params: { content: string; space: Space; newId?: boolean }): Promise<T>;
|
|
93
95
|
}
|
|
94
96
|
|
|
97
|
+
export type CreateObjectIntent = (props: any, options: { space: Space }) => AnyIntentChain;
|
|
98
|
+
|
|
95
99
|
// TODO(burdon): Move to FormatEnum or SDK.
|
|
96
100
|
export const IconAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Icon');
|
|
97
101
|
export const HueAnnotationId = Symbol.for('@dxos/plugin-space/annotation/Hue');
|
|
98
102
|
|
|
103
|
+
// TOOD(burdon): Use SpacePropertiesSchema.
|
|
99
104
|
export const SpaceForm = Schema.Struct({
|
|
100
105
|
name: Schema.optional(Schema.String.annotations({ title: 'Name' })),
|
|
101
106
|
icon: Schema.optional(Schema.String.annotations({ title: 'Icon', [IconAnnotationId]: true })),
|
|
102
107
|
hue: Schema.optional(Schema.String.annotations({ title: 'Color', [HueAnnotationId]: true })),
|
|
103
|
-
|
|
104
|
-
edgeReplication: Schema.Boolean.annotations({ title: 'Enable EDGE Replication' }),
|
|
108
|
+
edgeReplication: Schema.optional(Schema.Boolean.annotations({ title: 'Enable EDGE Replication' })),
|
|
105
109
|
});
|
|
106
110
|
|
|
107
|
-
export
|
|
108
|
-
// TODO(dmaretskyi): Change to Schema.Schema.AnyNoContext
|
|
109
|
-
objectSchema: TypedObject;
|
|
110
|
-
formSchema?: Schema.Schema<T, any>;
|
|
111
|
-
hidden?: boolean;
|
|
112
|
-
getIntent: (props: T, options: { space: Space }) => AnyIntentChain;
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
export const defineObjectForm = <T extends BaseObject>(form: ObjectForm<T>) => form;
|
|
116
|
-
|
|
117
|
-
export const SPACE_ACTION = `${SPACE_PLUGIN}/action`;
|
|
111
|
+
export const SPACE_ACTION = `${meta.id}/action`;
|
|
118
112
|
|
|
119
113
|
export namespace SpaceAction {
|
|
120
114
|
export class OpenCreateSpace extends Schema.TaggedClass<OpenCreateSpace>()(`${SPACE_ACTION}/open-create-space`, {
|
|
@@ -217,12 +211,26 @@ export namespace SpaceAction {
|
|
|
217
211
|
output: Schema.Boolean,
|
|
218
212
|
}) {}
|
|
219
213
|
|
|
214
|
+
export class Snapshot extends Schema.TaggedClass<Snapshot>()(`${SPACE_ACTION}/snapshot`, {
|
|
215
|
+
input: Schema.Struct({
|
|
216
|
+
space: SpaceSchema,
|
|
217
|
+
query: QueryAST.Query.pipe(Schema.optional),
|
|
218
|
+
}),
|
|
219
|
+
output: Schema.Struct({
|
|
220
|
+
snapshot: Schema.instanceOf(Blob),
|
|
221
|
+
}),
|
|
222
|
+
}) {}
|
|
223
|
+
|
|
220
224
|
export const StoredSchemaForm = Schema.Struct({
|
|
221
225
|
name: Schema.optional(Schema.String),
|
|
222
|
-
typename: Schema.
|
|
223
|
-
Schema.
|
|
224
|
-
|
|
226
|
+
typename: Schema.String.pipe(
|
|
227
|
+
Schema.annotations({ title: 'Select type (leave blank to create a new type)' }),
|
|
228
|
+
TypeInputOptionsAnnotation.set({
|
|
229
|
+
location: ['runtime'],
|
|
230
|
+
kind: ['user'],
|
|
231
|
+
registered: ['unregistered'],
|
|
225
232
|
}),
|
|
233
|
+
Schema.optional,
|
|
226
234
|
),
|
|
227
235
|
});
|
|
228
236
|
|
|
@@ -230,6 +238,8 @@ export namespace SpaceAction {
|
|
|
230
238
|
input: Schema.Struct({
|
|
231
239
|
space: SpaceSchema,
|
|
232
240
|
typename: Schema.String,
|
|
241
|
+
// TODO(wittjosiah): This is leaky.
|
|
242
|
+
show: Schema.optional(Schema.Boolean),
|
|
233
243
|
}),
|
|
234
244
|
output: Schema.Struct({}),
|
|
235
245
|
}) {}
|
|
@@ -238,20 +248,25 @@ export namespace SpaceAction {
|
|
|
238
248
|
input: Schema.Struct({
|
|
239
249
|
space: SpaceSchema,
|
|
240
250
|
name: Schema.optional(Schema.String),
|
|
251
|
+
typename: Schema.optional(Schema.String),
|
|
252
|
+
// TODO(wittjosiah): Semantic version format.
|
|
253
|
+
version: Schema.optional(Schema.String),
|
|
241
254
|
// TODO(wittjosiah): Schema for schema?
|
|
242
255
|
schema: Schema.Any,
|
|
256
|
+
// TODO(wittjosiah): This is leaky.
|
|
257
|
+
show: Schema.optional(Schema.Boolean),
|
|
243
258
|
}),
|
|
244
259
|
output: Schema.Struct({
|
|
245
260
|
// TODO(wittjosiah): ObjectId.
|
|
246
261
|
id: Schema.String,
|
|
247
|
-
object:
|
|
248
|
-
schema: Schema.instanceOf(
|
|
262
|
+
object: Type.PersistentType,
|
|
263
|
+
schema: Schema.instanceOf(Type.RuntimeType),
|
|
249
264
|
}),
|
|
250
265
|
}) {}
|
|
251
266
|
|
|
252
267
|
export class DeleteField extends Schema.TaggedClass<DeleteField>()(`${SPACE_ACTION}/delete-field`, {
|
|
253
268
|
input: Schema.Struct({
|
|
254
|
-
view:
|
|
269
|
+
view: View.View,
|
|
255
270
|
fieldId: Schema.String,
|
|
256
271
|
// TODO(wittjosiah): Separate fields for undo data?
|
|
257
272
|
deletionData: Schema.optional(
|
|
@@ -269,8 +284,10 @@ export namespace SpaceAction {
|
|
|
269
284
|
|
|
270
285
|
export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
|
|
271
286
|
input: Schema.Struct({
|
|
272
|
-
target: Schema.Union(SpaceSchema,
|
|
287
|
+
target: Schema.Union(SpaceSchema, Collection.Collection),
|
|
288
|
+
views: Schema.optional(Schema.Boolean),
|
|
273
289
|
typename: Schema.optional(Schema.String),
|
|
290
|
+
initialFormValues: Schema.optional(Schema.Any),
|
|
274
291
|
navigable: Schema.optional(Schema.Boolean),
|
|
275
292
|
// TODO(wittjosiah): This is a function, is there a better way to handle this?
|
|
276
293
|
onCreateObject: Schema.optional(Schema.Any),
|
|
@@ -281,7 +298,7 @@ export namespace SpaceAction {
|
|
|
281
298
|
export class AddObject extends Schema.TaggedClass<AddObject>()(`${SPACE_ACTION}/add-object`, {
|
|
282
299
|
input: Schema.Struct({
|
|
283
300
|
object: ReactiveObjectSchema,
|
|
284
|
-
target: Schema.Union(SpaceSchema,
|
|
301
|
+
target: Schema.Union(SpaceSchema, Collection.Collection),
|
|
285
302
|
hidden: Schema.optional(Schema.Boolean),
|
|
286
303
|
}),
|
|
287
304
|
output: Schema.Struct({
|
|
@@ -309,7 +326,7 @@ export namespace SpaceAction {
|
|
|
309
326
|
|
|
310
327
|
export const DeletionData = Schema.Struct({
|
|
311
328
|
objects: Schema.Array(EchoObjectSchema),
|
|
312
|
-
parentCollection:
|
|
329
|
+
parentCollection: Collection.Collection,
|
|
313
330
|
indices: Schema.Array(Schema.Number),
|
|
314
331
|
nestedObjectsList: Schema.Array(Schema.Array(EchoObjectSchema)),
|
|
315
332
|
wasActive: Schema.Array(Schema.String),
|
|
@@ -319,8 +336,9 @@ export namespace SpaceAction {
|
|
|
319
336
|
|
|
320
337
|
export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {
|
|
321
338
|
input: Schema.Struct({
|
|
322
|
-
|
|
323
|
-
|
|
339
|
+
// TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).
|
|
340
|
+
objects: Schema.Array(ReactiveObjectSchema),
|
|
341
|
+
target: Schema.optional(Collection.Collection),
|
|
324
342
|
deletionData: Schema.optional(DeletionData),
|
|
325
343
|
}),
|
|
326
344
|
output: Schema.Void,
|
|
@@ -337,7 +355,7 @@ export namespace SpaceAction {
|
|
|
337
355
|
export class DuplicateObject extends Schema.TaggedClass<DuplicateObject>()(`${SPACE_ACTION}/duplicate-object`, {
|
|
338
356
|
input: Schema.Struct({
|
|
339
357
|
object: EchoObjectSchema,
|
|
340
|
-
target: Schema.Union(SpaceSchema,
|
|
358
|
+
target: Schema.Union(SpaceSchema, Collection.Collection),
|
|
341
359
|
}),
|
|
342
360
|
output: Schema.Void,
|
|
343
361
|
}) {}
|
|
@@ -356,26 +374,7 @@ export namespace CollectionAction {
|
|
|
356
374
|
name: Schema.optional(Schema.String),
|
|
357
375
|
}),
|
|
358
376
|
output: Schema.Struct({
|
|
359
|
-
object:
|
|
377
|
+
object: Collection.Collection,
|
|
360
378
|
}),
|
|
361
379
|
}) {}
|
|
362
|
-
|
|
363
|
-
export const QueryCollectionForm = Schema.Struct({
|
|
364
|
-
name: Schema.optional(Schema.String),
|
|
365
|
-
typename: Schema.optional(
|
|
366
|
-
Schema.String.annotations({
|
|
367
|
-
[TypenameAnnotationId]: ['object-form'],
|
|
368
|
-
}),
|
|
369
|
-
),
|
|
370
|
-
});
|
|
371
|
-
|
|
372
|
-
export class CreateQueryCollection extends Schema.TaggedClass<CreateQueryCollection>()(
|
|
373
|
-
'dxos.org/plugin/collection/action/create-query-collection',
|
|
374
|
-
{
|
|
375
|
-
input: QueryCollectionForm,
|
|
376
|
-
output: Schema.Struct({
|
|
377
|
-
object: DataType.QueryCollection,
|
|
378
|
-
}),
|
|
379
|
-
},
|
|
380
|
-
) {}
|
|
381
380
|
}
|