@dxos/plugin-space 0.8.4-main.3a94e84 → 0.8.4-main.406dc2a
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 → CollectionMain-AX7KKXWP.mjs} +4 -4
- package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs +145 -0
- package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs.map +7 -0
- package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs +151 -0
- package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs.map +7 -0
- package/dist/lib/browser/RecordMain-H4DVHICS.mjs +116 -0
- package/dist/lib/browser/RecordMain-H4DVHICS.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-7CZZJS3S.mjs → app-graph-builder-3R5GGT46.mjs} +102 -61
- package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-25Z5BG22.mjs} +14 -14
- package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs.map +7 -0
- package/dist/lib/browser/{chunk-V7MJSSBQ.mjs → chunk-522KZGQF.mjs} +310 -342
- package/dist/lib/browser/chunk-522KZGQF.mjs.map +7 -0
- package/dist/lib/browser/chunk-7XOTWRZ3.mjs +166 -0
- package/dist/lib/browser/chunk-7XOTWRZ3.mjs.map +7 -0
- package/dist/lib/browser/chunk-EIXZABXD.mjs +19 -0
- package/dist/lib/browser/chunk-EIXZABXD.mjs.map +7 -0
- package/dist/lib/browser/chunk-IRKDREHY.mjs +11 -0
- package/dist/lib/browser/chunk-IRKDREHY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-OV6D543A.mjs} +99 -44
- package/dist/lib/browser/chunk-OV6D543A.mjs.map +7 -0
- package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-PTGRQQ6J.mjs} +13 -10
- package/dist/lib/browser/chunk-PTGRQQ6J.mjs.map +7 -0
- package/dist/lib/browser/chunk-RLI2IAHK.mjs +20 -0
- package/dist/lib/browser/chunk-RLI2IAHK.mjs.map +7 -0
- package/dist/lib/browser/{chunk-SGTQ52SU.mjs → chunk-WS2PJDES.mjs} +22 -12
- package/dist/lib/browser/chunk-WS2PJDES.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-PW2BA46S.mjs} +4 -4
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs.map → identity-created-PW2BA46S.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +36 -53
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-ICGUSVH6.mjs} +52 -45
- package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-N2J7TDRX.mjs → react-root-H56QN474.mjs} +11 -11
- package/dist/lib/browser/react-root-H56QN474.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-VOE2ILKO.mjs} +57 -77
- package/dist/lib/browser/react-surface-VOE2ILKO.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-Z6FC4AHC.mjs → schema-defs-7R7RKCAE.mjs} +5 -5
- package/dist/lib/browser/schema-defs-7R7RKCAE.mjs.map +7 -0
- package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-OBFJ67ZG.mjs} +5 -5
- package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-OBFJ67ZG.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-MFIVK6I6.mjs} +18 -16
- package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs.map +7 -0
- package/dist/lib/browser/{state-QYZAB45H.mjs → state-LSPRFIRO.mjs} +7 -7
- package/dist/lib/browser/state-LSPRFIRO.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionMain-EU57SRYK.mjs} +4 -4
- package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs +146 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs +152 -0
- package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs.map +7 -0
- package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs +117 -0
- package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-KGIGWC72.mjs → app-graph-builder-VGRMD5TP.mjs} +102 -61
- package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-U4GHXWRG.mjs} +14 -14
- package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JH6F4C3I.mjs → chunk-4F25JKVT.mjs} +22 -12
- package/dist/lib/node-esm/chunk-4F25JKVT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-DG5YEEPZ.mjs} +310 -342
- package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-H5UPFRRH.mjs +21 -0
- package/dist/lib/node-esm/chunk-H5UPFRRH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-HAKW2RFD.mjs} +13 -10
- package/dist/lib/node-esm/chunk-HAKW2RFD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HWNG4MEU.mjs → chunk-MWNATOXL.mjs} +2 -4
- package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs +167 -0
- package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +20 -0
- package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-TNUWML33.mjs} +99 -44
- package/dist/lib/node-esm/chunk-TNUWML33.mjs.map +7 -0
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-MWTLGQRU.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs.map → identity-created-MWTLGQRU.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +36 -53
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-KVB2A4YC.mjs} +52 -45
- package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-56PGW5PH.mjs} +11 -11
- package/dist/lib/node-esm/react-root-56PGW5PH.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-NYEQ23A4.mjs} +57 -77
- package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-WHJM7UZE.mjs → schema-defs-RYG5DSUE.mjs} +5 -5
- package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-QGWWNMMZ.mjs} +5 -5
- package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-QGWWNMMZ.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-TC27M7MP.mjs} +18 -16
- package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs.map +7 -0
- package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-TCGOPLRO.mjs} +7 -7
- package/dist/lib/node-esm/state-TCGOPLRO.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 +5 -4
- 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/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 +1604 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -3
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts +3 -2
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +1604 -5
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
- 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/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1440 -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/PopoverRenameObject.d.ts +2 -2
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
- package/dist/types/src/components/RecordMain.d.ts +7 -0
- package/dist/types/src/components/RecordMain.d.ts.map +1 -0
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +1432 -4
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1437 -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 +1438 -5
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts +1 -1
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +9 -3
- 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/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/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1236 -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 +10 -7
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +63 -58
- package/src/SpacePlugin.ts +206 -220
- package/src/capabilities/app-graph-builder.ts +127 -69
- package/src/capabilities/app-graph-serializer.ts +7 -7
- package/src/capabilities/capabilities.ts +18 -12
- package/src/capabilities/identity-created.ts +1 -1
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +40 -28
- package/src/capabilities/react-root.tsx +4 -3
- package/src/capabilities/react-surface.tsx +50 -107
- package/src/capabilities/schema-defs.ts +3 -2
- package/src/capabilities/spaces-ready.ts +11 -8
- package/src/capabilities/state.ts +5 -4
- package/src/components/AwaitingObject.tsx +3 -3
- package/src/components/CollectionMain.tsx +2 -2
- package/src/components/CollectionSection.tsx +2 -2
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
- package/src/components/CreateDialog/CreateObjectDialog.tsx +24 -13
- package/src/components/CreateDialog/CreateObjectPanel.tsx +22 -11
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +6 -5
- package/src/components/JoinDialog.tsx +7 -7
- package/src/components/MembersContainer.stories.tsx +36 -10
- package/src/components/MembersContainer.tsx +13 -14
- package/src/components/MenuFooter.tsx +2 -2
- package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +52 -0
- package/src/components/ObjectDetailsPanel/ObjectForm.tsx +75 -0
- package/src/components/ObjectDetailsPanel/index.ts +7 -0
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -3
- package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +96 -26
- package/src/components/ObjectSettings/ForeignKeys.tsx +3 -3
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +3 -2
- package/src/components/ObjectSettings/index.ts +3 -1
- package/src/components/PersistenceStatus.tsx +2 -2
- package/src/components/PopoverRenameObject.tsx +9 -15
- package/src/components/PopoverRenameSpace.tsx +4 -4
- package/src/components/RecordMain.tsx +87 -0
- package/src/components/SchemaContainer.tsx +5 -5
- package/src/components/SpacePluginSettings.tsx +8 -9
- package/src/components/SpacePresence.stories.tsx +23 -22
- package/src/components/SpacePresence.tsx +10 -10
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +19 -18
- package/src/components/SyncStatus/InlineSyncStatus.tsx +7 -7
- package/src/components/SyncStatus/SyncStatus.stories.tsx +6 -7
- package/src/components/SyncStatus/SyncStatus.tsx +93 -5
- package/src/components/ViewEditor.tsx +14 -20
- package/src/components/index.ts +2 -1
- package/src/events.ts +7 -7
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +2 -2
- package/src/hooks/useInputSurfaceLookup.tsx +2 -2
- package/src/hooks/usePath.ts +1 -1
- package/src/hooks/useTypeOptions.ts +59 -0
- package/src/meta.ts +1 -3
- package/src/translations.ts +11 -8
- package/src/types/types.ts +21 -13
- package/src/util.tsx +97 -40
- 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.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.map +0 -7
- package/dist/lib/browser/chunk-V7MJSSBQ.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/intent-resolver-TIXVDYN7.mjs.map +0 -7
- 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.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.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.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/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.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/ObjectDetailsPanel.d.ts +0 -9
- package/dist/types/src/components/ObjectDetailsPanel.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/ObjectDetailsPanel.tsx +0 -77
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';
|
|
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 { DataType, type TypenameAnnotation, getTypenames } from '@dxos/schema';
|
|
14
|
+
|
|
15
|
+
import { SpaceCapabilities } from '../capabilities';
|
|
16
|
+
|
|
17
|
+
const OMIT = [DataType.Collection.typename, Type.getTypename(DataType.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/meta.ts
CHANGED
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import { type PluginMeta } from '@dxos/app-framework';
|
|
6
6
|
|
|
7
|
-
export const SPACE_PLUGIN = 'dxos.org/plugin/space';
|
|
8
|
-
|
|
9
7
|
export const meta: PluginMeta = {
|
|
10
|
-
id:
|
|
8
|
+
id: 'dxos.org/plugin/space',
|
|
11
9
|
name: 'Spaces',
|
|
12
10
|
icon: 'ph--planet--regular',
|
|
13
11
|
};
|
package/src/translations.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
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
8
|
import { DataType } from '@dxos/schema';
|
|
8
9
|
|
|
@@ -21,7 +22,7 @@ export const translations = [
|
|
|
21
22
|
'rename object label': 'Rename collection',
|
|
22
23
|
'delete object label': 'Delete collection',
|
|
23
24
|
},
|
|
24
|
-
[DataType.QueryCollection
|
|
25
|
+
[Type.getTypename(DataType.QueryCollection)]: {
|
|
25
26
|
'typename label': 'Smart Collection',
|
|
26
27
|
'typename label_zero': 'Smart Collections',
|
|
27
28
|
'typename label_one': 'Smart Collection',
|
|
@@ -39,7 +40,7 @@ export const translations = [
|
|
|
39
40
|
'rename object label': 'Rename record type',
|
|
40
41
|
'delete object label': 'Delete record type',
|
|
41
42
|
},
|
|
42
|
-
[DataType.View
|
|
43
|
+
[Type.getTypename(DataType.View)]: {
|
|
43
44
|
'typename label': 'View',
|
|
44
45
|
'typename label_zero': 'Views',
|
|
45
46
|
'typename label_one': 'View',
|
|
@@ -69,7 +70,7 @@ export const translations = [
|
|
|
69
70
|
'typename label_other': 'People',
|
|
70
71
|
'object name placeholder': 'New person',
|
|
71
72
|
},
|
|
72
|
-
[DataType.Project
|
|
73
|
+
[Type.getTypename(DataType.Project)]: {
|
|
73
74
|
'typename label': 'Project',
|
|
74
75
|
'typename label_zero': 'Projects',
|
|
75
76
|
'typename label_one': 'Project',
|
|
@@ -189,10 +190,12 @@ export const translations = [
|
|
|
189
190
|
'creating in collection label': 'In Collection',
|
|
190
191
|
'clear input label': 'Clear',
|
|
191
192
|
'expose object label': 'Expose in navtree',
|
|
193
|
+
'add tag label': 'Add tag',
|
|
192
194
|
'advanced settings label': 'Advanced',
|
|
193
195
|
'foreign keys': 'Foreign Keys',
|
|
194
196
|
'add key': 'Add Key',
|
|
195
197
|
'open space settings label': 'Open settings',
|
|
198
|
+
'related objects label': 'Related',
|
|
196
199
|
|
|
197
200
|
'row details no selection label': 'No objects selected',
|
|
198
201
|
'companion selected objects label': 'Selected',
|
|
@@ -214,10 +217,10 @@ export const translations = [
|
|
|
214
217
|
'space settings properties label': 'General settings',
|
|
215
218
|
'space properties settings verbose label': 'Manage space properties',
|
|
216
219
|
'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
|
|
220
|
+
'space settings schema label': 'Record types',
|
|
221
|
+
'schema verbose label': 'Manage record types',
|
|
222
|
+
'schema description': 'You can manage all of the record types stored within this space here.',
|
|
223
|
+
'no schemas found message': 'No record types found',
|
|
221
224
|
'display name input placeholder': 'Space name',
|
|
222
225
|
'display name description': 'Name of the space as it appears in the app.',
|
|
223
226
|
'icon description': 'Icon used to represent the space in the app.',
|
package/src/types/types.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
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';
|
|
@@ -14,9 +14,10 @@ import { CancellableInvitationObservable, Invitation } from '@dxos/react-client/
|
|
|
14
14
|
import { DataType, FieldSchema, TypenameAnnotationId } 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.
|
|
@@ -270,7 +277,9 @@ export namespace SpaceAction {
|
|
|
270
277
|
export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
|
|
271
278
|
input: Schema.Struct({
|
|
272
279
|
target: Schema.Union(SpaceSchema, DataType.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),
|
|
@@ -362,11 +371,9 @@ export namespace CollectionAction {
|
|
|
362
371
|
|
|
363
372
|
export const QueryCollectionForm = Schema.Struct({
|
|
364
373
|
name: Schema.optional(Schema.String),
|
|
365
|
-
typename: Schema.
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
}),
|
|
369
|
-
),
|
|
374
|
+
typename: Schema.String.annotations({
|
|
375
|
+
[TypenameAnnotationId]: ['object-form'],
|
|
376
|
+
}),
|
|
370
377
|
});
|
|
371
378
|
|
|
372
379
|
export class CreateQueryCollection extends Schema.TaggedClass<CreateQueryCollection>()(
|
|
@@ -374,7 +381,8 @@ export namespace CollectionAction {
|
|
|
374
381
|
{
|
|
375
382
|
input: QueryCollectionForm,
|
|
376
383
|
output: Schema.Struct({
|
|
377
|
-
|
|
384
|
+
// TODO(wittjosiah): Remove cast.
|
|
385
|
+
object: EchoObjectSchema, // DataType.QueryCollection,
|
|
378
386
|
}),
|
|
379
387
|
},
|
|
380
388
|
) {}
|
package/src/util.tsx
CHANGED
|
@@ -3,33 +3,33 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { Rx } from '@effect-rx/rx-react';
|
|
6
|
-
import
|
|
6
|
+
import * as Function from 'effect/Function';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { LayoutAction, type PromiseIntentDispatcher, chain, createIntent } from '@dxos/app-framework';
|
|
9
9
|
import { Obj, Ref, Type } from '@dxos/echo';
|
|
10
|
-
import { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo
|
|
10
|
+
import { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo/internal';
|
|
11
11
|
import { invariant } from '@dxos/invariant';
|
|
12
12
|
import { Migrations } from '@dxos/migrations';
|
|
13
13
|
import {
|
|
14
14
|
ACTION_GROUP_TYPE,
|
|
15
15
|
ACTION_TYPE,
|
|
16
|
-
type ReadableGraph,
|
|
17
16
|
type ActionData,
|
|
18
17
|
type InvokeParams,
|
|
19
18
|
type Node,
|
|
20
19
|
type NodeArg,
|
|
20
|
+
type ReadableGraph,
|
|
21
21
|
isGraphNode,
|
|
22
22
|
} from '@dxos/plugin-graph';
|
|
23
|
-
import {
|
|
23
|
+
import { type QueryResult, type Space, SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
|
|
24
24
|
import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
|
|
25
25
|
import { type TreeData } from '@dxos/react-ui-list';
|
|
26
|
-
import { DataType } from '@dxos/schema';
|
|
26
|
+
import { DataType, getTypenameFromQuery } from '@dxos/schema';
|
|
27
27
|
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
28
|
+
import { meta } from './meta';
|
|
29
|
+
import { type ObjectForm, SPACE_TYPE, SpaceAction } from './types';
|
|
30
30
|
|
|
31
|
-
export const SPACES = `${
|
|
32
|
-
export const COMPOSER_SPACE_LOCK =
|
|
31
|
+
export const SPACES = `${meta.id}-spaces`;
|
|
32
|
+
export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
|
|
33
33
|
// TODO(wittjosiah): Remove.
|
|
34
34
|
export const SHARED = 'shared-spaces';
|
|
35
35
|
|
|
@@ -57,8 +57,8 @@ export const getSpaceDisplayName = (
|
|
|
57
57
|
: namesCache[space.id]
|
|
58
58
|
? namesCache[space.id]
|
|
59
59
|
: personal
|
|
60
|
-
? ['personal space label', { ns:
|
|
61
|
-
: ['unnamed space label', { ns:
|
|
60
|
+
? ['personal space label', { ns: meta.id }]
|
|
61
|
+
: ['unnamed space label', { ns: meta.id }];
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
const getCollectionGraphNodePartials = ({
|
|
@@ -145,16 +145,15 @@ const getQueryCollectionNodePartials = ({
|
|
|
145
145
|
space: Space;
|
|
146
146
|
resolve: (typename: string) => Record<string, any>;
|
|
147
147
|
}) => {
|
|
148
|
+
const typename = getTypenameFromQuery(collection.query);
|
|
148
149
|
return {
|
|
149
|
-
icon:
|
|
150
|
+
icon: typename && resolve(typename)?.icon,
|
|
150
151
|
acceptPersistenceClass: new Set(['echo']),
|
|
151
152
|
acceptPersistenceKey: new Set([space.id]),
|
|
152
153
|
role: 'branch',
|
|
153
154
|
canDrop: (source: TreeData) => {
|
|
154
155
|
return (
|
|
155
|
-
isGraphNode(source.item) &&
|
|
156
|
-
Obj.isObject(source.item.data) &&
|
|
157
|
-
Obj.getTypename(source.item.data) === collection.query.typename
|
|
156
|
+
isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename
|
|
158
157
|
);
|
|
159
158
|
},
|
|
160
159
|
onTransferStart: (child: Node<Obj.Any>, index?: number) => {
|
|
@@ -245,40 +244,40 @@ export const constructSpaceNode = ({
|
|
|
245
244
|
nodes: [
|
|
246
245
|
{
|
|
247
246
|
id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
248
|
-
type: `${
|
|
247
|
+
type: `${meta.id}/settings`,
|
|
249
248
|
data: null,
|
|
250
249
|
properties: {
|
|
251
|
-
label: ['settings panel label', { ns:
|
|
250
|
+
label: ['settings panel label', { ns: meta.id }],
|
|
252
251
|
icon: 'ph--faders--regular',
|
|
253
252
|
disposition: 'alternate-tree',
|
|
254
253
|
},
|
|
255
254
|
nodes: [
|
|
256
255
|
{
|
|
257
256
|
id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
258
|
-
type: `${
|
|
259
|
-
data: `${
|
|
257
|
+
type: `${meta.id}/properties`,
|
|
258
|
+
data: `${meta.id}/properties`,
|
|
260
259
|
properties: {
|
|
261
|
-
label: ['space settings properties label', { ns:
|
|
260
|
+
label: ['space settings properties label', { ns: meta.id }],
|
|
262
261
|
icon: 'ph--sliders--regular',
|
|
263
262
|
position: 'hoist',
|
|
264
263
|
},
|
|
265
264
|
},
|
|
266
265
|
{
|
|
267
266
|
id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
268
|
-
type: `${
|
|
269
|
-
data: `${
|
|
267
|
+
type: `${meta.id}/members`,
|
|
268
|
+
data: `${meta.id}/members`,
|
|
270
269
|
properties: {
|
|
271
|
-
label: ['members panel label', { ns:
|
|
270
|
+
label: ['members panel label', { ns: meta.id }],
|
|
272
271
|
icon: 'ph--users--regular',
|
|
273
272
|
position: 'hoist',
|
|
274
273
|
},
|
|
275
274
|
},
|
|
276
275
|
{
|
|
277
276
|
id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
|
|
278
|
-
type: `${
|
|
279
|
-
data: `${
|
|
277
|
+
type: `${meta.id}/schema`,
|
|
278
|
+
data: `${meta.id}/schema`,
|
|
280
279
|
properties: {
|
|
281
|
-
label: ['space settings schema label', { ns:
|
|
280
|
+
label: ['space settings schema label', { ns: meta.id }],
|
|
282
281
|
icon: 'ph--shapes--regular',
|
|
283
282
|
},
|
|
284
283
|
},
|
|
@@ -312,7 +311,7 @@ export const constructSpaceActions = ({
|
|
|
312
311
|
await dispatch(createIntent(SpaceAction.Migrate, { space }));
|
|
313
312
|
},
|
|
314
313
|
properties: {
|
|
315
|
-
label: ['migrate space label', { ns:
|
|
314
|
+
label: ['migrate space label', { ns: meta.id }],
|
|
316
315
|
icon: 'ph--database--regular',
|
|
317
316
|
disposition: 'list-item-primary',
|
|
318
317
|
disabled: migrating || Migrations.running(space),
|
|
@@ -329,7 +328,7 @@ export const constructSpaceActions = ({
|
|
|
329
328
|
await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));
|
|
330
329
|
},
|
|
331
330
|
properties: {
|
|
332
|
-
label: ['create object in space label', { ns:
|
|
331
|
+
label: ['create object in space label', { ns: meta.id }],
|
|
333
332
|
icon: 'ph--plus--regular',
|
|
334
333
|
disposition: 'item',
|
|
335
334
|
testId: 'spacePlugin.createObject',
|
|
@@ -342,7 +341,7 @@ export const constructSpaceActions = ({
|
|
|
342
341
|
await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));
|
|
343
342
|
},
|
|
344
343
|
properties: {
|
|
345
|
-
label: ['rename space label', { ns:
|
|
344
|
+
label: ['rename space label', { ns: meta.id }],
|
|
346
345
|
icon: 'ph--pencil-simple-line--regular',
|
|
347
346
|
keyBinding: {
|
|
348
347
|
macos: 'shift+F6',
|
|
@@ -359,12 +358,13 @@ export const constructSpaceActions = ({
|
|
|
359
358
|
export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {
|
|
360
359
|
return {
|
|
361
360
|
id: `${space.id}/${Type.getTypename(schema)}`,
|
|
362
|
-
type: `${
|
|
361
|
+
type: `${meta.id}/static-schema`,
|
|
363
362
|
data: schema,
|
|
364
363
|
properties: {
|
|
365
364
|
label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],
|
|
366
365
|
icon: 'ph--database--regular',
|
|
367
366
|
role: 'branch',
|
|
367
|
+
selectable: false,
|
|
368
368
|
canDrop: () => false,
|
|
369
369
|
space,
|
|
370
370
|
},
|
|
@@ -374,15 +374,36 @@ export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any
|
|
|
374
374
|
export const createStaticSchemaActions = ({
|
|
375
375
|
schema,
|
|
376
376
|
space,
|
|
377
|
+
dispatch,
|
|
377
378
|
deletable,
|
|
378
379
|
}: {
|
|
379
380
|
schema: Type.Obj.Any;
|
|
380
381
|
space: Space;
|
|
382
|
+
dispatch: PromiseIntentDispatcher;
|
|
381
383
|
deletable: boolean;
|
|
382
384
|
}) => {
|
|
383
385
|
const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;
|
|
384
386
|
|
|
385
387
|
const actions: NodeArg<ActionData>[] = [
|
|
388
|
+
{
|
|
389
|
+
id: getId(SpaceAction.AddObject._tag),
|
|
390
|
+
type: ACTION_TYPE,
|
|
391
|
+
data: async () => {
|
|
392
|
+
await dispatch(
|
|
393
|
+
createIntent(SpaceAction.OpenCreateObject, {
|
|
394
|
+
target: space,
|
|
395
|
+
views: true,
|
|
396
|
+
initialFormValues: { typename: Type.getTypename(schema) },
|
|
397
|
+
}),
|
|
398
|
+
);
|
|
399
|
+
},
|
|
400
|
+
properties: {
|
|
401
|
+
label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],
|
|
402
|
+
icon: 'ph--plus--regular',
|
|
403
|
+
disposition: 'list-item-primary',
|
|
404
|
+
testId: 'spacePlugin.addViewToSchema',
|
|
405
|
+
},
|
|
406
|
+
},
|
|
386
407
|
{
|
|
387
408
|
id: getId(SpaceAction.RenameObject._tag),
|
|
388
409
|
type: ACTION_TYPE,
|
|
@@ -424,19 +445,21 @@ export const createStaticSchemaActions = ({
|
|
|
424
445
|
export const createObjectNode = ({
|
|
425
446
|
space,
|
|
426
447
|
object,
|
|
448
|
+
disposition,
|
|
427
449
|
droppable = true,
|
|
428
450
|
navigable = false,
|
|
429
451
|
resolve,
|
|
430
452
|
}: {
|
|
431
453
|
space: Space;
|
|
432
454
|
object: Obj.Any;
|
|
455
|
+
disposition?: string;
|
|
433
456
|
droppable?: boolean;
|
|
434
457
|
navigable?: boolean;
|
|
435
458
|
resolve: (typename: string) => Record<string, any>;
|
|
436
459
|
}) => {
|
|
437
460
|
const type = Obj.getTypename(object);
|
|
438
461
|
if (!type) {
|
|
439
|
-
return
|
|
462
|
+
return null;
|
|
440
463
|
}
|
|
441
464
|
|
|
442
465
|
const metadata = resolve(type);
|
|
@@ -450,10 +473,19 @@ export const createObjectNode = ({
|
|
|
450
473
|
? getViewGraphNodePartials({ view: object, resolve })
|
|
451
474
|
: metadata.graphProps;
|
|
452
475
|
|
|
453
|
-
|
|
476
|
+
// TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
|
|
477
|
+
// e.g., create new collection with no name and rename it.
|
|
478
|
+
const label = (object as any).name ||
|
|
479
|
+
Obj.getLabel(object) ||
|
|
454
480
|
// TODO(wittjosiah): Remove metadata labels.
|
|
455
481
|
metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];
|
|
456
482
|
|
|
483
|
+
const selectable =
|
|
484
|
+
(!Obj.instanceOf(DataType.StoredSchema, object) &&
|
|
485
|
+
!Obj.instanceOf(DataType.QueryCollection, object) &&
|
|
486
|
+
!Obj.instanceOf(DataType.Collection, object)) ||
|
|
487
|
+
(navigable && Obj.instanceOf(DataType.Collection, object));
|
|
488
|
+
|
|
457
489
|
return {
|
|
458
490
|
id: fullyQualifiedId(object),
|
|
459
491
|
type,
|
|
@@ -462,9 +494,11 @@ export const createObjectNode = ({
|
|
|
462
494
|
properties: {
|
|
463
495
|
label,
|
|
464
496
|
icon: metadata.icon ?? 'ph--placeholder--regular',
|
|
497
|
+
disposition,
|
|
465
498
|
testId: 'spacePlugin.object',
|
|
466
499
|
persistenceClass: 'echo',
|
|
467
500
|
persistenceKey: space?.id,
|
|
501
|
+
selectable,
|
|
468
502
|
canDrop: (source: TreeData) => {
|
|
469
503
|
return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
|
|
470
504
|
},
|
|
@@ -497,7 +531,7 @@ export const constructObjectActions = ({
|
|
|
497
531
|
|
|
498
532
|
const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : undefined;
|
|
499
533
|
const matchingObjectForm = queryCollection
|
|
500
|
-
? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query
|
|
534
|
+
? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query))
|
|
501
535
|
: undefined;
|
|
502
536
|
|
|
503
537
|
const actions: NodeArg<ActionData>[] = [
|
|
@@ -510,7 +544,7 @@ export const constructObjectActions = ({
|
|
|
510
544
|
await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));
|
|
511
545
|
},
|
|
512
546
|
properties: {
|
|
513
|
-
label: ['create object in collection label', { ns:
|
|
547
|
+
label: ['create object in collection label', { ns: meta.id }],
|
|
514
548
|
icon: 'ph--plus--regular',
|
|
515
549
|
disposition: 'list-item-primary',
|
|
516
550
|
testId: 'spacePlugin.createObject',
|
|
@@ -518,6 +552,29 @@ export const constructObjectActions = ({
|
|
|
518
552
|
},
|
|
519
553
|
]
|
|
520
554
|
: []),
|
|
555
|
+
...(Obj.instanceOf(DataType.StoredSchema, object)
|
|
556
|
+
? [
|
|
557
|
+
{
|
|
558
|
+
id: getId(SpaceAction.AddObject._tag),
|
|
559
|
+
type: ACTION_TYPE,
|
|
560
|
+
data: async () => {
|
|
561
|
+
await dispatch(
|
|
562
|
+
createIntent(SpaceAction.OpenCreateObject, {
|
|
563
|
+
target: space,
|
|
564
|
+
views: true,
|
|
565
|
+
initialFormValues: { typename: object.typename },
|
|
566
|
+
}),
|
|
567
|
+
);
|
|
568
|
+
},
|
|
569
|
+
properties: {
|
|
570
|
+
label: ['add view to schema label', { ns: Type.getTypename(DataType.StoredSchema) }],
|
|
571
|
+
icon: 'ph--plus--regular',
|
|
572
|
+
disposition: 'list-item-primary',
|
|
573
|
+
testId: 'spacePlugin.addViewToSchema',
|
|
574
|
+
},
|
|
575
|
+
},
|
|
576
|
+
]
|
|
577
|
+
: []),
|
|
521
578
|
...(matchingObjectForm
|
|
522
579
|
? [
|
|
523
580
|
{
|
|
@@ -528,12 +585,12 @@ export const constructObjectActions = ({
|
|
|
528
585
|
await dispatch(
|
|
529
586
|
createIntent(SpaceAction.OpenCreateObject, {
|
|
530
587
|
target: space,
|
|
531
|
-
typename: queryCollection
|
|
588
|
+
typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : undefined,
|
|
532
589
|
}),
|
|
533
590
|
);
|
|
534
591
|
} else {
|
|
535
592
|
await dispatch(
|
|
536
|
-
pipe(
|
|
593
|
+
Function.pipe(
|
|
537
594
|
matchingObjectForm.getIntent({}, { space }),
|
|
538
595
|
chain(SpaceAction.AddObject, { target: space, hidden: true }),
|
|
539
596
|
chain(LayoutAction.Open, { part: 'main' }),
|
|
@@ -542,7 +599,7 @@ export const constructObjectActions = ({
|
|
|
542
599
|
}
|
|
543
600
|
},
|
|
544
601
|
properties: {
|
|
545
|
-
label: ['create object in smart collection label', { ns:
|
|
602
|
+
label: ['create object in smart collection label', { ns: meta.id }],
|
|
546
603
|
icon: 'ph--plus--regular',
|
|
547
604
|
disposition: 'list-item-primary',
|
|
548
605
|
testId: 'spacePlugin.createObject',
|
|
@@ -599,7 +656,7 @@ export const constructObjectActions = ({
|
|
|
599
656
|
await navigator.clipboard.writeText(url);
|
|
600
657
|
},
|
|
601
658
|
properties: {
|
|
602
|
-
label: ['copy link label', { ns:
|
|
659
|
+
label: ['copy link label', { ns: meta.id }],
|
|
603
660
|
icon: 'ph--link--regular',
|
|
604
661
|
disposition: 'list-item',
|
|
605
662
|
testId: 'spacePlugin.copyLink',
|
|
@@ -615,7 +672,7 @@ export const constructObjectActions = ({
|
|
|
615
672
|
await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));
|
|
616
673
|
},
|
|
617
674
|
properties: {
|
|
618
|
-
label: ['expose object label', { ns:
|
|
675
|
+
label: ['expose object label', { ns: meta.id }],
|
|
619
676
|
icon: 'ph--eye--regular',
|
|
620
677
|
disposition: 'heading-list-item',
|
|
621
678
|
testId: 'spacePlugin.exposeObject',
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CollectionMain.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { baseSurface, descriptionMessage, mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from '../meta';\n\nexport const CollectionMain = ({ collection }: { collection: DataType.Collection }) => {\n const { t } = useTranslation(SPACE_PLUGIN);\n\n return (\n <div\n role='none'\n className={mx(baseSurface, 'min-bs-screen is-full flex items-center justify-center p-8')}\n data-testid='composer.firstRunMessage'\n >\n <p\n role='alert'\n className={mx(descriptionMessage, 'rounded-md p-8 font-normal text-lg max-is-[24rem] break-words')}\n >\n {collection.name ?? t('unnamed collection label')}\n </p>\n </div>\n );\n};\n\nexport default CollectionMain;\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,aAAaC,oBAAoBC,UAAU;AAK7C,IAAMC,iBAAiB,CAAC,EAAEC,WAAU,MAAuC;;;AAChF,UAAM,EAAEC,EAAC,IAAKC,eAAeC,YAAAA;AAE7B,WACE,sBAAA,cAACC,OAAAA;MACCC,MAAK;MACLC,WAAWC,GAAGC,aAAa,4DAAA;MAC3BC,eAAY;OAEZ,sBAAA,cAACC,KAAAA;MACCL,MAAK;MACLC,WAAWC,GAAGI,oBAAoB,+DAAA;OAEjCX,WAAWY,QAAQX,EAAE,0BAAA,CAAA,CAAA;;;;AAI9B;AAEA,IAAA,yBAAeF;",
|
|
6
|
-
"names": ["React", "useTranslation", "baseSurface", "descriptionMessage", "mx", "CollectionMain", "collection", "t", "useTranslation", "SPACE_PLUGIN", "div", "role", "className", "mx", "baseSurface", "data-testid", "p", "descriptionMessage", "name"]
|
|
7
|
-
}
|