@dxos/plugin-space 0.8.3 → 0.8.4-main.1068cf700f
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/CollectionArticle-XXLUNK3F.mjs +127 -0
- package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs.map +7 -0
- package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs +148 -0
- package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs +143 -0
- package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs.map +7 -0
- package/dist/lib/browser/RecordArticle-36LDKFWF.mjs +108 -0
- package/dist/lib/browser/RecordArticle-36LDKFWF.mjs.map +7 -0
- package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs +530 -0
- package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs.map +7 -0
- package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs +85 -0
- package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs.map +7 -0
- package/dist/lib/browser/{chunk-4ZKSFDXM.mjs → chunk-7D63MVRS.mjs} +110 -41
- package/dist/lib/browser/chunk-7D63MVRS.mjs.map +7 -0
- package/dist/lib/browser/chunk-A7ZCVQGZ.mjs +118 -0
- package/dist/lib/browser/chunk-A7ZCVQGZ.mjs.map +7 -0
- package/dist/lib/browser/chunk-ASV6DYFH.mjs +19 -0
- package/dist/lib/browser/chunk-ASV6DYFH.mjs.map +7 -0
- package/dist/lib/browser/chunk-CMLRMQNM.mjs +1889 -0
- package/dist/lib/browser/chunk-CMLRMQNM.mjs.map +7 -0
- package/dist/lib/browser/chunk-HSMQFM57.mjs +16 -0
- package/dist/lib/browser/chunk-HSMQFM57.mjs.map +7 -0
- package/dist/lib/browser/chunk-KGLWYGIF.mjs +715 -0
- package/dist/lib/browser/chunk-KGLWYGIF.mjs.map +7 -0
- package/dist/lib/browser/chunk-NF3ZFAB4.mjs +13 -0
- package/dist/lib/browser/chunk-NF3ZFAB4.mjs.map +7 -0
- package/dist/lib/browser/chunk-WAOJLA2S.mjs +772 -0
- package/dist/lib/browser/chunk-WAOJLA2S.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +851 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/identity-created-VCFYLSBB.mjs +23 -0
- package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +251 -183
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs +830 -0
- package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs.map +7 -0
- package/dist/lib/browser/react-root-ITWAPZIY.mjs +30 -0
- package/dist/lib/browser/react-root-ITWAPZIY.mjs.map +7 -0
- package/dist/lib/browser/react-surface-6GD6K4I4.mjs +383 -0
- package/dist/lib/browser/react-surface-6GD6K4I4.mjs.map +7 -0
- package/dist/lib/browser/repair-DKU4TUD2.mjs +50 -0
- package/dist/lib/browser/repair-DKU4TUD2.mjs.map +7 -0
- package/dist/lib/browser/settings-M2DMD2ZA.mjs +34 -0
- package/dist/lib/browser/settings-M2DMD2ZA.mjs.map +7 -0
- package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs +243 -0
- package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs.map +7 -0
- package/dist/lib/browser/state-V637BLIM.mjs +58 -0
- package/dist/lib/browser/state-V637BLIM.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +18 -10
- package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs +128 -0
- package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs +149 -0
- package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs +144 -0
- package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs.map +7 -0
- package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs +109 -0
- package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs +531 -0
- package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs +86 -0
- package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2NM62ORP.mjs +1890 -0
- package/dist/lib/node-esm/chunk-2NM62ORP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JBQKU4K5.mjs → chunk-5N3YIAXD.mjs} +110 -41
- package/dist/lib/node-esm/chunk-5N3YIAXD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-A5A7M37T.mjs +119 -0
- package/dist/lib/node-esm/chunk-A5A7M37T.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CVXULIYC.mjs +20 -0
- package/dist/lib/node-esm/chunk-CVXULIYC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FB5YNROS.mjs +773 -0
- package/dist/lib/node-esm/chunk-FB5YNROS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NYSDQPNM.mjs +716 -0
- package/dist/lib/node-esm/chunk-NYSDQPNM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-PG7DNOEX.mjs +15 -0
- package/dist/lib/node-esm/chunk-PG7DNOEX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SL4BJSUG.mjs +18 -0
- package/dist/lib/node-esm/chunk-SL4BJSUG.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +852 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/identity-created-2SJABVJD.mjs +25 -0
- package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +251 -183
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs +831 -0
- package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs.map +7 -0
- package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs +31 -0
- package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs +384 -0
- package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs.map +7 -0
- package/dist/lib/node-esm/repair-C2H6JQCL.mjs +51 -0
- package/dist/lib/node-esm/repair-C2H6JQCL.mjs.map +7 -0
- package/dist/lib/node-esm/settings-VCPCNBOY.mjs +35 -0
- package/dist/lib/node-esm/settings-VCPCNBOY.mjs.map +7 -0
- package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs +244 -0
- package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs.map +7 -0
- package/dist/lib/node-esm/state-5MCEPWN3.mjs +59 -0
- package/dist/lib/node-esm/state-5MCEPWN3.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +18 -10
- package/dist/types/src/SpacePlugin.d.ts +3 -15
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +7 -0
- package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
- package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
- package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/identity-created/identity-created.d.ts +5 -0
- package/dist/types/src/capabilities/identity-created/identity-created.d.ts.map +1 -0
- package/dist/types/src/capabilities/identity-created/index.d.ts +3 -0
- package/dist/types/src/capabilities/identity-created/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +10 -21
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +6 -0
- package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +9 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
- package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
- package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts +8 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/repair/index.d.ts +3 -0
- package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
- package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +7 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/spaces-ready/index.d.ts +3 -0
- package/dist/types/src/capabilities/spaces-ready/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +5 -0
- package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/index.d.ts +13 -0
- package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/state.d.ts +17 -0
- package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/add.d.ts +17 -0
- package/dist/types/src/cli/commands/database/add.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/index.d.ts +3 -0
- package/dist/types/src/cli/commands/database/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/query/index.d.ts +2 -0
- package/dist/types/src/cli/commands/database/query/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/query/query.d.ts +13 -0
- package/dist/types/src/cli/commands/database/query/query.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/query/query.test.d.ts +2 -0
- package/dist/types/src/cli/commands/database/query/query.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/remove.d.ts +9 -0
- package/dist/types/src/cli/commands/database/remove.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/stats.d.ts +6 -0
- package/dist/types/src/cli/commands/database/stats.d.ts.map +1 -0
- package/dist/types/src/cli/commands/database/util.d.ts +14 -0
- package/dist/types/src/cli/commands/database/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/index.d.ts +4 -0
- package/dist/types/src/cli/commands/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/queue/index.d.ts +7 -0
- package/dist/types/src/cli/commands/queue/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/queue/query.d.ts +8 -0
- package/dist/types/src/cli/commands/queue/query.d.ts.map +1 -0
- package/dist/types/src/cli/commands/queue/util.d.ts +6 -0
- package/dist/types/src/cli/commands/queue/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/close/close.d.ts +12 -0
- package/dist/types/src/cli/commands/space/close/close.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/close/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/close/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/create/create.d.ts +12 -0
- package/dist/types/src/cli/commands/space/create/create.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/create/create.test.d.ts +2 -0
- package/dist/types/src/cli/commands/space/create/create.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/create/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/create/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/index.d.ts +31 -0
- package/dist/types/src/cli/commands/space/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/info/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/info/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/info/info.d.ts +13 -0
- package/dist/types/src/cli/commands/space/info/info.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/info/info.test.d.ts +2 -0
- package/dist/types/src/cli/commands/space/info/info.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/join/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/join/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/join/join.d.ts +14 -0
- package/dist/types/src/cli/commands/space/join/join.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/join/util.d.ts +17 -0
- package/dist/types/src/cli/commands/space/join/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/list/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/list/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/list/list.d.ts +7 -0
- package/dist/types/src/cli/commands/space/list/list.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/list/list.test.d.ts +2 -0
- package/dist/types/src/cli/commands/space/list/list.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/members/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/members/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/members/members.d.ts +13 -0
- package/dist/types/src/cli/commands/space/members/members.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/members/members.test.d.ts +2 -0
- package/dist/types/src/cli/commands/space/members/members.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/members/util.d.ts +9 -0
- package/dist/types/src/cli/commands/space/members/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/open/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/open/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/open/open.d.ts +12 -0
- package/dist/types/src/cli/commands/space/open/open.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/schema/index.d.ts +8 -0
- package/dist/types/src/cli/commands/space/schema/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/schema/list/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/schema/list/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/schema/list/list.d.ts +15 -0
- package/dist/types/src/cli/commands/space/schema/list/list.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts +2 -0
- package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/schema/list/util.d.ts +15 -0
- package/dist/types/src/cli/commands/space/schema/list/util.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/share/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/share/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/share/share.d.ts +19 -0
- package/dist/types/src/cli/commands/space/share/share.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/sync/index.d.ts +2 -0
- package/dist/types/src/cli/commands/space/sync/index.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/sync/sync.d.ts +6 -0
- package/dist/types/src/cli/commands/space/sync/sync.d.ts.map +1 -0
- package/dist/types/src/cli/commands/space/sync/sync.test.d.ts +2 -0
- package/dist/types/src/cli/commands/space/sync/sync.test.d.ts.map +1 -0
- package/dist/types/src/cli/index.d.ts +2 -0
- package/dist/types/src/cli/index.d.ts.map +1 -0
- package/dist/types/src/cli/plugin.d.ts +4 -0
- package/dist/types/src/cli/plugin.d.ts.map +1 -0
- package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
- package/dist/types/src/components/CollectionArticle.d.ts +9 -0
- package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
- package/dist/types/src/components/CollectionSection.d.ts +3 -4
- package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +6 -5
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1602 -8
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +23 -10
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
- package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
- package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
- package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
- package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
- package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
- package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1600 -0
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
- package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
- package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
- package/dist/types/src/components/MenuFooter.d.ts +1 -1
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
- package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts +9 -0
- package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
- package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
- package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
- package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +3 -3
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +1433 -0
- package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
- package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +9 -0
- package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
- package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
- package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
- package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/RecordArticle.d.ts +5 -0
- package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
- package/dist/types/src/components/RecordArticle.stories.d.ts +1600 -0
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
- package/dist/types/src/components/SchemaContainer.d.ts +2 -2
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePluginSettings.d.ts +4 -2
- package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
- package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +7 -6
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1430 -0
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
- package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
- package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
- package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
- package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +4 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1433 -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 +1431 -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 +7 -0
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +16 -6
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/constants.d.ts +6 -0
- package/dist/types/src/constants.d.ts.map +1 -0
- package/dist/types/src/helpers/index.d.ts +2 -0
- package/dist/types/src/helpers/index.d.ts.map +1 -0
- package/dist/types/src/helpers/query.d.ts +7 -0
- package/dist/types/src/helpers/query.d.ts.map +1 -0
- package/dist/types/src/helpers/query.test.d.ts +2 -0
- package/dist/types/src/helpers/query.test.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useActiveSpace.d.ts +2 -2
- package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
- package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
- package/dist/types/src/hooks/usePath.d.ts +3 -3
- package/dist/types/src/hooks/usePath.d.ts.map +1 -1
- package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
- package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -3
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1415 -410
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +71 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/events.d.ts +9 -0
- package/dist/types/src/types/events.d.ts.map +1 -0
- package/dist/types/src/types/form.d.ts +22 -0
- package/dist/types/src/types/form.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +646 -338
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +50 -31
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +87 -64
- package/src/SpacePlugin.ts +197 -174
- package/src/capabilities/app-graph-builder/app-graph-builder.ts +621 -0
- package/src/capabilities/app-graph-builder/index.ts +7 -0
- package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +83 -0
- package/src/capabilities/app-graph-serializer/index.ts +7 -0
- package/src/capabilities/identity-created/identity-created.ts +29 -0
- package/src/capabilities/identity-created/index.ts +7 -0
- package/src/capabilities/index.ts +10 -15
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +762 -0
- package/src/capabilities/react-root/index.ts +7 -0
- package/src/capabilities/react-root/react-root.tsx +25 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +377 -0
- package/src/capabilities/repair/index.ts +7 -0
- package/src/capabilities/repair/repair.ts +67 -0
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +33 -0
- package/src/capabilities/spaces-ready/index.ts +7 -0
- package/src/capabilities/spaces-ready/spaces-ready.ts +290 -0
- package/src/capabilities/state/index.ts +7 -0
- package/src/capabilities/state/state.ts +64 -0
- package/src/cli/commands/database/add.ts +115 -0
- package/src/cli/commands/database/index.ts +16 -0
- package/src/cli/commands/database/query/index.ts +5 -0
- package/src/cli/commands/database/query/query.test.ts +55 -0
- package/src/cli/commands/database/query/query.ts +44 -0
- package/src/cli/commands/database/remove.ts +51 -0
- package/src/cli/commands/database/stats.ts +44 -0
- package/src/cli/commands/database/util.ts +32 -0
- package/src/cli/commands/index.ts +7 -0
- package/src/cli/commands/queue/index.ts +12 -0
- package/src/cli/commands/queue/query.ts +45 -0
- package/src/cli/commands/queue/util.ts +19 -0
- package/src/cli/commands/space/close/close.ts +40 -0
- package/src/cli/commands/space/close/index.ts +5 -0
- package/src/cli/commands/space/create/create.test.ts +67 -0
- package/src/cli/commands/space/create/create.ts +61 -0
- package/src/cli/commands/space/create/index.ts +5 -0
- package/src/cli/commands/space/index.ts +21 -0
- package/src/cli/commands/space/info/index.ts +5 -0
- package/src/cli/commands/space/info/info.test.ts +47 -0
- package/src/cli/commands/space/info/info.ts +37 -0
- package/src/cli/commands/space/join/index.ts +5 -0
- package/src/cli/commands/space/join/join.ts +122 -0
- package/src/cli/commands/space/join/util.ts +82 -0
- package/src/cli/commands/space/list/index.ts +5 -0
- package/src/cli/commands/space/list/list.test.ts +36 -0
- package/src/cli/commands/space/list/list.ts +30 -0
- package/src/cli/commands/space/members/index.ts +5 -0
- package/src/cli/commands/space/members/members.test.ts +46 -0
- package/src/cli/commands/space/members/members.ts +40 -0
- package/src/cli/commands/space/members/util.ts +29 -0
- package/src/cli/commands/space/open/index.ts +5 -0
- package/src/cli/commands/space/open/open.ts +39 -0
- package/src/cli/commands/space/schema/index.ts +12 -0
- package/src/cli/commands/space/schema/list/index.ts +5 -0
- package/src/cli/commands/space/schema/list/list.test.ts +42 -0
- package/src/cli/commands/space/schema/list/list.ts +64 -0
- package/src/cli/commands/space/schema/list/util.ts +39 -0
- package/src/cli/commands/space/share/index.ts +5 -0
- package/src/cli/commands/space/share/share.ts +112 -0
- package/src/cli/commands/space/sync/index.ts +5 -0
- package/src/cli/commands/space/sync/sync.test.ts +12 -0
- package/src/cli/commands/space/sync/sync.ts +33 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/plugin.ts +88 -0
- package/src/components/AwaitingObject.tsx +27 -27
- package/src/components/CollectionArticle.tsx +156 -0
- package/src/components/CollectionSection.tsx +8 -6
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +40 -33
- package/src/components/CreateDialog/CreateObjectDialog.tsx +108 -81
- package/src/components/CreateDialog/CreateObjectPanel.tsx +163 -91
- package/src/components/CreateDialog/CreateSpaceDialog.tsx +35 -29
- package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +29 -39
- package/src/components/JoinDialog/index.ts +5 -0
- package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
- package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +95 -98
- package/src/components/MembersContainer/index.ts +5 -0
- package/src/components/MenuFooter.tsx +5 -6
- package/src/components/ObjectCardStack/ObjectCardStack.tsx +67 -0
- package/src/components/ObjectCardStack/ObjectForm.tsx +97 -0
- package/src/components/ObjectCardStack/index.ts +7 -0
- package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +63 -0
- package/src/components/ObjectDetails/BaseObjectSettings.tsx +122 -0
- package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +8 -8
- package/src/components/ObjectDetails/ObjectDetails.tsx +33 -0
- package/src/components/ObjectDetails/index.ts +7 -0
- package/src/components/ObjectRenamePopover/ObjectRenamePopover.tsx +52 -0
- package/src/components/ObjectRenamePopover/index.ts +5 -0
- package/src/components/RecordArticle.stories.tsx +116 -0
- package/src/components/RecordArticle.tsx +124 -0
- package/src/components/SchemaContainer.tsx +31 -31
- package/src/components/SpacePluginSettings.tsx +45 -33
- package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +25 -24
- package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +28 -24
- package/src/components/SpacePresence/index.ts +5 -0
- package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +16 -16
- package/src/components/SpaceRenamePopover/index.ts +5 -0
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +20 -12
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +99 -81
- package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
- package/src/components/SyncStatus/SyncStatus.stories.tsx +12 -19
- package/src/components/SyncStatus/SyncStatus.tsx +110 -13
- package/src/components/SyncStatus/save-tracker.ts +3 -3
- package/src/components/SyncStatus/status.ts +4 -4
- package/src/components/ViewEditor.tsx +101 -0
- package/src/components/index.ts +11 -6
- package/src/constants.ts +11 -0
- package/src/helpers/index.ts +5 -0
- package/src/helpers/query.test.ts +24 -0
- package/src/helpers/query.ts +153 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useActiveSpace.ts +8 -4
- package/src/hooks/useInputSurfaceLookup.tsx +9 -13
- package/src/hooks/usePath.ts +5 -5
- package/src/hooks/useTypeOptions.ts +25 -0
- package/src/index.ts +2 -2
- package/src/meta.ts +8 -5
- package/src/translations.ts +112 -36
- package/src/types/capabilities.ts +73 -0
- package/src/types/events.ts +16 -0
- package/src/types/form.ts +69 -0
- package/src/types/index.ts +3 -0
- package/src/types/types.ts +546 -206
- package/src/util.tsx +451 -242
- package/dist/lib/browser/app-graph-builder-M2RH72VL.mjs +0 -363
- package/dist/lib/browser/app-graph-builder-M2RH72VL.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-F7ISRRBV.mjs +0 -80
- package/dist/lib/browser/app-graph-serializer-F7ISRRBV.mjs.map +0 -7
- package/dist/lib/browser/chunk-4ZKSFDXM.mjs.map +0 -7
- package/dist/lib/browser/chunk-7Y4M7GXO.mjs +0 -94
- package/dist/lib/browser/chunk-7Y4M7GXO.mjs.map +0 -7
- package/dist/lib/browser/chunk-BXNL6SDI.mjs +0 -19
- package/dist/lib/browser/chunk-BXNL6SDI.mjs.map +0 -7
- package/dist/lib/browser/chunk-NFUKCRGE.mjs +0 -1916
- package/dist/lib/browser/chunk-NFUKCRGE.mjs.map +0 -7
- package/dist/lib/browser/chunk-PTKYMZWO.mjs +0 -13
- package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +0 -7
- package/dist/lib/browser/chunk-TW7O2EPP.mjs +0 -284
- package/dist/lib/browser/chunk-TW7O2EPP.mjs.map +0 -7
- package/dist/lib/browser/chunk-V24VASAJ.mjs +0 -546
- package/dist/lib/browser/chunk-V24VASAJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-YMCZR6EZ.mjs +0 -18
- package/dist/lib/browser/chunk-YMCZR6EZ.mjs.map +0 -7
- package/dist/lib/browser/identity-created-PI7TKANR.mjs +0 -23
- package/dist/lib/browser/identity-created-PI7TKANR.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-RWU6ZE4H.mjs +0 -610
- package/dist/lib/browser/intent-resolver-RWU6ZE4H.mjs.map +0 -7
- package/dist/lib/browser/react-root-QIKHSNT2.mjs +0 -29
- package/dist/lib/browser/react-root-QIKHSNT2.mjs.map +0 -7
- package/dist/lib/browser/react-surface-W56UD53I.mjs +0 -353
- package/dist/lib/browser/react-surface-W56UD53I.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-WREJNMIC.mjs +0 -26
- package/dist/lib/browser/schema-defs-WREJNMIC.mjs.map +0 -7
- package/dist/lib/browser/schema-tools-ILTVSSS3.mjs +0 -124
- package/dist/lib/browser/schema-tools-ILTVSSS3.mjs.map +0 -7
- package/dist/lib/browser/settings-K54STC5A.mjs +0 -24
- package/dist/lib/browser/settings-K54STC5A.mjs.map +0 -7
- package/dist/lib/browser/spaces-ready-3PDRDHPC.mjs +0 -199
- package/dist/lib/browser/spaces-ready-3PDRDHPC.mjs.map +0 -7
- package/dist/lib/browser/state-HRZ4VRXU.mjs +0 -47
- package/dist/lib/browser/state-HRZ4VRXU.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs +0 -364
- package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs.map +0 -7
- package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs +0 -89
- package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs.map +0 -7
- package/dist/lib/node/chunk-3X4EA4XL.cjs +0 -37
- package/dist/lib/node/chunk-3X4EA4XL.cjs.map +0 -7
- package/dist/lib/node/chunk-5WLAXYE3.cjs +0 -125
- package/dist/lib/node/chunk-5WLAXYE3.cjs.map +0 -7
- package/dist/lib/node/chunk-6P2DB4QQ.cjs +0 -36
- package/dist/lib/node/chunk-6P2DB4QQ.cjs.map +0 -7
- package/dist/lib/node/chunk-DOC5XEZ4.cjs +0 -184
- package/dist/lib/node/chunk-DOC5XEZ4.cjs.map +0 -7
- package/dist/lib/node/chunk-NCHF433F.cjs +0 -1921
- package/dist/lib/node/chunk-NCHF433F.cjs.map +0 -7
- package/dist/lib/node/chunk-NL5Y4EDX.cjs +0 -38
- package/dist/lib/node/chunk-NL5Y4EDX.cjs.map +0 -7
- package/dist/lib/node/chunk-ULJZPATP.cjs +0 -312
- package/dist/lib/node/chunk-ULJZPATP.cjs.map +0 -7
- package/dist/lib/node/chunk-XHWVT7LW.cjs +0 -572
- package/dist/lib/node/chunk-XHWVT7LW.cjs.map +0 -7
- package/dist/lib/node/identity-created-FF4WZ2WY.cjs +0 -42
- package/dist/lib/node/identity-created-FF4WZ2WY.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -278
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs +0 -609
- package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-root-RQUU3A45.cjs +0 -51
- package/dist/lib/node/react-root-RQUU3A45.cjs.map +0 -7
- package/dist/lib/node/react-surface-AZFJLE72.cjs +0 -351
- package/dist/lib/node/react-surface-AZFJLE72.cjs.map +0 -7
- package/dist/lib/node/schema-defs-OB2X2HBH.cjs +0 -42
- package/dist/lib/node/schema-defs-OB2X2HBH.cjs.map +0 -7
- package/dist/lib/node/schema-tools-IYREN4IH.cjs +0 -147
- package/dist/lib/node/schema-tools-IYREN4IH.cjs.map +0 -7
- package/dist/lib/node/settings-P2EQ7VKQ.cjs +0 -38
- package/dist/lib/node/settings-P2EQ7VKQ.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-DXPOHYV7.cjs +0 -210
- package/dist/lib/node/spaces-ready-DXPOHYV7.cjs.map +0 -7
- package/dist/lib/node/state-M35DK75Z.cjs +0 -61
- package/dist/lib/node/state-M35DK75Z.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs +0 -48
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-BCHVZ4OM.mjs +0 -364
- package/dist/lib/node-esm/app-graph-builder-BCHVZ4OM.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-TXRGGNP2.mjs +0 -81
- package/dist/lib/node-esm/app-graph-serializer-TXRGGNP2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3CP67AYY.mjs +0 -19
- package/dist/lib/node-esm/chunk-3CP67AYY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BSLREHIX.mjs +0 -20
- package/dist/lib/node-esm/chunk-BSLREHIX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-D4QMPPS7.mjs +0 -285
- package/dist/lib/node-esm/chunk-D4QMPPS7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GH2FGJXH.mjs +0 -96
- package/dist/lib/node-esm/chunk-GH2FGJXH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HO7AIKQS.mjs +0 -547
- package/dist/lib/node-esm/chunk-HO7AIKQS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JBQKU4K5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LA6AVVH6.mjs +0 -1917
- package/dist/lib/node-esm/chunk-LA6AVVH6.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MSWEFAPD.mjs +0 -15
- package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-35CTAQWI.mjs +0 -25
- package/dist/lib/node-esm/identity-created-35CTAQWI.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-JO6L2VXC.mjs +0 -611
- package/dist/lib/node-esm/intent-resolver-JO6L2VXC.mjs.map +0 -7
- package/dist/lib/node-esm/react-root-YFGL3B4J.mjs +0 -30
- package/dist/lib/node-esm/react-root-YFGL3B4J.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-CVAPDLEZ.mjs +0 -354
- package/dist/lib/node-esm/react-surface-CVAPDLEZ.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-4MEJETVX.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-4MEJETVX.mjs.map +0 -7
- package/dist/lib/node-esm/schema-tools-SRLCRZ3B.mjs +0 -126
- package/dist/lib/node-esm/schema-tools-SRLCRZ3B.mjs.map +0 -7
- package/dist/lib/node-esm/settings-TD76LTQS.mjs +0 -25
- package/dist/lib/node-esm/settings-TD76LTQS.mjs.map +0 -7
- package/dist/lib/node-esm/spaces-ready-FJMGPAVV.mjs +0 -200
- package/dist/lib/node-esm/spaces-ready-FJMGPAVV.mjs.map +0 -7
- package/dist/lib/node-esm/state-XQNDCN37.mjs +0 -48
- package/dist/lib/node-esm/state-XQNDCN37.mjs.map +0 -7
- package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -22
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/identity-created.d.ts +0 -4
- package/dist/types/src/capabilities/identity-created.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -9
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-root.d.ts +0 -7
- package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -7
- package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
- package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
- package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
- package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
- package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings.d.ts +0 -4
- package/dist/types/src/capabilities/settings.d.ts.map +0 -1
- package/dist/types/src/capabilities/spaces-ready.d.ts +0 -4
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +0 -1
- package/dist/types/src/capabilities/state.d.ts +0 -5
- package/dist/types/src/capabilities/state.d.ts.map +0 -1
- package/dist/types/src/components/CollectionMain.d.ts +0 -6
- package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
- package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
- package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
- package/dist/types/src/components/ObjectSettings/index.d.ts +0 -2
- package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
- package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
- package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
- package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -7
- package/dist/types/src/events.d.ts.map +0 -1
- package/src/capabilities/app-graph-builder.ts +0 -540
- package/src/capabilities/app-graph-serializer.ts +0 -76
- package/src/capabilities/capabilities.ts +0 -24
- package/src/capabilities/identity-created.ts +0 -27
- package/src/capabilities/intent-resolver.ts +0 -585
- package/src/capabilities/react-root.tsx +0 -20
- package/src/capabilities/react-surface.tsx +0 -349
- package/src/capabilities/schema-defs.ts +0 -30
- package/src/capabilities/schema-tool.test.ts +0 -44
- package/src/capabilities/schema-tools.ts +0 -125
- package/src/capabilities/settings.ts +0 -21
- package/src/capabilities/spaces-ready.ts +0 -231
- package/src/capabilities/state.ts +0 -45
- package/src/components/CollectionMain.tsx +0 -30
- package/src/components/MembersContainer.stories.tsx +0 -30
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -80
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -47
- package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -36
- package/src/components/ObjectSettings/index.ts +0 -5
- package/src/components/PersistenceStatus.tsx +0 -84
- package/src/components/PopoverRenameObject.tsx +0 -62
- package/src/events.ts +0 -14
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-HSMQFM57.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/CollectionArticle.tsx
|
|
6
|
+
import React, { useCallback, useMemo } from "react";
|
|
7
|
+
import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
|
|
8
|
+
import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
|
|
9
|
+
import { Filter, Obj } from "@dxos/echo";
|
|
10
|
+
import { useClient } from "@dxos/react-client";
|
|
11
|
+
import { getSpace, useQuery } from "@dxos/react-client/echo";
|
|
12
|
+
import { Layout, ScrollArea, Toolbar, toLocalizedString, useTranslation } from "@dxos/react-ui";
|
|
13
|
+
import { Card, Mosaic } from "@dxos/react-ui-mosaic";
|
|
14
|
+
import { SearchList, useSearchListResults } from "@dxos/react-ui-searchlist";
|
|
15
|
+
import { Collection } from "@dxos/schema";
|
|
16
|
+
import { getStyles } from "@dxos/ui-theme";
|
|
17
|
+
var useMetadataResolver = () => {
|
|
18
|
+
const allMetadata = useCapabilities(AppCapabilities.Metadata);
|
|
19
|
+
return useCallback((typename) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [
|
|
20
|
+
allMetadata
|
|
21
|
+
]);
|
|
22
|
+
};
|
|
23
|
+
var CollectionArticle = ({ subject }) => {
|
|
24
|
+
const { t } = useTranslation(meta.id);
|
|
25
|
+
const resolveMetadata = useMetadataResolver();
|
|
26
|
+
const { items, handleSearch } = useCollectionItems(subject, resolveMetadata);
|
|
27
|
+
return /* @__PURE__ */ React.createElement(Layout.Main, {
|
|
28
|
+
toolbar: true
|
|
29
|
+
}, /* @__PURE__ */ React.createElement(SearchList.Root, {
|
|
30
|
+
onSearch: handleSearch
|
|
31
|
+
}, /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(SearchList.Input, {
|
|
32
|
+
placeholder: t("search placeholder")
|
|
33
|
+
})), /* @__PURE__ */ React.createElement(SearchList.Content, null, /* @__PURE__ */ React.createElement(Mosaic.Container, {
|
|
34
|
+
asChild: true
|
|
35
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Root, {
|
|
36
|
+
orientation: "vertical"
|
|
37
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, {
|
|
38
|
+
classNames: "p-2"
|
|
39
|
+
}, /* @__PURE__ */ React.createElement(Mosaic.Stack, {
|
|
40
|
+
items,
|
|
41
|
+
getId: (item) => item.id,
|
|
42
|
+
Tile: ObjectTile
|
|
43
|
+
})))))));
|
|
44
|
+
};
|
|
45
|
+
var ObjectTile = ({ data: item }) => {
|
|
46
|
+
const { t } = useTranslation(meta.id);
|
|
47
|
+
const { invokeSync } = useOperationInvoker();
|
|
48
|
+
const typename = Obj.getTypename(item.object) ?? "";
|
|
49
|
+
const label = Obj.getLabel(item.object) ?? toLocalizedString([
|
|
50
|
+
"object name placeholder",
|
|
51
|
+
{
|
|
52
|
+
ns: typename,
|
|
53
|
+
defaultValue: item.id
|
|
54
|
+
}
|
|
55
|
+
], t);
|
|
56
|
+
const styles = item.iconHue ? getStyles(item.iconHue) : void 0;
|
|
57
|
+
const handleClick = () => {
|
|
58
|
+
invokeSync(LayoutOperation.Open, {
|
|
59
|
+
subject: [
|
|
60
|
+
item.id
|
|
61
|
+
]
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
return /* @__PURE__ */ React.createElement(Card.Root, {
|
|
65
|
+
fullWidth: true
|
|
66
|
+
}, /* @__PURE__ */ React.createElement(Card.Toolbar, null, /* @__PURE__ */ React.createElement(Card.ToolbarIconButton, {
|
|
67
|
+
variant: "ghost",
|
|
68
|
+
label,
|
|
69
|
+
icon: item.icon,
|
|
70
|
+
iconOnly: true,
|
|
71
|
+
iconClassNames: styles?.icon
|
|
72
|
+
}), /* @__PURE__ */ React.createElement(Card.Title, {
|
|
73
|
+
onClick: handleClick
|
|
74
|
+
}, label), /* @__PURE__ */ React.createElement(Card.Menu, null)));
|
|
75
|
+
};
|
|
76
|
+
var CollectionArticle_default = CollectionArticle;
|
|
77
|
+
var useRegularCollectionItems = (collection) => {
|
|
78
|
+
return useMemo(() => (collection.objects ?? []).map((ref) => ref.target).filter((obj) => Obj.isObject(obj)), [
|
|
79
|
+
collection.objects
|
|
80
|
+
]);
|
|
81
|
+
};
|
|
82
|
+
var useManagedCollectionItems = (collection) => {
|
|
83
|
+
const client = useClient();
|
|
84
|
+
const space = getSpace(collection);
|
|
85
|
+
const schema = useMemo(() => client.graph.schemaRegistry.query({
|
|
86
|
+
typename: collection.key,
|
|
87
|
+
location: [
|
|
88
|
+
"runtime"
|
|
89
|
+
]
|
|
90
|
+
}).runSync()[0], [
|
|
91
|
+
client,
|
|
92
|
+
collection
|
|
93
|
+
]);
|
|
94
|
+
return useQuery(space?.db, schema ? Filter.type(schema) : Filter.nothing());
|
|
95
|
+
};
|
|
96
|
+
var useCollectionItems = (collection, resolveMetadata) => {
|
|
97
|
+
const isManaged = Obj.instanceOf(Collection.Managed, collection);
|
|
98
|
+
const regularObjects = useRegularCollectionItems(collection);
|
|
99
|
+
const managedObjects = useManagedCollectionItems(collection);
|
|
100
|
+
const objects = isManaged ? managedObjects : regularObjects;
|
|
101
|
+
const items = useMemo(() => objects.map((obj) => {
|
|
102
|
+
const typename = Obj.getTypename(obj);
|
|
103
|
+
const metadata = typename ? resolveMetadata(typename) : {};
|
|
104
|
+
return {
|
|
105
|
+
id: Obj.getDXN(obj).toString(),
|
|
106
|
+
object: obj,
|
|
107
|
+
icon: metadata.icon ?? "ph--placeholder--regular",
|
|
108
|
+
iconHue: metadata.iconHue
|
|
109
|
+
};
|
|
110
|
+
}), [
|
|
111
|
+
objects,
|
|
112
|
+
resolveMetadata
|
|
113
|
+
]);
|
|
114
|
+
const { results, handleSearch } = useSearchListResults({
|
|
115
|
+
items,
|
|
116
|
+
extract: (item) => Obj.getLabel(item.object) ?? item.id
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
items: results,
|
|
120
|
+
handleSearch
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
export {
|
|
124
|
+
CollectionArticle,
|
|
125
|
+
CollectionArticle_default as default
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=CollectionArticle-XXLUNK3F.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/CollectionArticle.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { Filter, Obj } from '@dxos/echo';\nimport { useClient } from '@dxos/react-client';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { Layout, ScrollArea, Toolbar, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { Card, Mosaic, type StackTileComponent } from '@dxos/react-ui-mosaic';\nimport { SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';\nimport { Collection } from '@dxos/schema';\nimport { getStyles } from '@dxos/ui-theme';\n\nimport { meta } from '../meta';\n\n/**\n * Hook to resolve metadata (icon, iconHue, etc.) for objects based on their typename.\n */\nconst useMetadataResolver = () => {\n const allMetadata = useCapabilities(AppCapabilities.Metadata);\n return useCallback((typename: string) => allMetadata.find((m) => m.id === typename)?.metadata ?? {}, [allMetadata]);\n};\n\n/**\n * Article view for collections.\n */\nexport const CollectionArticle = ({ subject }: SurfaceComponentProps<Collection.Collection | Collection.Managed>) => {\n const { t } = useTranslation(meta.id);\n const resolveMetadata = useMetadataResolver();\n const { items, handleSearch } = useCollectionItems(subject, resolveMetadata);\n\n return (\n <Layout.Main toolbar>\n <SearchList.Root onSearch={handleSearch}>\n <Toolbar.Root>\n <SearchList.Input placeholder={t('search placeholder')} />\n </Toolbar.Root>\n <SearchList.Content>\n <Mosaic.Container asChild>\n <ScrollArea.Root orientation='vertical'>\n <ScrollArea.Viewport classNames='p-2'>\n <Mosaic.Stack items={items} getId={(item) => item.id} Tile={ObjectTile} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Mosaic.Container>\n </SearchList.Content>\n </SearchList.Root>\n </Layout.Main>\n );\n};\n\ntype ObjectItem = {\n id: string;\n object: Obj.Unknown;\n icon: string;\n iconHue?: string;\n};\n\nconst ObjectTile: StackTileComponent<ObjectItem> = ({ data: item }) => {\n const { t } = useTranslation(meta.id);\n const { invokeSync } = useOperationInvoker();\n\n const typename = Obj.getTypename(item.object) ?? '';\n const label =\n Obj.getLabel(item.object) ??\n toLocalizedString(['object name placeholder', { ns: typename, defaultValue: item.id }], t);\n const styles = item.iconHue ? getStyles(item.iconHue) : undefined;\n\n const handleClick = () => {\n invokeSync(LayoutOperation.Open, { subject: [item.id] });\n };\n\n return (\n <Card.Root fullWidth>\n <Card.Toolbar>\n <Card.ToolbarIconButton variant='ghost' label={label} icon={item.icon} iconOnly iconClassNames={styles?.icon} />\n <Card.Title onClick={handleClick}>{label}</Card.Title>\n <Card.Menu />\n </Card.Toolbar>\n </Card.Root>\n );\n};\n\nexport default CollectionArticle;\n\n/**\n * Hook to get items from a regular collection.\n */\nconst useRegularCollectionItems = (collection: Collection.Collection): Obj.Unknown[] => {\n return useMemo(\n () => (collection.objects ?? []).map((ref) => ref.target).filter((obj): obj is Obj.Unknown => Obj.isObject(obj)),\n [collection.objects],\n );\n};\n\n/**\n * Hook to get items from a managed collection by querying the space.\n */\nconst useManagedCollectionItems = (collection: Collection.Managed): Obj.Unknown[] => {\n const client = useClient();\n const space = getSpace(collection);\n\n const schema = useMemo(\n () => client.graph.schemaRegistry.query({ typename: collection.key, location: ['runtime'] }).runSync()[0],\n [client, collection],\n );\n\n return useQuery(space?.db, schema ? Filter.type(schema) : Filter.nothing());\n};\n\ntype MetadataResolver = (typename: string) => { icon?: string; iconHue?: string };\n\n/**\n * Combined hook to get collection items with search/filter support.\n */\nconst useCollectionItems = (\n collection: Collection.Collection | Collection.Managed,\n resolveMetadata: MetadataResolver,\n) => {\n const isManaged = Obj.instanceOf(Collection.Managed, collection);\n\n // Call both hooks unconditionally to satisfy React's rules of hooks.\n const regularObjects = useRegularCollectionItems(collection as Collection.Collection);\n const managedObjects = useManagedCollectionItems(collection as Collection.Managed);\n\n const objects = isManaged ? managedObjects : regularObjects;\n\n // Convert objects to items with resolved metadata.\n const items = useMemo(\n () =>\n objects.map((obj) => {\n const typename = Obj.getTypename(obj);\n const metadata = typename ? resolveMetadata(typename) : {};\n return {\n id: Obj.getDXN(obj).toString(),\n object: obj,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n iconHue: metadata.iconHue,\n } satisfies ObjectItem;\n }),\n [objects, resolveMetadata],\n );\n\n // Use searchlist results for filtering.\n const { results, handleSearch } = useSearchListResults({\n items,\n extract: (item) => Obj.getLabel(item.object) ?? item.id,\n });\n\n return { items: results, handleSearch };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useMemo", "useCapabilities", "useOperationInvoker", "AppCapabilities", "LayoutOperation", "Filter", "Obj", "useClient", "getSpace", "useQuery", "Layout", "ScrollArea", "Toolbar", "toLocalizedString", "useTranslation", "Card", "Mosaic", "SearchList", "useSearchListResults", "Collection", "getStyles", "useMetadataResolver", "allMetadata", "useCapabilities", "AppCapabilities", "Metadata", "useCallback", "typename", "find", "m", "id", "metadata", "CollectionArticle", "subject", "t", "useTranslation", "meta", "resolveMetadata", "items", "handleSearch", "useCollectionItems", "Layout", "Main", "toolbar", "SearchList", "Root", "onSearch", "Toolbar", "Input", "placeholder", "Content", "Mosaic", "Container", "asChild", "ScrollArea", "orientation", "Viewport", "classNames", "Stack", "getId", "item", "Tile", "ObjectTile", "data", "invokeSync", "useOperationInvoker", "Obj", "getTypename", "object", "label", "getLabel", "toLocalizedString", "ns", "defaultValue", "styles", "iconHue", "getStyles", "undefined", "handleClick", "LayoutOperation", "Open", "Card", "fullWidth", "ToolbarIconButton", "variant", "icon", "iconOnly", "iconClassNames", "Title", "onClick", "Menu", "useRegularCollectionItems", "collection", "useMemo", "objects", "map", "ref", "target", "filter", "obj", "isObject", "useManagedCollectionItems", "client", "useClient", "space", "getSpace", "schema", "graph", "schemaRegistry", "query", "key", "location", "runSync", "useQuery", "db", "Filter", "type", "nothing", "isManaged", "instanceOf", "Collection", "Managed", "regularObjects", "managedObjects", "getDXN", "toString", "results", "useSearchListResults", "extract"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-HSMQFM57.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/ObjectCardStack/ObjectCardStack.tsx
|
|
6
|
+
import React2, { forwardRef } from "react";
|
|
7
|
+
import { Obj as Obj2 } from "@dxos/echo";
|
|
8
|
+
import { Filter, useQuery, useSchema } from "@dxos/react-client/echo";
|
|
9
|
+
import { Callout, Toolbar, useTranslation } from "@dxos/react-ui";
|
|
10
|
+
import { Layout } from "@dxos/react-ui";
|
|
11
|
+
import { useSelected } from "@dxos/react-ui-attention";
|
|
12
|
+
import { Card } from "@dxos/react-ui-mosaic";
|
|
13
|
+
import { CardStack, StackItem } from "@dxos/react-ui-stack";
|
|
14
|
+
import { getTypenameFromQuery } from "@dxos/schema";
|
|
15
|
+
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
16
|
+
|
|
17
|
+
// src/components/ObjectCardStack/ObjectForm.tsx
|
|
18
|
+
import * as Schema from "effect/Schema";
|
|
19
|
+
import React, { useCallback, useMemo } from "react";
|
|
20
|
+
import { DXN, Obj, Tag, Type } from "@dxos/echo";
|
|
21
|
+
import { splitJsonPath } from "@dxos/echo/internal";
|
|
22
|
+
import { invariant } from "@dxos/invariant";
|
|
23
|
+
import { Form, omitId } from "@dxos/react-ui-form";
|
|
24
|
+
import { isNonNullable } from "@dxos/util";
|
|
25
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectCardStack/ObjectForm.tsx";
|
|
26
|
+
var ObjectForm = ({ object, schema }) => {
|
|
27
|
+
const db = Obj.getDatabase(object);
|
|
28
|
+
const formSchema = useMemo(() => Schema.Struct({
|
|
29
|
+
tags: Schema.Array(Type.Ref(Tag.Tag)).pipe(Schema.optional)
|
|
30
|
+
}).pipe(Schema.extend(omitId(schema))), [
|
|
31
|
+
schema
|
|
32
|
+
]);
|
|
33
|
+
const meta2 = Obj.getMeta(object);
|
|
34
|
+
const tags = (meta2.tags ?? []).map((tag) => db?.makeRef(DXN.parse(tag))).filter(isNonNullable);
|
|
35
|
+
const values = useMemo(() => ({
|
|
36
|
+
tags,
|
|
37
|
+
...object
|
|
38
|
+
}), [
|
|
39
|
+
object,
|
|
40
|
+
tags
|
|
41
|
+
]);
|
|
42
|
+
const handleCreate = useCallback((schema2, values2) => {
|
|
43
|
+
invariant(db, void 0, {
|
|
44
|
+
F: __dxlog_file,
|
|
45
|
+
L: 37,
|
|
46
|
+
S: void 0,
|
|
47
|
+
A: [
|
|
48
|
+
"db",
|
|
49
|
+
""
|
|
50
|
+
]
|
|
51
|
+
});
|
|
52
|
+
invariant(Type.isObjectSchema(schema2), void 0, {
|
|
53
|
+
F: __dxlog_file,
|
|
54
|
+
L: 38,
|
|
55
|
+
S: void 0,
|
|
56
|
+
A: [
|
|
57
|
+
"Type.isObjectSchema(schema)",
|
|
58
|
+
""
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
const newObject = db.add(Obj.make(schema2, values2));
|
|
62
|
+
if (Obj.instanceOf(Tag.Tag, newObject)) {
|
|
63
|
+
Obj.change(object, (obj) => {
|
|
64
|
+
Obj.getMeta(obj).tags = [
|
|
65
|
+
...Obj.getMeta(obj).tags ?? [],
|
|
66
|
+
Obj.getDXN(newObject).toString()
|
|
67
|
+
];
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}, []);
|
|
71
|
+
const handleChange = useCallback(({ tags: tags2, ...values2 }, { isValid, changed }) => {
|
|
72
|
+
if (!isValid) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
76
|
+
const hasTagsChange = changedPaths.some((path) => splitJsonPath(path)[0] === "tags");
|
|
77
|
+
if (hasTagsChange) {
|
|
78
|
+
Obj.change(object, (obj) => {
|
|
79
|
+
Obj.getMeta(obj).tags = tags2?.map((tag) => tag.dxn.toString()) ?? [];
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const nonTagPaths = changedPaths.filter((path) => splitJsonPath(path)[0] !== "tags");
|
|
83
|
+
if (nonTagPaths.length > 0) {
|
|
84
|
+
Obj.change(object, () => {
|
|
85
|
+
for (const path of nonTagPaths) {
|
|
86
|
+
const parts = splitJsonPath(path);
|
|
87
|
+
const value = Obj.getValue(values2, parts);
|
|
88
|
+
Obj.setValue(object, parts, value);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}, [
|
|
93
|
+
object
|
|
94
|
+
]);
|
|
95
|
+
return /* @__PURE__ */ React.createElement(Form.Root, {
|
|
96
|
+
schema: omitId(formSchema),
|
|
97
|
+
values,
|
|
98
|
+
createOptionIcon: "ph--plus--regular",
|
|
99
|
+
createOptionLabel: [
|
|
100
|
+
"add tag label",
|
|
101
|
+
{
|
|
102
|
+
ns: meta.id
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
createInitialValuePath: "label",
|
|
106
|
+
db,
|
|
107
|
+
onValuesChanged: handleChange,
|
|
108
|
+
onCreate: handleCreate
|
|
109
|
+
}, /* @__PURE__ */ React.createElement(Form.Viewport, null, /* @__PURE__ */ React.createElement(Form.Content, null, /* @__PURE__ */ React.createElement(Form.FieldSet, null))));
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// src/components/ObjectCardStack/ObjectCardStack.tsx
|
|
113
|
+
var ObjectCardStack = /* @__PURE__ */ forwardRef(({ objectId, view }, forwardedRef) => {
|
|
114
|
+
const { t } = useTranslation(meta.id);
|
|
115
|
+
const db = Obj2.getDatabase(view);
|
|
116
|
+
const typename = view.query ? getTypenameFromQuery(view.query.ast) : void 0;
|
|
117
|
+
const schema = useSchema(db, typename);
|
|
118
|
+
const queriedObjects = useQuery(db, schema ? Filter.type(schema) : Filter.nothing());
|
|
119
|
+
const selectedRows = useSelected(objectId, "multi");
|
|
120
|
+
const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable2);
|
|
121
|
+
if (!schema) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
return /* @__PURE__ */ React2.createElement(Layout.Main, {
|
|
125
|
+
toolbar: true,
|
|
126
|
+
ref: forwardedRef
|
|
127
|
+
}, /* @__PURE__ */ React2.createElement(Toolbar.Root, null), /* @__PURE__ */ React2.createElement(CardStack.Root, {
|
|
128
|
+
asChild: true
|
|
129
|
+
}, /* @__PURE__ */ React2.createElement(CardStack.Content, null, /* @__PURE__ */ React2.createElement(CardStack.Stack, {
|
|
130
|
+
id: objectId,
|
|
131
|
+
itemsCount: selectedObjects.length
|
|
132
|
+
}, selectedObjects.length === 0 && /* @__PURE__ */ React2.createElement(CardStack.Item, null, /* @__PURE__ */ React2.createElement(Callout.Root, null, /* @__PURE__ */ React2.createElement(Callout.Title, null, t("row details no selection label")))), selectedObjects.map((object) => /* @__PURE__ */ React2.createElement(CardStack.Item, {
|
|
133
|
+
key: object.id,
|
|
134
|
+
asChild: true
|
|
135
|
+
}, /* @__PURE__ */ React2.createElement(StackItem.Root, {
|
|
136
|
+
item: object
|
|
137
|
+
}, /* @__PURE__ */ React2.createElement(Card.Root, null, /* @__PURE__ */ React2.createElement(ObjectForm, {
|
|
138
|
+
object,
|
|
139
|
+
schema
|
|
140
|
+
})))))))));
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// src/components/ObjectCardStack/index.ts
|
|
144
|
+
var ObjectCardStack_default = ObjectCardStack;
|
|
145
|
+
export {
|
|
146
|
+
ObjectCardStack_default as default
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=ObjectCardStack-CXNBCSMR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ObjectCardStack/ObjectCardStack.tsx", "../../../src/components/ObjectCardStack/ObjectForm.tsx", "../../../src/components/ObjectCardStack/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { Filter, useQuery, useSchema } from '@dxos/react-client/echo';\nimport { Callout, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { Layout } from '@dxos/react-ui';\nimport { useSelected } from '@dxos/react-ui-attention';\nimport { Card } from '@dxos/react-ui-mosaic';\nimport { CardStack, StackItem } from '@dxos/react-ui-stack';\nimport { type View, getTypenameFromQuery } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nimport { ObjectForm } from './ObjectForm';\n\nexport type ObjectCardStackProps = {\n view: View.View;\n objectId: string;\n};\n\nexport const ObjectCardStack = forwardRef<HTMLDivElement, ObjectCardStackProps>(({ objectId, view }, forwardedRef) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(view);\n const typename = view.query ? getTypenameFromQuery(view.query.ast) : undefined;\n const schema = useSchema(db, typename);\n\n const queriedObjects = useQuery(db, schema ? Filter.type(schema) : Filter.nothing());\n const selectedRows = useSelected(objectId, 'multi');\n const selectedObjects = selectedRows.map((id) => queriedObjects.find((obj) => obj.id === id)).filter(isNonNullable);\n\n if (!schema) {\n return null;\n }\n\n return (\n <Layout.Main toolbar ref={forwardedRef}>\n <Toolbar.Root></Toolbar.Root>\n <CardStack.Root asChild>\n <CardStack.Content>\n <CardStack.Stack id={objectId} itemsCount={selectedObjects.length}>\n {selectedObjects.length === 0 && (\n <CardStack.Item>\n <Callout.Root>\n <Callout.Title>{t('row details no selection label')}</Callout.Title>\n </Callout.Root>\n </CardStack.Item>\n )}\n {selectedObjects.map((object) => (\n <CardStack.Item key={object.id} asChild>\n <StackItem.Root item={object}>\n <Card.Root>\n <ObjectForm object={object} schema={schema} />\n </Card.Root>\n </StackItem.Root>\n </CardStack.Item>\n ))}\n </CardStack.Stack>\n </CardStack.Content>\n </CardStack.Root>\n </Layout.Main>\n );\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { DXN, Obj, type Ref, Tag, Type } from '@dxos/echo';\nimport { type JsonPath, splitJsonPath } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta as pluginMeta } from '../../meta';\n\nexport type ObjectFormProps = {\n schema: Schema.Schema.AnyNoContext;\n object: Obj.Unknown;\n};\n\nexport const ObjectForm = ({ object, schema }: ObjectFormProps) => {\n const db = Obj.getDatabase(object);\n\n const formSchema = useMemo(\n () =>\n Schema.Struct({\n tags: Schema.Array(Type.Ref(Tag.Tag)).pipe(Schema.optional),\n }).pipe(Schema.extend(omitId(schema))),\n [schema],\n );\n\n const meta = Obj.getMeta(object);\n const tags = (meta.tags ?? []).map((tag) => db?.makeRef(DXN.parse(tag))).filter(isNonNullable);\n const values = useMemo(() => ({ tags, ...object }), [object, tags]);\n\n const handleCreate = useCallback((schema: Type.Entity.Any, values: any) => {\n invariant(db);\n invariant(Type.isObjectSchema(schema));\n const newObject = db.add(Obj.make(schema, values));\n if (Obj.instanceOf(Tag.Tag, newObject)) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = [...(Obj.getMeta(obj).tags ?? []), Obj.getDXN(newObject).toString()];\n });\n }\n }, []);\n\n // TODO(wittjosiah): Use FormRootProps type.\n const handleChange = useCallback(\n ({ tags, ...values }: any, { isValid, changed }: { isValid: boolean; changed: Record<JsonPath, boolean> }) => {\n if (!isValid) {\n return;\n }\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n\n // Handle tags separately using Obj.change.\n const hasTagsChange = changedPaths.some((path) => splitJsonPath(path)[0] === 'tags');\n if (hasTagsChange) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = tags?.map((tag: Ref.Ref<Tag.Tag>) => tag.dxn.toString()) ?? [];\n });\n }\n\n // Handle other property changes.\n const nonTagPaths = changedPaths.filter((path) => splitJsonPath(path)[0] !== 'tags');\n if (nonTagPaths.length > 0) {\n Obj.change(object, () => {\n for (const path of nonTagPaths) {\n const parts = splitJsonPath(path);\n const value = Obj.getValue(values, parts);\n Obj.setValue(object, parts, value);\n }\n });\n }\n },\n [object],\n );\n\n return (\n <Form.Root\n schema={omitId(formSchema)}\n values={values}\n createOptionIcon='ph--plus--regular'\n createOptionLabel={['add tag label', { ns: pluginMeta.id }]}\n createInitialValuePath='label'\n db={db}\n onValuesChanged={handleChange}\n onCreate={handleCreate}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ObjectCardStack } from './ObjectCardStack';\n\nexport default ObjectCardStack;\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,OAAOA,UAASC,kBAAkB;AAElC,SAASC,OAAAA,YAAW;AACpB,SAASC,QAAQC,UAAUC,iBAAiB;AAC5C,SAASC,SAASC,SAASC,sBAAsB;AACjD,SAASC,cAAc;AACvB,SAASC,mBAAmB;AAC5B,SAASC,YAAY;AACrB,SAASC,WAAWC,iBAAiB;AACrC,SAAoBC,4BAA4B;AAChD,SAASC,iBAAAA,sBAAqB;;;ACV9B,YAAYC,YAAY;AACxB,OAAOC,SAASC,aAAaC,eAAe;AAE5C,SAASC,KAAKC,KAAeC,KAAKC,YAAY;AAC9C,SAAwBC,qBAAqB;AAC7C,SAASC,iBAAiB;AAC1B,SAASC,MAAMC,cAAc;AAC7B,SAASC,qBAAqB;;AASvB,IAAMC,aAAa,CAAC,EAAEC,QAAQC,OAAM,MAAmB;AAC5D,QAAMC,KAAKC,IAAIC,YAAYJ,MAAAA;AAE3B,QAAMK,aAAaC,QACjB,MACSC,cAAO;IACZC,MAAaC,aAAMC,KAAKC,IAAIC,IAAIA,GAAG,CAAA,EAAGC,KAAYC,eAAQ;EAC5D,CAAA,EAAGD,KAAYE,cAAOC,OAAOf,MAAAA,CAAAA,CAAAA,GAC/B;IAACA;GAAO;AAGV,QAAMgB,QAAOd,IAAIe,QAAQlB,MAAAA;AACzB,QAAMQ,QAAQS,MAAKT,QAAQ,CAAA,GAAIW,IAAI,CAACC,QAAQlB,IAAImB,QAAQC,IAAIC,MAAMH,GAAAA,CAAAA,CAAAA,EAAOI,OAAOC,aAAAA;AAChF,QAAMC,SAASpB,QAAQ,OAAO;IAAEE;IAAM,GAAGR;EAAO,IAAI;IAACA;IAAQQ;GAAK;AAElE,QAAMmB,eAAeC,YAAY,CAAC3B,SAAyByB,YAAAA;AACzDG,cAAU3B,IAAAA,QAAAA;;;;;;;;;AACV2B,cAAUnB,KAAKoB,eAAe7B,OAAAA,GAAAA,QAAAA;;;;;;;;;AAC9B,UAAM8B,YAAY7B,GAAG8B,IAAI7B,IAAI8B,KAAKhC,SAAQyB,OAAAA,CAAAA;AAC1C,QAAIvB,IAAI+B,WAAWtB,IAAIA,KAAKmB,SAAAA,GAAY;AACtC5B,UAAIgC,OAAOnC,QAAQ,CAACoC,QAAAA;AAClBjC,YAAIe,QAAQkB,GAAAA,EAAK5B,OAAO;aAAKL,IAAIe,QAAQkB,GAAAA,EAAK5B,QAAQ,CAAA;UAAKL,IAAIkC,OAAON,SAAAA,EAAWO,SAAQ;;MAC3F,CAAA;IACF;EACF,GAAG,CAAA,CAAE;AAGL,QAAMC,eAAeX,YACnB,CAAC,EAAEpB,MAAAA,OAAM,GAAGkB,QAAAA,GAAe,EAAEc,SAASC,QAAO,MAA4D;AACvG,QAAI,CAACD,SAAS;AACZ;IACF;AAEA,UAAME,eAAeC,OAAOC,KAAKH,OAAAA,EAASjB,OAAO,CAACqB,SAASJ,QAAQI,IAAAA,CAAiB;AAGpF,UAAMC,gBAAgBJ,aAAaK,KAAK,CAACF,SAASG,cAAcH,IAAAA,EAAM,CAAA,MAAO,MAAA;AAC7E,QAAIC,eAAe;AACjB3C,UAAIgC,OAAOnC,QAAQ,CAACoC,QAAAA;AAClBjC,YAAIe,QAAQkB,GAAAA,EAAK5B,OAAOA,OAAMW,IAAI,CAACC,QAA0BA,IAAI6B,IAAIX,SAAQ,CAAA,KAAO,CAAA;MACtF,CAAA;IACF;AAGA,UAAMY,cAAcR,aAAalB,OAAO,CAACqB,SAASG,cAAcH,IAAAA,EAAM,CAAA,MAAO,MAAA;AAC7E,QAAIK,YAAYC,SAAS,GAAG;AAC1BhD,UAAIgC,OAAOnC,QAAQ,MAAA;AACjB,mBAAW6C,QAAQK,aAAa;AAC9B,gBAAME,QAAQJ,cAAcH,IAAAA;AAC5B,gBAAMQ,QAAQlD,IAAImD,SAAS5B,SAAQ0B,KAAAA;AACnCjD,cAAIoD,SAASvD,QAAQoD,OAAOC,KAAAA;QAC9B;MACF,CAAA;IACF;EACF,GACA;IAACrD;GAAO;AAGV,SACE,sBAAA,cAACwD,KAAKC,MAAI;IACRxD,QAAQe,OAAOX,UAAAA;IACfqB;IACAgC,kBAAiB;IACjBC,mBAAmB;MAAC;MAAiB;QAAEC,IAAIC,KAAWC;MAAG;;IACzDC,wBAAuB;IACvB7D;IACA8D,iBAAiBzB;IACjB0B,UAAUtC;KAEV,sBAAA,cAAC6B,KAAKU,UAAQ,MACZ,sBAAA,cAACV,KAAKW,SAAO,MACX,sBAAA,cAACX,KAAKY,UAAQ,IAAA,CAAA,CAAA,CAAA;AAKxB;;;ADvEO,IAAMC,kBAAkBC,2BAAiD,CAAC,EAAEC,UAAUC,KAAI,GAAIC,iBAAAA;AACnG,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAMC,KAAKC,KAAIC,YAAYR,IAAAA;AAC3B,QAAMS,WAAWT,KAAKU,QAAQC,qBAAqBX,KAAKU,MAAME,GAAG,IAAIC;AACrE,QAAMC,SAASC,UAAUT,IAAIG,QAAAA;AAE7B,QAAMO,iBAAiBC,SAASX,IAAIQ,SAASI,OAAOC,KAAKL,MAAAA,IAAUI,OAAOE,QAAO,CAAA;AACjF,QAAMC,eAAeC,YAAYvB,UAAU,OAAA;AAC3C,QAAMwB,kBAAkBF,aAAaG,IAAI,CAACnB,OAAOW,eAAeS,KAAK,CAACC,QAAQA,IAAIrB,OAAOA,EAAAA,CAAAA,EAAKsB,OAAOC,cAAAA;AAErG,MAAI,CAACd,QAAQ;AACX,WAAO;EACT;AAEA,SACE,gBAAAe,OAAA,cAACC,OAAOC,MAAI;IAACC,SAAAA;IAAQC,KAAKhC;KACxB,gBAAA4B,OAAA,cAACK,QAAQC,MAAI,IAAA,GACb,gBAAAN,OAAA,cAACO,UAAUD,MAAI;IAACE,SAAAA;KACd,gBAAAR,OAAA,cAACO,UAAUE,SAAO,MAChB,gBAAAT,OAAA,cAACO,UAAUG,OAAK;IAAClC,IAAIN;IAAUyC,YAAYjB,gBAAgBkB;KACxDlB,gBAAgBkB,WAAW,KAC1B,gBAAAZ,OAAA,cAACO,UAAUM,MAAI,MACb,gBAAAb,OAAA,cAACc,QAAQR,MAAI,MACX,gBAAAN,OAAA,cAACc,QAAQC,OAAK,MAAE1C,EAAE,gCAAA,CAAA,CAAA,CAAA,GAIvBqB,gBAAgBC,IAAI,CAACqB,WACpB,gBAAAhB,OAAA,cAACO,UAAUM,MAAI;IAACI,KAAKD,OAAOxC;IAAIgC,SAAAA;KAC9B,gBAAAR,OAAA,cAACkB,UAAUZ,MAAI;IAACa,MAAMH;KACpB,gBAAAhB,OAAA,cAACoB,KAAKd,MAAI,MACR,gBAAAN,OAAA,cAACqB,YAAAA;IAAWL;IAAgB/B;;AAUhD,CAAA;;;AE5DA,IAAA,0BAAeqC;",
|
|
6
|
+
"names": ["React", "forwardRef", "Obj", "Filter", "useQuery", "useSchema", "Callout", "Toolbar", "useTranslation", "Layout", "useSelected", "Card", "CardStack", "StackItem", "getTypenameFromQuery", "isNonNullable", "Schema", "React", "useCallback", "useMemo", "DXN", "Obj", "Tag", "Type", "splitJsonPath", "invariant", "Form", "omitId", "isNonNullable", "ObjectForm", "object", "schema", "db", "Obj", "getDatabase", "formSchema", "useMemo", "Struct", "tags", "Array", "Type", "Ref", "Tag", "pipe", "optional", "extend", "omitId", "meta", "getMeta", "map", "tag", "makeRef", "DXN", "parse", "filter", "isNonNullable", "values", "handleCreate", "useCallback", "invariant", "isObjectSchema", "newObject", "add", "make", "instanceOf", "change", "obj", "getDXN", "toString", "handleChange", "isValid", "changed", "changedPaths", "Object", "keys", "path", "hasTagsChange", "some", "splitJsonPath", "dxn", "nonTagPaths", "length", "parts", "value", "getValue", "setValue", "Form", "Root", "createOptionIcon", "createOptionLabel", "ns", "pluginMeta", "id", "createInitialValuePath", "onValuesChanged", "onCreate", "Viewport", "Content", "FieldSet", "ObjectCardStack", "forwardRef", "objectId", "view", "forwardedRef", "t", "useTranslation", "meta", "id", "db", "Obj", "getDatabase", "typename", "query", "getTypenameFromQuery", "ast", "undefined", "schema", "useSchema", "queriedObjects", "useQuery", "Filter", "type", "nothing", "selectedRows", "useSelected", "selectedObjects", "map", "find", "obj", "filter", "isNonNullable", "React", "Layout", "Main", "toolbar", "ref", "Toolbar", "Root", "CardStack", "asChild", "Content", "Stack", "itemsCount", "length", "Item", "Callout", "Title", "object", "key", "StackItem", "item", "Card", "ObjectForm", "ObjectCardStack"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-HSMQFM57.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/ObjectDetails/ObjectDetails.tsx
|
|
6
|
+
import React2, { forwardRef, useMemo as useMemo2 } from "react";
|
|
7
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
8
|
+
import { Toolbar } from "@dxos/react-ui";
|
|
9
|
+
import { Layout } from "@dxos/react-ui";
|
|
10
|
+
|
|
11
|
+
// src/components/ObjectDetails/BaseObjectSettings.tsx
|
|
12
|
+
import * as Function from "effect/Function";
|
|
13
|
+
import * as Option from "effect/Option";
|
|
14
|
+
import * as Schema from "effect/Schema";
|
|
15
|
+
import React, { useCallback, useMemo } from "react";
|
|
16
|
+
import { DXN, Obj, Tag, Type } from "@dxos/echo";
|
|
17
|
+
import { splitJsonPath } from "@dxos/echo/internal";
|
|
18
|
+
import { invariant } from "@dxos/invariant";
|
|
19
|
+
import { Form, omitId } from "@dxos/react-ui-form";
|
|
20
|
+
import { isNonNullable } from "@dxos/util";
|
|
21
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/ObjectDetails/BaseObjectSettings.tsx";
|
|
22
|
+
var BaseSchema = Schema.Struct({
|
|
23
|
+
tags: Schema.Array(Type.Ref(Tag.Tag)).pipe(Schema.optional)
|
|
24
|
+
});
|
|
25
|
+
var BaseObjectSettings = ({ classNames, children, object }) => {
|
|
26
|
+
const db = Obj.getDatabase(object);
|
|
27
|
+
const formSchema = useMemo(() => {
|
|
28
|
+
return Function.pipe(Obj.getSchema(object), Option.fromNullable, Option.map((schema) => BaseSchema.pipe(Schema.extend(schema))), Option.getOrUndefined);
|
|
29
|
+
}, [
|
|
30
|
+
object
|
|
31
|
+
]);
|
|
32
|
+
const meta2 = Obj.getMeta(object);
|
|
33
|
+
const tags = (meta2.tags ?? []).map((tag) => db?.makeRef(DXN.parse(tag))).filter(isNonNullable);
|
|
34
|
+
const values = useMemo(() => ({
|
|
35
|
+
tags,
|
|
36
|
+
...object
|
|
37
|
+
}), [
|
|
38
|
+
object,
|
|
39
|
+
tags
|
|
40
|
+
]);
|
|
41
|
+
const handleCreate = useCallback((schema, values2) => {
|
|
42
|
+
invariant(db, void 0, {
|
|
43
|
+
F: __dxlog_file,
|
|
44
|
+
L: 54,
|
|
45
|
+
S: void 0,
|
|
46
|
+
A: [
|
|
47
|
+
"db",
|
|
48
|
+
""
|
|
49
|
+
]
|
|
50
|
+
});
|
|
51
|
+
invariant(Type.isObjectSchema(schema), void 0, {
|
|
52
|
+
F: __dxlog_file,
|
|
53
|
+
L: 55,
|
|
54
|
+
S: void 0,
|
|
55
|
+
A: [
|
|
56
|
+
"Type.isObjectSchema(schema)",
|
|
57
|
+
""
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
const newObject = db.add(Obj.make(schema, values2));
|
|
61
|
+
if (Obj.instanceOf(Tag.Tag, newObject)) {
|
|
62
|
+
Obj.change(object, (obj) => {
|
|
63
|
+
Obj.getMeta(obj).tags = [
|
|
64
|
+
...Obj.getMeta(obj).tags ?? [],
|
|
65
|
+
Obj.getDXN(newObject).toString()
|
|
66
|
+
];
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}, []);
|
|
70
|
+
const handleChange = useCallback(({ tags: tags2, ...values2 }, { isValid, changed }) => {
|
|
71
|
+
if (!isValid) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const changedPaths = Object.keys(changed).filter((path) => changed[path]);
|
|
75
|
+
const hasTagsChange = changedPaths.some((path) => splitJsonPath(path)[0] === "tags");
|
|
76
|
+
if (hasTagsChange) {
|
|
77
|
+
Obj.change(object, (obj) => {
|
|
78
|
+
Obj.getMeta(obj).tags = tags2?.map((tag) => tag.dxn.toString()) ?? [];
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const nonTagPaths = changedPaths.filter((path) => splitJsonPath(path)[0] !== "tags");
|
|
82
|
+
if (nonTagPaths.length > 0) {
|
|
83
|
+
Obj.change(object, () => {
|
|
84
|
+
for (const path of nonTagPaths) {
|
|
85
|
+
const parts = splitJsonPath(path);
|
|
86
|
+
const value = Obj.getValue(values2, parts);
|
|
87
|
+
Obj.setValue(object, parts, value);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}, [
|
|
92
|
+
object
|
|
93
|
+
]);
|
|
94
|
+
if (!formSchema) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
return /* @__PURE__ */ React.createElement(Form.Root, {
|
|
98
|
+
schema: omitId(formSchema),
|
|
99
|
+
values,
|
|
100
|
+
createOptionIcon: "ph--plus--regular",
|
|
101
|
+
createOptionLabel: [
|
|
102
|
+
"add tag label",
|
|
103
|
+
{
|
|
104
|
+
ns: meta.id
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
createInitialValuePath: "label",
|
|
108
|
+
db,
|
|
109
|
+
onValuesChanged: handleChange,
|
|
110
|
+
onCreate: handleCreate
|
|
111
|
+
}, /* @__PURE__ */ React.createElement(Form.Viewport, null, /* @__PURE__ */ React.createElement(Form.Content, {
|
|
112
|
+
classNames
|
|
113
|
+
}, /* @__PURE__ */ React.createElement(Form.FieldSet, null), children)));
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// src/components/ObjectDetails/ObjectDetails.tsx
|
|
117
|
+
var ObjectDetails = /* @__PURE__ */ forwardRef(({ role, subject: object }, forwardedRef) => {
|
|
118
|
+
const data = useMemo2(() => ({
|
|
119
|
+
subject: object
|
|
120
|
+
}), [
|
|
121
|
+
object
|
|
122
|
+
]);
|
|
123
|
+
return /* @__PURE__ */ React2.createElement(Layout.Main, {
|
|
124
|
+
toolbar: true,
|
|
125
|
+
role,
|
|
126
|
+
ref: forwardedRef
|
|
127
|
+
}, /* @__PURE__ */ React2.createElement(Toolbar.Root, null), /* @__PURE__ */ React2.createElement(BaseObjectSettings, {
|
|
128
|
+
object
|
|
129
|
+
}, /* @__PURE__ */ React2.createElement(Surface.Surface, {
|
|
130
|
+
role: "base-object-settings",
|
|
131
|
+
data
|
|
132
|
+
}), /* @__PURE__ */ React2.createElement(Surface.Surface, {
|
|
133
|
+
role: "object-settings",
|
|
134
|
+
data
|
|
135
|
+
})));
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// src/components/ObjectDetails/index.ts
|
|
139
|
+
var ObjectDetails_default = ObjectDetails;
|
|
140
|
+
export {
|
|
141
|
+
ObjectDetails_default as default
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=ObjectDetails-HXV4IQEM.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ObjectDetails/ObjectDetails.tsx", "../../../src/components/ObjectDetails/BaseObjectSettings.tsx", "../../../src/components/ObjectDetails/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { type Obj } from '@dxos/echo';\nimport { Toolbar } from '@dxos/react-ui';\nimport { Layout } from '@dxos/react-ui';\n\nimport { BaseObjectSettings } from './BaseObjectSettings';\n\nexport type ObjectDetailsProps = SurfaceComponentProps<Obj.Unknown>;\n\nexport const ObjectDetails = forwardRef<HTMLDivElement, ObjectDetailsProps>(\n ({ role, subject: object }, forwardedRef) => {\n const data = useMemo(() => ({ subject: object }), [object]);\n\n return (\n <Layout.Main toolbar role={role} ref={forwardedRef}>\n <Toolbar.Root />\n <BaseObjectSettings object={object}>\n <Surface.Surface role='base-object-settings' data={data} />\n <Surface.Surface role='object-settings' data={data} />\n {/* TODO(wittjosiah): Remove (or add as surface)? */}\n {/* <AdvancedObjectSettings object={object} /> */}\n </BaseObjectSettings>\n </Layout.Main>\n );\n },\n);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport React, { type PropsWithChildren, useCallback, useMemo } from 'react';\n\nimport { DXN, Obj, type Ref, Tag, Type } from '@dxos/echo';\nimport { type JsonPath, splitJsonPath } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { Form, omitId } from '@dxos/react-ui-form';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta as pluginMeta } from '../../meta';\n\n// TODO(wittjosiah): Would be nice to control order when extending so this isn't always first/last.\nconst BaseSchema = Schema.Struct({\n tags: Schema.Array(Type.Ref(Tag.Tag)).pipe(Schema.optional),\n});\n\nexport type BaseObjectSettingsProps = ThemedClassName<\n PropsWithChildren<{\n object: Obj.Unknown;\n }>\n>;\n\n// TODO(wittjosiah): Reconcile w/ ObjectDetailsPanel.\nexport const BaseObjectSettings = ({ classNames, children, object }: BaseObjectSettingsProps) => {\n const db = Obj.getDatabase(object);\n\n const formSchema = useMemo(() => {\n return Function.pipe(\n Obj.getSchema(object),\n Option.fromNullable,\n Option.map((schema) => BaseSchema.pipe(Schema.extend(schema))),\n Option.getOrUndefined,\n );\n }, [object]);\n\n const meta = Obj.getMeta(object);\n const tags = (meta.tags ?? []).map((tag) => db?.makeRef(DXN.parse(tag))).filter(isNonNullable);\n const values = useMemo(\n () => ({\n tags,\n ...object,\n }),\n [object, tags],\n );\n\n const handleCreate = useCallback((schema: Type.Entity.Any, values: any) => {\n invariant(db);\n invariant(Type.isObjectSchema(schema));\n const newObject = db.add(Obj.make(schema, values));\n if (Obj.instanceOf(Tag.Tag, newObject)) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = [...(Obj.getMeta(obj).tags ?? []), Obj.getDXN(newObject).toString()];\n });\n }\n }, []);\n\n // TODO(wittjosiah): Use FormRootProps type.\n const handleChange = useCallback(\n (\n { tags, ...values }: Schema.Schema.Type<typeof formSchema>,\n { isValid, changed }: { isValid: boolean; changed: Record<JsonPath, boolean> },\n ) => {\n if (!isValid) {\n return;\n }\n\n const changedPaths = Object.keys(changed).filter((path) => changed[path as JsonPath]) as JsonPath[];\n\n // Handle tags separately using Obj.change.\n const hasTagsChange = changedPaths.some((path) => splitJsonPath(path)[0] === 'tags');\n if (hasTagsChange) {\n Obj.change(object, (obj) => {\n Obj.getMeta(obj).tags = tags?.map((tag: Ref.Ref<Tag.Tag>) => tag.dxn.toString()) ?? [];\n });\n }\n\n // Handle other property changes.\n const nonTagPaths = changedPaths.filter((path) => splitJsonPath(path)[0] !== 'tags');\n if (nonTagPaths.length > 0) {\n Obj.change(object, () => {\n for (const path of nonTagPaths) {\n const parts = splitJsonPath(path);\n const value = Obj.getValue(values, parts);\n Obj.setValue(object, parts, value);\n }\n });\n }\n },\n [object],\n );\n\n if (!formSchema) {\n return null;\n }\n\n return (\n <Form.Root\n schema={omitId(formSchema)}\n values={values}\n createOptionIcon='ph--plus--regular'\n createOptionLabel={['add tag label', { ns: pluginMeta.id }]}\n createInitialValuePath='label'\n db={db}\n onValuesChanged={handleChange}\n onCreate={handleCreate}\n >\n <Form.Viewport>\n <Form.Content classNames={classNames}>\n <Form.FieldSet />\n {children}\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ObjectDetails } from './ObjectDetails';\n\nexport default ObjectDetails;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "forwardRef", "useMemo", "Surface", "Toolbar", "Layout", "Function", "Option", "Schema", "React", "useCallback", "useMemo", "DXN", "Obj", "Tag", "Type", "splitJsonPath", "invariant", "Form", "omitId", "isNonNullable", "BaseSchema", "Struct", "tags", "Array", "Type", "Ref", "Tag", "pipe", "optional", "BaseObjectSettings", "classNames", "children", "object", "db", "Obj", "getDatabase", "formSchema", "useMemo", "getSchema", "fromNullable", "map", "schema", "extend", "getOrUndefined", "meta", "getMeta", "tag", "makeRef", "DXN", "parse", "filter", "isNonNullable", "values", "handleCreate", "useCallback", "invariant", "isObjectSchema", "newObject", "add", "make", "instanceOf", "change", "obj", "getDXN", "toString", "handleChange", "isValid", "changed", "changedPaths", "Object", "keys", "path", "hasTagsChange", "some", "splitJsonPath", "dxn", "nonTagPaths", "length", "parts", "value", "getValue", "setValue", "Form", "Root", "omitId", "createOptionIcon", "createOptionLabel", "ns", "pluginMeta", "id", "createInitialValuePath", "onValuesChanged", "onCreate", "Viewport", "Content", "FieldSet", "ObjectDetails", "forwardRef", "role", "subject", "object", "forwardedRef", "data", "useMemo", "React", "Layout", "Main", "toolbar", "ref", "Toolbar", "Root", "BaseObjectSettings", "Surface", "ObjectDetails"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-HSMQFM57.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/RecordArticle.tsx
|
|
6
|
+
import React, { useMemo } from "react";
|
|
7
|
+
import { Surface } from "@dxos/app-framework/ui";
|
|
8
|
+
import { Entity, Filter, Obj, Ref, Relation } from "@dxos/echo";
|
|
9
|
+
import { useQuery } from "@dxos/react-client/echo";
|
|
10
|
+
import { Layout, ScrollArea, useTranslation } from "@dxos/react-ui";
|
|
11
|
+
import { Masonry } from "@dxos/react-ui-masonry";
|
|
12
|
+
import { Card as MosaicCard } from "@dxos/react-ui-mosaic";
|
|
13
|
+
import { mx } from "@dxos/ui-theme";
|
|
14
|
+
import { isNonNullable } from "@dxos/util";
|
|
15
|
+
var RecordArticle = ({ role, subject }) => {
|
|
16
|
+
const { t } = useTranslation(meta.id);
|
|
17
|
+
const db = Obj.getDatabase(subject);
|
|
18
|
+
const data = useMemo(() => ({
|
|
19
|
+
subject
|
|
20
|
+
}), [
|
|
21
|
+
subject
|
|
22
|
+
]);
|
|
23
|
+
const related = useRelatedObjects(db, subject, {
|
|
24
|
+
references: true,
|
|
25
|
+
relations: true
|
|
26
|
+
});
|
|
27
|
+
const singleColumn = related.length === 1;
|
|
28
|
+
return /* @__PURE__ */ React.createElement(Layout.Main, {
|
|
29
|
+
role
|
|
30
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Root, {
|
|
31
|
+
orientation: "vertical"
|
|
32
|
+
}, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, {
|
|
33
|
+
classNames: mx("p-4 gap-4")
|
|
34
|
+
}, /* @__PURE__ */ React.createElement("div", {
|
|
35
|
+
role: "none",
|
|
36
|
+
className: mx("flex is-full card-max-width")
|
|
37
|
+
}, /* @__PURE__ */ React.createElement(Surface.Surface, {
|
|
38
|
+
role: "section",
|
|
39
|
+
data,
|
|
40
|
+
limit: 1
|
|
41
|
+
})), related.length > 0 && /* @__PURE__ */ React.createElement("div", {
|
|
42
|
+
role: "none",
|
|
43
|
+
className: mx("flex flex-col gap-1", singleColumn ? "card-max-width" : "is-full")
|
|
44
|
+
}, /* @__PURE__ */ React.createElement("label", {
|
|
45
|
+
className: "mbs-2 text-sm text-description"
|
|
46
|
+
}, t("related objects label")), /* @__PURE__ */ React.createElement(Masonry.Root, {
|
|
47
|
+
items: related,
|
|
48
|
+
render: Card,
|
|
49
|
+
columnCount: singleColumn ? 1 : void 0,
|
|
50
|
+
intrinsicHeight: true
|
|
51
|
+
})))));
|
|
52
|
+
};
|
|
53
|
+
var Card = ({ data: subject }) => {
|
|
54
|
+
const data = useMemo(() => ({
|
|
55
|
+
subject
|
|
56
|
+
}), [
|
|
57
|
+
subject
|
|
58
|
+
]);
|
|
59
|
+
return /* @__PURE__ */ React.createElement(MosaicCard.Root, null, /* @__PURE__ */ React.createElement(MosaicCard.Toolbar, null, /* @__PURE__ */ React.createElement("span", null), /* @__PURE__ */ React.createElement(MosaicCard.Title, null, Entity.getLabel(subject))), /* @__PURE__ */ React.createElement(Surface.Surface, {
|
|
60
|
+
role: "card--content",
|
|
61
|
+
data,
|
|
62
|
+
limit: 1
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
var useRelatedObjects = (db, record, options = {}) => {
|
|
66
|
+
const objects = useQuery(db, Filter.everything());
|
|
67
|
+
return useMemo(() => {
|
|
68
|
+
if (!record) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
const related = [];
|
|
72
|
+
if (options.references) {
|
|
73
|
+
const getReferences = (obj) => {
|
|
74
|
+
return Object.getOwnPropertyNames(obj).map((name) => obj[name]).filter((value) => Ref.isRef(value));
|
|
75
|
+
};
|
|
76
|
+
const references = getReferences(record);
|
|
77
|
+
const referenceTargets = references.map((ref) => ref.target).filter(isNonNullable);
|
|
78
|
+
const referenceSources = objects.filter((obj) => {
|
|
79
|
+
const refs = getReferences(obj);
|
|
80
|
+
return refs.some((ref) => ref.target === record);
|
|
81
|
+
});
|
|
82
|
+
related.push(...referenceTargets, ...referenceSources);
|
|
83
|
+
}
|
|
84
|
+
if (options.relations) {
|
|
85
|
+
const isValidRelation = (obj) => {
|
|
86
|
+
try {
|
|
87
|
+
return Relation.isRelation(obj) && Relation.getSource(obj) && Relation.getTarget(obj);
|
|
88
|
+
} catch {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const relations = objects.filter(Relation.isRelation).filter((obj) => isValidRelation(obj));
|
|
93
|
+
const targetObjects = relations.filter((relation) => Relation.getTarget(relation) === record).map((relation) => Relation.getSource(relation));
|
|
94
|
+
const sourceObjects = relations.filter((relation) => Relation.getSource(relation) === record).map((relation) => Relation.getTarget(relation));
|
|
95
|
+
related.push(...targetObjects, ...sourceObjects);
|
|
96
|
+
}
|
|
97
|
+
return related;
|
|
98
|
+
}, [
|
|
99
|
+
record,
|
|
100
|
+
objects
|
|
101
|
+
]);
|
|
102
|
+
};
|
|
103
|
+
var RecordArticle_default = RecordArticle;
|
|
104
|
+
export {
|
|
105
|
+
RecordArticle,
|
|
106
|
+
RecordArticle_default as default
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=RecordArticle-36LDKFWF.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/RecordArticle.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { type Database, Entity, Filter, Obj, Ref, Relation } from '@dxos/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Layout, ScrollArea, useTranslation } from '@dxos/react-ui';\nimport { Masonry } from '@dxos/react-ui-masonry';\nimport { Card as MosaicCard } from '@dxos/react-ui-mosaic';\nimport { mx } from '@dxos/ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport { meta } from '../meta';\n\nexport const RecordArticle = ({ role, subject }: SurfaceComponentProps) => {\n const { t } = useTranslation(meta.id);\n const db = Obj.getDatabase(subject);\n const data = useMemo(() => ({ subject }), [subject]);\n const related = useRelatedObjects(db, subject, {\n references: true,\n relations: true,\n });\n const singleColumn = related.length === 1;\n\n return (\n <Layout.Main role={role}>\n <ScrollArea.Root orientation='vertical'>\n <ScrollArea.Viewport classNames={mx('p-4 gap-4')}>\n <div role='none' className={mx('flex is-full card-max-width')}>\n <Surface.Surface role='section' data={data} limit={1} />\n </div>\n\n {related.length > 0 && (\n <div role='none' className={mx('flex flex-col gap-1', singleColumn ? 'card-max-width' : 'is-full')}>\n <label className='mbs-2 text-sm text-description'>{t('related objects label')}</label>\n <Masonry.Root<Entity.Unknown>\n items={related}\n render={Card}\n columnCount={singleColumn ? 1 : undefined}\n intrinsicHeight\n />\n </div>\n )}\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Layout.Main>\n );\n};\n\nconst Card = ({ data: subject }: { data: Entity.Unknown }) => {\n const data = useMemo(() => ({ subject }), [subject]);\n return (\n <MosaicCard.Root>\n <MosaicCard.Toolbar>\n <span />\n <MosaicCard.Title>{Entity.getLabel(subject)}</MosaicCard.Title>\n </MosaicCard.Toolbar>\n <Surface.Surface role='card--content' data={data} limit={1} />\n </MosaicCard.Root>\n );\n};\n\n// TODO(wittjosiah): This is a hack. ECHO needs to have a back reference index to easily query for related objects.\nconst useRelatedObjects = (\n db?: Database.Database,\n record?: Obj.Unknown,\n options: { references?: boolean; relations?: boolean } = {},\n) => {\n const objects = useQuery(db, Filter.everything());\n return useMemo(() => {\n if (!record) {\n return [];\n }\n\n const related: Entity.Unknown[] = [];\n\n // TODO(burdon): Change Person => Organization to relations.\n if (options.references) {\n const getReferences = (obj: Entity.Unknown): Ref.Unknown[] => {\n return Object.getOwnPropertyNames(obj)\n .map((name) => obj[name as keyof Obj.Unknown])\n .filter((value) => Ref.isRef(value)) as Ref.Unknown[];\n };\n\n const references = getReferences(record);\n const referenceTargets = references.map((ref) => ref.target).filter(isNonNullable);\n const referenceSources = objects.filter((obj) => {\n const refs = getReferences(obj);\n return refs.some((ref) => ref.target === record);\n });\n\n related.push(...referenceTargets, ...referenceSources);\n }\n\n if (options.relations) {\n // TODO(dmaretskyi): Workaround until https://github.com/dxos/dxos/pull/10100 lands.\n const isValidRelation = (obj: Relation.Unknown) => {\n try {\n return Relation.isRelation(obj) && Relation.getSource(obj) && Relation.getTarget(obj);\n } catch {\n return false;\n }\n };\n\n const relations = objects.filter(Relation.isRelation).filter((obj) => isValidRelation(obj));\n const targetObjects = relations\n .filter((relation) => Relation.getTarget(relation) === record)\n .map((relation) => Relation.getSource(relation));\n const sourceObjects = relations\n .filter((relation) => Relation.getSource(relation) === record)\n .map((relation) => Relation.getTarget(relation));\n\n related.push(...targetObjects, ...sourceObjects);\n }\n\n return related;\n }, [record, objects]);\n};\n\nexport default RecordArticle;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useMemo", "Surface", "Entity", "Filter", "Obj", "Ref", "Relation", "useQuery", "Layout", "ScrollArea", "useTranslation", "Masonry", "Card", "MosaicCard", "mx", "isNonNullable", "RecordArticle", "role", "subject", "t", "useTranslation", "meta", "id", "db", "Obj", "getDatabase", "data", "useMemo", "related", "useRelatedObjects", "references", "relations", "singleColumn", "length", "Layout", "Main", "ScrollArea", "Root", "orientation", "Viewport", "classNames", "mx", "div", "className", "Surface", "limit", "label", "Masonry", "items", "render", "Card", "columnCount", "undefined", "intrinsicHeight", "MosaicCard", "Toolbar", "span", "Title", "Entity", "getLabel", "record", "options", "objects", "useQuery", "Filter", "everything", "getReferences", "obj", "Object", "getOwnPropertyNames", "map", "name", "filter", "value", "Ref", "isRef", "referenceTargets", "ref", "target", "isNonNullable", "referenceSources", "refs", "some", "push", "isValidRelation", "Relation", "isRelation", "getSource", "getTarget", "targetObjects", "relation", "sourceObjects"]
|
|
7
|
+
}
|