@dxos/plugin-space 0.8.4-main.84f28bd → 0.8.4-main.ae835ea
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-HTKSZCRR.mjs +31 -0
- package/dist/lib/browser/CollectionMain-HTKSZCRR.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-5B45G744.mjs +145 -0
- package/dist/lib/browser/ObjectDetailsPanel-5B45G744.mjs.map +7 -0
- package/dist/lib/browser/ObjectSettings-UFTKBP7B.mjs +146 -0
- package/dist/lib/browser/ObjectSettings-UFTKBP7B.mjs.map +7 -0
- package/dist/lib/browser/RecordMain-BCSXTSEB.mjs +99 -0
- package/dist/lib/browser/RecordMain-BCSXTSEB.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-QJFO4ANM.mjs +520 -0
- package/dist/lib/browser/app-graph-builder-QJFO4ANM.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.mjs → app-graph-serializer-3R5NVV7U.mjs} +14 -14
- package/dist/lib/browser/app-graph-serializer-3R5NVV7U.mjs.map +7 -0
- package/dist/lib/browser/chunk-2NS3VPSY.mjs +20 -0
- package/dist/lib/browser/chunk-2NS3VPSY.mjs.map +7 -0
- package/dist/lib/browser/{chunk-6VLSHG4A.mjs → chunk-4V4JNJ33.mjs} +80 -10
- package/dist/lib/browser/chunk-4V4JNJ33.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GVTXQCIW.mjs → chunk-ENBBJSNE.mjs} +482 -448
- package/dist/lib/browser/chunk-ENBBJSNE.mjs.map +7 -0
- package/dist/lib/browser/chunk-HS2VD6DN.mjs +166 -0
- package/dist/lib/browser/chunk-HS2VD6DN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-WBSEOLEM.mjs → chunk-OWNBEI5J.mjs} +221 -57
- package/dist/lib/browser/chunk-OWNBEI5J.mjs.map +7 -0
- package/dist/lib/browser/{chunk-S6NY637J.mjs → chunk-SLDQWMQ2.mjs} +77 -12
- package/dist/lib/browser/chunk-SLDQWMQ2.mjs.map +7 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
- package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
- package/dist/lib/browser/chunk-WJXU4GKV.mjs +19 -0
- package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-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 +109 -40
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-WK5WYFH3.mjs → intent-resolver-MBVOLXFQ.mjs} +194 -32
- package/dist/lib/browser/intent-resolver-MBVOLXFQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-7S6FIC5G.mjs → react-root-NKEKCEYM.mjs} +11 -11
- package/dist/lib/browser/react-root-NKEKCEYM.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-6C3YJNDK.mjs → react-surface-PYSN2MBY.mjs} +78 -77
- package/dist/lib/browser/react-surface-PYSN2MBY.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-K3B3OAH4.mjs → schema-defs-DWYK7TYW.mjs} +5 -5
- package/dist/lib/browser/schema-defs-DWYK7TYW.mjs.map +7 -0
- package/dist/lib/browser/{settings-XNWYRWNM.mjs → settings-ZUCC3ZLB.mjs} +5 -5
- package/dist/lib/browser/{settings-XNWYRWNM.mjs.map → settings-ZUCC3ZLB.mjs.map} +1 -1
- package/dist/lib/browser/{spaces-ready-K7NSNBHM.mjs → spaces-ready-HTWWJHLR.mjs} +18 -16
- package/dist/lib/browser/spaces-ready-HTWWJHLR.mjs.map +7 -0
- package/dist/lib/browser/{state-522XTUR4.mjs → state-ISVAKMO7.mjs} +7 -7
- package/dist/lib/browser/state-ISVAKMO7.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/CollectionMain-OUHGG6OC.mjs +32 -0
- package/dist/lib/node-esm/CollectionMain-OUHGG6OC.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-4SDHQVQU.mjs +146 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-4SDHQVQU.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectSettings-EU6F43RP.mjs +147 -0
- package/dist/lib/node-esm/ObjectSettings-EU6F43RP.mjs.map +7 -0
- package/dist/lib/node-esm/RecordMain-SD76DGOR.mjs +100 -0
- package/dist/lib/node-esm/RecordMain-SD76DGOR.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-TO72W6MI.mjs → app-graph-builder-B23W62HY.mjs} +215 -58
- package/dist/lib/node-esm/app-graph-builder-B23W62HY.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.mjs → app-graph-serializer-3Z3EXEEF.mjs} +14 -14
- package/dist/lib/node-esm/app-graph-serializer-3Z3EXEEF.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-SXD6T2N4.mjs → chunk-G4PDWB7G.mjs} +80 -10
- package/dist/lib/node-esm/chunk-G4PDWB7G.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-OUBADVJE.mjs → chunk-KKPCCA5O.mjs} +482 -448
- package/dist/lib/node-esm/chunk-KKPCCA5O.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PM4ZIGKC.mjs +167 -0
- package/dist/lib/node-esm/chunk-PM4ZIGKC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HJJHLWKY.mjs → chunk-XEVIWD3O.mjs} +221 -57
- package/dist/lib/node-esm/chunk-XEVIWD3O.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-2THX6G4C.mjs → chunk-YFQXFQGT.mjs} +77 -12
- package/dist/lib/node-esm/chunk-YFQXFQGT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-ZLMFLI7G.mjs +21 -0
- package/dist/lib/node-esm/chunk-ZLMFLI7G.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 +109 -40
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-HSR27ME4.mjs → intent-resolver-IWI47NTW.mjs} +194 -32
- package/dist/lib/node-esm/intent-resolver-IWI47NTW.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-HUK3ANLV.mjs → react-root-LX7SIG6M.mjs} +11 -11
- package/dist/lib/node-esm/react-root-LX7SIG6M.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-AGAWX7DD.mjs → react-surface-6SVGOZNJ.mjs} +78 -77
- package/dist/lib/node-esm/react-surface-6SVGOZNJ.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-4MCDG4DV.mjs → schema-defs-EOG2UPJU.mjs} +5 -5
- package/dist/lib/node-esm/schema-defs-EOG2UPJU.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-YGKHGFPH.mjs → settings-ZDJNLFGW.mjs} +5 -5
- package/dist/lib/node-esm/{settings-YGKHGFPH.mjs.map → settings-ZDJNLFGW.mjs.map} +1 -1
- package/dist/lib/node-esm/{spaces-ready-UM2P3DCR.mjs → spaces-ready-VUGYPF4L.mjs} +18 -16
- package/dist/lib/node-esm/spaces-ready-VUGYPF4L.mjs.map +7 -0
- package/dist/lib/node-esm/{state-C4IOXPZP.mjs → state-QZ4Q6ZRL.mjs} +7 -7
- package/dist/lib/node-esm/state-QZ4Q6ZRL.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 +12 -5
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +11 -12
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts +2 -2
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +1 -1
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionMain.d.ts +1 -0
- package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +5 -4
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1664 -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 +1664 -5
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.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 +2 -2
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1500 -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/PersistenceStatus.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 +8 -0
- package/dist/types/src/components/RecordMain.d.ts.map +1 -0
- package/dist/types/src/components/RecordMain.stories.d.ts +1667 -0
- package/dist/types/src/components/RecordMain.stories.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 +1492 -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 +1497 -4
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1498 -5
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
- package/dist/types/src/components/ViewEditor.d.ts +8 -0
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +13 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -0
- 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 +1342 -11
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +128 -66
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +37 -7
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +63 -60
- package/src/SpacePlugin.ts +201 -139
- package/src/capabilities/app-graph-builder.ts +265 -47
- package/src/capabilities/app-graph-serializer.ts +7 -7
- package/src/capabilities/capabilities.ts +20 -9
- package/src/capabilities/identity-created.ts +1 -1
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/intent-resolver.ts +147 -21
- package/src/capabilities/react-root.tsx +4 -3
- package/src/capabilities/react-surface.tsx +79 -99
- 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 +7 -9
- package/src/components/CollectionMain.tsx +4 -2
- package/src/components/CollectionSection.tsx +2 -2
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -10
- package/src/components/CreateDialog/CreateObjectDialog.tsx +51 -36
- 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 +18 -17
- package/src/components/MenuFooter.tsx +4 -5
- 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 +86 -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 +7 -8
- package/src/components/PopoverRenameObject.tsx +10 -16
- package/src/components/PopoverRenameSpace.tsx +4 -4
- package/src/components/RecordMain.stories.tsx +116 -0
- package/src/components/RecordMain.tsx +83 -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 +9 -9
- package/src/components/SyncStatus/SyncStatus.tsx +98 -7
- package/src/components/SyncStatus/status.ts +4 -4
- package/src/components/ViewEditor.tsx +58 -0
- package/src/components/index.ts +8 -2
- package/src/events.ts +7 -6
- 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 +6 -3
- package/src/translations.ts +77 -5
- package/src/types/types.ts +78 -16
- package/src/util.tsx +215 -57
- package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs +0 -363
- package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-UKYMBX4O.mjs.map +0 -7
- package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +0 -7
- package/dist/lib/browser/chunk-C7KGJTAL.mjs +0 -18
- package/dist/lib/browser/chunk-C7KGJTAL.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-GVTXQCIW.mjs.map +0 -7
- package/dist/lib/browser/chunk-S6NY637J.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-WBSEOLEM.mjs.map +0 -7
- package/dist/lib/browser/chunk-XXIPJLJF.mjs +0 -19
- package/dist/lib/browser/chunk-XXIPJLJF.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +0 -7
- package/dist/lib/browser/react-root-7S6FIC5G.mjs.map +0 -7
- package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-K3B3OAH4.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-K7NSNBHM.mjs.map +0 -7
- package/dist/lib/browser/state-522XTUR4.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-LA3IZDXJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2THX6G4C.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-72QMMRKC.mjs +0 -19
- package/dist/lib/node-esm/chunk-72QMMRKC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AT7LGFER.mjs +0 -20
- package/dist/lib/node-esm/chunk-AT7LGFER.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HJJHLWKY.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-OUBADVJE.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/chunk-SXD6T2N4.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-HUK3ANLV.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-4MCDG4DV.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-UM2P3DCR.mjs.map +0 -7
- package/dist/lib/node-esm/state-C4IOXPZP.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/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
|
@@ -5,13 +5,19 @@
|
|
|
5
5
|
import React, { useEffect, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { StatusBar } from '@dxos/plugin-status-bar';
|
|
8
|
+
import { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';
|
|
9
|
+
import type { QueryEdgeStatusResponse } from '@dxos/protocols/proto/dxos/client/services';
|
|
8
10
|
import { useClient } from '@dxos/react-client';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
+
import { useStream } from '@dxos/react-client/devtools';
|
|
12
|
+
import { type SpaceSyncStateMap, getSyncSummary, useSyncState } from '@dxos/react-client/echo';
|
|
13
|
+
import { Icon, Popover, useTranslation } from '@dxos/react-ui';
|
|
14
|
+
import { mx } from '@dxos/react-ui-theme';
|
|
15
|
+
import { Unit } from '@dxos/util';
|
|
16
|
+
|
|
17
|
+
import { meta } from '../../meta';
|
|
11
18
|
|
|
12
19
|
import { createClientSaveTracker } from './save-tracker';
|
|
13
20
|
import { getIcon, getStatus } from './status';
|
|
14
|
-
import { SPACE_PLUGIN } from '../../meta';
|
|
15
21
|
|
|
16
22
|
const SYNC_STALLED_TIMEOUT = 5_000;
|
|
17
23
|
|
|
@@ -29,8 +35,8 @@ export const SyncStatus = () => {
|
|
|
29
35
|
return <SyncStatusIndicator state={state} saved={saved} />;
|
|
30
36
|
};
|
|
31
37
|
|
|
32
|
-
export const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap; saved:
|
|
33
|
-
const { t } = useTranslation(
|
|
38
|
+
export const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap; saved: boolean }) => {
|
|
39
|
+
const { t } = useTranslation(meta.id);
|
|
34
40
|
const summary = getSyncSummary(state);
|
|
35
41
|
const offline = Object.values(state).length === 0;
|
|
36
42
|
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
@@ -52,7 +58,92 @@ export const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap
|
|
|
52
58
|
}, [offline, needsToUpload, needsToDownload]);
|
|
53
59
|
|
|
54
60
|
const title = t(`${status} label`);
|
|
55
|
-
const icon = <Icon icon={getIcon(status)}
|
|
61
|
+
const icon = <Icon icon={getIcon(status)} classNames={classNames} />;
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<Popover.Root>
|
|
65
|
+
<Popover.Trigger asChild>
|
|
66
|
+
<StatusBar.Item title={title}>{icon}</StatusBar.Item>
|
|
67
|
+
</Popover.Trigger>
|
|
68
|
+
<Popover.Portal>
|
|
69
|
+
<Popover.Content>
|
|
70
|
+
<EdgeConnectionPopover />
|
|
71
|
+
<Popover.Arrow />
|
|
72
|
+
</Popover.Content>
|
|
73
|
+
</Popover.Portal>
|
|
74
|
+
</Popover.Root>
|
|
75
|
+
);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const useEdgeStatus = (): EdgeStatus | undefined => {
|
|
79
|
+
const client = useClient();
|
|
80
|
+
const { status } = useStream(
|
|
81
|
+
() => client.services.services.EdgeAgentService!.queryEdgeStatus(),
|
|
82
|
+
{} as QueryEdgeStatusResponse,
|
|
83
|
+
);
|
|
84
|
+
return status;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const EdgeConnectionPopover = () => {
|
|
88
|
+
const status = useEdgeStatus();
|
|
89
|
+
const { t } = useTranslation(meta.id);
|
|
90
|
+
|
|
91
|
+
const isConnected = status?.state === EdgeStatus.ConnectionState.CONNECTED;
|
|
92
|
+
|
|
93
|
+
return (
|
|
94
|
+
<div className='min-is-[240px] p-2'>
|
|
95
|
+
{/* Connection Status Header */}
|
|
96
|
+
<div className='flex items-center gap-2 mbe-2'>
|
|
97
|
+
<Icon
|
|
98
|
+
icon={isConnected ? 'ph--check-circle--regular' : 'ph--warning-circle--regular'}
|
|
99
|
+
classNames={mx(isConnected ? 'text-successText' : 'text-errorText animate-pulse')}
|
|
100
|
+
/>
|
|
101
|
+
<span className='font-medium text-sm'>
|
|
102
|
+
{isConnected ? t('sync edge connected label') : t('sync edge disconnected label')}
|
|
103
|
+
</span>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
{/* Connection Details */}
|
|
107
|
+
{status?.state === EdgeStatus.ConnectionState.NOT_CONNECTED && (
|
|
108
|
+
<div className='flex items-center gap-2 text-sm text-description'>
|
|
109
|
+
<Icon icon='ph--cloud-x--regular' />
|
|
110
|
+
<span>{t('sync no connection label')}</span>
|
|
111
|
+
</div>
|
|
112
|
+
)}
|
|
113
|
+
|
|
114
|
+
{status?.state === EdgeStatus.ConnectionState.CONNECTED && (
|
|
115
|
+
<div className='space-y-2'>
|
|
116
|
+
{/* Latency */}
|
|
117
|
+
<div className='flex items-center justify-between'>
|
|
118
|
+
<div className='flex items-center gap-2 text-sm text-description'>
|
|
119
|
+
<Icon icon='ph--timer--regular' />
|
|
120
|
+
<span>{t('sync latency label')}</span>
|
|
121
|
+
</div>
|
|
122
|
+
<span className='text-sm font-mono text-subdued'>
|
|
123
|
+
{status.rtt.toFixed(0)}
|
|
124
|
+
ms
|
|
125
|
+
</span>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
{/* Upload Speed */}
|
|
129
|
+
<div className='flex items-center justify-between'>
|
|
130
|
+
<div className='flex items-center gap-2 text-sm text-description'>
|
|
131
|
+
<Icon icon='ph--arrow-up--regular' />
|
|
132
|
+
<span>{t('sync upload label')}</span>
|
|
133
|
+
</div>
|
|
134
|
+
<span className='text-sm font-mono text-subdued'>{Unit.Kilobyte(status.rateBytesUp, 0)}/s</span>
|
|
135
|
+
</div>
|
|
56
136
|
|
|
57
|
-
|
|
137
|
+
{/* Download Speed */}
|
|
138
|
+
<div className='flex items-center justify-between'>
|
|
139
|
+
<div className='flex items-center gap-2 text-sm text-description'>
|
|
140
|
+
<Icon icon='ph--arrow-down--regular' />
|
|
141
|
+
<span>{t('sync download label')}</span>
|
|
142
|
+
</div>
|
|
143
|
+
<span className='text-sm font-mono text-subdued'>{Unit.Kilobyte(status.rateBytesDown, 0)}/s</span>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
)}
|
|
147
|
+
</div>
|
|
148
|
+
);
|
|
58
149
|
};
|
|
@@ -10,10 +10,10 @@ export const getStatus = ({
|
|
|
10
10
|
needsToUpload,
|
|
11
11
|
needsToDownload,
|
|
12
12
|
}: {
|
|
13
|
-
offline:
|
|
14
|
-
saved:
|
|
15
|
-
needsToUpload:
|
|
16
|
-
needsToDownload:
|
|
13
|
+
offline: boolean;
|
|
14
|
+
saved: boolean;
|
|
15
|
+
needsToUpload: boolean;
|
|
16
|
+
needsToDownload: boolean;
|
|
17
17
|
}): Status => {
|
|
18
18
|
if (!saved) {
|
|
19
19
|
return 'saving locally';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import React, { useCallback } from 'react';
|
|
6
|
+
|
|
7
|
+
import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
|
|
8
|
+
import { type QueryAST, Type } from '@dxos/echo';
|
|
9
|
+
import { invariant } from '@dxos/invariant';
|
|
10
|
+
import { useClient } from '@dxos/react-client';
|
|
11
|
+
import { getSpace, useSchema } from '@dxos/react-client/echo';
|
|
12
|
+
import { ViewEditor as NaturalViewEditor } from '@dxos/react-ui-form';
|
|
13
|
+
import { type DataType, getTypenameFromQuery } from '@dxos/schema';
|
|
14
|
+
|
|
15
|
+
import { SpaceAction } from '../types';
|
|
16
|
+
|
|
17
|
+
type ViewEditorProps = { view: DataType.View };
|
|
18
|
+
|
|
19
|
+
export const ViewEditor = ({ view }: ViewEditorProps) => {
|
|
20
|
+
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
21
|
+
const client = useClient();
|
|
22
|
+
const space = getSpace(view);
|
|
23
|
+
const typename = view.query ? getTypenameFromQuery(view.query.ast) : undefined;
|
|
24
|
+
const schema = useSchema(client, space, typename);
|
|
25
|
+
|
|
26
|
+
const handleUpdateQuery = useCallback(
|
|
27
|
+
(newQuery: QueryAST.Query) => {
|
|
28
|
+
invariant(schema);
|
|
29
|
+
invariant(Type.isMutable(schema));
|
|
30
|
+
|
|
31
|
+
view.query.ast = newQuery;
|
|
32
|
+
schema.updateTypename(getTypenameFromQuery(newQuery));
|
|
33
|
+
},
|
|
34
|
+
[view, schema],
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const handleDelete = useCallback(
|
|
38
|
+
(fieldId: string) => {
|
|
39
|
+
void dispatch(createIntent(SpaceAction.DeleteField, { view, fieldId }));
|
|
40
|
+
},
|
|
41
|
+
[dispatch, view],
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
if (!space || !schema) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<NaturalViewEditor
|
|
50
|
+
registry={space.db.schemaRegistry}
|
|
51
|
+
schema={schema}
|
|
52
|
+
view={view}
|
|
53
|
+
onQueryChanged={Type.isMutable(schema) ? handleUpdateQuery : undefined}
|
|
54
|
+
onDelete={Type.isMutable(schema) ? handleDelete : undefined}
|
|
55
|
+
outerSpacing={false}
|
|
56
|
+
/>
|
|
57
|
+
);
|
|
58
|
+
};
|
package/src/components/index.ts
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { lazy } from 'react';
|
|
6
|
+
|
|
5
7
|
export * from './AwaitingObject';
|
|
6
8
|
export * from './CreateDialog';
|
|
7
|
-
export * from './CollectionMain';
|
|
8
9
|
export * from './CollectionSection';
|
|
9
10
|
export * from './JoinDialog';
|
|
10
11
|
export * from './MembersContainer';
|
|
11
12
|
export * from './MenuFooter';
|
|
12
|
-
export * from './ObjectSettings';
|
|
13
13
|
export * from './PersistenceStatus';
|
|
14
14
|
export * from './PopoverRenameObject';
|
|
15
15
|
export * from './PopoverRenameSpace';
|
|
@@ -18,3 +18,9 @@ export * from './SpacePresence';
|
|
|
18
18
|
export * from './SpacePluginSettings';
|
|
19
19
|
export * from './SpaceSettings';
|
|
20
20
|
export * from './SyncStatus';
|
|
21
|
+
export * from './ViewEditor';
|
|
22
|
+
|
|
23
|
+
export const CollectionMain = lazy(() => import('./CollectionMain'));
|
|
24
|
+
export const ObjectDetailsPanel = lazy(() => import('./ObjectDetailsPanel'));
|
|
25
|
+
export const ObjectSettingsContainer = lazy(() => import('./ObjectSettings'));
|
|
26
|
+
export const RecordMain = lazy(() => import('./RecordMain'));
|
package/src/events.ts
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Events, defineEvent } from '@dxos/app-framework';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { meta } from './meta';
|
|
8
8
|
|
|
9
9
|
export namespace SpaceEvents {
|
|
10
|
-
export const StateReady = Events.createStateEvent(`${
|
|
11
|
-
export const SetupSettingsPanel = defineEvent(`${
|
|
12
|
-
export const DefaultSpaceReady = defineEvent(`${
|
|
13
|
-
export const SpaceCreated = defineEvent(`${
|
|
10
|
+
export const StateReady = Events.createStateEvent(`${meta.id}/event/state-ready`);
|
|
11
|
+
export const SetupSettingsPanel = defineEvent(`${meta.id}/event/setup-settings-panel`);
|
|
12
|
+
export const DefaultSpaceReady = defineEvent(`${meta.id}/event/default-space-ready`);
|
|
13
|
+
export const SpaceCreated = defineEvent(`${meta.id}/event/space-created`);
|
|
14
|
+
export const SchemaAdded = defineEvent(`${meta.id}/event/schema-added`);
|
|
14
15
|
}
|
package/src/hooks/index.ts
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities,
|
|
5
|
+
import { Capabilities, type PluginContext, useLayout } from '@dxos/app-framework';
|
|
6
6
|
import { ClientCapabilities } from '@dxos/plugin-client';
|
|
7
7
|
import { parseId, useSpace } from '@dxos/react-client/echo';
|
|
8
8
|
|
|
9
9
|
export const getActiveSpace = (context: PluginContext) => {
|
|
10
|
-
const layout = context.getCapability(Capabilities.Layout);
|
|
11
10
|
const client = context.getCapability(ClientCapabilities.Client);
|
|
11
|
+
const layout = context.getCapability(Capabilities.Layout);
|
|
12
12
|
const { spaceId } = parseId(layout.workspace);
|
|
13
13
|
return spaceId ? client.spaces.get(spaceId) : undefined;
|
|
14
14
|
};
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import type * as Schema from 'effect/Schema';
|
|
6
6
|
import React, { useCallback } from 'react';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { Surface, isSurfaceAvailable, usePluginManager } from '@dxos/app-framework';
|
|
9
9
|
import { type InputProps } from '@dxos/react-ui-form';
|
|
10
10
|
|
|
11
11
|
// TODO(ZaymonFC): Move this if you find yourself needing it elsewhere.
|
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
|
@@ -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,6 +2,8 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import { Type } from '@dxos/echo';
|
|
6
|
+
import { StoredSchema } from '@dxos/echo/internal';
|
|
5
7
|
import { type Resource } from '@dxos/react-ui';
|
|
6
8
|
import { DataType } from '@dxos/schema';
|
|
7
9
|
|
|
@@ -17,13 +19,70 @@ export const translations = [
|
|
|
17
19
|
'typename label_one': 'Collection',
|
|
18
20
|
'typename label_other': 'Collections',
|
|
19
21
|
'object name placeholder': 'New collection',
|
|
22
|
+
'rename object label': 'Rename collection',
|
|
23
|
+
'delete object label': 'Delete collection',
|
|
20
24
|
},
|
|
21
|
-
[DataType.QueryCollection
|
|
25
|
+
[Type.getTypename(DataType.QueryCollection)]: {
|
|
22
26
|
'typename label': 'Smart Collection',
|
|
23
27
|
'typename label_zero': 'Smart Collections',
|
|
24
28
|
'typename label_one': 'Smart Collection',
|
|
25
29
|
'typename label_other': 'Smart Collections',
|
|
26
30
|
'object name placeholder': 'New smart collection',
|
|
31
|
+
'rename object label': 'Rename smart collection',
|
|
32
|
+
'delete object label': 'Delete smart collection',
|
|
33
|
+
},
|
|
34
|
+
[StoredSchema.typename]: {
|
|
35
|
+
'typename label': 'Record',
|
|
36
|
+
'typename label_zero': 'Records',
|
|
37
|
+
'typename label_one': 'Record',
|
|
38
|
+
'typename label_other': 'Records',
|
|
39
|
+
'object name placeholder': 'New record type',
|
|
40
|
+
'rename object label': 'Rename record type',
|
|
41
|
+
'delete object label': 'Delete record type',
|
|
42
|
+
},
|
|
43
|
+
[Type.getTypename(DataType.View)]: {
|
|
44
|
+
'typename label': 'View',
|
|
45
|
+
'typename label_zero': 'Views',
|
|
46
|
+
'typename label_one': 'View',
|
|
47
|
+
'typename label_other': 'Views',
|
|
48
|
+
'object name placeholder': 'New view',
|
|
49
|
+
'rename object label': 'Rename view',
|
|
50
|
+
'delete object label': 'Delete view',
|
|
51
|
+
},
|
|
52
|
+
[DataType.Event.typename]: {
|
|
53
|
+
'typename label': 'Event',
|
|
54
|
+
'typename label_zero': 'Events',
|
|
55
|
+
'typename label_one': 'Event',
|
|
56
|
+
'typename label_other': 'Events',
|
|
57
|
+
'object name placeholder': 'New event',
|
|
58
|
+
},
|
|
59
|
+
[DataType.Organization.typename]: {
|
|
60
|
+
'typename label': 'Organization',
|
|
61
|
+
'typename label_zero': 'Organizations',
|
|
62
|
+
'typename label_one': 'Organization',
|
|
63
|
+
'typename label_other': 'Organizations',
|
|
64
|
+
'object name placeholder': 'New organization',
|
|
65
|
+
},
|
|
66
|
+
[DataType.Person.typename]: {
|
|
67
|
+
'typename label': 'Person',
|
|
68
|
+
'typename label_zero': 'People',
|
|
69
|
+
'typename label_one': 'Person',
|
|
70
|
+
'typename label_other': 'People',
|
|
71
|
+
'object name placeholder': 'New person',
|
|
72
|
+
},
|
|
73
|
+
[Type.getTypename(DataType.Project)]: {
|
|
74
|
+
'typename label': 'Project',
|
|
75
|
+
'typename label_zero': 'Projects',
|
|
76
|
+
'typename label_one': 'Project',
|
|
77
|
+
'typename label_other': 'Projects',
|
|
78
|
+
'object name placeholder': 'New project',
|
|
79
|
+
},
|
|
80
|
+
[DataType.Task.typename]: {
|
|
81
|
+
'typename label': 'Task',
|
|
82
|
+
'typename label_zero': 'Tasks',
|
|
83
|
+
'typename label_one': 'Task',
|
|
84
|
+
'typename label_other': 'Tasks',
|
|
85
|
+
'object name placeholder': 'New task',
|
|
27
86
|
},
|
|
28
87
|
[meta.id]: {
|
|
29
88
|
'plugin name': 'Spaces',
|
|
@@ -131,10 +190,16 @@ export const translations = [
|
|
|
131
190
|
'creating in collection label': 'In Collection',
|
|
132
191
|
'clear input label': 'Clear',
|
|
133
192
|
'expose object label': 'Expose in navtree',
|
|
193
|
+
'add tag label': 'Add tag',
|
|
134
194
|
'advanced settings label': 'Advanced',
|
|
135
195
|
'foreign keys': 'Foreign Keys',
|
|
136
196
|
'add key': 'Add Key',
|
|
137
197
|
'open space settings label': 'Open settings',
|
|
198
|
+
'related objects label': 'Related',
|
|
199
|
+
|
|
200
|
+
'row details no selection label': 'No objects selected',
|
|
201
|
+
'companion selected objects label': 'Selected',
|
|
202
|
+
'field deleted label': 'Field deleted',
|
|
138
203
|
|
|
139
204
|
'members panel label': 'Members',
|
|
140
205
|
'members verbose label': 'Manage space members',
|
|
@@ -152,10 +217,10 @@ export const translations = [
|
|
|
152
217
|
'space settings properties label': 'General settings',
|
|
153
218
|
'space properties settings verbose label': 'Manage space properties',
|
|
154
219
|
'space properties settings description': 'You can configure how this space is displayed in the app here.',
|
|
155
|
-
'space settings schema label': '
|
|
156
|
-
'schema verbose label': 'Manage
|
|
157
|
-
'schema description': 'You can manage all of the
|
|
158
|
-
'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',
|
|
159
224
|
'display name input placeholder': 'Space name',
|
|
160
225
|
'display name description': 'Name of the space as it appears in the app.',
|
|
161
226
|
'icon description': 'Icon used to represent the space in the app.',
|
|
@@ -166,6 +231,13 @@ export const translations = [
|
|
|
166
231
|
'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.',
|
|
167
232
|
'archive space label': 'Archive',
|
|
168
233
|
'unarchive space label': 'Unarchive',
|
|
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',
|
|
169
241
|
},
|
|
170
242
|
},
|
|
171
243
|
},
|
package/src/types/types.ts
CHANGED
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import * as Schema from 'effect/Schema';
|
|
6
6
|
|
|
7
7
|
import { type AnyIntentChain } from '@dxos/app-framework';
|
|
8
|
-
import {
|
|
9
|
-
import { type BaseObject,
|
|
8
|
+
import { type Obj, Type } from '@dxos/echo';
|
|
9
|
+
import { type BaseObject, EchoSchema, StoredSchema } from '@dxos/echo/internal';
|
|
10
10
|
import { type PublicKey } from '@dxos/react-client';
|
|
11
11
|
// TODO(wittjosiah): This pulls in full client.
|
|
12
12
|
import { EchoObjectSchema, ReactiveObjectSchema, type Space, SpaceSchema } from '@dxos/react-client/echo';
|
|
13
13
|
import { CancellableInvitationObservable, Invitation } from '@dxos/react-client/invitations';
|
|
14
|
-
import { DataType, TypenameAnnotationId } from '@dxos/schema';
|
|
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`, {
|
|
@@ -217,11 +217,72 @@ export namespace SpaceAction {
|
|
|
217
217
|
output: Schema.Boolean,
|
|
218
218
|
}) {}
|
|
219
219
|
|
|
220
|
+
export const StoredSchemaForm = Schema.Struct({
|
|
221
|
+
name: Schema.optional(Schema.String),
|
|
222
|
+
typename: Schema.optional(
|
|
223
|
+
Schema.String.annotations({
|
|
224
|
+
[TypenameAnnotationId]: ['unused-static'],
|
|
225
|
+
}),
|
|
226
|
+
),
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
export class UseStaticSchema extends Schema.TaggedClass<UseStaticSchema>()(`${SPACE_ACTION}/use-static-schema`, {
|
|
230
|
+
input: Schema.Struct({
|
|
231
|
+
space: SpaceSchema,
|
|
232
|
+
typename: Schema.String,
|
|
233
|
+
// TODO(wittjosiah): This is leaky.
|
|
234
|
+
show: Schema.optional(Schema.Boolean),
|
|
235
|
+
}),
|
|
236
|
+
output: Schema.Struct({}),
|
|
237
|
+
}) {}
|
|
238
|
+
|
|
239
|
+
export class AddSchema extends Schema.TaggedClass<AddSchema>()(`${SPACE_ACTION}/add-schema`, {
|
|
240
|
+
input: Schema.Struct({
|
|
241
|
+
space: SpaceSchema,
|
|
242
|
+
name: Schema.optional(Schema.String),
|
|
243
|
+
typename: Schema.optional(Schema.String),
|
|
244
|
+
// TODO(wittjosiah): Semantic version format.
|
|
245
|
+
version: Schema.optional(Schema.String),
|
|
246
|
+
// TODO(wittjosiah): Schema for schema?
|
|
247
|
+
schema: Schema.Any,
|
|
248
|
+
// TODO(wittjosiah): This is leaky.
|
|
249
|
+
show: Schema.optional(Schema.Boolean),
|
|
250
|
+
}),
|
|
251
|
+
output: Schema.Struct({
|
|
252
|
+
// TODO(wittjosiah): ObjectId.
|
|
253
|
+
id: Schema.String,
|
|
254
|
+
object: StoredSchema,
|
|
255
|
+
schema: Schema.instanceOf(EchoSchema),
|
|
256
|
+
}),
|
|
257
|
+
}) {}
|
|
258
|
+
|
|
259
|
+
export class DeleteField extends Schema.TaggedClass<DeleteField>()(`${SPACE_ACTION}/delete-field`, {
|
|
260
|
+
input: Schema.Struct({
|
|
261
|
+
view: DataType.View,
|
|
262
|
+
fieldId: Schema.String,
|
|
263
|
+
// TODO(wittjosiah): Separate fields for undo data?
|
|
264
|
+
deletionData: Schema.optional(
|
|
265
|
+
Schema.Struct({
|
|
266
|
+
field: FieldSchema,
|
|
267
|
+
// TODO(wittjosiah): This creates a type error.
|
|
268
|
+
// props: PropertySchema,
|
|
269
|
+
props: Schema.Any,
|
|
270
|
+
index: Schema.Number,
|
|
271
|
+
}),
|
|
272
|
+
),
|
|
273
|
+
}),
|
|
274
|
+
output: Schema.Void,
|
|
275
|
+
}) {}
|
|
276
|
+
|
|
220
277
|
export class OpenCreateObject extends Schema.TaggedClass<OpenCreateObject>()(`${SPACE_ACTION}/open-create-object`, {
|
|
221
278
|
input: Schema.Struct({
|
|
222
279
|
target: Schema.Union(SpaceSchema, DataType.Collection),
|
|
280
|
+
views: Schema.optional(Schema.Boolean),
|
|
223
281
|
typename: Schema.optional(Schema.String),
|
|
282
|
+
initialFormValues: Schema.optional(Schema.Any),
|
|
224
283
|
navigable: Schema.optional(Schema.Boolean),
|
|
284
|
+
// TODO(wittjosiah): This is a function, is there a better way to handle this?
|
|
285
|
+
onCreateObject: Schema.optional(Schema.Any),
|
|
225
286
|
}),
|
|
226
287
|
output: Schema.Void,
|
|
227
288
|
}) {}
|
|
@@ -233,6 +294,7 @@ export namespace SpaceAction {
|
|
|
233
294
|
hidden: Schema.optional(Schema.Boolean),
|
|
234
295
|
}),
|
|
235
296
|
output: Schema.Struct({
|
|
297
|
+
// TODO(wittjosiah): ObjectId.
|
|
236
298
|
id: Schema.String,
|
|
237
299
|
subject: Schema.Array(Schema.String),
|
|
238
300
|
object: EchoObjectSchema,
|
|
@@ -266,7 +328,8 @@ export namespace SpaceAction {
|
|
|
266
328
|
|
|
267
329
|
export class RemoveObjects extends Schema.TaggedClass<RemoveObjects>()(`${SPACE_ACTION}/remove-objects`, {
|
|
268
330
|
input: Schema.Struct({
|
|
269
|
-
|
|
331
|
+
// TODO(wittjosiah): Should be Schema.Union(Type.Obj, Type.Relation).
|
|
332
|
+
objects: Schema.Array(ReactiveObjectSchema),
|
|
270
333
|
target: Schema.optional(DataType.Collection),
|
|
271
334
|
deletionData: Schema.optional(DeletionData),
|
|
272
335
|
}),
|
|
@@ -309,11 +372,9 @@ export namespace CollectionAction {
|
|
|
309
372
|
|
|
310
373
|
export const QueryCollectionForm = Schema.Struct({
|
|
311
374
|
name: Schema.optional(Schema.String),
|
|
312
|
-
typename: Schema.
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}),
|
|
316
|
-
),
|
|
375
|
+
typename: Schema.String.annotations({
|
|
376
|
+
[TypenameAnnotationId]: ['object-form'],
|
|
377
|
+
}),
|
|
317
378
|
});
|
|
318
379
|
|
|
319
380
|
export class CreateQueryCollection extends Schema.TaggedClass<CreateQueryCollection>()(
|
|
@@ -321,7 +382,8 @@ export namespace CollectionAction {
|
|
|
321
382
|
{
|
|
322
383
|
input: QueryCollectionForm,
|
|
323
384
|
output: Schema.Struct({
|
|
324
|
-
|
|
385
|
+
// TODO(wittjosiah): Remove cast.
|
|
386
|
+
object: EchoObjectSchema, // DataType.QueryCollection,
|
|
325
387
|
}),
|
|
326
388
|
},
|
|
327
389
|
) {}
|