@dxos/plugin-markdown 0.8.4-main.406dc2a → 0.8.4-main.52d7546f51
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/MarkdownCard-7VIO7R66.mjs +11 -0
- package/dist/lib/browser/MarkdownContainer-6E43EDAU.mjs +11 -0
- package/dist/lib/browser/anchor-sort-JBAZRPE7.mjs +33 -0
- package/dist/lib/browser/anchor-sort-JBAZRPE7.mjs.map +7 -0
- package/dist/lib/browser/app-graph-serializer-6Q5YBUPW.mjs +59 -0
- package/dist/lib/browser/app-graph-serializer-6Q5YBUPW.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-6HOAW2E6.mjs +20 -0
- package/dist/lib/browser/blueprint-definition-6HOAW2E6.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +8 -0
- package/dist/lib/browser/blueprints/index.mjs.map +7 -0
- package/dist/lib/browser/{chunk-O6XUPW6S.mjs → chunk-2AAD3W6X.mjs} +12 -8
- package/dist/lib/browser/chunk-2AAD3W6X.mjs.map +7 -0
- package/dist/lib/browser/chunk-4GT3QWMK.mjs +167 -0
- package/dist/lib/browser/chunk-4GT3QWMK.mjs.map +7 -0
- package/dist/lib/browser/chunk-6SM75KL3.mjs +8 -0
- package/dist/lib/browser/chunk-6SM75KL3.mjs.map +7 -0
- package/dist/lib/browser/chunk-7AQTX6D5.mjs +105 -0
- package/dist/lib/browser/chunk-7AQTX6D5.mjs.map +7 -0
- package/dist/lib/browser/chunk-EZZFREFN.mjs +58 -0
- package/dist/lib/browser/chunk-EZZFREFN.mjs.map +7 -0
- package/dist/lib/browser/chunk-HHRUUWGH.mjs +796 -0
- package/dist/lib/browser/chunk-HHRUUWGH.mjs.map +7 -0
- package/dist/lib/browser/chunk-HQTBT5IY.mjs +176 -0
- package/dist/lib/browser/chunk-HQTBT5IY.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +33 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +125 -143
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/operation-resolver-UBQUPSXC.mjs +53 -0
- package/dist/lib/browser/operation-resolver-UBQUPSXC.mjs.map +7 -0
- package/dist/lib/browser/react-surface-7Z6AB26V.mjs +213 -0
- package/dist/lib/browser/react-surface-7Z6AB26V.mjs.map +7 -0
- package/dist/lib/browser/settings-V2XOFSD5.mjs +36 -0
- package/dist/lib/browser/settings-V2XOFSD5.mjs.map +7 -0
- package/dist/lib/browser/state-6Y3JB64H.mjs +29 -0
- package/dist/lib/browser/state-6Y3JB64H.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +10 -3
- package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs +12 -0
- package/dist/lib/node-esm/MarkdownCard-YC3R2TQW.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs +12 -0
- package/dist/lib/node-esm/MarkdownContainer-TTRUOXU6.mjs.map +7 -0
- package/dist/lib/node-esm/anchor-sort-IQMDZRA3.mjs +34 -0
- package/dist/lib/node-esm/anchor-sort-IQMDZRA3.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-serializer-STEPJH57.mjs +60 -0
- package/dist/lib/node-esm/app-graph-serializer-STEPJH57.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-UGDFF5OZ.mjs +21 -0
- package/dist/lib/node-esm/blueprint-definition-UGDFF5OZ.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +9 -0
- package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-AGZOFIK2.mjs +10 -0
- package/dist/lib/node-esm/chunk-AGZOFIK2.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-D46D75SK.mjs +797 -0
- package/dist/lib/node-esm/chunk-D46D75SK.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-DCKB3AVD.mjs +59 -0
- package/dist/lib/node-esm/chunk-DCKB3AVD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-K2IIYNCG.mjs +106 -0
- package/dist/lib/node-esm/chunk-K2IIYNCG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-LOZVC2WA.mjs +177 -0
- package/dist/lib/node-esm/chunk-LOZVC2WA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XO3IEQJE.mjs → chunk-MLZQCT2N.mjs} +12 -8
- package/dist/lib/node-esm/chunk-MLZQCT2N.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-USKAPINH.mjs +168 -0
- package/dist/lib/node-esm/chunk-USKAPINH.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +34 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +125 -143
- 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-QAGXDA5E.mjs +54 -0
- package/dist/lib/node-esm/operation-resolver-QAGXDA5E.mjs.map +7 -0
- package/dist/lib/node-esm/react-surface-VIXAH5CF.mjs +214 -0
- package/dist/lib/node-esm/react-surface-VIXAH5CF.mjs.map +7 -0
- package/dist/lib/node-esm/settings-EXSH2KF4.mjs +37 -0
- package/dist/lib/node-esm/settings-EXSH2KF4.mjs.map +7 -0
- package/dist/lib/node-esm/state-TVF2XT2T.mjs +30 -0
- package/dist/lib/node-esm/state-TVF2XT2T.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +10 -3
- package/dist/types/src/MarkdownPlugin.d.ts +2 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/{functions/open.d.ts → blueprints/functions/create.d.ts} +5 -4
- package/dist/types/src/blueprints/functions/create.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/create.test.d.ts +2 -0
- package/dist/types/src/blueprints/functions/create.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/index.d.ts +4 -0
- package/dist/types/src/blueprints/functions/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/open.d.ts +14 -0
- package/dist/types/src/blueprints/functions/open.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/update.d.ts +19 -0
- package/dist/types/src/blueprints/functions/update.d.ts.map +1 -0
- package/dist/types/src/blueprints/functions/update.test.d.ts +2 -0
- package/dist/types/src/blueprints/functions/update.test.d.ts.map +1 -0
- package/dist/types/src/blueprints/index.d.ts +2 -0
- package/dist/types/src/blueprints/index.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown-blueprint.d.ts +21 -0
- package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -0
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts +6 -0
- package/dist/types/src/capabilities/anchor-sort/anchor-sort.d.ts.map +1 -0
- package/dist/types/src/capabilities/anchor-sort/index.d.ts +3 -0
- package/dist/types/src/capabilities/anchor-sort/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/artifact-definition/artifact-definition.d.ts +5 -0
- package/dist/types/src/capabilities/artifact-definition/artifact-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/artifact-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/artifact-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +11 -0
- package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
- package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +6 -17
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -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 +5 -0
- package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface/index.d.ts +3 -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 +5 -0
- package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/index.d.ts +3 -0
- package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings/settings.d.ts +7 -0
- package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/index.d.ts +3 -0
- package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/state/state.d.ts +5 -0
- package/dist/types/src/capabilities/state/state.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 +3 -0
- package/dist/types/src/cli/plugin.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts +5 -4
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +5 -5
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.d.ts +21 -11
- package/dist/types/src/components/MarkdownContainer.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts +33 -0
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts +11 -0
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +43 -23
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +5 -110
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +30 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +12 -0
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -0
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +4 -2
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
- package/dist/types/src/components/Suggestions.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +7 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +3 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts +9 -0
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -0
- package/dist/types/src/hooks/useExtensions.d.ts +21 -0
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts +4 -0
- package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -0
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +1 -1
- 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 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing.d.ts +6 -0
- package/dist/types/src/testing.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +33 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +16 -16
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownAction.d.ts +63 -31
- package/dist/types/src/types/MarkdownAction.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +22 -0
- package/dist/types/src/types/capabilities.d.ts.map +1 -0
- package/dist/types/src/types/events.d.ts +5 -0
- package/dist/types/src/types/events.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 +2 -2
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +6 -3
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/src/util.test.d.ts +2 -0
- package/dist/types/src/util.test.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +94 -56
- package/src/MarkdownPlugin.tsx +65 -94
- package/src/blueprints/functions/create.conversations.json +1 -0
- package/src/blueprints/functions/create.test.ts +92 -0
- package/src/blueprints/functions/create.ts +35 -0
- package/src/blueprints/functions/index.ts +7 -0
- package/src/{functions → blueprints/functions}/open.ts +11 -10
- package/src/blueprints/functions/update.conversations.json +1 -0
- package/src/blueprints/functions/update.test.ts +215 -0
- package/src/blueprints/functions/update.ts +79 -0
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/markdown-blueprint.ts +38 -0
- package/src/capabilities/anchor-sort/anchor-sort.ts +37 -0
- package/src/capabilities/anchor-sort/index.ts +7 -0
- package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +60 -0
- package/src/capabilities/app-graph-serializer/index.ts +7 -0
- package/src/capabilities/artifact-definition/artifact-definition.ts +110 -0
- package/src/capabilities/artifact-definition/index.ts +7 -0
- package/src/capabilities/blueprint-definition/blueprint-definition.ts +26 -0
- package/src/capabilities/blueprint-definition/index.ts +7 -0
- package/src/capabilities/index.ts +6 -12
- package/src/capabilities/operation-resolver/index.ts +7 -0
- package/src/capabilities/operation-resolver/operation-resolver.ts +45 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +102 -0
- package/src/capabilities/settings/index.ts +7 -0
- package/src/capabilities/settings/settings.ts +37 -0
- package/src/capabilities/state/index.ts +7 -0
- package/src/capabilities/state/state.ts +31 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/plugin.ts +30 -0
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +26 -44
- package/src/components/MarkdownCard/MarkdownCard.tsx +41 -53
- package/src/components/MarkdownContainer.stories.tsx +68 -54
- package/src/components/MarkdownContainer.tsx +106 -250
- package/src/components/MarkdownEditor/FileUpload.tsx +63 -0
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +56 -38
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +227 -273
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +162 -0
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +66 -0
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +48 -34
- package/src/components/Suggestions.stories.tsx +35 -39
- package/src/components/index.ts +10 -3
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useEditorMenuOptions.ts +68 -0
- package/src/{extensions.tsx → hooks/useExtensions.tsx} +70 -95
- package/src/hooks/useLinkQuery.ts +83 -0
- package/src/hooks/useSelectCurrentThread.tsx +37 -32
- package/src/index.ts +3 -2
- package/src/meta.ts +5 -5
- package/src/testing.ts +27 -0
- package/src/translations.ts +6 -0
- package/src/types/Markdown.ts +8 -9
- package/src/types/MarkdownAction.ts +48 -18
- package/src/types/capabilities.ts +38 -0
- package/src/types/events.ts +14 -0
- package/src/types/index.ts +4 -0
- package/src/types/types.ts +3 -2
- package/src/util.test.ts +44 -0
- package/src/util.tsx +80 -11
- package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs +0 -83
- package/dist/lib/browser/MarkdownCard-AGWOTODZ.mjs.map +0 -7
- package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs +0 -751
- package/dist/lib/browser/MarkdownContainer-MV2UNAUV.mjs.map +0 -7
- package/dist/lib/browser/anchor-sort-YWJI3BKT.mjs +0 -32
- package/dist/lib/browser/anchor-sort-YWJI3BKT.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs +0 -51
- package/dist/lib/browser/app-graph-serializer-KYDFCUOW.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-BHRMFZAC.mjs +0 -11
- package/dist/lib/browser/chunk-6KU5DKP7.mjs +0 -51
- package/dist/lib/browser/chunk-6KU5DKP7.mjs.map +0 -7
- package/dist/lib/browser/chunk-HBBEHOP3.mjs +0 -106
- package/dist/lib/browser/chunk-HBBEHOP3.mjs.map +0 -7
- package/dist/lib/browser/chunk-O6XUPW6S.mjs.map +0 -7
- package/dist/lib/browser/chunk-ODB2PTBP.mjs +0 -28
- package/dist/lib/browser/chunk-ODB2PTBP.mjs.map +0 -7
- package/dist/lib/browser/chunk-OY6CGPOO.mjs +0 -16
- package/dist/lib/browser/chunk-OY6CGPOO.mjs.map +0 -7
- package/dist/lib/browser/chunk-XMT6PMU5.mjs +0 -79
- package/dist/lib/browser/chunk-XMT6PMU5.mjs.map +0 -7
- package/dist/lib/browser/chunk-Z5PDJNBV.mjs +0 -22
- package/dist/lib/browser/chunk-Z5PDJNBV.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs +0 -62
- package/dist/lib/browser/intent-resolver-XHVCZZHU.mjs.map +0 -7
- package/dist/lib/browser/react-surface-3A2GO3BN.mjs +0 -215
- package/dist/lib/browser/react-surface-3A2GO3BN.mjs.map +0 -7
- package/dist/lib/browser/settings-XY265Y2Q.mjs +0 -28
- package/dist/lib/browser/settings-XY265Y2Q.mjs.map +0 -7
- package/dist/lib/browser/state-6QODXCSZ.mjs +0 -37
- package/dist/lib/browser/state-6QODXCSZ.mjs.map +0 -7
- package/dist/lib/browser/toolkit-YA65QX2S.mjs +0 -76
- package/dist/lib/browser/toolkit-YA65QX2S.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs +0 -84
- package/dist/lib/node-esm/MarkdownCard-B2IWTFOC.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs +0 -752
- package/dist/lib/node-esm/MarkdownContainer-J2R3DLCQ.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-FCRYL2FX.mjs +0 -33
- package/dist/lib/node-esm/anchor-sort-FCRYL2FX.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs +0 -52
- package/dist/lib/node-esm/app-graph-serializer-FAUQM3BH.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-XYFKMIDR.mjs +0 -12
- package/dist/lib/node-esm/chunk-7RDNIMTF.mjs +0 -24
- package/dist/lib/node-esm/chunk-7RDNIMTF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CB2R4YIY.mjs +0 -17
- package/dist/lib/node-esm/chunk-CB2R4YIY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FVI7LPC3.mjs +0 -107
- package/dist/lib/node-esm/chunk-FVI7LPC3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FWZKC6X5.mjs +0 -80
- package/dist/lib/node-esm/chunk-FWZKC6X5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VCG2U522.mjs +0 -29
- package/dist/lib/node-esm/chunk-VCG2U522.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XO3IEQJE.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs +0 -52
- package/dist/lib/node-esm/chunk-ZBXV4ON7.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs +0 -63
- package/dist/lib/node-esm/intent-resolver-7A2EXGZQ.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-RCLL5WVQ.mjs +0 -216
- package/dist/lib/node-esm/react-surface-RCLL5WVQ.mjs.map +0 -7
- package/dist/lib/node-esm/settings-H3UDD3KO.mjs +0 -29
- package/dist/lib/node-esm/settings-H3UDD3KO.mjs.map +0 -7
- package/dist/lib/node-esm/state-W3PECOJX.mjs +0 -38
- package/dist/lib/node-esm/state-W3PECOJX.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs +0 -77
- package/dist/lib/node-esm/toolkit-HSIKUGNK.mjs.map +0 -7
- package/dist/types/src/capabilities/anchor-sort.d.ts +0 -6
- package/dist/types/src/capabilities/anchor-sort.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/artifact-definition.d.ts +0 -3
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
- package/dist/types/src/capabilities/capabilities.d.ts +0 -12
- package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/react-surface.d.ts +0 -4
- package/dist/types/src/capabilities/react-surface.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/state.d.ts +0 -11
- package/dist/types/src/capabilities/state.d.ts.map +0 -1
- package/dist/types/src/capabilities/toolkit.d.ts +0 -4
- package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
- package/dist/types/src/components/Toolbar.stories.d.ts +0 -48
- package/dist/types/src/components/Toolbar.stories.d.ts.map +0 -1
- package/dist/types/src/events.d.ts +0 -4
- package/dist/types/src/events.d.ts.map +0 -1
- package/dist/types/src/extensions.d.ts +0 -22
- package/dist/types/src/extensions.d.ts.map +0 -1
- package/dist/types/src/functions/diff.d.ts +0 -6
- package/dist/types/src/functions/diff.d.ts.map +0 -1
- package/dist/types/src/functions/index.d.ts +0 -3
- package/dist/types/src/functions/index.d.ts.map +0 -1
- package/dist/types/src/functions/open.d.ts.map +0 -1
- package/src/capabilities/anchor-sort.ts +0 -30
- package/src/capabilities/app-graph-serializer.ts +0 -54
- package/src/capabilities/artifact-definition.ts +0 -112
- package/src/capabilities/blueprint-definition.ts +0 -39
- package/src/capabilities/capabilities.ts +0 -21
- package/src/capabilities/intent-resolver.ts +0 -58
- package/src/capabilities/react-surface.tsx +0 -115
- package/src/capabilities/settings.ts +0 -25
- package/src/capabilities/state.ts +0 -31
- package/src/capabilities/toolkit.ts +0 -49
- package/src/components/Toolbar.stories.tsx +0 -118
- package/src/events.ts +0 -11
- package/src/functions/diff.ts +0 -37
- package/src/functions/index.ts +0 -6
- /package/dist/lib/browser/{blueprint-definition-BHRMFZAC.mjs.map → MarkdownCard-7VIO7R66.mjs.map} +0 -0
- /package/dist/lib/{node-esm/blueprint-definition-XYFKMIDR.mjs.map → browser/MarkdownContainer-6E43EDAU.mjs.map} +0 -0
|
@@ -6,19 +6,18 @@ import { type ViewUpdate } from '@codemirror/view';
|
|
|
6
6
|
import React, { type AnchorHTMLAttributes, type ReactNode, useMemo } from 'react';
|
|
7
7
|
import { createRoot } from 'react-dom/client';
|
|
8
8
|
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
createIntent,
|
|
13
|
-
useCapabilities,
|
|
14
|
-
useIntentDispatcher,
|
|
15
|
-
} from '@dxos/app-framework';
|
|
9
|
+
import { type Capabilities } from '@dxos/app-framework';
|
|
10
|
+
import { useOperationInvoker } from '@dxos/app-framework/ui';
|
|
11
|
+
import { LayoutOperation } from '@dxos/app-toolkit';
|
|
16
12
|
import { debounceAndThrottle } from '@dxos/async';
|
|
13
|
+
import { Obj } from '@dxos/echo';
|
|
14
|
+
import { createDocAccessor } from '@dxos/echo-db';
|
|
17
15
|
import { invariant } from '@dxos/invariant';
|
|
18
|
-
import {
|
|
16
|
+
import { getSpace, useObject } from '@dxos/react-client/echo';
|
|
19
17
|
import { useIdentity } from '@dxos/react-client/halo';
|
|
20
18
|
import { Icon, ThemeProvider } from '@dxos/react-ui';
|
|
21
19
|
import { type SelectionManager } from '@dxos/react-ui-attention';
|
|
20
|
+
import { Text } from '@dxos/schema';
|
|
22
21
|
import {
|
|
23
22
|
Cursor,
|
|
24
23
|
type EditorStateStore,
|
|
@@ -36,23 +35,23 @@ import {
|
|
|
36
35
|
linkTooltip,
|
|
37
36
|
listener,
|
|
38
37
|
preview,
|
|
38
|
+
replacer,
|
|
39
39
|
selectionState,
|
|
40
40
|
typewriter,
|
|
41
|
-
} from '@dxos/
|
|
42
|
-
import { defaultTx } from '@dxos/
|
|
43
|
-
import { type DataType } from '@dxos/schema';
|
|
41
|
+
} from '@dxos/ui-editor';
|
|
42
|
+
import { defaultTx } from '@dxos/ui-theme';
|
|
44
43
|
import { isTruthy } from '@dxos/util';
|
|
45
44
|
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
|
|
45
|
+
import { Markdown } from '../types';
|
|
46
|
+
import { setFallbackName } from '../util';
|
|
47
|
+
|
|
48
|
+
export type DocumentType = Markdown.Document | Text.Text | { id: string; text: string };
|
|
49
49
|
|
|
50
|
-
type ExtensionsOptions = {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
settings: Markdown.Settings;
|
|
50
|
+
export type ExtensionsOptions = {
|
|
51
|
+
id: string;
|
|
52
|
+
object?: DocumentType;
|
|
53
|
+
invokePromise?: Capabilities.OperationInvoker['invokePromise'];
|
|
54
|
+
settings?: Markdown.Settings;
|
|
56
55
|
selectionManager?: SelectionManager;
|
|
57
56
|
viewMode?: EditorViewMode;
|
|
58
57
|
editorStateStore?: EditorStateStore;
|
|
@@ -61,104 +60,82 @@ type ExtensionsOptions = {
|
|
|
61
60
|
|
|
62
61
|
// TODO(burdon): Merge with createBaseExtensions below.
|
|
63
62
|
export const useExtensions = ({
|
|
64
|
-
document,
|
|
65
63
|
id,
|
|
66
|
-
|
|
64
|
+
object,
|
|
67
65
|
settings,
|
|
68
66
|
selectionManager,
|
|
69
67
|
viewMode,
|
|
70
68
|
editorStateStore,
|
|
71
69
|
previewOptions,
|
|
72
70
|
}: ExtensionsOptions): Extension[] => {
|
|
73
|
-
const {
|
|
71
|
+
const { invokePromise } = useOperationInvoker();
|
|
74
72
|
const identity = useIdentity();
|
|
75
|
-
const space = getSpace(
|
|
73
|
+
const space = getSpace(object);
|
|
74
|
+
|
|
75
|
+
// Get the content reference from Document objects.
|
|
76
|
+
const contentRef = Obj.instanceOf(Markdown.Document, object) ? (object as Markdown.Document).content : undefined;
|
|
77
|
+
// Use useObject to trigger re-render when the reference loads (returns snapshot for reactivity).
|
|
78
|
+
useObject(contentRef);
|
|
79
|
+
// Get the actual live object target via .target (needed for createDocAccessor).
|
|
80
|
+
const target = contentRef?.target ?? (Obj.instanceOf(Text.Text, object) ? object : undefined);
|
|
76
81
|
|
|
77
82
|
// TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.
|
|
78
83
|
// TODO(burdon): Unsubscribe.
|
|
79
84
|
// const query = space?.db.query(Filter.type(DocumentType));
|
|
80
85
|
// query?.subscribe();
|
|
86
|
+
|
|
81
87
|
const baseExtensions = useMemo(
|
|
82
88
|
() =>
|
|
83
89
|
createBaseExtensions({
|
|
84
|
-
document,
|
|
85
90
|
id,
|
|
86
|
-
|
|
91
|
+
object,
|
|
87
92
|
settings,
|
|
88
93
|
selectionManager,
|
|
89
94
|
viewMode,
|
|
90
95
|
previewOptions,
|
|
91
|
-
|
|
92
|
-
// query,
|
|
96
|
+
invokePromise,
|
|
93
97
|
}),
|
|
94
98
|
[
|
|
95
|
-
document,
|
|
96
99
|
id,
|
|
97
|
-
|
|
100
|
+
object,
|
|
98
101
|
viewMode,
|
|
99
|
-
|
|
102
|
+
invokePromise,
|
|
100
103
|
previewOptions,
|
|
101
104
|
settings,
|
|
102
|
-
settings
|
|
103
|
-
settings
|
|
104
|
-
settings
|
|
105
|
-
settings
|
|
106
|
-
settings
|
|
105
|
+
settings?.debug,
|
|
106
|
+
settings?.editorInputMode,
|
|
107
|
+
settings?.folding,
|
|
108
|
+
settings?.numberedHeadings,
|
|
109
|
+
settings?.typewriter,
|
|
107
110
|
selectionManager,
|
|
108
111
|
],
|
|
109
112
|
);
|
|
110
113
|
|
|
111
|
-
const extensionProviders = useCapabilities(MarkdownCapabilities.Extensions);
|
|
112
|
-
|
|
113
|
-
//
|
|
114
|
-
// External extensions from other plugins.
|
|
115
|
-
//
|
|
116
|
-
const pluginExtensions = useMemo<Extension[]>(() => {
|
|
117
|
-
if (!document) {
|
|
118
|
-
return [];
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return extensionProviders.flat().reduce((acc: Extension[], provider) => {
|
|
122
|
-
const extension = typeof provider === 'function' ? provider({ document }) : provider;
|
|
123
|
-
if (extension) {
|
|
124
|
-
acc.push(extension);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
return acc;
|
|
128
|
-
}, []);
|
|
129
|
-
}, [extensionProviders, document]);
|
|
130
|
-
|
|
131
|
-
//
|
|
132
|
-
// Basic plugins.
|
|
133
|
-
//
|
|
134
114
|
return useMemo<Extension[]>(
|
|
135
115
|
() =>
|
|
136
116
|
[
|
|
117
|
+
// TODO(burdon): Pass this in?
|
|
137
118
|
// NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.
|
|
138
|
-
|
|
139
|
-
createDataExtensions({
|
|
140
|
-
id: document.id,
|
|
141
|
-
text: document.content.target && createDocAccessor(document.content.target, ['content']),
|
|
142
|
-
space,
|
|
143
|
-
identity,
|
|
144
|
-
}),
|
|
145
|
-
text &&
|
|
146
|
-
id &&
|
|
119
|
+
target &&
|
|
147
120
|
createDataExtensions({
|
|
148
121
|
id,
|
|
149
|
-
text: createDocAccessor(
|
|
150
|
-
space,
|
|
122
|
+
text: createDocAccessor(target, ['content']),
|
|
123
|
+
messenger: space,
|
|
151
124
|
identity,
|
|
152
125
|
}),
|
|
153
|
-
|
|
154
|
-
|
|
126
|
+
|
|
127
|
+
// TODO(burdon): Reconcile with effect in parent.
|
|
128
|
+
Obj.instanceOf(Markdown.Document, object) &&
|
|
155
129
|
listener({
|
|
156
|
-
onChange: (text) =>
|
|
130
|
+
onChange: ({ text }) => {
|
|
131
|
+
setFallbackName(object as Markdown.Document, text);
|
|
132
|
+
},
|
|
157
133
|
}),
|
|
134
|
+
|
|
158
135
|
baseExtensions,
|
|
159
|
-
|
|
136
|
+
selectionState(editorStateStore),
|
|
160
137
|
].filter(isTruthy),
|
|
161
|
-
[
|
|
138
|
+
[identity, space, id, object, target, baseExtensions],
|
|
162
139
|
);
|
|
163
140
|
};
|
|
164
141
|
|
|
@@ -166,9 +143,9 @@ export const useExtensions = ({
|
|
|
166
143
|
* Create extension instances for editor.
|
|
167
144
|
*/
|
|
168
145
|
const createBaseExtensions = ({
|
|
169
|
-
document,
|
|
170
146
|
id,
|
|
171
|
-
|
|
147
|
+
object,
|
|
148
|
+
invokePromise,
|
|
172
149
|
settings,
|
|
173
150
|
selectionManager,
|
|
174
151
|
viewMode,
|
|
@@ -176,8 +153,8 @@ const createBaseExtensions = ({
|
|
|
176
153
|
}: ExtensionsOptions): Extension[] => {
|
|
177
154
|
const extensions: Extension[] = [
|
|
178
155
|
selectionManager && selectionChange(selectionManager),
|
|
179
|
-
settings
|
|
180
|
-
settings
|
|
156
|
+
settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],
|
|
157
|
+
settings?.folding && folding(),
|
|
181
158
|
].filter(isTruthy);
|
|
182
159
|
|
|
183
160
|
//
|
|
@@ -189,30 +166,27 @@ const createBaseExtensions = ({
|
|
|
189
166
|
formattingKeymap(),
|
|
190
167
|
decorateMarkdown({
|
|
191
168
|
selectionChangeDelay: 100,
|
|
192
|
-
numberedHeadings: settings
|
|
169
|
+
numberedHeadings: settings?.numberedHeadings ? { from: 2 } : undefined,
|
|
193
170
|
// TODO(wittjosiah): For internal links, consider ignoring the link text and rendering the label of the object being linked to.
|
|
171
|
+
// TODO(burdon): Create dx-tag.
|
|
194
172
|
renderLinkButton:
|
|
195
|
-
|
|
196
|
-
? createLinkRenderer((
|
|
197
|
-
void
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
options: {
|
|
202
|
-
pivotId: document ? fullyQualifiedId(document) : id,
|
|
203
|
-
},
|
|
204
|
-
}),
|
|
205
|
-
);
|
|
173
|
+
invokePromise && (object || id)
|
|
174
|
+
? createLinkRenderer((targetId: string) => {
|
|
175
|
+
void invokePromise(LayoutOperation.Open, {
|
|
176
|
+
subject: [targetId],
|
|
177
|
+
pivotId: object && Obj.isObject(object) ? Obj.getDXN(object).toString() : id,
|
|
178
|
+
});
|
|
206
179
|
})
|
|
207
180
|
: undefined,
|
|
208
181
|
}),
|
|
209
182
|
linkTooltip(renderLinkTooltip),
|
|
210
183
|
preview(previewOptions),
|
|
184
|
+
replacer(),
|
|
211
185
|
],
|
|
212
186
|
);
|
|
213
187
|
}
|
|
214
188
|
|
|
215
|
-
if (settings
|
|
189
|
+
if (settings?.debug) {
|
|
216
190
|
const items = settings.typewriter?.split(/[,\n]/) ?? '';
|
|
217
191
|
if (items) {
|
|
218
192
|
extensions.push(typewriter({ items }));
|
|
@@ -222,7 +196,7 @@ const createBaseExtensions = ({
|
|
|
222
196
|
return extensions;
|
|
223
197
|
};
|
|
224
198
|
|
|
225
|
-
|
|
199
|
+
const selectionChange = (selectionManager: SelectionManager) => {
|
|
226
200
|
return EditorView.updateListener.of(
|
|
227
201
|
debounceAndThrottle((update: ViewUpdate) => {
|
|
228
202
|
if (update.selectionSet) {
|
|
@@ -235,6 +209,7 @@ export const selectionChange = (selectionManager: SelectionManager) => {
|
|
|
235
209
|
to: cursorConverter.toCursor(range.to),
|
|
236
210
|
}))
|
|
237
211
|
.filter(({ from, to }) => to > from);
|
|
212
|
+
|
|
238
213
|
selectionManager.updateMultiRange(id, ranges);
|
|
239
214
|
}
|
|
240
215
|
}, 100),
|
|
@@ -293,8 +268,8 @@ const renderLinkTooltip: RenderCallback<{ url: string }> = (el, { url }) => {
|
|
|
293
268
|
);
|
|
294
269
|
};
|
|
295
270
|
|
|
296
|
-
// TODO(burdon):
|
|
297
|
-
|
|
271
|
+
// TODO(burdon): REMOVE.
|
|
272
|
+
const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {
|
|
298
273
|
createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);
|
|
299
274
|
return root;
|
|
300
275
|
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Option from 'effect/Option';
|
|
6
|
+
import { useCallback, useMemo } from 'react';
|
|
7
|
+
|
|
8
|
+
import { usePluginManager } from '@dxos/app-framework/ui';
|
|
9
|
+
import { AppCapabilities } from '@dxos/app-toolkit';
|
|
10
|
+
import { type Database, Filter, Obj, Query, Type } from '@dxos/echo';
|
|
11
|
+
import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';
|
|
12
|
+
import { toLocalizedString, useTranslation } from '@dxos/react-ui';
|
|
13
|
+
import { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';
|
|
14
|
+
import { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';
|
|
15
|
+
|
|
16
|
+
export const useLinkQuery = (db: Database.Database | undefined) => {
|
|
17
|
+
const { t } = useTranslation();
|
|
18
|
+
|
|
19
|
+
const manager = usePluginManager();
|
|
20
|
+
const resolve = useCallback(
|
|
21
|
+
(typename: string) =>
|
|
22
|
+
manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},
|
|
23
|
+
[manager],
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
const filter = useMemo(
|
|
27
|
+
() =>
|
|
28
|
+
Filter.or(
|
|
29
|
+
...(db?.schemaRegistry.query({ location: ['database', 'runtime'] }).runSync() ?? [])
|
|
30
|
+
.filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)
|
|
31
|
+
.filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false)))
|
|
32
|
+
.map((schema) => Filter.typename(Type.getTypename(schema))),
|
|
33
|
+
),
|
|
34
|
+
[db],
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const handleLinkQuery = useCallback(
|
|
38
|
+
async (query?: string): Promise<EditorMenuGroup[]> => {
|
|
39
|
+
const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');
|
|
40
|
+
const results = await db?.query(Query.select(filter)).run();
|
|
41
|
+
|
|
42
|
+
// TODO(wittjosiah): Use `Obj.Unknown` type.
|
|
43
|
+
const getLabel = (object: any) => {
|
|
44
|
+
const label = Obj.getLabel(object);
|
|
45
|
+
if (label) {
|
|
46
|
+
return label;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// TODO(wittjosiah): Remove metadata labels.
|
|
50
|
+
const type = Obj.getTypename(object)!;
|
|
51
|
+
const metadata = resolve(type);
|
|
52
|
+
return metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New object' }];
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const items =
|
|
56
|
+
results
|
|
57
|
+
?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))
|
|
58
|
+
// TODO(wittjosiah): Remove `any` type.
|
|
59
|
+
.map((object: any): EditorMenuItem => {
|
|
60
|
+
const metadata = resolve(Obj.getTypename(object)!);
|
|
61
|
+
const label = toLocalizedString(getLabel(object), t);
|
|
62
|
+
return {
|
|
63
|
+
id: object.id,
|
|
64
|
+
label,
|
|
65
|
+
icon: metadata.icon,
|
|
66
|
+
onSelect: ({ view, head }) => {
|
|
67
|
+
const link = `[${label}](${Obj.getDXN(object)})`;
|
|
68
|
+
if (query?.startsWith('@')) {
|
|
69
|
+
insertAtLineStart(view, head, `!${link}\n`);
|
|
70
|
+
} else {
|
|
71
|
+
insertAtCursor(view, head, `${link} `);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}) ?? [];
|
|
76
|
+
|
|
77
|
+
return [{ id: 'echo', items }];
|
|
78
|
+
},
|
|
79
|
+
[db, filter, resolve],
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
return handleLinkQuery;
|
|
83
|
+
};
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { EditorView } from '@codemirror/view';
|
|
6
|
-
import * as
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
7
|
import { useMemo } from 'react';
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { useOperationResolver } from '@dxos/app-framework/ui';
|
|
10
|
+
import { LayoutOperation } from '@dxos/app-toolkit';
|
|
10
11
|
import { invariant } from '@dxos/invariant';
|
|
11
|
-
import {
|
|
12
|
+
import { OperationResolver } from '@dxos/operation';
|
|
13
|
+
import { Cursor, setSelection } from '@dxos/ui-editor';
|
|
12
14
|
|
|
13
15
|
import { meta } from '../meta';
|
|
14
16
|
|
|
@@ -16,41 +18,44 @@ import { meta } from '../meta';
|
|
|
16
18
|
* Handle scrolling and selection of the current thread in a markdown editor.
|
|
17
19
|
*/
|
|
18
20
|
export const useSelectCurrentThread = (editorView: EditorView | null, documentId: string) => {
|
|
19
|
-
const
|
|
21
|
+
const scrollIntoViewHandler = useMemo(
|
|
20
22
|
() =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
OperationResolver.make({
|
|
24
|
+
operation: LayoutOperation.ScrollIntoView,
|
|
23
25
|
position: 'hoist',
|
|
24
|
-
filter: (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
resolve: ({ options: { cursor } }) => {
|
|
32
|
-
invariant(editorView, 'Editor view is not defined.');
|
|
33
|
-
const range = Cursor.getRangeFromCursor(editorView.state, cursor!);
|
|
34
|
-
if (range) {
|
|
35
|
-
const selection = editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
|
|
36
|
-
const effects = [
|
|
37
|
-
// NOTE: This does not use the DOM scrollIntoView function.
|
|
38
|
-
EditorView.scrollIntoView(range.from, { y: 'start', yMargin: 96 }),
|
|
39
|
-
];
|
|
40
|
-
if (selection) {
|
|
41
|
-
// Update the editor selection to get bi-directional highlighting.
|
|
42
|
-
effects.push(setSelection.of({ current: documentId }));
|
|
26
|
+
filter: (input) => !!editorView && input.subject === documentId && !!input.cursor,
|
|
27
|
+
handler: (input) =>
|
|
28
|
+
Effect.sync(() => {
|
|
29
|
+
invariant(editorView, 'Editor view is not defined.');
|
|
30
|
+
const cursor = input.cursor;
|
|
31
|
+
if (!cursor) {
|
|
32
|
+
return;
|
|
43
33
|
}
|
|
34
|
+
const range = Cursor.getRangeFromCursor(editorView.state, cursor);
|
|
35
|
+
if (range) {
|
|
36
|
+
const selection =
|
|
37
|
+
editorView.state.selection.main.from !== range.from ? { anchor: range.from } : undefined;
|
|
38
|
+
const effects = [
|
|
39
|
+
// NOTE: This does not use the DOM scrollIntoView function.
|
|
40
|
+
EditorView.scrollIntoView(range.from, {
|
|
41
|
+
y: 'start',
|
|
42
|
+
yMargin: 96,
|
|
43
|
+
}),
|
|
44
|
+
];
|
|
45
|
+
if (selection) {
|
|
46
|
+
// Update the editor selection to get bi-directional highlighting.
|
|
47
|
+
effects.push(setSelection.of({ current: documentId }));
|
|
48
|
+
}
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
editorView.dispatch({
|
|
51
|
+
effects,
|
|
52
|
+
selection: selection ? { anchor: range.from } : undefined,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}),
|
|
51
56
|
}),
|
|
52
57
|
[documentId, editorView],
|
|
53
58
|
);
|
|
54
59
|
|
|
55
|
-
|
|
60
|
+
useOperationResolver(meta.id, scrollIntoViewHandler);
|
|
56
61
|
};
|
package/src/index.ts
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
export { MarkdownCapabilities } from './
|
|
6
|
-
export { MarkdownEvents } from './events';
|
|
5
|
+
export { MarkdownCapabilities, MarkdownEvents } from './types';
|
|
7
6
|
|
|
8
7
|
export * from './meta';
|
|
9
8
|
export * from './types';
|
|
10
9
|
export * from './util';
|
|
11
10
|
|
|
12
11
|
export * from './MarkdownPlugin';
|
|
12
|
+
|
|
13
|
+
export { MarkdownEditor } from './components/MarkdownEditor';
|
package/src/meta.ts
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { type
|
|
5
|
+
import { type Plugin } from '@dxos/app-framework';
|
|
6
6
|
import { trim } from '@dxos/util';
|
|
7
7
|
|
|
8
|
-
export const meta:
|
|
8
|
+
export const meta: Plugin.Meta = {
|
|
9
9
|
id: 'dxos.org/plugin/markdown',
|
|
10
10
|
name: 'Markdown',
|
|
11
11
|
description: trim`
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
You can use documents to extend the memory of your personal agents and add context for automated workflows.
|
|
12
|
+
Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
|
|
13
|
+
Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
|
|
15
14
|
`,
|
|
16
15
|
icon: 'ph--text-aa--regular',
|
|
16
|
+
iconHue: 'indigo',
|
|
17
17
|
source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',
|
|
18
18
|
screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],
|
|
19
19
|
};
|
package/src/testing.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import * as Toolkit from '@effect/ai/Toolkit';
|
|
6
|
+
import * as Effect from 'effect/Effect';
|
|
7
|
+
|
|
8
|
+
import { SpaceProperties } from '@dxos/client-protocol';
|
|
9
|
+
import { Obj, Ref } from '@dxos/echo';
|
|
10
|
+
import { Database } from '@dxos/echo';
|
|
11
|
+
import { Collection } from '@dxos/schema';
|
|
12
|
+
|
|
13
|
+
// TODO(wittjosiah): Factor out.
|
|
14
|
+
export const WithProperties = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | Database.Service> =>
|
|
15
|
+
Effect.zipRight(
|
|
16
|
+
Effect.gen(function* () {
|
|
17
|
+
// TODO(wittjosiah): Remove cast.
|
|
18
|
+
yield* Database.add(
|
|
19
|
+
Obj.make(SpaceProperties, {
|
|
20
|
+
[Collection.Collection.typename]: Ref.make(Collection.make()),
|
|
21
|
+
}) as any,
|
|
22
|
+
);
|
|
23
|
+
}),
|
|
24
|
+
effect,
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export const testToolkit = Toolkit.empty as Toolkit.Toolkit<any>;
|
package/src/translations.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
|
+
import { translations as editorTranslations } from '@dxos/react-ui-editor';
|
|
6
7
|
|
|
7
8
|
import { meta } from './meta';
|
|
8
9
|
import { Markdown } from './types';
|
|
@@ -18,6 +19,7 @@ export const translations = [
|
|
|
18
19
|
'object name placeholder': 'New document',
|
|
19
20
|
'rename object label': 'Rename document',
|
|
20
21
|
'delete object label': 'Delete document',
|
|
22
|
+
'object deleted label': 'Document deleted',
|
|
21
23
|
},
|
|
22
24
|
[meta.id]: {
|
|
23
25
|
'plugin name': 'Editor',
|
|
@@ -43,7 +45,11 @@ export const translations = [
|
|
|
43
45
|
'upload image label': 'Upload image',
|
|
44
46
|
'fallback title': 'Untitled',
|
|
45
47
|
'navigate to document label': 'Open document',
|
|
48
|
+
'words label_zero': 'words',
|
|
49
|
+
'words label_one': 'word',
|
|
50
|
+
'words label_other': 'words',
|
|
46
51
|
},
|
|
47
52
|
},
|
|
48
53
|
},
|
|
54
|
+
...editorTranslations,
|
|
49
55
|
] as const satisfies Resource[];
|
package/src/types/Markdown.ts
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
6
|
|
|
7
7
|
import { Obj, Ref, Type } from '@dxos/echo';
|
|
8
|
-
import { DescriptionAnnotation, LabelAnnotation } from '@dxos/echo/internal';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
8
|
+
import { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';
|
|
9
|
+
import { Text } from '@dxos/schema';
|
|
10
|
+
import { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Document Item type.
|
|
@@ -15,16 +15,15 @@ import { DataType, ItemAnnotation } from '@dxos/schema';
|
|
|
15
15
|
export const Document = Schema.Struct({
|
|
16
16
|
name: Schema.optional(Schema.String),
|
|
17
17
|
description: Schema.optional(Schema.String),
|
|
18
|
-
fallbackName: Schema.
|
|
19
|
-
content: Type.Ref(
|
|
18
|
+
fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),
|
|
19
|
+
content: Type.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),
|
|
20
20
|
}).pipe(
|
|
21
|
-
Type.
|
|
21
|
+
Type.object({
|
|
22
22
|
typename: 'dxos.org/type/Document',
|
|
23
23
|
version: '0.1.0',
|
|
24
24
|
}),
|
|
25
25
|
LabelAnnotation.set(['name', 'fallbackName']),
|
|
26
26
|
DescriptionAnnotation.set('description'),
|
|
27
|
-
ItemAnnotation.set(true),
|
|
28
27
|
);
|
|
29
28
|
|
|
30
29
|
export type Document = Schema.Schema.Type<typeof Document>;
|
|
@@ -32,11 +31,11 @@ export type Document = Schema.Schema.Type<typeof Document>;
|
|
|
32
31
|
/**
|
|
33
32
|
* Document factory.
|
|
34
33
|
*/
|
|
35
|
-
export const
|
|
34
|
+
export const make = ({
|
|
36
35
|
content = '',
|
|
37
36
|
...props
|
|
38
37
|
}: Partial<{ name: string; fallbackName: string; content: string }> = {}) =>
|
|
39
|
-
Obj.make(Document, { ...props, content: Ref.make(
|
|
38
|
+
Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });
|
|
40
39
|
|
|
41
40
|
/**
|
|
42
41
|
* Plugin settings.
|