@dxos/plugin-markdown 0.8.4-main.72ec0f3 → 0.8.4-main.7996785055
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-ZHQBD4AV.mjs +122 -0
- package/dist/lib/browser/MarkdownCard-ZHQBD4AV.mjs.map +7 -0
- package/dist/lib/browser/MarkdownContainer-XEUOYBPA.mjs +125 -0
- package/dist/lib/browser/MarkdownContainer-XEUOYBPA.mjs.map +7 -0
- package/dist/lib/browser/MarkdownSettings-OD7AJSSJ.mjs +106 -0
- package/dist/lib/browser/MarkdownSettings-OD7AJSSJ.mjs.map +7 -0
- package/dist/lib/browser/anchor-sort-PSCEA6EJ.mjs +34 -0
- package/dist/lib/browser/anchor-sort-PSCEA6EJ.mjs.map +7 -0
- package/dist/lib/browser/app-graph-serializer-DAVFEX7R.mjs +63 -0
- package/dist/lib/browser/app-graph-serializer-DAVFEX7R.mjs.map +7 -0
- package/dist/lib/browser/blueprint-definition-LHVNOMJT.mjs +19 -0
- package/dist/lib/browser/blueprint-definition-LHVNOMJT.mjs.map +7 -0
- package/dist/lib/browser/blueprints/index.mjs +10 -0
- package/dist/lib/browser/chunk-5VT6IW5B.mjs +84 -0
- package/dist/lib/browser/chunk-5VT6IW5B.mjs.map +7 -0
- package/dist/lib/browser/{chunk-22XSSNBS.mjs → chunk-CJSWKCKU.mjs} +9 -5
- package/dist/lib/browser/chunk-CJSWKCKU.mjs.map +7 -0
- package/dist/lib/browser/chunk-G6BRWY3G.mjs +158 -0
- package/dist/lib/browser/chunk-G6BRWY3G.mjs.map +7 -0
- package/dist/lib/browser/chunk-M2XFCKXA.mjs +8 -0
- package/dist/lib/browser/chunk-M2XFCKXA.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BQTYJOFB.mjs → chunk-RYZHVXZ5.mjs} +2 -2
- package/dist/lib/browser/chunk-RYZHVXZ5.mjs.map +7 -0
- package/dist/lib/browser/chunk-XWYF5LFE.mjs +8 -0
- package/dist/lib/browser/chunk-XWYF5LFE.mjs.map +7 -0
- package/dist/lib/browser/chunk-YALLVET2.mjs +757 -0
- package/dist/lib/browser/chunk-YALLVET2.mjs.map +7 -0
- package/dist/lib/browser/chunk-ZN75YHSV.mjs +50 -0
- package/dist/lib/browser/chunk-ZN75YHSV.mjs.map +7 -0
- package/dist/lib/browser/cli/index.mjs +44 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/create-QD27F6E7.mjs +30 -0
- package/dist/lib/browser/create-QD27F6E7.mjs.map +7 -0
- package/dist/lib/browser/create-markdown-LEAJPLHT.mjs +22 -0
- package/dist/lib/browser/create-markdown-LEAJPLHT.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +132 -142
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/open-YDABYPCA.mjs +21 -0
- package/dist/lib/browser/open-YDABYPCA.mjs.map +7 -0
- package/dist/lib/browser/operation-handler-W3QXMMMQ.mjs +17 -0
- package/dist/lib/browser/operation-handler-W3QXMMMQ.mjs.map +7 -0
- package/dist/lib/browser/operations/index.mjs +13 -0
- package/dist/lib/browser/react-surface-N7FV3PXH.mjs +120 -0
- package/dist/lib/browser/react-surface-N7FV3PXH.mjs.map +7 -0
- package/dist/lib/browser/scroll-to-anchor-3CGV3XI7.mjs +49 -0
- package/dist/lib/browser/scroll-to-anchor-3CGV3XI7.mjs.map +7 -0
- package/dist/lib/browser/set-view-mode-XLD3RXW4.mjs +26 -0
- package/dist/lib/browser/set-view-mode-XLD3RXW4.mjs.map +7 -0
- package/dist/lib/browser/settings-3UMXG4TP.mjs +38 -0
- package/dist/lib/browser/settings-3UMXG4TP.mjs.map +7 -0
- package/dist/lib/browser/state-IYKJ6EV3.mjs +48 -0
- package/dist/lib/browser/state-IYKJ6EV3.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +8 -4
- package/dist/lib/browser/update-WKAMI4AD.mjs +45 -0
- package/dist/lib/browser/update-WKAMI4AD.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownCard-VB3NHVX4.mjs +123 -0
- package/dist/lib/node-esm/MarkdownCard-VB3NHVX4.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownContainer-25WFZLCC.mjs +126 -0
- package/dist/lib/node-esm/MarkdownContainer-25WFZLCC.mjs.map +7 -0
- package/dist/lib/node-esm/MarkdownSettings-U7GJ4OP3.mjs +107 -0
- package/dist/lib/node-esm/MarkdownSettings-U7GJ4OP3.mjs.map +7 -0
- package/dist/lib/node-esm/{anchor-sort-PCDXEBJ2.mjs → anchor-sort-6GD4SGQL.mjs} +13 -10
- package/dist/lib/node-esm/anchor-sort-6GD4SGQL.mjs.map +7 -0
- package/dist/lib/node-esm/app-graph-serializer-JURUUUBI.mjs +64 -0
- package/dist/lib/node-esm/app-graph-serializer-JURUUUBI.mjs.map +7 -0
- package/dist/lib/node-esm/blueprint-definition-3LUZEJ4Z.mjs +20 -0
- package/dist/lib/node-esm/blueprint-definition-3LUZEJ4Z.mjs.map +7 -0
- package/dist/lib/node-esm/blueprints/index.mjs +11 -0
- package/dist/lib/node-esm/chunk-6LHNAAMP.mjs +159 -0
- package/dist/lib/node-esm/chunk-6LHNAAMP.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CRUJMQR2.mjs +758 -0
- package/dist/lib/node-esm/chunk-CRUJMQR2.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SHAMSMKQ.mjs → chunk-CW4FZNMZ.mjs} +2 -2
- package/dist/lib/node-esm/chunk-CW4FZNMZ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-EPNCYA73.mjs +85 -0
- package/dist/lib/node-esm/chunk-EPNCYA73.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AMHACOXW.mjs → chunk-FC3GPLJG.mjs} +9 -5
- package/dist/lib/node-esm/chunk-FC3GPLJG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-G6W4DJBM.mjs +51 -0
- package/dist/lib/node-esm/chunk-G6W4DJBM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JLOCBILO.mjs +10 -0
- package/dist/lib/node-esm/chunk-JLOCBILO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YWQQYV76.mjs +10 -0
- package/dist/lib/node-esm/chunk-YWQQYV76.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +45 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/create-X7H4LYI5.mjs +31 -0
- package/dist/lib/node-esm/create-X7H4LYI5.mjs.map +7 -0
- package/dist/lib/node-esm/create-markdown-7POKQDVQ.mjs +23 -0
- package/dist/lib/node-esm/create-markdown-7POKQDVQ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +132 -142
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/open-FZVFWXC7.mjs +22 -0
- package/dist/lib/node-esm/open-FZVFWXC7.mjs.map +7 -0
- package/dist/lib/node-esm/operation-handler-TP26H7QE.mjs +18 -0
- package/dist/lib/node-esm/operation-handler-TP26H7QE.mjs.map +7 -0
- package/dist/lib/node-esm/operations/index.mjs +14 -0
- package/dist/lib/node-esm/react-surface-XSKLSF6A.mjs +121 -0
- package/dist/lib/node-esm/react-surface-XSKLSF6A.mjs.map +7 -0
- package/dist/lib/node-esm/scroll-to-anchor-KWBJLM5Q.mjs +50 -0
- package/dist/lib/node-esm/scroll-to-anchor-KWBJLM5Q.mjs.map +7 -0
- package/dist/lib/node-esm/set-view-mode-FFEKYLU3.mjs +27 -0
- package/dist/lib/node-esm/set-view-mode-FFEKYLU3.mjs.map +7 -0
- package/dist/lib/node-esm/settings-UAN22O42.mjs +39 -0
- package/dist/lib/node-esm/settings-UAN22O42.mjs.map +7 -0
- package/dist/lib/node-esm/state-62IBFPTK.mjs +49 -0
- package/dist/lib/node-esm/state-62IBFPTK.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +8 -4
- package/dist/lib/node-esm/update-WPEFBY4M.mjs +46 -0
- package/dist/lib/node-esm/update-WPEFBY4M.mjs.map +7 -0
- package/dist/types/src/MarkdownPlugin.d.ts +2 -1
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- 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 +4 -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 +6 -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 -13
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler/index.d.ts +4 -0
- package/dist/types/src/capabilities/operation-handler/index.d.ts.map +1 -0
- package/dist/types/src/capabilities/operation-handler/operation-handler.d.ts +6 -0
- package/dist/types/src/capabilities/operation-handler/operation-handler.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 +6 -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/MarkdownEditor/FileUpload.d.ts +1 -1
- package/dist/types/src/components/MarkdownEditor/FileUpload.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +17 -11
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts +2 -2
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +16 -10
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +10 -5
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -5
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts +8 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +9 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -0
- package/dist/types/src/{components → containers}/MarkdownCard/index.d.ts +0 -1
- package/dist/types/src/containers/MarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts +15 -0
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts +30 -0
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +1 -0
- package/dist/types/src/{components → containers/MarkdownContainer}/MarkdownContainer.stories.d.ts +32 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownContainer/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts +8 -0
- package/dist/types/src/containers/MarkdownSettings/MarkdownSettings.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownSettings/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownSettings/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +6 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +0 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useEditorMenuOptions.d.ts.map +1 -1
- package/dist/types/src/hooks/useExtensions.d.ts +7 -5
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
- package/dist/types/src/hooks/useLinkQuery.d.ts +2 -2
- package/dist/types/src/hooks/useLinkQuery.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/operations/create-markdown.d.ts +5 -0
- package/dist/types/src/operations/create-markdown.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts +5 -0
- package/dist/types/src/operations/create.d.ts.map +1 -0
- package/dist/types/src/operations/create.test.d.ts.map +1 -0
- package/dist/types/src/operations/definitions.d.ts +61 -0
- package/dist/types/src/operations/definitions.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts +4 -0
- package/dist/types/src/operations/index.d.ts.map +1 -0
- package/dist/types/src/operations/open.d.ts +5 -0
- package/dist/types/src/operations/open.d.ts.map +1 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts +5 -0
- package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -0
- package/dist/types/src/operations/set-view-mode.d.ts +5 -0
- package/dist/types/src/operations/set-view-mode.d.ts.map +1 -0
- package/dist/types/src/operations/update.d.ts +5 -0
- package/dist/types/src/operations/update.d.ts.map +1 -0
- package/dist/types/src/operations/update.test.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +2 -2
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +31 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +15 -15
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/capabilities.d.ts +34 -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 +2 -1
- 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 +4 -1
- 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 +99 -68
- package/src/MarkdownPlugin.tsx +71 -96
- package/src/blueprints/index.ts +5 -0
- package/src/blueprints/markdown-blueprint.ts +44 -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 +64 -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 +17 -0
- package/src/capabilities/blueprint-definition/index.ts +7 -0
- package/src/capabilities/index.ts +6 -11
- package/src/capabilities/operation-handler/index.ts +11 -0
- package/src/capabilities/operation-handler/operation-handler.ts +16 -0
- package/src/capabilities/react-surface/index.ts +7 -0
- package/src/capabilities/react-surface/react-surface.tsx +120 -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 +47 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/plugin.ts +40 -0
- package/src/components/MarkdownEditor/FileUpload.tsx +2 -2
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +35 -36
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +74 -44
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +62 -25
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +48 -53
- package/src/components/index.ts +2 -9
- package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +68 -0
- package/src/containers/MarkdownCard/MarkdownCard.tsx +57 -0
- package/src/{components → containers}/MarkdownCard/index.ts +0 -2
- package/src/containers/MarkdownCard/snippet.ts +75 -0
- package/src/containers/MarkdownContainer/MarkdownContainer.stories.tsx +133 -0
- package/src/containers/MarkdownContainer/MarkdownContainer.tsx +134 -0
- package/src/containers/MarkdownContainer/index.ts +6 -0
- package/src/containers/MarkdownSettings/MarkdownSettings.tsx +122 -0
- package/src/containers/MarkdownSettings/index.ts +7 -0
- package/src/containers/index.ts +11 -0
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useEditorMenuOptions.ts +10 -13
- package/src/hooks/useExtensions.tsx +90 -108
- package/src/hooks/useLinkQuery.ts +21 -19
- package/src/index.ts +3 -2
- package/src/meta.ts +3 -3
- package/src/operations/create-markdown.ts +21 -0
- package/src/operations/create.conversations.json +1 -0
- package/src/operations/create.test.ts +93 -0
- package/src/operations/create.ts +27 -0
- package/src/operations/definitions.ts +119 -0
- package/src/operations/index.ts +16 -0
- package/src/operations/open.ts +25 -0
- package/src/operations/scroll-to-anchor.ts +40 -0
- package/src/operations/set-view-mode.ts +25 -0
- package/src/operations/update.conversations.json +1 -0
- package/src/operations/update.test.ts +216 -0
- package/src/operations/update.ts +51 -0
- package/src/testing.ts +6 -6
- package/src/translations.ts +4 -0
- package/src/types/Markdown.ts +18 -11
- package/src/types/capabilities.ts +50 -0
- package/src/types/events.ts +14 -0
- package/src/types/index.ts +2 -1
- package/src/types/types.ts +3 -2
- package/src/util.test.ts +44 -0
- package/src/util.tsx +76 -6
- package/dist/lib/browser/MarkdownCard-JYMDPKV5.mjs +0 -12
- package/dist/lib/browser/MarkdownContainer-Y75XSVBX.mjs +0 -15
- package/dist/lib/browser/anchor-sort-3HGPGCOO.mjs +0 -31
- package/dist/lib/browser/anchor-sort-3HGPGCOO.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-POZN234F.mjs +0 -51
- package/dist/lib/browser/app-graph-serializer-POZN234F.mjs.map +0 -7
- package/dist/lib/browser/blueprint-definition-GIPKFDY5.mjs +0 -13
- package/dist/lib/browser/chunk-22XSSNBS.mjs.map +0 -7
- package/dist/lib/browser/chunk-2MLGSYRN.mjs +0 -20
- package/dist/lib/browser/chunk-2MLGSYRN.mjs.map +0 -7
- package/dist/lib/browser/chunk-BQTYJOFB.mjs.map +0 -7
- package/dist/lib/browser/chunk-GH6GQSBL.mjs +0 -51
- package/dist/lib/browser/chunk-GH6GQSBL.mjs.map +0 -7
- package/dist/lib/browser/chunk-IBCHVMZW.mjs +0 -16
- package/dist/lib/browser/chunk-IBCHVMZW.mjs.map +0 -7
- package/dist/lib/browser/chunk-K3LXOU3E.mjs +0 -827
- package/dist/lib/browser/chunk-K3LXOU3E.mjs.map +0 -7
- package/dist/lib/browser/chunk-PBJLFIOX.mjs +0 -96
- package/dist/lib/browser/chunk-PBJLFIOX.mjs.map +0 -7
- package/dist/lib/browser/chunk-QYSEJ5GP.mjs +0 -79
- package/dist/lib/browser/chunk-QYSEJ5GP.mjs.map +0 -7
- package/dist/lib/browser/chunk-Y53FQREH.mjs +0 -150
- package/dist/lib/browser/chunk-Y53FQREH.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs +0 -62
- package/dist/lib/browser/intent-resolver-Z5L7TXUK.mjs.map +0 -7
- package/dist/lib/browser/react-surface-GO5ZOKNN.mjs +0 -211
- package/dist/lib/browser/react-surface-GO5ZOKNN.mjs.map +0 -7
- package/dist/lib/browser/settings-TZUDB5EW.mjs +0 -28
- package/dist/lib/browser/settings-TZUDB5EW.mjs.map +0 -7
- package/dist/lib/browser/state-BTUKVZHY.mjs +0 -37
- package/dist/lib/browser/state-BTUKVZHY.mjs.map +0 -7
- package/dist/lib/browser/toolkit.mjs +0 -13
- package/dist/lib/node-esm/MarkdownCard-ZXPJLUYO.mjs +0 -13
- package/dist/lib/node-esm/MarkdownCard-ZXPJLUYO.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownContainer-YRDSRDCS.mjs +0 -16
- package/dist/lib/node-esm/MarkdownContainer-YRDSRDCS.mjs.map +0 -7
- package/dist/lib/node-esm/anchor-sort-PCDXEBJ2.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-NF65JYAS.mjs +0 -52
- package/dist/lib/node-esm/app-graph-serializer-NF65JYAS.mjs.map +0 -7
- package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs +0 -14
- package/dist/lib/node-esm/blueprint-definition-ENKJZYQS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AMHACOXW.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CT7CFX5G.mjs +0 -828
- package/dist/lib/node-esm/chunk-CT7CFX5G.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs +0 -17
- package/dist/lib/node-esm/chunk-GMMVSXQ6.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HAIEWPU7.mjs +0 -151
- package/dist/lib/node-esm/chunk-HAIEWPU7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-KCHUTL3Q.mjs +0 -22
- package/dist/lib/node-esm/chunk-KCHUTL3Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs +0 -80
- package/dist/lib/node-esm/chunk-NGYJNQ6A.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PIOOG7A5.mjs +0 -97
- package/dist/lib/node-esm/chunk-PIOOG7A5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PLZ7EVCT.mjs +0 -52
- package/dist/lib/node-esm/chunk-PLZ7EVCT.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SHAMSMKQ.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs +0 -63
- package/dist/lib/node-esm/intent-resolver-6B3PFQ5F.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-I46BPCWT.mjs +0 -212
- package/dist/lib/node-esm/react-surface-I46BPCWT.mjs.map +0 -7
- package/dist/lib/node-esm/settings-CJ3T5EX4.mjs +0 -29
- package/dist/lib/node-esm/settings-CJ3T5EX4.mjs.map +0 -7
- package/dist/lib/node-esm/state-K6EH7SRZ.mjs +0 -38
- package/dist/lib/node-esm/state-K6EH7SRZ.mjs.map +0 -7
- package/dist/lib/node-esm/toolkit.mjs +0 -14
- package/dist/lib/node-esm/toolkit.mjs.map +0 -7
- package/dist/types/src/capabilities/anchor-sort.d.ts +0 -4
- 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 -7
- 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/components/MarkdownCard/MarkdownCard.d.ts +0 -7
- package/dist/types/src/components/MarkdownCard/MarkdownCard.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts +0 -9
- package/dist/types/src/components/MarkdownCard/MarkdownCard.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownCard/index.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownContainer.d.ts +0 -14
- package/dist/types/src/components/MarkdownContainer.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownContainer.stories.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts +0 -6
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +0 -1
- package/dist/types/src/components/MarkdownSettings/index.d.ts +0 -2
- package/dist/types/src/components/MarkdownSettings/index.d.ts.map +0 -1
- package/dist/types/src/components/Suggestions.stories.d.ts +0 -11
- package/dist/types/src/components/Suggestions.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/functions/create.d.ts +0 -8
- package/dist/types/src/functions/create.d.ts.map +0 -1
- package/dist/types/src/functions/create.test.d.ts.map +0 -1
- package/dist/types/src/functions/index.d.ts +0 -18
- package/dist/types/src/functions/index.d.ts.map +0 -1
- package/dist/types/src/functions/open.d.ts +0 -7
- package/dist/types/src/functions/open.d.ts.map +0 -1
- package/dist/types/src/functions/update.d.ts +0 -6
- package/dist/types/src/functions/update.d.ts.map +0 -1
- package/dist/types/src/functions/update.test.d.ts.map +0 -1
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts +0 -6
- package/dist/types/src/hooks/useSelectCurrentThread.d.ts.map +0 -1
- package/dist/types/src/toolkit.d.ts +0 -3
- package/dist/types/src/toolkit.d.ts.map +0 -1
- package/dist/types/src/types/MarkdownAction.d.ts +0 -34
- package/dist/types/src/types/MarkdownAction.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 -43
- package/src/capabilities/capabilities.ts +0 -22
- package/src/capabilities/intent-resolver.ts +0 -58
- package/src/capabilities/react-surface.tsx +0 -93
- package/src/capabilities/settings.ts +0 -25
- package/src/capabilities/state.ts +0 -31
- package/src/components/MarkdownCard/MarkdownCard.stories.tsx +0 -76
- package/src/components/MarkdownCard/MarkdownCard.tsx +0 -89
- package/src/components/MarkdownContainer.stories.tsx +0 -136
- package/src/components/MarkdownContainer.tsx +0 -113
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +0 -108
- package/src/components/MarkdownSettings/index.ts +0 -5
- package/src/components/Suggestions.stories.tsx +0 -225
- package/src/events.ts +0 -11
- package/src/functions/create.conversations.json +0 -1
- package/src/functions/create.test.ts +0 -128
- package/src/functions/create.ts +0 -34
- package/src/functions/index.ts +0 -13
- package/src/functions/open.ts +0 -32
- package/src/functions/update.conversations.json +0 -1
- package/src/functions/update.test.ts +0 -151
- package/src/functions/update.ts +0 -37
- package/src/hooks/useSelectCurrentThread.tsx +0 -66
- package/src/toolkit.ts +0 -6
- package/src/types/MarkdownAction.ts +0 -29
- /package/dist/lib/browser/{MarkdownCard-JYMDPKV5.mjs.map → blueprints/index.mjs.map} +0 -0
- /package/dist/lib/browser/{MarkdownContainer-Y75XSVBX.mjs.map → operations/index.mjs.map} +0 -0
- /package/dist/lib/{browser/blueprint-definition-GIPKFDY5.mjs.map → node-esm/blueprints/index.mjs.map} +0 -0
- /package/dist/lib/{browser/toolkit.mjs.map → node-esm/operations/index.mjs.map} +0 -0
- /package/dist/types/src/{functions → operations}/create.test.d.ts +0 -0
- /package/dist/types/src/{functions → operations}/update.test.d.ts +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.tsx", "../../../src/components/MarkdownEditor/MarkdownEditor.tsx", "../../../src/hooks/useEditorMenuOptions.ts", "../../../src/hooks/useExtensions.tsx", "../../../src/hooks/useLinkQuery.ts", "../../../src/components/MarkdownEditor/MarkdownEditorContent.tsx", "../../../src/components/MarkdownEditor/MarkdownEditorToolbar.tsx", "../../../src/components/MarkdownEditor/FileUpload.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { debounce } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { type TypedObjectSerializer } from '@dxos/plugin-space/types';\n\nimport { Markdown } from './types';\n\n/**\n * Checks if an object conforms to the interface needed to render an editor.\n * @deprecated Use Schema.instanceOf(Markdown.Document, data)\n */\n// TODO(burdon): Normalize types (from FilesPlugin).\nexport const isEditorModel = (data: any): data is { id: string; text: string } =>\n data &&\n typeof data === 'object' &&\n 'id' in data &&\n typeof data.id === 'string' &&\n 'text' in data &&\n typeof data.text === 'string';\n\nexport type MarkdownProperties = Record<string, any>;\n\nexport const isMarkdownProperties = (data: unknown): data is MarkdownProperties =>\n (Obj.isObject(data) as boolean)\n ? true\n : data && typeof data === 'object'\n ? 'title' in data && typeof data.title === 'string'\n : false;\n\nconst nonTitleChars = /[^\\w ]/g;\n\n// Lines matching these patterns are skipped.\nconst skipPatterns = [\n /^!\\[/, // Image.\n /^---\\s*$/, // Horizontal rule.\n /^```/, // Code block fence.\n /^\\s*$/, // Empty or whitespace-only.\n];\n\n// Patterns to extract title text (first capture group is used).\nconst titlePatterns = [\n /^#{1,6}\\s+(.+)/, // Heading.\n];\n\n/**\n * Extracts a fallback name by scanning lines for the first heading or text fragment.\n */\nexport const getFallbackName = (content = ''): string => {\n const len = content.length;\n\n let i = 0;\n while (i < len) {\n // Find end of line.\n let lineEnd = i;\n while (lineEnd < len && content[lineEnd] !== '\\n') {\n lineEnd++;\n }\n\n const line = content.slice(i, lineEnd).trim();\n i = lineEnd + 1;\n\n // Skip lines matching skip patterns.\n if (skipPatterns.some((pattern) => pattern.test(line))) {\n continue;\n }\n\n // Check for title patterns.\n for (const pattern of titlePatterns) {\n const match = pattern.exec(line);\n if (match) {\n const text = match[1].replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n return text;\n }\n }\n }\n\n // Use line as plain text fallback.\n const maxLen = 32;\n const text = line.replaceAll(nonTitleChars, '').trim();\n if (text.length > 0) {\n if (text.length > maxLen) {\n const words = text.split(/\\s+/);\n let result = '';\n for (const word of words) {\n const next = result.length === 0 ? word : result + ' ' + word;\n if (next.length > maxLen) {\n break;\n }\n result = next;\n }\n\n return result + '…';\n }\n\n return text;\n }\n }\n\n return '';\n};\n\n// TODO(burdon): Option to strip Markdown.\nexport const getContentSnippet = (content = '', maxLines = 3) => {\n const abstract = content\n .split('\\n')\n .filter((line) => !line.startsWith('!'))\n .filter((line) => line.trim() !== '');\n\n return abstract.slice(0, maxLines).join('\\n') ?? '';\n};\n\nexport const setFallbackName = debounce((doc: Markdown.Document, content = '') => {\n const name = getFallbackName(content);\n if (doc.fallbackName !== name) {\n Obj.change(doc, (obj) => {\n obj.fallbackName = name;\n });\n }\n}, 200);\n\nexport const serializer: TypedObjectSerializer<Markdown.Document> = {\n serialize: async ({ object }): Promise<string> => {\n const { content } = await object.content.load();\n return JSON.stringify({ name: object.name, fallbackName: object.fallbackName, content });\n },\n\n deserialize: async ({ content: serialized }) => {\n const { name, fallbackName, content } = JSON.parse(serialized);\n return Markdown.make({ name, fallbackName, content });\n },\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension } from '@codemirror/state';\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom } from '@effect-atom/atom-react';\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren, useMemo, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { Obj } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\nimport { useClient } from '@dxos/react-client';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport {\n EditorMenuProvider,\n type EditorToolbarState,\n type UseEditorMenu,\n useEditorMenu,\n useEditorToolbar,\n} from '@dxos/react-ui-editor';\nimport { type PreviewBlock, type PreviewOptions } from '@dxos/ui-editor';\nimport { composable, composableProps } from '@dxos/ui-theme';\nimport { isNonNullable } from '@dxos/util';\n\nimport {\n type DocumentType,\n type ExtensionsOptions,\n type UseEditorMenuOptionsProps,\n useEditorMenuOptions,\n useExtensions,\n} from '../../hooks';\n\nimport {\n MarkdownEditorContent as NaturalMarkdownEditorContent,\n type MarkdownEditorContentProps as NaturalMarkdownEditorContentProps,\n} from './MarkdownEditorContent';\nimport {\n MarkdownEditorToolbar as NaturalMarkdownToolbar,\n type MarkdownEditorToolbarProps as NaturalMarkdownToolbarProps,\n} from './MarkdownEditorToolbar';\n\n//\n// Context\n//\n\ntype MarkdownEditorContextValue = {\n id: string;\n attendableId?: string;\n setEditorView: (view: EditorView) => void;\n extensions: Extension[];\n previewBlocks: PreviewBlock[];\n toolbarState: Atom.Writable<EditorToolbarState>;\n popoverMenu: Omit<UseEditorMenu, 'extension'>;\n} & (Pick<ExtensionsOptions, 'compact' | 'viewMode'> &\n Pick<NaturalMarkdownToolbarProps, 'editorView' | 'onAction' | 'onFileUpload' | 'onViewModeChange'>);\n\nconst [MarkdownEditorContextProvider, useMarkdownEditorContext] =\n createContext<MarkdownEditorContextValue>('MarkdownEditor.Context');\n\n//\n// MarkdownEditor.Root\n//\n\ntype MarkdownEditorRootProps = PropsWithChildren<\n {\n object?: DocumentType;\n extensions?: Extension[];\n } & Pick<\n MarkdownEditorContextValue,\n 'id' | 'attendableId' | 'viewMode' | 'compact' | 'onAction' | 'onFileUpload' | 'onViewModeChange'\n > &\n Pick<UseEditorMenuOptionsProps, 'slashCommandGroups' | 'onLinkQuery'> &\n Pick<ExtensionsOptions, 'editorStateStore' | 'selectionManager' | 'settings' | 'onSelectObject'>\n>;\n\nconst MarkdownEditorRoot = ({\n children,\n id,\n attendableId,\n object,\n settings,\n compact,\n viewMode,\n selectionManager,\n editorStateStore,\n extensions: extensionsProp,\n slashCommandGroups,\n onLinkQuery,\n onSelectObject,\n ...props\n}: MarkdownEditorRootProps) => {\n const [editorView, setEditorView] = useState<EditorView>();\n\n // Preview blocks.\n const [previewBlocks, setPreviewBlocks] = useState<PreviewBlock[]>([]);\n const previewOptions = useMemo<PreviewOptions>(\n () => ({\n db: Obj.isObject(object) ? Obj.getDatabase(object) : undefined,\n addBlockContainer: (block) => {\n setPreviewBlocks((prev) => [...prev, block]);\n },\n removeBlockContainer: ({ link }) => {\n setPreviewBlocks((prev) => prev.filter(({ link: prevLink }) => prevLink.dxn !== link.dxn));\n },\n }),\n [object],\n );\n\n // Toolbar state.\n const toolbarState = useEditorToolbar({ viewMode });\n\n // Context menu.\n const menuOptions = useEditorMenuOptions({ editorView, slashCommandGroups, onLinkQuery });\n const { extension: menuExtension, ...menuProps } = useEditorMenu(menuOptions);\n\n // Extensions.\n const coreExtensions = useExtensions({\n id,\n object,\n compact,\n viewMode,\n selectionManager,\n editorStateStore,\n previewOptions,\n settings,\n onSelectObject,\n });\n\n const extensions = useMemo(\n () => [coreExtensions, menuExtension, extensionsProp].filter(isNonNullable),\n [coreExtensions, menuExtension, extensionsProp],\n );\n\n return (\n <MarkdownEditorContextProvider\n id={id}\n attendableId={attendableId}\n compact={compact}\n editorView={editorView}\n setEditorView={setEditorView}\n extensions={extensions}\n previewBlocks={previewBlocks}\n toolbarState={toolbarState}\n popoverMenu={menuProps}\n viewMode={viewMode}\n {...props}\n >\n {children}\n </MarkdownEditorContextProvider>\n );\n};\n\nMarkdownEditorRoot.displayName = 'MarkdownEditor.Root';\n\n//\n// MarkdownEditor.Main\n//\n\nconst MARKDOWN_EDITOR_CONTENT_NAME = 'MarkdownEditor.Content';\n\ntype MarkdownEditorContentProps = Omit<NaturalMarkdownEditorContentProps, 'id' | 'extensions' | 'toolbarState'>;\n\nconst MarkdownEditorContent = composable<HTMLDivElement, MarkdownEditorContentProps>(({ ...props }, _forwardedRef) => {\n const {\n id,\n attendableId,\n compact,\n editorView,\n setEditorView,\n viewMode,\n toolbarState,\n extensions,\n popoverMenu: { groupsRef, ...menuProps },\n } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);\n\n return (\n <EditorMenuProvider view={editorView} groups={groupsRef.current} {...menuProps}>\n <NaturalMarkdownEditorContent\n {...composableProps(props)}\n id={id}\n attendableId={attendableId}\n compact={compact}\n viewMode={viewMode}\n toolbarState={toolbarState}\n extensions={extensions}\n ref={setEditorView}\n />\n </EditorMenuProvider>\n );\n});\n\nMarkdownEditorContent.displayName = MARKDOWN_EDITOR_CONTENT_NAME;\n\n//\n// MarkdownEditor.Toolbar\n//\n\nconst MARKDOWN_EDITOR_TOOLBAR_NAME = 'MarkdownEditor.Toolbar';\n\ntype MarkdownEditorToolbarProps = ThemedClassName<\n Omit<NaturalMarkdownToolbarProps, 'state' | 'editorView' | 'onAction' | 'onFileUpload' | 'onViewModeChange' | 'id'>\n>;\n\nconst MarkdownEditorToolbar = (props: MarkdownEditorToolbarProps) => {\n const { id, attendableId, editorView, toolbarState, onAction, onFileUpload, onViewModeChange } =\n useMarkdownEditorContext(MARKDOWN_EDITOR_TOOLBAR_NAME);\n\n return (\n <NaturalMarkdownToolbar\n {...props}\n id={attendableId ?? id}\n editorView={editorView}\n state={toolbarState}\n onAction={onAction}\n onFileUpload={onFileUpload}\n onViewModeChange={onViewModeChange}\n />\n );\n};\n\nMarkdownEditorToolbar.displayName = MARKDOWN_EDITOR_TOOLBAR_NAME;\n\n//\n// MarkdownEditor.Blocks (embedded objects)\n//\n\nconst MARKDOWN_EDITOR_BLOCKS_NAME = 'MarkdownEditor.Blocks';\n\ntype MarkdownEditorBlocksProps = {};\n\nconst MarkdownEditorBlocks = (_props: MarkdownEditorBlocksProps) => {\n const { previewBlocks } = useMarkdownEditorContext(MARKDOWN_EDITOR_BLOCKS_NAME);\n\n return (\n <>\n {previewBlocks.map(({ link, el }) => (\n <PreviewBlock key={link.dxn} link={link} el={el} />\n ))}\n </>\n );\n};\n\nMarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;\n\nconst PreviewBlock = ({ el, link }: PreviewBlock) => {\n const client = useClient();\n const dxn = DXN.parse(link.dxn);\n const subject = client.graph.makeRef(dxn).target;\n const data = useMemo(() => ({ subject }), [subject]);\n\n return createPortal(<Surface.Surface role='card--content' data={data} limit={1} />, el);\n};\n\n//\n// MarkdownEditor\n//\n\nexport const MarkdownEditor = {\n Root: MarkdownEditorRoot,\n Content: MarkdownEditorContent,\n Toolbar: MarkdownEditorToolbar,\n Blocks: MarkdownEditorBlocks,\n};\n\nexport type {\n MarkdownEditorRootProps,\n MarkdownEditorContentProps,\n MarkdownEditorToolbarProps,\n MarkdownEditorBlocksProps,\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { useCallback, useMemo, useRef } from 'react';\n\nimport { toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport {\n type EditorMenuGroup,\n type UseEditorMenuProps,\n filterMenuGroups,\n formattingCommands,\n linkSlashCommands,\n} from '@dxos/react-ui-editor';\nimport { Domino } from '@dxos/ui';\n\nimport { meta } from '../meta';\n\nexport type UseEditorMenuOptionsProps = {\n editorView?: EditorView;\n slashCommandGroups?: EditorMenuGroup[];\n onLinkQuery?: (query?: string) => Promise<EditorMenuGroup[]>;\n};\n\nexport const useEditorMenuOptions = ({\n editorView,\n slashCommandGroups,\n onLinkQuery,\n}: UseEditorMenuOptionsProps): UseEditorMenuProps => {\n const { t } = useTranslation(meta.id);\n\n const getMenu = useCallback<NonNullable<UseEditorMenuProps['getMenu']>>(\n ({ text, trigger }) => {\n switch (trigger) {\n case '@': {\n return onLinkQuery?.(text) ?? [];\n }\n\n case '/':\n default: {\n return filterMenuGroups([formattingCommands, linkSlashCommands, ...(slashCommandGroups ?? [])], (item) =>\n text ? toLocalizedString(item.label, t).toLowerCase().includes(text.toLowerCase()) : true,\n );\n }\n }\n },\n [slashCommandGroups, onLinkQuery],\n );\n\n const viewRef = useRef(editorView);\n return useMemo<UseEditorMenuProps>(() => {\n const trigger = onLinkQuery ? ['/', '@'] : ['/'];\n const placeholder = {\n delay: 3_000,\n content: () => {\n const pressEl = Domino.of('span').text('Press');\n const triggerEls = trigger.map((text) =>\n Domino.of('span').classNames('mx-1 px-1.5 pt-[1px] pb-[2px] border border-separator rounded-xs').text(text),\n );\n const forCommandsEl = Domino.of('span').text('for commands.');\n return Domino.of('div').children(pressEl, ...triggerEls, forCommandsEl).root;\n },\n };\n\n return { viewRef, getMenu, trigger, placeholder };\n }, [getMenu, onLinkQuery]);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type ViewUpdate } from '@codemirror/view';\nimport { useMemo } from 'react';\nimport { debounceAndThrottle } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { createDocAccessor } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { getSpace, useObject } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { type SelectionManager } from '@dxos/react-ui-attention';\nimport { Text } from '@dxos/schema';\nimport { Domino } from '@dxos/ui';\nimport {\n Cursor,\n type EditorStateStore,\n EditorView,\n type EditorViewMode,\n type Extension,\n InputModeExtensions,\n type PreviewOptions,\n type RenderCallback,\n createDataExtensions,\n decorateMarkdown,\n documentId,\n folding,\n formattingKeymap,\n linkTooltip,\n listener,\n preview,\n replacer,\n selectionState,\n typewriter,\n} from '@dxos/ui-editor';\nimport { useThemeContext } from '@dxos/react-ui';\nimport { isTruthy, safeUrl } from '@dxos/util';\n\nimport { Markdown } from '../types';\nimport { setFallbackName } from '../util';\nimport { fromUrlPath } from '@dxos/app-toolkit';\n\nexport type DocumentType = Markdown.Document | Text.Text | { id: string; text: string };\n\nexport type ExtensionsOptions = {\n id: string;\n object?: DocumentType;\n settings?: Markdown.Settings;\n compact?: boolean;\n viewMode?: EditorViewMode;\n selectionManager?: SelectionManager;\n editorStateStore?: EditorStateStore;\n previewOptions?: PreviewOptions;\n platform?: 'mobile' | 'desktop';\n /** Callback when an internal link is clicked. */\n onSelectObject?: (objectId: string) => void;\n};\n\n// TODO(burdon): Merge with createBaseExtensions below.\nexport const useExtensions = ({\n id,\n object,\n settings,\n compact,\n viewMode,\n selectionManager,\n editorStateStore,\n previewOptions,\n onSelectObject,\n}: ExtensionsOptions): Extension[] => {\n const { platform } = useThemeContext();\n const identity = useIdentity();\n const space = getSpace(object);\n\n // Get the content reference from Document objects.\n const contentRef = Obj.instanceOf(Markdown.Document, object) ? (object as Markdown.Document).content : undefined;\n // Use useObject to trigger re-render when the reference loads (returns snapshot for reactivity).\n useObject(contentRef);\n // Get the actual live object target via .target (needed for createDocAccessor).\n const target = contentRef?.target ?? (Obj.instanceOf(Text.Text, object) ? object : undefined);\n\n // TODO(wittjosiah): Autocomplete is not working and this query is causing performance issues.\n // TODO(burdon): Unsubscribe.\n // const query = space?.db.query(Filter.type(DocumentType));\n // query?.subscribe();\n\n const baseExtensions = useMemo(\n () =>\n createBaseExtensions({\n id,\n object,\n settings,\n compact,\n viewMode,\n selectionManager,\n previewOptions,\n onSelectObject,\n platform,\n }),\n [\n id,\n object,\n compact,\n viewMode,\n selectionManager,\n previewOptions,\n onSelectObject,\n settings,\n settings?.debug,\n settings?.editorInputMode,\n settings?.folding,\n settings?.numberedHeadings,\n platform,\n settings?.typewriter,\n ],\n );\n\n return useMemo<Extension[]>(\n () =>\n [\n // TODO(burdon): Pass this in?\n // NOTE: Data extensions must be first so that automerge is updated before other extensions compute their state.\n target &&\n createDataExtensions({\n id,\n text: createDocAccessor(target, ['content']),\n messenger: space,\n identity,\n }),\n\n // TODO(burdon): Reconcile with effect in parent.\n Obj.instanceOf(Markdown.Document, object) &&\n listener({\n onChange: ({ text }) => {\n setFallbackName(object as Markdown.Document, text);\n },\n }),\n\n baseExtensions,\n selectionState(editorStateStore),\n ].filter(isTruthy),\n [identity, space, id, object, target, baseExtensions],\n );\n};\n\n/**\n * Create extension instances for editor.\n */\nconst createBaseExtensions = ({\n id,\n object,\n onSelectObject,\n settings,\n compact,\n viewMode,\n selectionManager,\n previewOptions,\n platform,\n}: ExtensionsOptions): Extension[] => {\n const extensions: Extension[] = [\n selectionManager && selectionChange(selectionManager),\n settings?.editorInputMode && InputModeExtensions[settings.editorInputMode],\n settings?.folding && !compact && platform !== 'mobile' && folding(),\n ].filter(isTruthy);\n\n //\n // Markdown\n //\n if (viewMode !== 'source') {\n extensions.push(\n ...[\n formattingKeymap(),\n decorateMarkdown({\n selectionChangeDelay: 100,\n numberedHeadings: settings?.numberedHeadings ? { from: 2 } : undefined,\n // TODO(wittjosiah): For internal links render the label of the object.\n renderLinkButton: onSelectObject && createRenderLink(onSelectObject),\n }),\n linkTooltip(renderLinkTooltip),\n preview(previewOptions),\n replacer(),\n ],\n );\n }\n\n if (settings?.debug) {\n const items = settings.typewriter?.split(/[,\\n]/) ?? '';\n if (items) {\n extensions.push(typewriter({ items }));\n }\n }\n\n return extensions;\n};\n\nconst selectionChange = (selectionManager: SelectionManager) => {\n const debouncedHandler = debounceAndThrottle((update: ViewUpdate) => {\n const id = update.state.facet(documentId);\n const cursorConverter = update.state.facet(Cursor.converter);\n const selection = update.state.selection;\n const ranges = selection.ranges\n .map((range) => ({\n from: cursorConverter.toCursor(range.from),\n to: cursorConverter.toCursor(range.to),\n }))\n .filter(({ from, to }) => to > from);\n\n selectionManager.updateMultiRange(id, ranges);\n }, 100);\n\n return EditorView.updateListener.of((update: ViewUpdate) => {\n if (update.selectionSet) {\n debouncedHandler(update);\n }\n });\n};\n\nconst createRenderLink =\n (onSelectObject: (id: string) => void): RenderCallback<{ url: string }> =>\n (el, { url }) => {\n // TODO(burdon): Formalize/document internal link format.\n const isInternal = url.startsWith('/') || url.startsWith(window.location.origin);\n const qualifiedId = isInternal ? fromUrlPath(new URL(url, window.location.origin).pathname) : undefined;\n const icon = Domino.of('span')\n .classNames('dx-link ms-1 inline-block align-[-0.125em]')\n .children(Domino.svg(isInternal ? 'ph--arrow-square-down--regular' : 'ph--arrow-square-out--regular'));\n\n if (isInternal) {\n invariant(qualifiedId, 'Invalid link format.');\n icon\n .attributes({ role: 'button', tabindex: '0' })\n .on('click', (event) => {\n event.preventDefault();\n event.stopPropagation();\n onSelectObject(qualifiedId);\n })\n .on('keydown', (event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (keyboardEvent.key !== 'Enter' && keyboardEvent.key !== ' ') {\n return;\n }\n\n keyboardEvent.preventDefault();\n keyboardEvent.stopPropagation();\n onSelectObject(qualifiedId);\n });\n }\n\n el.appendChild(icon.root);\n };\n\nconst renderLinkTooltip: RenderCallback<{ url: string }> = (el, { url }) => {\n el.appendChild(\n Domino.of('a')\n .attributes({ href: url, target: '_blank', rel: 'noreferrer' })\n .classNames('dx-link flex items-center gap-2')\n .text(safeUrl(url)?.toString() ?? url)\n .children(Domino.svg('ph--arrow-square-out--regular')).root,\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport { useCallback, useMemo } from 'react';\n\nimport { usePluginManager } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { type Database, Filter, Obj, Query, Type } from '@dxos/echo';\nimport { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/internal';\nimport { toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { type EditorMenuGroup, type EditorMenuItem } from '@dxos/react-ui-editor';\nimport { insertAtCursor, insertAtLineStart } from '@dxos/ui-editor';\n\nexport const useLinkQuery = (db: Database.Database | undefined) => {\n const { t } = useTranslation();\n\n const manager = usePluginManager();\n const resolve = useCallback(\n (typename: string) =>\n manager.capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {},\n [manager],\n );\n\n const filter = useMemo(\n () =>\n Filter.or(\n ...(db?.schemaRegistry.query({ location: ['database', 'runtime'] }).runSync() ?? [])\n .filter((schema) => getTypeAnnotation(schema)?.kind !== EntityKind.Relation)\n .filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option.getOrElse(() => false)))\n .map((schema) => Filter.typename(Type.getTypename(schema))),\n ),\n [db],\n );\n\n const handleLinkQuery = useCallback(\n async (query?: string): Promise<EditorMenuGroup[]> => {\n // A second \"@\" switches the link query into block-embed mode, so \"@@foo\" searches for \"foo\".\n const name = query?.startsWith('@') ? query.slice(1).toLowerCase() : (query?.toLowerCase() ?? '');\n const results = await db?.query(Query.select(filter)).run();\n\n // TODO(wittjosiah): Use `Obj.Unknown` type.\n const getLabel = (object: any) => {\n const label = Obj.getLabel(object);\n if (label) {\n return label;\n }\n\n // TODO(wittjosiah): Remove metadata labels.\n const type = Obj.getTypename(object)!;\n const metadata = resolve(type);\n return metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New object' }];\n };\n\n const items =\n results\n ?.filter((object) => toLocalizedString(getLabel(object), t).toLowerCase().includes(name))\n // TODO(wittjosiah): Remove `any` type.\n .map((object: any): EditorMenuItem => {\n const metadata = resolve(Obj.getTypename(object)!);\n const label = toLocalizedString(getLabel(object), t);\n return {\n id: object.id,\n label,\n icon: metadata.icon,\n onSelect: ({ view, head }) => {\n const link = `[${label}](${Obj.getDXN(object)})`;\n // \"@@\" inserts a block embed on its own line instead of an inline link.\n if (query?.startsWith('@')) {\n insertAtLineStart(view, head, `!${link}\\n`);\n } else {\n insertAtCursor(view, head, `${link} `);\n }\n },\n };\n }) ?? [];\n\n return [{ id: 'echo', items }];\n },\n [db, filter, resolve],\n );\n\n return handleLinkQuery;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom, RegistryContext } from '@effect-atom/atom-react';\nimport React, { forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n type EditorMenuGroup,\n type EditorToolbarState,\n type UseTextEditorProps,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport {\n type EditorSelectionState,\n type EditorStateStore,\n type EditorViewMode,\n type ThemeExtensionsOptions,\n compactSlots,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n dropFile,\n documentSlots,\n formattingListener,\n processEditorPayload,\n stackItemContentEditorClassNames,\n} from '@dxos/ui-editor';\nimport { mx } from '@dxos/ui-theme';\nimport { isTruthy } from '@dxos/util';\n\nimport { meta } from '../../meta';\nimport { MarkdownCapabilities } from '../../types';\n\nimport { type MarkdownEditorToolbarProps } from './MarkdownEditorToolbar';\n\nexport type MarkdownEditorContentProps = ThemedClassName<{\n id: string;\n attendableId?: string;\n role?: string;\n compact?: boolean;\n viewMode?: EditorViewMode;\n slashCommandGroups?: EditorMenuGroup[];\n editorStateStore?: EditorStateStore;\n toolbarState?: Atom.Writable<EditorToolbarState>;\n onLinkQuery?: (query?: string) => Promise<EditorMenuGroup[]>;\n}> &\n Pick<UseTextEditorProps, 'initialValue' | 'extensions'> &\n Pick<MarkdownEditorToolbarProps, 'onFileUpload'> &\n Pick<ThemeExtensionsOptions, 'slots'>;\n\nexport const MarkdownEditorContent = forwardRef<EditorView | null, MarkdownEditorContentProps>(\n (\n {\n classNames,\n id,\n attendableId,\n role,\n compact,\n viewMode,\n initialValue,\n editorStateStore,\n toolbarState,\n extensions,\n slots,\n onFileUpload,\n },\n forwardedRef,\n ) => {\n const { t } = useTranslation(meta.id);\n const { themeMode } = useThemeContext();\n const registry = useContext(RegistryContext);\n\n // Callback to update toolbar state atom.\n const updateToolbarState = useCallback(\n (formatting: EditorToolbarState) => {\n if (toolbarState) {\n registry.set(toolbarState, { ...registry.get(toolbarState), ...formatting });\n }\n },\n [registry, toolbarState],\n );\n\n // Restore last selection and scroll point.\n const { scrollTo, selection } = useMemo<EditorSelectionState>(() => editorStateStore?.getState(id) ?? {}, [id]);\n\n console.log(slots, compact, compactSlots);\n\n const {\n parentRef,\n view: editorView,\n focusAttributes,\n } = useTextEditor(\n () => ({\n ...(role !== 'section' && {\n id,\n scrollTo,\n selection,\n // TODO(wittjosiah): Autofocus based on layout is racy.\n // autoFocus: layoutPlugin?.provides.layout ? layoutPlugin?.provides.layout.scrollIntoView === id : true,\n selectionEnd: true,\n }),\n initialValue,\n extensions: [\n createBasicExtensions({\n readOnly: viewMode === 'readonly',\n placeholder: t('editor placeholder'),\n scrollPastEnd: !compact,\n search: true,\n }),\n createThemeExtensions({\n themeMode,\n slots: slots ?? (compact ? compactSlots : documentSlots),\n syntaxHighlighting: true,\n }),\n createMarkdownExtensions(),\n toolbarState && formattingListener(updateToolbarState),\n role !== 'section' &&\n onFileUpload &&\n dropFile({\n // TODO(wittjosiah): Factor out to file uploader plugin.\n onDrop: async (view, { files }) => {\n const file = files[0];\n const info = file && onFileUpload ? await onFileUpload(file) : undefined;\n if (info) {\n processEditorPayload(view, { type: 'image', data: info.url });\n }\n },\n }),\n extensions,\n ].filter(isTruthy),\n }),\n [id, viewMode, themeMode, extensions],\n );\n\n useImperativeHandle<EditorView | null, EditorView | null>(forwardedRef, () => editorView, [editorView]);\n\n const [editorViewRegistry] = useCapabilities(MarkdownCapabilities.EditorViews);\n useEffect(() => {\n if (editorView && editorViewRegistry) {\n editorViewRegistry.register(attendableId ?? id, editorView, id);\n return () => editorViewRegistry.unregister(attendableId ?? id);\n }\n }, [editorView, editorViewRegistry, attendableId, id]);\n\n useTest(editorView);\n\n return (\n <div\n {...focusAttributes}\n role='none'\n data-testid='composer.markdownRoot'\n data-popover-collision-boundary={true}\n className={mx(stackItemContentEditorClassNames(role), classNames)}\n ref={parentRef}\n />\n );\n },\n);\n\n// Expose editor view for playwright tests.\n// TODO(wittjosiah): Find a better way to expose this or find a way to limit it to test runs.\nconst useTest = (view: EditorView | null) => {\n useEffect(() => {\n const composer = (window as any).composer;\n if (composer) {\n composer.editorView = view;\n }\n }, [view]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport React, { useCallback, useState } from 'react';\n\nimport { type FileInfo } from '@dxos/app-toolkit';\nimport { invariant } from '@dxos/invariant';\nimport { EditorToolbar, type EditorToolbarProps } from '@dxos/react-ui-editor';\n\nimport { FileUpload, type FileUploadAction } from './FileUpload';\nimport { composable, composableProps } from '@dxos/ui-theme';\n\nexport type MarkdownEditorToolbarProps = {\n id: string;\n editorView?: EditorView;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n} & Pick<EditorToolbarProps, 'role' | 'state' | 'customActions' | 'onAction' | 'onViewModeChange'>;\n\nexport const MarkdownEditorToolbar = composable<HTMLDivElement, MarkdownEditorToolbarProps>(\n (\n { id, role, state, editorView, customActions, onAction, onFileUpload, onViewModeChange, ...props },\n forwardedRef,\n ) => {\n const { className, ...rest } = composableProps(props);\n const [upload, setUpload] = useState<FileUploadAction | null>(null);\n const uploadRef = useCallback((next: FileUploadAction) => setUpload(() => next), []);\n\n const getView = useCallback(() => {\n invariant(editorView);\n return editorView;\n }, [editorView]);\n\n if (!editorView) {\n return <div className={className} {...rest} ref={forwardedRef} />;\n }\n\n return (\n <div role='none' className='contents' ref={forwardedRef}>\n <EditorToolbar\n {...rest}\n classNames={className}\n attendableId={id}\n role={role}\n state={state}\n customActions={customActions}\n getView={getView}\n onAction={onAction}\n onImageUpload={upload ?? undefined}\n onViewModeChange={onViewModeChange}\n />\n\n {onFileUpload && <FileUpload ref={uploadRef} editorView={editorView} onFileUpload={onFileUpload} />}\n </div>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport React, { forwardRef, useEffect, useImperativeHandle } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useDropzone } from 'react-dropzone';\n\nimport { type FileInfo } from '@dxos/app-toolkit';\nimport { addLink } from '@dxos/ui-editor';\n\nexport const IMAGE_FILES = ['.jpg', '.jpeg', '.png', '.gif'];\n\nexport type FileUploadAction = () => void;\n\nexport type FileUploadProps = {\n editorView?: EditorView;\n onFileUpload?: (file: File) => Promise<FileInfo | undefined>;\n};\n\n// TODO(burdon): Factor out.\n// TODO(burdon): Move to root? (support drag into document via dropzone).\nexport const FileUpload = forwardRef<FileUploadAction, FileUploadProps>(\n ({ editorView, onFileUpload }, forwardedRef) => {\n // https://react-dropzone.js.org\n const { acceptedFiles, open, inputRef } = useDropzone({\n disabled: !onFileUpload,\n multiple: false,\n noDrag: true,\n accept: {\n 'image/*': IMAGE_FILES,\n },\n });\n\n useImperativeHandle(forwardedRef, () => open, []);\n\n useEffect(() => {\n if (editorView && acceptedFiles.length && onFileUpload) {\n requestAnimationFrame(async () => {\n // NOTE: Clone file since react-dropzone patches in a non-standard `path` property, which confuses IPFS.\n const f = acceptedFiles[0];\n const file = new File([f], f.name, {\n type: f.type,\n lastModified: f.lastModified,\n });\n\n // TODO(burdon): Factor out.\n const info = await onFileUpload(file);\n if (info) {\n addLink({ url: info.url, image: true })(editorView);\n }\n });\n }\n }, [editorView, acceptedFiles, onFileUpload]);\n\n if (!onFileUpload) {\n return null;\n }\n\n return <>{createPortal(<input ref={inputRef} />, document.body)} </>;\n },\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["debounce", "Obj", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "Obj", "isObject", "title", "nonTitleChars", "skipPatterns", "titlePatterns", "getFallbackName", "content", "len", "length", "i", "lineEnd", "line", "slice", "trim", "some", "pattern", "test", "match", "exec", "replaceAll", "maxLen", "words", "split", "result", "word", "next", "getContentSnippet", "maxLines", "abstract", "filter", "startsWith", "join", "setFallbackName", "debounce", "doc", "name", "fallbackName", "change", "obj", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "Markdown", "make", "createContext", "React", "useMemo", "useState", "createPortal", "Surface", "Obj", "DXN", "useClient", "EditorMenuProvider", "useEditorMenu", "useEditorToolbar", "composable", "composableProps", "isNonNullable", "useCallback", "useMemo", "useRef", "toLocalizedString", "useTranslation", "filterMenuGroups", "formattingCommands", "linkSlashCommands", "Domino", "useEditorMenuOptions", "editorView", "slashCommandGroups", "onLinkQuery", "t", "useTranslation", "meta", "id", "getMenu", "useCallback", "text", "trigger", "filterMenuGroups", "formattingCommands", "linkSlashCommands", "item", "toLocalizedString", "label", "toLowerCase", "includes", "viewRef", "useRef", "useMemo", "placeholder", "delay", "content", "pressEl", "Domino", "of", "triggerEls", "map", "classNames", "forCommandsEl", "children", "root", "useMemo", "debounceAndThrottle", "Obj", "createDocAccessor", "invariant", "getSpace", "useObject", "useIdentity", "Text", "Domino", "Cursor", "EditorView", "InputModeExtensions", "createDataExtensions", "decorateMarkdown", "documentId", "folding", "formattingKeymap", "linkTooltip", "listener", "preview", "replacer", "selectionState", "typewriter", "useThemeContext", "isTruthy", "safeUrl", "fromUrlPath", "useExtensions", "id", "object", "settings", "compact", "viewMode", "selectionManager", "editorStateStore", "previewOptions", "onSelectObject", "platform", "useThemeContext", "identity", "useIdentity", "space", "getSpace", "contentRef", "Obj", "instanceOf", "Markdown", "Document", "content", "undefined", "useObject", "target", "Text", "baseExtensions", "useMemo", "createBaseExtensions", "debug", "editorInputMode", "folding", "numberedHeadings", "typewriter", "createDataExtensions", "text", "createDocAccessor", "messenger", "listener", "onChange", "setFallbackName", "selectionState", "filter", "isTruthy", "extensions", "selectionChange", "InputModeExtensions", "push", "formattingKeymap", "decorateMarkdown", "selectionChangeDelay", "from", "renderLinkButton", "createRenderLink", "linkTooltip", "renderLinkTooltip", "preview", "replacer", "items", "split", "debouncedHandler", "debounceAndThrottle", "update", "state", "facet", "documentId", "cursorConverter", "Cursor", "converter", "selection", "ranges", "map", "range", "toCursor", "to", "updateMultiRange", "EditorView", "updateListener", "of", "selectionSet", "el", "url", "isInternal", "startsWith", "window", "location", "origin", "qualifiedId", "URL", "pathname", "icon", "Domino", "classNames", "children", "svg", "invariant", "attributes", "role", "tabindex", "on", "event", "preventDefault", "stopPropagation", "keyboardEvent", "key", "appendChild", "root", "href", "rel", "safeUrl", "toString", "Option", "useCallback", "useMemo", "usePluginManager", "AppCapabilities", "Filter", "Obj", "Query", "Type", "EntityKind", "SystemTypeAnnotation", "getTypeAnnotation", "toLocalizedString", "useTranslation", "insertAtCursor", "insertAtLineStart", "useLinkQuery", "db", "t", "useTranslation", "manager", "usePluginManager", "resolve", "useCallback", "typename", "capabilities", "getAll", "AppCapabilities", "Metadata", "find", "id", "metadata", "filter", "useMemo", "Filter", "or", "schemaRegistry", "query", "location", "runSync", "schema", "getTypeAnnotation", "kind", "EntityKind", "Relation", "SystemTypeAnnotation", "get", "pipe", "getOrElse", "map", "Type", "getTypename", "handleLinkQuery", "name", "startsWith", "slice", "toLowerCase", "results", "Query", "select", "run", "getLabel", "object", "label", "Obj", "type", "ns", "default", "items", "toLocalizedString", "includes", "icon", "onSelect", "view", "head", "link", "getDXN", "insertAtLineStart", "insertAtCursor", "RegistryContext", "React", "forwardRef", "useCallback", "useContext", "useEffect", "useImperativeHandle", "useMemo", "useCapabilities", "useThemeContext", "useTranslation", "useTextEditor", "compactSlots", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "dropFile", "documentSlots", "formattingListener", "processEditorPayload", "stackItemContentEditorClassNames", "mx", "isTruthy", "MarkdownEditorContent", "forwardRef", "classNames", "id", "attendableId", "role", "compact", "viewMode", "initialValue", "editorStateStore", "toolbarState", "extensions", "slots", "onFileUpload", "forwardedRef", "t", "useTranslation", "meta", "themeMode", "useThemeContext", "registry", "useContext", "RegistryContext", "updateToolbarState", "useCallback", "formatting", "set", "get", "scrollTo", "selection", "useMemo", "getState", "console", "log", "compactSlots", "parentRef", "view", "editorView", "focusAttributes", "useTextEditor", "selectionEnd", "createBasicExtensions", "readOnly", "placeholder", "scrollPastEnd", "search", "createThemeExtensions", "documentSlots", "syntaxHighlighting", "createMarkdownExtensions", "formattingListener", "dropFile", "onDrop", "files", "file", "info", "undefined", "processEditorPayload", "type", "data", "url", "filter", "isTruthy", "useImperativeHandle", "editorViewRegistry", "useCapabilities", "MarkdownCapabilities", "EditorViews", "useEffect", "register", "unregister", "useTest", "div", "data-testid", "data-popover-collision-boundary", "className", "mx", "stackItemContentEditorClassNames", "ref", "composer", "window", "React", "useCallback", "useState", "invariant", "EditorToolbar", "React", "forwardRef", "useEffect", "useImperativeHandle", "createPortal", "useDropzone", "addLink", "IMAGE_FILES", "FileUpload", "forwardRef", "editorView", "onFileUpload", "forwardedRef", "acceptedFiles", "open", "inputRef", "useDropzone", "disabled", "multiple", "noDrag", "accept", "useImperativeHandle", "useEffect", "length", "requestAnimationFrame", "f", "file", "File", "name", "type", "lastModified", "info", "addLink", "url", "image", "React", "createPortal", "input", "ref", "document", "body", "composable", "composableProps", "MarkdownEditorToolbar", "id", "role", "state", "editorView", "customActions", "onAction", "onFileUpload", "onViewModeChange", "props", "forwardedRef", "className", "rest", "upload", "setUpload", "useState", "uploadRef", "useCallback", "next", "getView", "invariant", "React", "div", "ref", "EditorToolbar", "classNames", "attendableId", "onImageUpload", "undefined", "FileUpload", "MarkdownEditorContextProvider", "useMarkdownEditorContext", "createContext", "MarkdownEditorRoot", "children", "id", "attendableId", "object", "settings", "compact", "viewMode", "selectionManager", "editorStateStore", "extensions", "extensionsProp", "slashCommandGroups", "onLinkQuery", "onSelectObject", "props", "editorView", "setEditorView", "useState", "previewBlocks", "setPreviewBlocks", "previewOptions", "useMemo", "db", "Obj", "isObject", "getDatabase", "undefined", "addBlockContainer", "block", "prev", "removeBlockContainer", "link", "filter", "prevLink", "dxn", "toolbarState", "useEditorToolbar", "menuOptions", "useEditorMenuOptions", "extension", "menuExtension", "menuProps", "useEditorMenu", "coreExtensions", "useExtensions", "isNonNullable", "React", "popoverMenu", "displayName", "MARKDOWN_EDITOR_CONTENT_NAME", "MarkdownEditorContent", "composable", "_forwardedRef", "groupsRef", "EditorMenuProvider", "view", "groups", "current", "NaturalMarkdownEditorContent", "composableProps", "ref", "MARKDOWN_EDITOR_TOOLBAR_NAME", "MarkdownEditorToolbar", "onAction", "onFileUpload", "onViewModeChange", "NaturalMarkdownToolbar", "state", "MARKDOWN_EDITOR_BLOCKS_NAME", "MarkdownEditorBlocks", "_props", "map", "el", "PreviewBlock", "key", "client", "useClient", "DXN", "parse", "subject", "graph", "makeRef", "target", "data", "createPortal", "Surface", "role", "limit", "MarkdownEditor", "Root", "Content", "Toolbar", "Blocks"]
|
|
7
|
+
}
|
|
@@ -8,7 +8,7 @@ var __export = (target, all) => {
|
|
|
8
8
|
// src/meta.ts
|
|
9
9
|
import { trim } from "@dxos/util";
|
|
10
10
|
var meta = {
|
|
11
|
-
id: "dxos.
|
|
11
|
+
id: "org.dxos.plugin.markdown",
|
|
12
12
|
name: "Markdown",
|
|
13
13
|
description: trim`
|
|
14
14
|
Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
__export,
|
|
27
27
|
meta
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-CW4FZNMZ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.markdown',\n name: 'Markdown',\n description: trim`\n Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.\n Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.\n `,\n icon: 'ph--text-aa--regular',\n iconHue: 'indigo',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown',\n screenshots: ['https://dxos.network/plugin-details-markdown-dark.png'],\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,aAAa;IAAC;;AAChB;",
|
|
6
|
+
"names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "screenshots"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
__export,
|
|
4
|
+
meta
|
|
5
|
+
} from "./chunk-CW4FZNMZ.mjs";
|
|
6
|
+
|
|
7
|
+
// src/types/Markdown.ts
|
|
8
|
+
var Markdown_exports = {};
|
|
9
|
+
__export(Markdown_exports, {
|
|
10
|
+
Document: () => Document,
|
|
11
|
+
Settings: () => Settings,
|
|
12
|
+
make: () => make
|
|
13
|
+
});
|
|
14
|
+
import * as Schema from "effect/Schema";
|
|
15
|
+
import { Annotation, Obj, Ref, Type } from "@dxos/echo";
|
|
16
|
+
import { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
|
|
17
|
+
import { Text } from "@dxos/schema";
|
|
18
|
+
import { EditorInputMode, EditorViewMode } from "@dxos/ui-editor/types";
|
|
19
|
+
var Document = Schema.Struct({
|
|
20
|
+
name: Schema.optional(Schema.String),
|
|
21
|
+
description: Schema.optional(Schema.String),
|
|
22
|
+
fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),
|
|
23
|
+
content: Ref.Ref(Text.Text).pipe(FormInputAnnotation.set(false))
|
|
24
|
+
}).pipe(Type.object({
|
|
25
|
+
typename: "org.dxos.type.document",
|
|
26
|
+
version: "0.1.0"
|
|
27
|
+
}), LabelAnnotation.set([
|
|
28
|
+
"name",
|
|
29
|
+
"fallbackName"
|
|
30
|
+
]), DescriptionAnnotation.set("description"), Annotation.IconAnnotation.set({
|
|
31
|
+
icon: "ph--text-aa--regular",
|
|
32
|
+
hue: "indigo"
|
|
33
|
+
}));
|
|
34
|
+
var make = ({ content = "", ...props } = {}) => {
|
|
35
|
+
const doc = Obj.make(Document, {
|
|
36
|
+
...props,
|
|
37
|
+
content: Ref.make(Text.make(content))
|
|
38
|
+
});
|
|
39
|
+
Obj.setParent(doc.content.target, doc);
|
|
40
|
+
return doc;
|
|
41
|
+
};
|
|
42
|
+
var Settings = Schema.mutable(Schema.Struct({
|
|
43
|
+
defaultViewMode: EditorViewMode,
|
|
44
|
+
editorInputMode: Schema.optional(EditorInputMode),
|
|
45
|
+
experimental: Schema.optional(Schema.Boolean),
|
|
46
|
+
debug: Schema.optional(Schema.Boolean),
|
|
47
|
+
toolbar: Schema.optional(Schema.Boolean),
|
|
48
|
+
typewriter: Schema.optional(Schema.String),
|
|
49
|
+
// TODO(burdon): Per document settings.
|
|
50
|
+
numberedHeadings: Schema.optional(Schema.Boolean),
|
|
51
|
+
folding: Schema.optional(Schema.Boolean)
|
|
52
|
+
}));
|
|
53
|
+
|
|
54
|
+
// src/types/capabilities.ts
|
|
55
|
+
import * as Schema2 from "effect/Schema";
|
|
56
|
+
import { Capability } from "@dxos/app-framework";
|
|
57
|
+
var MarkdownStateSchema = Schema2.mutable(Schema2.Struct({
|
|
58
|
+
viewMode: Schema2.Record({
|
|
59
|
+
key: Schema2.String,
|
|
60
|
+
value: Schema2.String
|
|
61
|
+
})
|
|
62
|
+
}));
|
|
63
|
+
(function(MarkdownCapabilities2) {
|
|
64
|
+
MarkdownCapabilities2.Settings = Capability.make(`${meta.id}.capability.settings`);
|
|
65
|
+
MarkdownCapabilities2.State = Capability.make(`${meta.id}.capability.state`);
|
|
66
|
+
MarkdownCapabilities2.EditorState = Capability.make(`${meta.id}.capability.editor-state`);
|
|
67
|
+
MarkdownCapabilities2.EditorViews = Capability.make(`${meta.id}.capability.editor-views`);
|
|
68
|
+
MarkdownCapabilities2.Extensions = Capability.make(`${meta.id}.capability.extensions`);
|
|
69
|
+
})(MarkdownCapabilities || (MarkdownCapabilities = {}));
|
|
70
|
+
var MarkdownCapabilities;
|
|
71
|
+
|
|
72
|
+
// src/types/events.ts
|
|
73
|
+
import { AppActivationEvents } from "@dxos/app-toolkit";
|
|
74
|
+
(function(MarkdownEvents2) {
|
|
75
|
+
MarkdownEvents2.SetupExtensions = AppActivationEvents.createStateEvent(`${meta.id}.event.setup-extensions`);
|
|
76
|
+
})(MarkdownEvents || (MarkdownEvents = {}));
|
|
77
|
+
var MarkdownEvents;
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
Markdown_exports,
|
|
81
|
+
MarkdownStateSchema,
|
|
82
|
+
MarkdownCapabilities,
|
|
83
|
+
MarkdownEvents
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=chunk-EPNCYA73.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/types/Markdown.ts", "../../../src/types/capabilities.ts", "../../../src/types/events.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Ref, Type } from '@dxos/echo';\nimport { DescriptionAnnotation, FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { Text } from '@dxos/schema';\nimport { EditorInputMode, EditorViewMode } from '@dxos/ui-editor/types';\n\n/**\n * Document Item type.\n */\nexport const Document = Schema.Struct({\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n fallbackName: Schema.String.pipe(FormInputAnnotation.set(false), Schema.optional),\n content: Ref.Ref(Text.Text).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.document',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name', 'fallbackName']),\n DescriptionAnnotation.set('description'),\n Annotation.IconAnnotation.set({\n icon: 'ph--text-aa--regular',\n hue: 'indigo',\n }),\n);\n\nexport type Document = Schema.Schema.Type<typeof Document>;\n\n/**\n * Document factory.\n */\nexport const make = ({\n content = '',\n ...props\n}: Partial<{ name: string; fallbackName: string; content: string }> = {}) => {\n const doc = Obj.make(Document, { ...props, content: Ref.make(Text.make(content)) });\n // TODO(dmaretskyi): We need a better way to set parents when creating hierarchies.\n Obj.setParent(doc.content.target!, doc);\n return doc;\n};\n\n/**\n * Plugin settings.\n */\nexport const Settings = Schema.mutable(\n Schema.Struct({\n defaultViewMode: EditorViewMode,\n editorInputMode: Schema.optional(EditorInputMode),\n experimental: Schema.optional(Schema.Boolean),\n debug: Schema.optional(Schema.Boolean),\n toolbar: Schema.optional(Schema.Boolean),\n typewriter: Schema.optional(Schema.String),\n // TODO(burdon): Per document settings.\n numberedHeadings: Schema.optional(Schema.Boolean),\n folding: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type EditorStateStore, type EditorViewMode } from '@dxos/ui-editor';\n\nimport { meta } from '../meta';\n\nimport type * as Markdown from './Markdown';\nimport { type MarkdownExtensionProvider } from './types';\n\n/** Schema for persisted markdown state. */\nexport const MarkdownStateSchema = Schema.mutable(\n Schema.Struct({\n viewMode: Schema.Record({ key: Schema.String, value: Schema.String }),\n }),\n);\n\nexport type MarkdownState = {\n viewMode: Record<string, EditorViewMode>;\n};\n\nexport type EditorViewEntry = { view: EditorView; documentId: string };\n\nexport type EditorViewRegistry = {\n register: (attendableId: string, view: EditorView, documentId: string) => void;\n unregister: (attendableId: string) => void;\n get: (attendableId: string) => EditorViewEntry | undefined;\n};\n\nexport namespace MarkdownCapabilities {\n export const Settings = Capability.make<Atom.Writable<Markdown.Settings>>(`${meta.id}.capability.settings`);\n\n /** Persisted state atom for view mode per document. */\n export const State = Capability.make<Atom.Writable<MarkdownState>>(`${meta.id}.capability.state`);\n\n /** Editor state store for cursor positions, scroll state, etc. */\n export const EditorState = Capability.make<EditorStateStore>(`${meta.id}.capability.editor-state`);\n\n /** Registry of active EditorView instances keyed by attendable ID. */\n export const EditorViews = Capability.make<EditorViewRegistry>(`${meta.id}.capability.editor-views`);\n\n // TODO(burdon): Move to ./types (external API)?\n export const Extensions = Capability.make<MarkdownExtensionProvider[]>(`${meta.id}.capability.extensions`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ActivationEvent } from '@dxos/app-framework';\nimport { AppActivationEvents } from '@dxos/app-toolkit';\n\nimport { meta } from '../meta';\n\nexport namespace MarkdownEvents {\n export const SetupExtensions: ActivationEvent.ActivationEvent = AppActivationEvents.createStateEvent(\n `${meta.id}.event.setup-extensions`,\n );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;AAAA;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,KAAKC,KAAKC,YAAY;AAC3C,SAASC,uBAAuBC,qBAAqBC,uBAAuB;AAC5E,SAASC,YAAY;AACrB,SAASC,iBAAiBC,sBAAsB;AAKzC,IAAMC,WAAkBC,cAAO;EACpCC,MAAaC,gBAAgBC,aAAM;EACnCC,aAAoBF,gBAAgBC,aAAM;EAC1CE,cAAqBF,cAAOG,KAAKC,oBAAoBC,IAAI,KAAA,GAAeN,eAAQ;EAChFO,SAASC,IAAIA,IAAIC,KAAKA,IAAI,EAAEL,KAAKC,oBAAoBC,IAAI,KAAA,CAAA;AAC3D,CAAA,EAAGF,KACDM,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBR,IAAI;EAAC;EAAQ;CAAe,GAC5CS,sBAAsBT,IAAI,aAAA,GAC1BU,WAAWC,eAAeX,IAAI;EAC5BY,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAQK,IAAMC,OAAO,CAAC,EACnBb,UAAU,IACV,GAAGc,MAAAA,IACiE,CAAC,MAAC;AACtE,QAAMC,MAAMC,IAAIH,KAAKvB,UAAU;IAAE,GAAGwB;IAAOd,SAASC,IAAIY,KAAKX,KAAKW,KAAKb,OAAAA,CAAAA;EAAU,CAAA;AAEjFgB,MAAIC,UAAUF,IAAIf,QAAQkB,QAASH,GAAAA;AACnC,SAAOA;AACT;AAKO,IAAMI,WAAkBC,eACtB7B,cAAO;EACZ8B,iBAAiBC;EACjBC,iBAAwB9B,gBAAS+B,eAAAA;EACjCC,cAAqBhC,gBAAgBiC,cAAO;EAC5CC,OAAclC,gBAAgBiC,cAAO;EACrCE,SAAgBnC,gBAAgBiC,cAAO;EACvCG,YAAmBpC,gBAAgBC,aAAM;;EAEzCoC,kBAAyBrC,gBAAgBiC,cAAO;EAChDK,SAAgBtC,gBAAgBiC,cAAO;AACzC,CAAA,CAAA;;;ACvDF,YAAYM,aAAY;AAExB,SAASC,kBAAkB;AASpB,IAAMC,sBAA6BC,gBACjCC,eAAO;EACZC,UAAiBC,eAAO;IAAEC,KAAYC;IAAQC,OAAcD;EAAO,CAAA;AACrE,CAAA,CAAA;UAeeE,uBAAAA;wBACFC,WAAWC,WAAWC,KAAuC,GAAGC,KAAKC,EAAE,sBAAsB;wBAG7FC,QAAQJ,WAAWC,KAAmC,GAAGC,KAAKC,EAAE,mBAAmB;wBAGnFE,cAAcL,WAAWC,KAAuB,GAAGC,KAAKC,EAAE,0BAA0B;wBAGpFG,cAAcN,WAAWC,KAAyB,GAAGC,KAAKC,EAAE,0BAA0B;wBAGtFI,aAAaP,WAAWC,KAAkC,GAAGC,KAAKC,EAAE,wBAAwB;AAC3G,GAdiBL,yBAAAA,uBAAAA,CAAAA,EAAAA;;;;AC9BjB,SAASU,2BAA2B;UAInBC,iBAAAA;kBACFC,kBAAmDC,oBAAoBC,iBAClF,GAAGC,KAAKC,EAAE,yBAAyB;AAEvC,GAJiBL,mBAAAA,iBAAAA,CAAAA,EAAAA;;",
|
|
6
|
+
"names": ["Schema", "Annotation", "Obj", "Ref", "Type", "DescriptionAnnotation", "FormInputAnnotation", "LabelAnnotation", "Text", "EditorInputMode", "EditorViewMode", "Document", "Struct", "name", "optional", "String", "description", "fallbackName", "pipe", "FormInputAnnotation", "set", "content", "Ref", "Text", "Type", "object", "typename", "version", "LabelAnnotation", "DescriptionAnnotation", "Annotation", "IconAnnotation", "icon", "hue", "make", "props", "doc", "Obj", "setParent", "target", "Settings", "mutable", "defaultViewMode", "EditorViewMode", "editorInputMode", "EditorInputMode", "experimental", "Boolean", "debug", "toolbar", "typewriter", "numberedHeadings", "folding", "Schema", "Capability", "MarkdownStateSchema", "mutable", "Struct", "viewMode", "Record", "key", "String", "value", "MarkdownCapabilities", "Settings", "Capability", "make", "meta", "id", "State", "EditorState", "EditorViews", "Extensions", "AppActivationEvents", "MarkdownEvents", "SetupExtensions", "AppActivationEvents", "createStateEvent", "meta", "id"]
|
|
7
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
Markdown_exports
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-EPNCYA73.mjs";
|
|
5
5
|
import {
|
|
6
6
|
meta
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CW4FZNMZ.mjs";
|
|
8
8
|
|
|
9
9
|
// src/translations.ts
|
|
10
|
+
import { translations as editorTranslations } from "@dxos/react-ui-editor";
|
|
10
11
|
var translations = [
|
|
11
12
|
{
|
|
12
13
|
"en-US": {
|
|
@@ -16,8 +17,10 @@ var translations = [
|
|
|
16
17
|
"typename label_one": "Document",
|
|
17
18
|
"typename label_other": "Documents",
|
|
18
19
|
"object name placeholder": "New document",
|
|
20
|
+
"add object label": "Add document",
|
|
19
21
|
"rename object label": "Rename document",
|
|
20
|
-
"delete object label": "Delete document"
|
|
22
|
+
"delete object label": "Delete document",
|
|
23
|
+
"object deleted label": "Document deleted"
|
|
21
24
|
},
|
|
22
25
|
[meta.id]: {
|
|
23
26
|
"plugin name": "Editor",
|
|
@@ -48,10 +51,11 @@ var translations = [
|
|
|
48
51
|
"words label_other": "words"
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
|
-
}
|
|
54
|
+
},
|
|
55
|
+
...editorTranslations
|
|
52
56
|
];
|
|
53
57
|
|
|
54
58
|
export {
|
|
55
59
|
translations
|
|
56
60
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-FC3GPLJG.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\nimport { translations as editorTranslations } from '@dxos/react-ui-editor';\n\nimport { meta } from './meta';\nimport { Markdown } from './types';\n\nexport const translations = [\n {\n 'en-US': {\n [Markdown.Document.typename]: {\n 'typename label': 'Document',\n 'typename label_zero': 'Documents',\n 'typename label_one': 'Document',\n 'typename label_other': 'Documents',\n 'object name placeholder': 'New document',\n 'add object label': 'Add document',\n 'rename object label': 'Rename document',\n 'delete object label': 'Delete document',\n 'object deleted label': 'Document deleted',\n },\n [meta.id]: {\n 'plugin name': 'Editor',\n 'settings title': 'Editor settings',\n 'choose markdown from space dialog title': 'Choose one or more documents to add',\n // TODO(burdon): Style-guide for user-facing text (e.g., hints, questions, capitalization, etc.)\n 'empty choose markdown from space message': 'None available; try creating a new one instead?',\n 'chooser done label': 'Add selected',\n 'editor placeholder': '',\n 'editor input mode label': 'Editor input mode',\n 'select editor input mode placeholder': 'Select editor input mode…',\n 'settings editor input mode default label': 'Default',\n 'settings editor input mode vim label': 'Vim',\n 'settings editor input mode vscode label': 'VS Code',\n 'settings toolbar label': 'Show toolbar',\n 'settings numbered headings label': 'Numbered headings',\n 'settings folding label': 'Folding',\n 'settings experimental label': 'Enable experimental features',\n 'settings debug label': 'Enable debugging features',\n 'settings debug placeholder': 'Typewriter script...',\n 'toggle view mode label': 'Toggle read-only',\n 'default view mode label': 'Default view mode',\n 'upload image label': 'Upload image',\n 'fallback title': 'Untitled',\n 'navigate to document label': 'Open document',\n 'words label_zero': 'words',\n 'words label_one': 'word',\n 'words label_other': 'words',\n },\n },\n },\n ...editorTranslations,\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAKA,SAASA,gBAAgBC,0BAA0B;AAK5C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,iBAASC,SAASC,QAAQ,GAAG;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,sBAAsB;QACtB,wBAAwB;QACxB,2BAA2B;QAC3B,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,wBAAwB;MAC1B;MACA,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,kBAAkB;QAClB,2CAA2C;;QAE3C,4CAA4C;QAC5C,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,wCAAwC;QACxC,4CAA4C;QAC5C,wCAAwC;QACxC,2CAA2C;QAC3C,0BAA0B;QAC1B,oCAAoC;QACpC,0BAA0B;QAC1B,+BAA+B;QAC/B,wBAAwB;QACxB,8BAA8B;QAC9B,0BAA0B;QAC1B,2BAA2B;QAC3B,sBAAsB;QACtB,kBAAkB;QAClB,8BAA8B;QAC9B,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;MACvB;IACF;EACF;KACGC;;",
|
|
6
|
+
"names": ["translations", "editorTranslations", "translations", "Markdown", "Document", "typename", "meta", "id", "editorTranslations"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
Create,
|
|
4
|
+
Open,
|
|
5
|
+
Update
|
|
6
|
+
} from "./chunk-6LHNAAMP.mjs";
|
|
7
|
+
|
|
8
|
+
// src/blueprints/markdown-blueprint.ts
|
|
9
|
+
import { Blueprint, Template } from "@dxos/blueprints";
|
|
10
|
+
import { trim } from "@dxos/util";
|
|
11
|
+
var BLUEPRINT_KEY = "org.dxos.blueprint.markdown";
|
|
12
|
+
var make = () => Blueprint.make({
|
|
13
|
+
key: BLUEPRINT_KEY,
|
|
14
|
+
name: "Markdown",
|
|
15
|
+
description: "Work with markdown documents. Preferred over raw database operations.",
|
|
16
|
+
tools: Blueprint.toolDefinitions({
|
|
17
|
+
operations: [
|
|
18
|
+
Create,
|
|
19
|
+
Open,
|
|
20
|
+
Update
|
|
21
|
+
]
|
|
22
|
+
}),
|
|
23
|
+
instructions: Template.make({
|
|
24
|
+
// TODO(wittjosiah): Move example to function input schema annotation.
|
|
25
|
+
source: trim`
|
|
26
|
+
{{! Markdown }}
|
|
27
|
+
|
|
28
|
+
You can create, read and update markdown documents.
|
|
29
|
+
When asked to edit or update documents return updates as a set of compact diff string pairs.
|
|
30
|
+
For each diff, respond with the smallest possible matching span.
|
|
31
|
+
|
|
32
|
+
Example:
|
|
33
|
+
${"```"}diff
|
|
34
|
+
- "There is a tyop in this sentence."
|
|
35
|
+
+ "There is a typo in this sentence."
|
|
36
|
+
- "This id good."
|
|
37
|
+
+ "This sentence is really good."
|
|
38
|
+
${"```"}
|
|
39
|
+
`
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
var blueprint = {
|
|
43
|
+
key: BLUEPRINT_KEY,
|
|
44
|
+
make
|
|
45
|
+
};
|
|
46
|
+
var markdown_blueprint_default = blueprint;
|
|
47
|
+
|
|
48
|
+
export {
|
|
49
|
+
markdown_blueprint_default
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=chunk-G6W4DJBM.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/blueprints/markdown-blueprint.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AppCapabilities } from '@dxos/app-toolkit';\nimport { Blueprint, Template } from '@dxos/blueprints';\nimport { trim } from '@dxos/util';\n\nimport { Create, Open, Update } from '../operations/definitions';\n\nconst BLUEPRINT_KEY = 'org.dxos.blueprint.markdown';\n\nconst make = () =>\n Blueprint.make({\n key: BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({ operations: [Create, Open, Update] }),\n instructions: Template.make({\n // TODO(wittjosiah): Move example to function input schema annotation.\n source: trim`\n {{! Markdown }}\n\n You can create, read and update markdown documents.\n When asked to edit or update documents return updates as a set of compact diff string pairs.\n For each diff, respond with the smallest possible matching span.\n\n Example:\n ${'```'}diff\n - \"There is a tyop in this sentence.\"\n + \"There is a typo in this sentence.\"\n - \"This id good.\"\n + \"This sentence is really good.\"\n ${'```'}\n `,\n }),\n });\n\nconst blueprint: AppCapabilities.BlueprintDefinition = {\n key: BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAKA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAIrB,IAAMC,gBAAgB;AAEtB,IAAMC,OAAO,MACXC,UAAUD,KAAK;EACbE,KAAKH;EACLI,MAAM;EACNC,aAAa;EACbC,OAAOJ,UAAUK,gBAAgB;IAAEC,YAAY;MAACC;MAAQC;MAAMC;;EAAQ,CAAA;EACtEC,cAAcC,SAASZ,KAAK;;IAE1Ba,QAAQC;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMC,YAAiD;EACrDb,KAAKH;EACLC;AACF;AAEA,IAAA,6BAAee;",
|
|
6
|
+
"names": ["Blueprint", "Template", "trim", "BLUEPRINT_KEY", "make", "Blueprint", "key", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "Template", "source", "trim", "blueprint"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/operations/index.ts
|
|
4
|
+
import { OperationHandlerSet } from "@dxos/operation";
|
|
5
|
+
var MarkdownOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-X7H4LYI5.mjs"), () => import("./create-markdown-7POKQDVQ.mjs"), () => import("./open-FZVFWXC7.mjs"), () => import("./scroll-to-anchor-KWBJLM5Q.mjs"), () => import("./set-view-mode-FFEKYLU3.mjs"), () => import("./update-WPEFBY4M.mjs"));
|
|
6
|
+
|
|
7
|
+
export {
|
|
8
|
+
MarkdownOperationHandlerSet
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=chunk-JLOCBILO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/operation';\n\nexport * as MarkdownOperation from './definitions';\n\nexport const MarkdownOperationHandlerSet = OperationHandlerSet.lazy(\n () => import('./create'),\n () => import('./create-markdown'),\n () => import('./open'),\n () => import('./scroll-to-anchor'),\n () => import('./set-view-mode'),\n () => import('./update'),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,2BAA2B;AAI7B,IAAMC,8BAA8BC,oBAAoBC,KAC7D,MAAM,OAAO,uBAAA,GACb,MAAM,OAAO,gCAAA,GACb,MAAM,OAAO,qBAAA,GACb,MAAM,OAAO,iCAAA,GACb,MAAM,OAAO,8BAAA,GACb,MAAM,OAAO,uBAAA,CAAA;",
|
|
6
|
+
"names": ["OperationHandlerSet", "MarkdownOperationHandlerSet", "OperationHandlerSet", "lazy"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/capabilities/operation-handler/index.ts
|
|
4
|
+
import { Capability } from "@dxos/app-framework";
|
|
5
|
+
var OperationHandler = Capability.lazy("OperationHandler", () => import("./operation-handler-TP26H7QE.mjs"));
|
|
6
|
+
|
|
7
|
+
export {
|
|
8
|
+
OperationHandler
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=chunk-YWQQYV76.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/operation-handler/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\nimport { OperationHandlerSet } from '@dxos/operation';\n\nexport const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(\n 'OperationHandler',\n () => import('./operation-handler'),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAASA,kBAAkB;AAGpB,IAAMC,mBAAmBC,WAAWC,KACzC,oBACA,MAAM,OAAO,kCAAA,CAAA;",
|
|
6
|
+
"names": ["Capability", "OperationHandler", "Capability", "lazy"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
OperationHandler
|
|
4
|
+
} from "../chunk-YWQQYV76.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Markdown_exports
|
|
7
|
+
} from "../chunk-EPNCYA73.mjs";
|
|
8
|
+
import {
|
|
9
|
+
meta
|
|
10
|
+
} from "../chunk-CW4FZNMZ.mjs";
|
|
11
|
+
|
|
12
|
+
// src/cli/plugin.ts
|
|
13
|
+
import * as Effect from "effect/Effect";
|
|
14
|
+
import { Plugin } from "@dxos/app-framework";
|
|
15
|
+
import { AppPlugin } from "@dxos/app-toolkit";
|
|
16
|
+
import { Operation } from "@dxos/operation";
|
|
17
|
+
import { SpaceOperation } from "@dxos/plugin-space/operations";
|
|
18
|
+
import { Text } from "@dxos/schema";
|
|
19
|
+
var MarkdownPlugin = Plugin.define(meta).pipe(AppPlugin.addMetadataModule({
|
|
20
|
+
metadata: {
|
|
21
|
+
id: Markdown_exports.Document.typename,
|
|
22
|
+
metadata: {
|
|
23
|
+
createObject: (props, options) => Effect.gen(function* () {
|
|
24
|
+
const object = Markdown_exports.make(props);
|
|
25
|
+
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
26
|
+
object,
|
|
27
|
+
target: options.target,
|
|
28
|
+
hidden: true,
|
|
29
|
+
targetNodeId: options.targetNodeId
|
|
30
|
+
});
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}), AppPlugin.addOperationHandlerModule({
|
|
35
|
+
activate: OperationHandler
|
|
36
|
+
}), AppPlugin.addSchemaModule({
|
|
37
|
+
schema: [
|
|
38
|
+
Markdown_exports.Document,
|
|
39
|
+
Text.Text
|
|
40
|
+
]
|
|
41
|
+
}), Plugin.make);
|
|
42
|
+
export {
|
|
43
|
+
MarkdownPlugin
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cli/plugin.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\nimport { type CreateObject } from '@dxos/plugin-space/types';\nimport { SpaceOperation } from '@dxos/plugin-space/operations';\nimport { Text } from '@dxos/schema';\n\n// NOTE: Must not import from index to avoid pulling in react dependencies.\nimport { OperationHandler } from '../capabilities/operation-handler';\nimport { meta } from '../meta';\nimport { Markdown } from '../types';\n\nexport const MarkdownPlugin = Plugin.define(meta).pipe(\n AppPlugin.addMetadataModule({\n metadata: {\n id: Markdown.Document.typename,\n metadata: {\n createObject: ((props, options) =>\n Effect.gen(function* () {\n const object = Markdown.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n })) satisfies CreateObject,\n },\n },\n }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({ schema: [Markdown.Document, Text.Text] }),\n Plugin.make,\n);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAc;AACvB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB;AAE1B,SAASC,sBAAsB;AAC/B,SAASC,YAAY;AAOd,IAAMC,iBAAiBC,OAAOC,OAAOC,IAAAA,EAAMC,KAChDC,UAAUC,kBAAkB;EAC1BC,UAAU;IACRC,IAAIC,iBAASC,SAASC;IACtBJ,UAAU;MACRK,cAAe,CAACC,OAAOC,YACdC,WAAI,aAAA;AACT,cAAMC,SAASP,iBAASQ,KAAKJ,KAAAA;AAC7B,eAAO,OAAOK,UAAUC,OAAOC,eAAeC,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ;EACF;AACF,CAAA,GACAnB,UAAUoB,0BAA0B;EAAEC,UAAUC;AAAiB,CAAA,GACjEtB,UAAUuB,gBAAgB;EAAEC,QAAQ;IAACpB,iBAASC;IAAUoB,KAAKA;;AAAM,CAAA,GACnE7B,OAAOgB,IAAI;",
|
|
6
|
+
"names": ["Effect", "Plugin", "AppPlugin", "Operation", "SpaceOperation", "Text", "MarkdownPlugin", "Plugin", "define", "meta", "pipe", "AppPlugin", "addMetadataModule", "metadata", "id", "Markdown", "Document", "typename", "createObject", "props", "options", "gen", "object", "make", "Operation", "invoke", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "addOperationHandlerModule", "activate", "OperationHandler", "addSchemaModule", "schema", "Text"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
Create
|
|
4
|
+
} from "./chunk-6LHNAAMP.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Markdown_exports
|
|
7
|
+
} from "./chunk-EPNCYA73.mjs";
|
|
8
|
+
import "./chunk-CW4FZNMZ.mjs";
|
|
9
|
+
|
|
10
|
+
// src/operations/create.ts
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import { Obj } from "@dxos/echo";
|
|
13
|
+
import { Operation } from "@dxos/operation";
|
|
14
|
+
import { CollectionModel } from "@dxos/schema";
|
|
15
|
+
var handler = Create.pipe(Operation.withHandler(Effect.fn(function* ({ name, content }) {
|
|
16
|
+
const object = Markdown_exports.make({
|
|
17
|
+
name,
|
|
18
|
+
content
|
|
19
|
+
});
|
|
20
|
+
yield* CollectionModel.add({
|
|
21
|
+
object
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
id: Obj.getDXN(object).toString()
|
|
25
|
+
};
|
|
26
|
+
})));
|
|
27
|
+
var create_default = handler;
|
|
28
|
+
export {
|
|
29
|
+
create_default as default
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=create-X7H4LYI5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Obj } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\nimport { CollectionModel } from '@dxos/schema';\n\nimport { Create } from './definitions';\nimport { Markdown } from '../types';\n\nconst handler: Operation.WithHandler<typeof Create> = Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ name, content }) {\n const object = Markdown.make({ name, content });\n yield* CollectionModel.add({ object });\n\n return {\n id: Obj.getDXN(object).toString(),\n };\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,WAAW;AACpB,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAKhC,IAAMC,UAAgDC,OAAOC,KAC3DC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAMC,QAAO,GAAE;AACpC,QAAMC,SAASC,iBAASC,KAAK;IAAEJ;IAAMC;EAAQ,CAAA;AAC7C,SAAOI,gBAAgBC,IAAI;IAAEJ;EAAO,CAAA;AAEpC,SAAO;IACLK,IAAIC,IAAIC,OAAOP,MAAAA,EAAQQ,SAAQ;EACjC;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAehB;",
|
|
6
|
+
"names": ["Effect", "Obj", "Operation", "CollectionModel", "handler", "Create", "pipe", "Operation", "withHandler", "fn", "name", "content", "object", "Markdown", "make", "CollectionModel", "add", "id", "Obj", "getDXN", "toString"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
CreateMarkdown
|
|
4
|
+
} from "./chunk-6LHNAAMP.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Markdown_exports
|
|
7
|
+
} from "./chunk-EPNCYA73.mjs";
|
|
8
|
+
import "./chunk-CW4FZNMZ.mjs";
|
|
9
|
+
|
|
10
|
+
// src/operations/create-markdown.ts
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import { Operation } from "@dxos/operation";
|
|
13
|
+
var handler = CreateMarkdown.pipe(Operation.withHandler(({ name, content }) => Effect.succeed({
|
|
14
|
+
object: Markdown_exports.make({
|
|
15
|
+
name,
|
|
16
|
+
content
|
|
17
|
+
})
|
|
18
|
+
})));
|
|
19
|
+
var create_markdown_default = handler;
|
|
20
|
+
export {
|
|
21
|
+
create_markdown_default as default
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=create-markdown-7POKQDVQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create-markdown.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/operation';\n\nimport { CreateMarkdown } from './definitions';\n\nimport { Markdown } from '../types';\n\nconst handler: Operation.WithHandler<typeof CreateMarkdown> = CreateMarkdown.pipe(\n Operation.withHandler(({ name, content }) =>\n Effect.succeed({\n object: Markdown.make({ name, content }),\n }),\n ),\n);\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAM1B,IAAMC,UAAwDC,eAAeC,KAC3EC,UAAUC,YAAY,CAAC,EAAEC,MAAMC,QAAO,MAC7BC,eAAQ;EACbC,QAAQC,iBAASC,KAAK;IAAEL;IAAMC;EAAQ,CAAA;AACxC,CAAA,CAAA,CAAA;AAIJ,IAAA,0BAAeN;",
|
|
6
|
+
"names": ["Effect", "Operation", "handler", "CreateMarkdown", "pipe", "Operation", "withHandler", "name", "content", "succeed", "object", "Markdown", "make"]
|
|
7
|
+
}
|