@dxos/plugin-markdown 0.8.4-main.422d1c7879 → 0.8.4-main.4668b7de9b
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/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs +34 -0
- package/dist/lib/neutral/EditableMarkdownCard-AW7MD35U.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs +126 -0
- package/dist/lib/neutral/MarkdownArticle-Z4QRU3WD.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs +107 -0
- package/dist/lib/neutral/MarkdownCard-36P4AHYL.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs +58 -0
- package/dist/lib/neutral/MarkdownPlugin.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs +25 -0
- package/dist/lib/neutral/MarkdownPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/MarkdownPlugin.workerd.mjs +23 -0
- package/dist/lib/neutral/MarkdownPlugin.workerd.mjs.map +7 -0
- package/dist/lib/{browser/MarkdownSettings-62YSRY7L.mjs → neutral/MarkdownSettings-YCTZJL5V.mjs} +4 -4
- package/dist/lib/neutral/MarkdownSettings-YCTZJL5V.mjs.map +7 -0
- package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs +32 -0
- package/dist/lib/neutral/anchor-sort-37GOHBLW.mjs.map +7 -0
- package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs +56 -0
- package/dist/lib/neutral/app-graph-serializer-EN5E3BMG.mjs.map +7 -0
- package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs +15 -0
- package/dist/lib/neutral/blueprint-definition-33OK2KUL.mjs.map +7 -0
- package/dist/lib/neutral/blueprints/index.mjs +8 -0
- package/dist/lib/neutral/capabilities/index.mjs +25 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +11 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/neutral/chunk-36QFEVOZ.mjs +30 -0
- package/dist/lib/neutral/chunk-36QFEVOZ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-A45UVZEH.mjs +285 -0
- package/dist/lib/neutral/chunk-A45UVZEH.mjs.map +7 -0
- package/dist/lib/neutral/chunk-E5NVTEKQ.mjs +8 -0
- package/dist/lib/neutral/chunk-E5NVTEKQ.mjs.map +7 -0
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs +98 -0
- package/dist/lib/neutral/chunk-KDN4GKG2.mjs.map +7 -0
- package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-LXNSKCPD.mjs} +10 -17
- package/dist/lib/neutral/chunk-LXNSKCPD.mjs.map +7 -0
- package/dist/lib/neutral/comment-config-ZEA66BUR.mjs +31 -0
- package/dist/lib/neutral/comment-config-ZEA66BUR.mjs.map +7 -0
- package/dist/lib/{browser → neutral/components}/index.mjs +19 -280
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +13 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/{browser/create-YL5ELZWP.mjs → neutral/create-HONLDBVT.mjs} +7 -9
- package/dist/lib/neutral/create-HONLDBVT.mjs.map +7 -0
- package/dist/lib/{browser/create-markdown-LU5IDKMH.mjs → neutral/create-markdown-UCPD2Z3V.mjs} +5 -7
- package/dist/lib/neutral/create-markdown-UCPD2Z3V.mjs.map +7 -0
- package/dist/lib/neutral/create-object-VU3KX663.mjs +28 -0
- package/dist/lib/neutral/create-object-VU3KX663.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +316 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +42 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/{browser/open-AFSOZZ6G.mjs → neutral/open-VVDMNJ7J.mjs} +5 -6
- package/dist/lib/neutral/open-VVDMNJ7J.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs +13 -0
- package/dist/lib/neutral/operation-handler-2ARMPBGZ.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-EMYFM37T.mjs +119 -0
- package/dist/lib/neutral/react-surface-EMYFM37T.mjs.map +7 -0
- package/dist/lib/{browser/scroll-to-anchor-IPXV32A6.mjs → neutral/scroll-to-anchor-Y3P676QG.mjs} +7 -9
- package/dist/lib/neutral/scroll-to-anchor-Y3P676QG.mjs.map +7 -0
- package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs +24 -0
- package/dist/lib/neutral/set-view-mode-JZB7UXIF.mjs.map +7 -0
- package/dist/lib/neutral/settings-TDGDLCUR.mjs +34 -0
- package/dist/lib/neutral/settings-TDGDLCUR.mjs.map +7 -0
- package/dist/lib/neutral/state-5COCF5PN.mjs +44 -0
- package/dist/lib/neutral/state-5COCF5PN.mjs.map +7 -0
- package/dist/lib/neutral/testing.mjs +30 -0
- package/dist/lib/neutral/testing.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +44 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +16 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/lib/{browser/update-HZNVYBMO.mjs → neutral/update-markdown-F25F4EPF.mjs} +8 -9
- package/dist/lib/neutral/update-markdown-F25F4EPF.mjs.map +7 -0
- package/dist/types/src/MarkdownPlugin.d.ts +1 -0
- package/dist/types/src/MarkdownPlugin.d.ts.map +1 -1
- package/dist/types/src/{cli/plugin.d.ts → MarkdownPlugin.node.d.ts} +2 -1
- package/dist/types/src/MarkdownPlugin.node.d.ts.map +1 -0
- package/dist/types/src/MarkdownPlugin.test.d.ts +2 -0
- package/dist/types/src/MarkdownPlugin.test.d.ts.map +1 -0
- package/dist/types/src/MarkdownPlugin.workerd.d.ts +4 -0
- package/dist/types/src/MarkdownPlugin.workerd.d.ts.map +1 -0
- package/dist/types/src/blueprints/markdown-blueprint.d.ts +2 -2
- package/dist/types/src/blueprints/markdown-blueprint.d.ts.map +1 -1
- package/dist/types/src/capabilities/anchor-sort.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/blueprint-definition.d.ts +2 -2
- package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
- package/dist/types/src/capabilities/comment-config.d.ts +12 -0
- package/dist/types/src/capabilities/comment-config.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +16 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +7 -1
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +2 -2
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts +13 -5
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts +2 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorContent.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts +1 -1
- package/dist/types/src/components/MarkdownEditor/MarkdownEditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.d.ts.map +1 -1
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts +46 -46
- package/dist/types/src/components/MarkdownSettings/MarkdownSettings.stories.d.ts.map +1 -1
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts +15 -0
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.d.ts.map +1 -0
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts +9 -0
- package/dist/types/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.d.ts.map +1 -0
- package/dist/types/src/containers/EditableMarkdownCard/index.d.ts +3 -0
- package/dist/types/src/containers/EditableMarkdownCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/{MarkdownContainer/MarkdownContainer.d.ts → MarkdownArticle/MarkdownArticle.d.ts} +14 -10
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts +97 -0
- package/dist/types/src/containers/MarkdownArticle/MarkdownArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownArticle/index.d.ts +3 -0
- package/dist/types/src/containers/MarkdownArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts +1 -1
- package/dist/types/src/containers/MarkdownCard/MarkdownCard.stories.d.ts.map +1 -1
- package/dist/types/src/containers/MarkdownCard/snippet.d.ts.map +1 -1
- package/dist/types/src/containers/index.d.ts +3 -2
- package/dist/types/src/containers/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 +2 -1
- package/dist/types/src/hooks/useExtensions.d.ts.map +1 -1
- package/dist/types/src/hooks/useLinkQuery.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -4
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-markdown.d.ts +3 -3
- package/dist/types/src/operations/create-markdown.d.ts.map +1 -1
- package/dist/types/src/operations/create.d.ts +3 -3
- package/dist/types/src/operations/create.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +1 -2
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/open.d.ts +3 -3
- package/dist/types/src/operations/open.d.ts.map +1 -1
- package/dist/types/src/operations/scroll-to-anchor.d.ts +3 -3
- package/dist/types/src/operations/scroll-to-anchor.d.ts.map +1 -1
- package/dist/types/src/operations/set-view-mode.d.ts +3 -3
- package/dist/types/src/operations/set-view-mode.d.ts.map +1 -1
- package/dist/types/src/operations/update-markdown.d.ts +5 -0
- package/dist/types/src/operations/update-markdown.d.ts.map +1 -0
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +1 -0
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +70 -51
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Markdown.d.ts +12 -10
- package/dist/types/src/types/Markdown.d.ts.map +1 -1
- package/dist/types/src/types/MarkdownCapabilities.d.ts +32 -0
- package/dist/types/src/types/MarkdownCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/MarkdownEvents.d.ts +3 -0
- package/dist/types/src/types/MarkdownEvents.d.ts.map +1 -0
- package/dist/types/src/{operations/definitions.d.ts → types/MarkdownOperation.d.ts} +17 -17
- package/dist/types/src/types/MarkdownOperation.d.ts.map +1 -0
- package/dist/types/src/types/Settings.d.ts +14 -1
- package/dist/types/src/types/Settings.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +1 -0
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -1
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +119 -85
- package/src/MarkdownPlugin.node.ts +20 -0
- package/src/MarkdownPlugin.test.ts +26 -0
- package/src/MarkdownPlugin.tsx +8 -52
- package/src/MarkdownPlugin.workerd.ts +19 -0
- package/src/blueprints/markdown-blueprint.ts +8 -9
- package/src/capabilities/anchor-sort.ts +2 -2
- package/src/capabilities/app-graph-serializer.ts +9 -10
- package/src/capabilities/blueprint-definition.ts +2 -0
- package/src/capabilities/comment-config.ts +33 -0
- package/src/capabilities/create-object.ts +31 -0
- package/src/capabilities/index.ts +4 -1
- package/src/capabilities/node.ts +3 -1
- package/src/capabilities/operation-handler.ts +1 -1
- package/src/capabilities/react-surface.tsx +17 -10
- package/src/capabilities/state.ts +4 -4
- package/src/components/MarkdownEditor/MarkdownEditor.stories.tsx +5 -4
- package/src/components/MarkdownEditor/MarkdownEditor.tsx +35 -28
- package/src/components/MarkdownEditor/MarkdownEditorContent.tsx +4 -3
- package/src/components/MarkdownEditor/MarkdownEditorToolbar.tsx +2 -2
- package/src/components/MarkdownSettings/MarkdownSettings.stories.tsx +2 -1
- package/src/components/MarkdownSettings/MarkdownSettings.tsx +3 -3
- package/src/containers/EditableMarkdownCard/EditableMarkdownCard.stories.tsx +86 -0
- package/src/containers/EditableMarkdownCard/EditableMarkdownCard.tsx +44 -0
- package/src/containers/EditableMarkdownCard/index.ts +6 -0
- package/src/containers/{MarkdownContainer/MarkdownContainer.stories.tsx → MarkdownArticle/MarkdownArticle.stories.tsx} +14 -8
- package/src/containers/{MarkdownContainer/MarkdownContainer.tsx → MarkdownArticle/MarkdownArticle.tsx} +7 -6
- package/src/containers/MarkdownArticle/index.ts +6 -0
- package/src/containers/MarkdownCard/MarkdownCard.stories.tsx +8 -7
- package/src/containers/MarkdownCard/MarkdownCard.tsx +27 -20
- package/src/containers/MarkdownCard/snippet.ts +3 -1
- package/src/containers/index.ts +3 -2
- package/src/hooks/useExtensions.tsx +12 -8
- package/src/hooks/useLinkQuery.ts +19 -34
- package/src/index.ts +2 -7
- package/src/meta.ts +17 -7
- package/src/operations/create-markdown.ts +3 -4
- package/src/operations/create.conversations.json +1 -1
- package/src/operations/create.test.ts +10 -12
- package/src/operations/create.ts +5 -6
- package/src/operations/index.ts +2 -4
- package/src/operations/open.ts +3 -3
- package/src/operations/scroll-to-anchor.ts +3 -4
- package/src/operations/set-view-mode.ts +3 -4
- package/src/operations/{update.ts → update-markdown.ts} +3 -3
- package/src/operations/update.conversations.json +1 -1
- package/src/operations/update.test.ts +10 -12
- package/src/plugin.ts +11 -0
- package/src/testing.ts +22 -9
- package/src/translations.ts +4 -3
- package/src/types/Markdown.ts +9 -10
- package/src/types/MarkdownCapabilities.ts +51 -0
- package/src/types/MarkdownEvents.ts +14 -0
- package/src/{operations/definitions.ts → types/MarkdownOperation.ts} +24 -11
- package/src/types/Settings.ts +23 -3
- package/src/types/index.ts +3 -2
- package/src/types/types.ts +4 -1
- package/src/util.tsx +2 -2
- package/dist/lib/browser/MarkdownSettings-62YSRY7L.mjs.map +0 -7
- package/dist/lib/browser/blueprints/index.mjs.map +0 -7
- package/dist/lib/browser/chunk-4KOZEH2H.mjs +0 -121
- package/dist/lib/browser/chunk-4KOZEH2H.mjs.map +0 -7
- package/dist/lib/browser/chunk-QFPZONKP.mjs +0 -158
- package/dist/lib/browser/chunk-QFPZONKP.mjs.map +0 -7
- package/dist/lib/browser/cli/index.mjs +0 -39
- package/dist/lib/browser/cli/index.mjs.map +0 -7
- package/dist/lib/browser/create-YL5ELZWP.mjs.map +0 -7
- package/dist/lib/browser/create-markdown-LU5IDKMH.mjs.map +0 -7
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/open-AFSOZZ6G.mjs.map +0 -7
- package/dist/lib/browser/operations/index.mjs +0 -14
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/scroll-to-anchor-IPXV32A6.mjs.map +0 -7
- package/dist/lib/browser/set-view-mode-2QWB24RR.mjs +0 -26
- package/dist/lib/browser/set-view-mode-2QWB24RR.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -16
- package/dist/lib/browser/update-HZNVYBMO.mjs.map +0 -7
- package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs +0 -33
- package/dist/lib/node-esm/MarkdownSettings-QMPISOEU.mjs.map +0 -7
- package/dist/lib/node-esm/blueprints/index.mjs +0 -52
- package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3OPDJJJH.mjs +0 -122
- package/dist/lib/node-esm/chunk-3OPDJJJH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-JUGS6RKO.mjs +0 -159
- package/dist/lib/node-esm/chunk-JUGS6RKO.mjs.map +0 -7
- package/dist/lib/node-esm/cli/index.mjs +0 -40
- package/dist/lib/node-esm/cli/index.mjs.map +0 -7
- package/dist/lib/node-esm/create-SMQAIM3V.mjs +0 -31
- package/dist/lib/node-esm/create-SMQAIM3V.mjs.map +0 -7
- package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs +0 -23
- package/dist/lib/node-esm/create-markdown-X2OASYKG.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -633
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/open-SRWLLOKE.mjs +0 -22
- package/dist/lib/node-esm/open-SRWLLOKE.mjs.map +0 -7
- package/dist/lib/node-esm/operations/index.mjs +0 -15
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs +0 -50
- package/dist/lib/node-esm/scroll-to-anchor-M76GXKYQ.mjs.map +0 -7
- package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs +0 -27
- package/dist/lib/node-esm/set-view-mode-6BB6KIDS.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -17
- package/dist/lib/node-esm/update-4CELTLXK.mjs +0 -46
- package/dist/lib/node-esm/update-4CELTLXK.mjs.map +0 -7
- package/dist/types/src/capabilities/artifact-definition.d.ts +0 -5
- package/dist/types/src/capabilities/artifact-definition.d.ts.map +0 -1
- package/dist/types/src/cli/index.d.ts +0 -2
- package/dist/types/src/cli/index.d.ts.map +0 -1
- package/dist/types/src/cli/plugin.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts +0 -77
- package/dist/types/src/containers/MarkdownContainer/MarkdownContainer.stories.d.ts.map +0 -1
- package/dist/types/src/containers/MarkdownContainer/index.d.ts +0 -3
- package/dist/types/src/containers/MarkdownContainer/index.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/operations/update.d.ts +0 -5
- package/dist/types/src/operations/update.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -33
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/dist/types/src/types/events.d.ts +0 -5
- package/dist/types/src/types/events.d.ts.map +0 -1
- package/src/capabilities/artifact-definition.ts +0 -110
- package/src/cli/index.ts +0 -5
- package/src/cli/plugin.ts +0 -39
- package/src/containers/MarkdownContainer/index.ts +0 -6
- package/src/types/capabilities.ts +0 -50
- package/src/types/events.ts +0 -14
- /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
- /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// src/util.tsx
|
|
2
|
+
import { debounce } from "@dxos/async";
|
|
3
|
+
import { Obj } from "@dxos/echo";
|
|
4
|
+
import { Markdown } from "#types";
|
|
5
|
+
var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
|
|
6
|
+
var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
|
|
7
|
+
var nonTitleChars = /[^\w ]/g;
|
|
8
|
+
var skipPatterns = [
|
|
9
|
+
/^!\[/,
|
|
10
|
+
/^---\s*$/,
|
|
11
|
+
/^```/,
|
|
12
|
+
/^\s*$/
|
|
13
|
+
];
|
|
14
|
+
var titlePatterns = [
|
|
15
|
+
/^#{1,6}\s+(.+)/
|
|
16
|
+
];
|
|
17
|
+
var getFallbackName = (content = "") => {
|
|
18
|
+
const len = content.length;
|
|
19
|
+
let i = 0;
|
|
20
|
+
while (i < len) {
|
|
21
|
+
let lineEnd = i;
|
|
22
|
+
while (lineEnd < len && content[lineEnd] !== "\n") {
|
|
23
|
+
lineEnd++;
|
|
24
|
+
}
|
|
25
|
+
const line = content.slice(i, lineEnd).trim();
|
|
26
|
+
i = lineEnd + 1;
|
|
27
|
+
if (skipPatterns.some((pattern) => pattern.test(line))) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
for (const pattern of titlePatterns) {
|
|
31
|
+
const match = pattern.exec(line);
|
|
32
|
+
if (match) {
|
|
33
|
+
const text2 = match[1].replaceAll(nonTitleChars, "").trim();
|
|
34
|
+
if (text2.length > 0) {
|
|
35
|
+
return text2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const maxLen = 32;
|
|
40
|
+
const text = line.replaceAll(nonTitleChars, "").trim();
|
|
41
|
+
if (text.length > 0) {
|
|
42
|
+
if (text.length > maxLen) {
|
|
43
|
+
const words = text.split(/\s+/);
|
|
44
|
+
let result = "";
|
|
45
|
+
for (const word of words) {
|
|
46
|
+
const next = result.length === 0 ? word : result + " " + word;
|
|
47
|
+
if (next.length > maxLen) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
result = next;
|
|
51
|
+
}
|
|
52
|
+
return result + "\u2026";
|
|
53
|
+
}
|
|
54
|
+
return text;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return "";
|
|
58
|
+
};
|
|
59
|
+
var getContentSnippet = (content = "", maxLines = 3) => {
|
|
60
|
+
const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
|
|
61
|
+
return abstract.slice(0, maxLines).join("\n") ?? "";
|
|
62
|
+
};
|
|
63
|
+
var setFallbackName = debounce((doc, content = "") => {
|
|
64
|
+
const name = getFallbackName(content);
|
|
65
|
+
if (doc.fallbackName !== name) {
|
|
66
|
+
Obj.update(doc, (doc2) => {
|
|
67
|
+
doc2.fallbackName = name;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}, 200);
|
|
71
|
+
var serializer = {
|
|
72
|
+
serialize: async ({ object }) => {
|
|
73
|
+
const { content } = await object.content.load();
|
|
74
|
+
return JSON.stringify({
|
|
75
|
+
name: object.name,
|
|
76
|
+
fallbackName: object.fallbackName,
|
|
77
|
+
content
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
deserialize: async ({ content: serialized }) => {
|
|
81
|
+
const { name, fallbackName, content } = JSON.parse(serialized);
|
|
82
|
+
return Markdown.make({
|
|
83
|
+
name,
|
|
84
|
+
fallbackName,
|
|
85
|
+
content
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export {
|
|
91
|
+
isEditorModel,
|
|
92
|
+
isMarkdownProperties,
|
|
93
|
+
getFallbackName,
|
|
94
|
+
getContentSnippet,
|
|
95
|
+
setFallbackName,
|
|
96
|
+
serializer
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=chunk-KDN4GKG2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.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';\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.update(doc, (doc) => {\n doc.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"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,gBAAgB;AACzB,SAASC,WAAW;AAGpB,SAASC,gBAAgB;AAOlB,IAAMC,gBAAgB,CAACC,SAC5BA,QACA,OAAOA,SAAS,YAChB,QAAQA,QACR,OAAOA,KAAKC,OAAO,YACnB,UAAUD,QACV,OAAOA,KAAKE,SAAS;AAIhB,IAAMC,uBAAuB,CAACH,SAClCH,IAAIO,SAASJ,IAAAA,IACV,OACAA,QAAQ,OAAOA,SAAS,WACtB,WAAWA,QAAQ,OAAOA,KAAKK,UAAU,WACzC;AAER,IAAMC,gBAAgB;AAGtB,IAAMC,eAAe;EACnB;EACA;EACA;EACA;;AAIF,IAAMC,gBAAgB;EACpB;;AAMK,IAAMC,kBAAkB,CAACC,UAAU,OAAE;AAC1C,QAAMC,MAAMD,QAAQE;AAEpB,MAAIC,IAAI;AACR,SAAOA,IAAIF,KAAK;AAEd,QAAIG,UAAUD;AACd,WAAOC,UAAUH,OAAOD,QAAQI,OAAAA,MAAa,MAAM;AACjDA;IACF;AAEA,UAAMC,OAAOL,QAAQM,MAAMH,GAAGC,OAAAA,EAASG,KAAI;AAC3CJ,QAAIC,UAAU;AAGd,QAAIP,aAAaW,KAAK,CAACC,YAAYA,QAAQC,KAAKL,IAAAA,CAAAA,GAAQ;AACtD;IACF;AAGA,eAAWI,WAAWX,eAAe;AACnC,YAAMa,QAAQF,QAAQG,KAAKP,IAAAA;AAC3B,UAAIM,OAAO;AACT,cAAMnB,QAAOmB,MAAM,CAAA,EAAGE,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACxD,YAAIf,MAAKU,SAAS,GAAG;AACnB,iBAAOV;QACT;MACF;IACF;AAGA,UAAMsB,SAAS;AACf,UAAMtB,OAAOa,KAAKQ,WAAWjB,eAAe,EAAA,EAAIW,KAAI;AACpD,QAAIf,KAAKU,SAAS,GAAG;AACnB,UAAIV,KAAKU,SAASY,QAAQ;AACxB,cAAMC,QAAQvB,KAAKwB,MAAM,KAAA;AACzB,YAAIC,SAAS;AACb,mBAAWC,QAAQH,OAAO;AACxB,gBAAMI,OAAOF,OAAOf,WAAW,IAAIgB,OAAOD,SAAS,MAAMC;AACzD,cAAIC,KAAKjB,SAASY,QAAQ;AACxB;UACF;AACAG,mBAASE;QACX;AAEA,eAAOF,SAAS;MAClB;AAEA,aAAOzB;IACT;EACF;AAEA,SAAO;AACT;AAGO,IAAM4B,oBAAoB,CAACpB,UAAU,IAAIqB,WAAW,MAAC;AAC1D,QAAMC,WAAWtB,QACdgB,MAAM,IAAA,EACNO,OAAO,CAAClB,SAAS,CAACA,KAAKmB,WAAW,GAAA,CAAA,EAClCD,OAAO,CAAClB,SAASA,KAAKE,KAAI,MAAO,EAAA;AAEpC,SAAOe,SAAShB,MAAM,GAAGe,QAAAA,EAAUI,KAAK,IAAA,KAAS;AACnD;AAEO,IAAMC,kBAAkBxC,SAAS,CAACyC,KAAwB3B,UAAU,OAAE;AAC3E,QAAM4B,OAAO7B,gBAAgBC,OAAAA;AAC7B,MAAI2B,IAAIE,iBAAiBD,MAAM;AAC7BzC,QAAI2C,OAAOH,KAAK,CAACA,SAAAA;AACfA,MAAAA,KAAIE,eAAeD;IACrB,CAAA;EACF;AACF,GAAG,GAAA;AAEI,IAAMG,aAAuD;EAClEC,WAAW,OAAO,EAAEC,OAAM,MAAE;AAC1B,UAAM,EAAEjC,QAAO,IAAK,MAAMiC,OAAOjC,QAAQkC,KAAI;AAC7C,WAAOC,KAAKC,UAAU;MAAER,MAAMK,OAAOL;MAAMC,cAAcI,OAAOJ;MAAc7B;IAAQ,CAAA;EACxF;EAEAqC,aAAa,OAAO,EAAErC,SAASsC,WAAU,MAAE;AACzC,UAAM,EAAEV,MAAMC,cAAc7B,QAAO,IAAKmC,KAAKI,MAAMD,UAAAA;AACnD,WAAOlD,SAASoD,KAAK;MAAEZ;MAAMC;MAAc7B;IAAQ,CAAA;EACrD;AACF;",
|
|
6
|
+
"names": ["debounce", "Obj", "Markdown", "isEditorModel", "data", "id", "text", "isMarkdownProperties", "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", "doc", "name", "fallbackName", "update", "serializer", "serialize", "object", "load", "JSON", "stringify", "deserialize", "serialized", "parse", "make"]
|
|
7
|
+
}
|
|
@@ -1,24 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Create,
|
|
3
|
-
Open,
|
|
4
|
-
Update
|
|
5
|
-
} from "../chunk-QFPZONKP.mjs";
|
|
6
|
-
import "../chunk-4KOZEH2H.mjs";
|
|
7
|
-
import "../chunk-J5LGTIGS.mjs";
|
|
8
|
-
|
|
9
1
|
// src/blueprints/markdown-blueprint.ts
|
|
10
|
-
import { Blueprint, Template } from "@dxos/
|
|
2
|
+
import { Blueprint, Template } from "@dxos/compute";
|
|
11
3
|
import { trim } from "@dxos/util";
|
|
12
|
-
|
|
4
|
+
import { Markdown, MarkdownOperation } from "#types";
|
|
13
5
|
var make = () => Blueprint.make({
|
|
14
|
-
key: BLUEPRINT_KEY,
|
|
6
|
+
key: Markdown.BLUEPRINT_KEY,
|
|
15
7
|
name: "Markdown",
|
|
16
8
|
description: "Work with markdown documents. Preferred over raw database operations.",
|
|
17
9
|
tools: Blueprint.toolDefinitions({
|
|
18
10
|
operations: [
|
|
19
|
-
Create,
|
|
20
|
-
Open,
|
|
21
|
-
Update
|
|
11
|
+
MarkdownOperation.Create,
|
|
12
|
+
MarkdownOperation.Open,
|
|
13
|
+
MarkdownOperation.Update
|
|
22
14
|
]
|
|
23
15
|
}),
|
|
24
16
|
instructions: Template.make({
|
|
@@ -41,11 +33,12 @@ var make = () => Blueprint.make({
|
|
|
41
33
|
})
|
|
42
34
|
});
|
|
43
35
|
var blueprint = {
|
|
44
|
-
key: BLUEPRINT_KEY,
|
|
36
|
+
key: Markdown.BLUEPRINT_KEY,
|
|
45
37
|
make
|
|
46
38
|
};
|
|
47
39
|
var markdown_blueprint_default = blueprint;
|
|
40
|
+
|
|
48
41
|
export {
|
|
49
|
-
markdown_blueprint_default
|
|
42
|
+
markdown_blueprint_default
|
|
50
43
|
};
|
|
51
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=chunk-LXNSKCPD.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 { Blueprint, Template } from '@dxos/compute';\nimport { trim } from '@dxos/util';\n\nimport { Markdown, MarkdownOperation } from '#types';\n\nconst make = () =>\n Blueprint.make({\n key: Markdown.BLUEPRINT_KEY,\n name: 'Markdown',\n description: 'Work with markdown documents. Preferred over raw database operations.',\n tools: Blueprint.toolDefinitions({\n operations: [MarkdownOperation.Create, MarkdownOperation.Open, MarkdownOperation.Update],\n }),\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: Blueprint.Definition = {\n key: Markdown.BLUEPRINT_KEY,\n make,\n};\n\nexport default blueprint;\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,WAAWC,gBAAgB;AACpC,SAASC,YAAY;AAErB,SAASC,UAAUC,yBAAyB;AAE5C,IAAMC,OAAO,MACXL,UAAUK,KAAK;EACbC,KAAKH,SAASI;EACdC,MAAM;EACNC,aAAa;EACbC,OAAOV,UAAUW,gBAAgB;IAC/BC,YAAY;MAACR,kBAAkBS;MAAQT,kBAAkBU;MAAMV,kBAAkBW;;EACnF,CAAA;EACAC,cAAcf,SAASI,KAAK;;IAE1BY,QAAQf;;;;;;;;UAQJ,KAAA;;;;;UAKA,KAAA;;EAEN,CAAA;AACF,CAAA;AAEF,IAAMgB,YAAkC;EACtCZ,KAAKH,SAASI;EACdF;AACF;AAEA,IAAA,6BAAea;",
|
|
6
|
+
"names": ["Blueprint", "Template", "trim", "Markdown", "MarkdownOperation", "make", "key", "BLUEPRINT_KEY", "name", "description", "tools", "toolDefinitions", "operations", "Create", "Open", "Update", "instructions", "source", "blueprint"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/comment-config.ts
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { Capability } from "@dxos/app-framework";
|
|
6
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
7
|
+
import { Type } from "@dxos/echo";
|
|
8
|
+
import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
|
|
9
|
+
import { MarkdownOperation } from "#types";
|
|
10
|
+
import { Markdown } from "#types";
|
|
11
|
+
var comment_config_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
12
|
+
const config = {
|
|
13
|
+
id: Type.getTypename(Markdown.Document),
|
|
14
|
+
comments: "anchored",
|
|
15
|
+
selectionMode: "multi-range",
|
|
16
|
+
getAnchorLabel: (doc, anchor) => {
|
|
17
|
+
if (doc.content) {
|
|
18
|
+
const [start, end] = anchor.split(":");
|
|
19
|
+
return getTextInRange(createDocAccessor(doc.content.target, [
|
|
20
|
+
"content"
|
|
21
|
+
]), start, end);
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
scrollToAnchor: MarkdownOperation.ScrollToAnchor
|
|
25
|
+
};
|
|
26
|
+
return Capability.contributes(AppCapabilities.CommentConfig, config);
|
|
27
|
+
}));
|
|
28
|
+
export {
|
|
29
|
+
comment_config_default as default
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=comment-config-ZEA66BUR.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/comment-config.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n// eslint-disable-next-line unused-imports/no-unused-imports\nimport type { Operation } from '@dxos/compute';\nimport { Type } from '@dxos/echo';\nimport { createDocAccessor, getTextInRange } from '@dxos/echo-db';\n\nimport { MarkdownOperation } from '#types';\nimport { Markdown } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const config: AppCapabilities.CommentConfig = {\n id: Type.getTypename(Markdown.Document),\n comments: 'anchored',\n selectionMode: 'multi-range',\n getAnchorLabel: (doc: Markdown.Document, anchor: string): string | undefined => {\n if (doc.content) {\n const [start, end] = anchor.split(':');\n return getTextInRange(createDocAccessor(doc.content.target!, ['content']), start, end);\n }\n },\n scrollToAnchor: MarkdownOperation.ScrollToAnchor,\n };\n return Capability.contributes(AppCapabilities.CommentConfig, config);\n }),\n);\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAGhC,SAASC,YAAY;AACrB,SAASC,mBAAmBC,sBAAsB;AAElD,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AAEzB,IAAA,yBAAeN,WAAWO,WACjBC,kBAAW,aAAA;AAChB,QAAMC,SAAwC;IAC5CC,IAAIR,KAAKS,YAAYL,SAASM,QAAQ;IACtCC,UAAU;IACVC,eAAe;IACfC,gBAAgB,CAACC,KAAwBC,WAAAA;AACvC,UAAID,IAAIE,SAAS;AACf,cAAM,CAACC,OAAOC,GAAAA,IAAOH,OAAOI,MAAM,GAAA;AAClC,eAAOjB,eAAeD,kBAAkBa,IAAIE,QAAQI,QAAS;UAAC;SAAU,GAAGH,OAAOC,GAAAA;MACpF;IACF;IACAG,gBAAgBlB,kBAAkBmB;EACpC;AACA,SAAOxB,WAAWyB,YAAYxB,gBAAgByB,eAAejB,MAAAA;AAC/D,CAAA,CAAA;",
|
|
6
|
+
"names": ["Effect", "Capability", "AppCapabilities", "Type", "createDocAccessor", "getTextInRange", "MarkdownOperation", "Markdown", "makeModule", "fnUntraced", "config", "id", "getTypename", "Document", "comments", "selectionMode", "getAnchorLabel", "doc", "anchor", "content", "start", "end", "split", "target", "scrollToAnchor", "ScrollToAnchor", "contributes", "CommentConfig"]
|
|
7
|
+
}
|
|
@@ -1,253 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
MarkdownCapabilities,
|
|
3
|
-
MarkdownEvents,
|
|
4
|
-
MarkdownStateSchema,
|
|
5
|
-
Markdown_exports,
|
|
6
|
-
Settings_exports
|
|
7
|
-
} from "./chunk-4KOZEH2H.mjs";
|
|
8
|
-
import "./chunk-J5LGTIGS.mjs";
|
|
9
|
-
|
|
10
|
-
// src/meta.ts
|
|
11
|
-
import { trim } from "@dxos/util";
|
|
12
|
-
var meta = {
|
|
13
|
-
id: "org.dxos.plugin.markdown",
|
|
14
|
-
name: "Markdown",
|
|
15
|
-
description: trim`
|
|
16
|
-
Full-featured collaborative markdown editor with real-time editing, inline comments, and rich formatting.
|
|
17
|
-
Supports AI-powered editing assistance and seamlessly integrates with other workspace objects.
|
|
18
|
-
`,
|
|
19
|
-
icon: "ph--text-aa--regular",
|
|
20
|
-
iconHue: "indigo",
|
|
21
|
-
source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-markdown",
|
|
22
|
-
screenshots: [
|
|
23
|
-
"https://dxos.network/plugin-details-markdown-dark.png"
|
|
24
|
-
]
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
// src/util.tsx
|
|
28
|
-
import { debounce } from "@dxos/async";
|
|
29
|
-
import { Obj } from "@dxos/echo";
|
|
30
|
-
import { Markdown } from "#types";
|
|
31
|
-
var isEditorModel = (data) => data && typeof data === "object" && "id" in data && typeof data.id === "string" && "text" in data && typeof data.text === "string";
|
|
32
|
-
var isMarkdownProperties = (data) => Obj.isObject(data) ? true : data && typeof data === "object" ? "title" in data && typeof data.title === "string" : false;
|
|
33
|
-
var nonTitleChars = /[^\w ]/g;
|
|
34
|
-
var skipPatterns = [
|
|
35
|
-
/^!\[/,
|
|
36
|
-
/^---\s*$/,
|
|
37
|
-
/^```/,
|
|
38
|
-
/^\s*$/
|
|
39
|
-
];
|
|
40
|
-
var titlePatterns = [
|
|
41
|
-
/^#{1,6}\s+(.+)/
|
|
42
|
-
];
|
|
43
|
-
var getFallbackName = (content = "") => {
|
|
44
|
-
const len = content.length;
|
|
45
|
-
let i = 0;
|
|
46
|
-
while (i < len) {
|
|
47
|
-
let lineEnd = i;
|
|
48
|
-
while (lineEnd < len && content[lineEnd] !== "\n") {
|
|
49
|
-
lineEnd++;
|
|
50
|
-
}
|
|
51
|
-
const line = content.slice(i, lineEnd).trim();
|
|
52
|
-
i = lineEnd + 1;
|
|
53
|
-
if (skipPatterns.some((pattern) => pattern.test(line))) {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
for (const pattern of titlePatterns) {
|
|
57
|
-
const match = pattern.exec(line);
|
|
58
|
-
if (match) {
|
|
59
|
-
const text2 = match[1].replaceAll(nonTitleChars, "").trim();
|
|
60
|
-
if (text2.length > 0) {
|
|
61
|
-
return text2;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
const maxLen = 32;
|
|
66
|
-
const text = line.replaceAll(nonTitleChars, "").trim();
|
|
67
|
-
if (text.length > 0) {
|
|
68
|
-
if (text.length > maxLen) {
|
|
69
|
-
const words = text.split(/\s+/);
|
|
70
|
-
let result = "";
|
|
71
|
-
for (const word of words) {
|
|
72
|
-
const next = result.length === 0 ? word : result + " " + word;
|
|
73
|
-
if (next.length > maxLen) {
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
result = next;
|
|
77
|
-
}
|
|
78
|
-
return result + "\u2026";
|
|
79
|
-
}
|
|
80
|
-
return text;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return "";
|
|
84
|
-
};
|
|
85
|
-
var getContentSnippet = (content = "", maxLines = 3) => {
|
|
86
|
-
const abstract = content.split("\n").filter((line) => !line.startsWith("!")).filter((line) => line.trim() !== "");
|
|
87
|
-
return abstract.slice(0, maxLines).join("\n") ?? "";
|
|
88
|
-
};
|
|
89
|
-
var setFallbackName = debounce((doc, content = "") => {
|
|
90
|
-
const name = getFallbackName(content);
|
|
91
|
-
if (doc.fallbackName !== name) {
|
|
92
|
-
Obj.change(doc, (doc2) => {
|
|
93
|
-
doc2.fallbackName = name;
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}, 200);
|
|
97
|
-
var serializer = {
|
|
98
|
-
serialize: async ({ object }) => {
|
|
99
|
-
const { content } = await object.content.load();
|
|
100
|
-
return JSON.stringify({
|
|
101
|
-
name: object.name,
|
|
102
|
-
fallbackName: object.fallbackName,
|
|
103
|
-
content
|
|
104
|
-
});
|
|
105
|
-
},
|
|
106
|
-
deserialize: async ({ content: serialized }) => {
|
|
107
|
-
const { name, fallbackName, content } = JSON.parse(serialized);
|
|
108
|
-
return Markdown.make({
|
|
109
|
-
name,
|
|
110
|
-
fallbackName,
|
|
111
|
-
content
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
// src/MarkdownPlugin.tsx
|
|
117
|
-
import * as Effect from "effect/Effect";
|
|
118
|
-
import * as Option from "effect/Option";
|
|
119
|
-
import { Plugin } from "@dxos/app-framework";
|
|
120
|
-
import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
|
|
121
|
-
import { Annotation, Ref } from "@dxos/echo";
|
|
122
|
-
import { createDocAccessor, getTextInRange } from "@dxos/echo-db";
|
|
123
|
-
import { Operation } from "@dxos/operation";
|
|
124
|
-
import { SpaceOperation } from "@dxos/plugin-space/operations";
|
|
125
|
-
import { translations as editorTranslations2 } from "@dxos/react-ui-editor";
|
|
126
|
-
import { Text } from "@dxos/schema";
|
|
127
|
-
import { MarkdownBlueprint } from "#blueprints";
|
|
128
|
-
import { AnchorSort, AppGraphSerializer, BlueprintDefinition, MarkdownSettings, MarkdownState, OperationHandler, ReactSurface } from "#capabilities";
|
|
129
|
-
import { meta as meta3 } from "#meta";
|
|
130
|
-
import { MarkdownOperation } from "#operations";
|
|
131
|
-
import { Markdown as Markdown3, MarkdownEvents as MarkdownEvents2 } from "#types";
|
|
132
|
-
|
|
133
|
-
// src/translations.ts
|
|
134
|
-
import { translations as editorTranslations } from "@dxos/react-ui-editor";
|
|
135
|
-
import { meta as meta2 } from "#meta";
|
|
136
|
-
import { Markdown as Markdown2 } from "#types";
|
|
137
|
-
var translations = [
|
|
138
|
-
{
|
|
139
|
-
"en-US": {
|
|
140
|
-
[Markdown2.Document.typename]: {
|
|
141
|
-
"typename.label": "Document",
|
|
142
|
-
"typename.label_zero": "Documents",
|
|
143
|
-
"typename.label_one": "Document",
|
|
144
|
-
"typename.label_other": "Documents",
|
|
145
|
-
"object-name.placeholder": "New document",
|
|
146
|
-
"add-object.label": "Add document",
|
|
147
|
-
"rename-object.label": "Rename document",
|
|
148
|
-
"delete-object.label": "Delete document",
|
|
149
|
-
"object-deleted.label": "Document deleted"
|
|
150
|
-
},
|
|
151
|
-
[meta2.id]: {
|
|
152
|
-
"plugin.name": "Editor",
|
|
153
|
-
"choose-markdown-from-space-dialog.title": "Choose one or more documents to add",
|
|
154
|
-
"empty-choose-markdown-from-space.message": "None available; try creating a new one instead?",
|
|
155
|
-
"chooser-done.label": "Add selected",
|
|
156
|
-
"editor.placeholder": "Start typing\u2026",
|
|
157
|
-
"toggle-view-mode.label": "Toggle read-only",
|
|
158
|
-
"upload-image.label": "Upload image",
|
|
159
|
-
"fallback.title": "Untitled",
|
|
160
|
-
"navigate-to-document.label": "Open document",
|
|
161
|
-
"words.label": "words",
|
|
162
|
-
"words.label_zero": "words",
|
|
163
|
-
"words.label_one": "word",
|
|
164
|
-
"words.label_other": "words"
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
...editorTranslations
|
|
169
|
-
];
|
|
170
|
-
|
|
171
|
-
// src/MarkdownPlugin.tsx
|
|
172
|
-
var MarkdownPlugin = Plugin.define(meta3).pipe(AppPlugin.addBlueprintDefinitionModule({
|
|
173
|
-
activate: BlueprintDefinition
|
|
174
|
-
}), AppPlugin.addMetadataModule({
|
|
175
|
-
metadata: {
|
|
176
|
-
id: Markdown3.Document.typename,
|
|
177
|
-
metadata: {
|
|
178
|
-
// TODO(dmaretskyi): Remove label, icon and iconHue and query them of schema.
|
|
179
|
-
label: (object) => object.name || object.fallbackName,
|
|
180
|
-
icon: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).icon,
|
|
181
|
-
iconHue: Annotation.IconAnnotation.get(Markdown3.Document).pipe(Option.getOrThrow).hue ?? "white",
|
|
182
|
-
blueprints: [
|
|
183
|
-
MarkdownBlueprint.key
|
|
184
|
-
],
|
|
185
|
-
graphProps: {
|
|
186
|
-
managesAutofocus: true
|
|
187
|
-
},
|
|
188
|
-
// TODO(wittjosiah): Move out of metadata.
|
|
189
|
-
loadReferences: async (doc) => await Ref.Array.loadAll([
|
|
190
|
-
doc.content
|
|
191
|
-
]),
|
|
192
|
-
serializer,
|
|
193
|
-
// TODO(wittjosiah): Consider how to do generic comments without these.
|
|
194
|
-
comments: "anchored",
|
|
195
|
-
selectionMode: "multi-range",
|
|
196
|
-
getAnchorLabel: (doc, anchor) => {
|
|
197
|
-
if (doc.content) {
|
|
198
|
-
const [start, end] = anchor.split(":");
|
|
199
|
-
return getTextInRange(createDocAccessor(doc.content.target, [
|
|
200
|
-
"content"
|
|
201
|
-
]), start, end);
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
createObject: (props, options) => Effect.gen(function* () {
|
|
205
|
-
const object = Markdown3.make(props);
|
|
206
|
-
return yield* Operation.invoke(SpaceOperation.AddObject, {
|
|
207
|
-
object,
|
|
208
|
-
target: options.target,
|
|
209
|
-
hidden: true,
|
|
210
|
-
targetNodeId: options.targetNodeId
|
|
211
|
-
});
|
|
212
|
-
}),
|
|
213
|
-
scrollToAnchor: MarkdownOperation.ScrollToAnchor
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}), AppPlugin.addOperationHandlerModule({
|
|
217
|
-
activate: OperationHandler
|
|
218
|
-
}), AppPlugin.addSchemaModule({
|
|
219
|
-
schema: [
|
|
220
|
-
Markdown3.Document,
|
|
221
|
-
Text.Text
|
|
222
|
-
]
|
|
223
|
-
}), AppPlugin.addSurfaceModule({
|
|
224
|
-
activate: ReactSurface,
|
|
225
|
-
firesBeforeActivation: [
|
|
226
|
-
MarkdownEvents2.SetupExtensions
|
|
227
|
-
]
|
|
228
|
-
}), AppPlugin.addTranslationsModule({
|
|
229
|
-
translations: [
|
|
230
|
-
...translations,
|
|
231
|
-
...editorTranslations2
|
|
232
|
-
]
|
|
233
|
-
}), Plugin.addModule({
|
|
234
|
-
activatesOn: AppActivationEvents.SetupSettings,
|
|
235
|
-
activate: MarkdownSettings
|
|
236
|
-
}), Plugin.addModule({
|
|
237
|
-
id: "state",
|
|
238
|
-
// TODO(wittjosiah): Does not integrate with settings store.
|
|
239
|
-
// Should this be a different event?
|
|
240
|
-
// Should settings store be renamed to be more generic?
|
|
241
|
-
activatesOn: AppActivationEvents.SetupSettings,
|
|
242
|
-
activate: MarkdownState
|
|
243
|
-
}), Plugin.addModule({
|
|
244
|
-
activatesOn: AppActivationEvents.AppGraphReady,
|
|
245
|
-
activate: AppGraphSerializer
|
|
246
|
-
}), Plugin.addModule({
|
|
247
|
-
// TODO(wittjosiah): More relevant event?
|
|
248
|
-
activatesOn: AppActivationEvents.AppGraphReady,
|
|
249
|
-
activate: AnchorSort
|
|
250
|
-
}), Plugin.make);
|
|
1
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
251
2
|
|
|
252
3
|
// src/components/index.ts
|
|
253
4
|
import { lazy } from "react";
|
|
@@ -258,11 +9,11 @@ import React4, { useCallback as useCallback3, useMemo as useMemo2, useState as u
|
|
|
258
9
|
import { createPortal as createPortal2 } from "react-dom";
|
|
259
10
|
import { Surface } from "@dxos/app-framework/ui";
|
|
260
11
|
import { AppSurface } from "@dxos/app-toolkit/ui";
|
|
261
|
-
import { Obj
|
|
262
|
-
import {
|
|
12
|
+
import { Obj } from "@dxos/echo";
|
|
13
|
+
import { URI } from "@dxos/keys";
|
|
263
14
|
import { useClient } from "@dxos/react-client";
|
|
15
|
+
import { composable as composable2, composableProps as composableProps2 } from "@dxos/react-ui";
|
|
264
16
|
import { createEditorController, useEditorContext } from "@dxos/react-ui-editor";
|
|
265
|
-
import { composable as composable2, composableProps as composableProps2 } from "@dxos/ui-theme";
|
|
266
17
|
import { isNonNullable } from "@dxos/util";
|
|
267
18
|
import { useEditorMenuOptions, useExtensions } from "#hooks";
|
|
268
19
|
|
|
@@ -272,13 +23,13 @@ import React, { forwardRef, useCallback, useContext, useEffect, useImperativeHan
|
|
|
272
23
|
import { useCapabilities } from "@dxos/app-framework/ui";
|
|
273
24
|
import { useThemeContext, useTranslation } from "@dxos/react-ui";
|
|
274
25
|
import { useTextEditor } from "@dxos/react-ui-editor";
|
|
275
|
-
import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames } from "@dxos/ui-editor";
|
|
26
|
+
import { mobileSlots, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, dropFile, documentSlots, formattingListener, processEditorPayload, editorClassNames, scrollbarAutohide } from "@dxos/ui-editor";
|
|
276
27
|
import { mx } from "@dxos/ui-theme";
|
|
277
28
|
import { isTruthy } from "@dxos/util";
|
|
278
|
-
import { meta
|
|
279
|
-
import { MarkdownCapabilities
|
|
29
|
+
import { meta } from "#meta";
|
|
30
|
+
import { MarkdownCapabilities } from "#types";
|
|
280
31
|
var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attendableId, role, compact, viewMode, initialValue, editorStateStore, toolbarState, extensions, slots, onFileUpload }, forwardedRef) => {
|
|
281
|
-
const { t } = useTranslation(
|
|
32
|
+
const { t } = useTranslation(meta.id);
|
|
282
33
|
const { themeMode } = useThemeContext();
|
|
283
34
|
const registry = useContext(RegistryContext);
|
|
284
35
|
const updateToolbarState = useCallback((formatting) => {
|
|
@@ -316,6 +67,7 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
|
|
|
316
67
|
syntaxHighlighting: true
|
|
317
68
|
}),
|
|
318
69
|
createMarkdownExtensions(),
|
|
70
|
+
scrollbarAutohide(),
|
|
319
71
|
toolbarState && formattingListener(updateToolbarState),
|
|
320
72
|
role !== "section" && onFileUpload && dropFile({
|
|
321
73
|
// TODO(wittjosiah): Factor out to file uploader plugin.
|
|
@@ -336,12 +88,13 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
|
|
|
336
88
|
id,
|
|
337
89
|
viewMode,
|
|
338
90
|
themeMode,
|
|
339
|
-
extensions
|
|
91
|
+
extensions,
|
|
92
|
+
compact
|
|
340
93
|
]);
|
|
341
94
|
useImperativeHandle(forwardedRef, () => editorView, [
|
|
342
95
|
editorView
|
|
343
96
|
]);
|
|
344
|
-
const [editorViewRegistry] = useCapabilities(
|
|
97
|
+
const [editorViewRegistry] = useCapabilities(MarkdownCapabilities.EditorViews);
|
|
345
98
|
useEffect(() => {
|
|
346
99
|
if (editorView && editorViewRegistry) {
|
|
347
100
|
editorViewRegistry.register(attendableId ?? id, editorView, id);
|
|
@@ -357,7 +110,6 @@ var MarkdownEditorContent = /* @__PURE__ */ forwardRef(({ classNames, id, attend
|
|
|
357
110
|
return /* @__PURE__ */ React.createElement("div", {
|
|
358
111
|
...focusAttributes,
|
|
359
112
|
className: mx(editorClassNames(role), classNames),
|
|
360
|
-
role: "none",
|
|
361
113
|
"data-testid": "composer.markdownRoot",
|
|
362
114
|
"data-popover-collision-boundary": true,
|
|
363
115
|
ref: parentRef
|
|
@@ -376,8 +128,8 @@ var useTest = (view) => {
|
|
|
376
128
|
|
|
377
129
|
// src/components/MarkdownEditor/MarkdownEditorToolbar.tsx
|
|
378
130
|
import React3, { useCallback as useCallback2, useState } from "react";
|
|
131
|
+
import { composable, composableProps } from "@dxos/react-ui";
|
|
379
132
|
import { Editor } from "@dxos/react-ui-editor";
|
|
380
|
-
import { composable, composableProps } from "@dxos/ui-theme";
|
|
381
133
|
|
|
382
134
|
// src/components/MarkdownEditor/FileUpload.tsx
|
|
383
135
|
import React2, { forwardRef as forwardRef2, useEffect as useEffect2, useImperativeHandle as useImperativeHandle2 } from "react";
|
|
@@ -445,7 +197,6 @@ var MarkdownEditorToolbar = composable(({ id, role, editorView, customActions, o
|
|
|
445
197
|
});
|
|
446
198
|
}
|
|
447
199
|
return /* @__PURE__ */ React3.createElement("div", {
|
|
448
|
-
role: "none",
|
|
449
200
|
className: "contents",
|
|
450
201
|
ref: forwardedRef
|
|
451
202
|
}, /* @__PURE__ */ React3.createElement(Editor.Toolbar, {
|
|
@@ -469,7 +220,7 @@ var [MarkdownEditorContextProvider, useMarkdownEditorContext] = createContext("M
|
|
|
469
220
|
var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, compact, viewMode, selectionManager, editorStateStore, extensions: extensionsProp, slashCommandGroups, onLinkQuery, onSelectObject, onAction, onFileUpload, onViewModeChange }) => {
|
|
470
221
|
const [previewBlocks, setPreviewBlocks] = useState2([]);
|
|
471
222
|
const previewOptions = useMemo2(() => ({
|
|
472
|
-
db:
|
|
223
|
+
db: Obj.isObject(object) ? Obj.getDatabase(object) : void 0,
|
|
473
224
|
addBlockContainer: (block) => {
|
|
474
225
|
setPreviewBlocks((prev) => [
|
|
475
226
|
...prev,
|
|
@@ -544,8 +295,8 @@ var MarkdownEditorProvider = ({ children, id, attendableId, object, settings, co
|
|
|
544
295
|
};
|
|
545
296
|
MarkdownEditorProvider.displayName = "MarkdownEditor.Provider";
|
|
546
297
|
var MARKDOWN_EDITOR_CONTENT_NAME = "MarkdownEditor.Content";
|
|
547
|
-
var MarkdownEditorContent2 = composable2(({ ...props }, _forwardedRef) => {
|
|
548
|
-
const { id, attendableId, compact, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
298
|
+
var MarkdownEditorContent2 = composable2(({ compact: compactProp, ...props }, _forwardedRef) => {
|
|
299
|
+
const { id, attendableId, compact = compactProp, viewMode, onFileUpload } = useMarkdownEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
549
300
|
const { extensions, setController, state } = useEditorContext(MARKDOWN_EDITOR_CONTENT_NAME);
|
|
550
301
|
const handleRef = useCallback3((view) => {
|
|
551
302
|
setController(createEditorController(view));
|
|
@@ -591,7 +342,7 @@ var MarkdownEditorBlocks = (_props) => {
|
|
|
591
342
|
MarkdownEditorBlocks.displayName = MARKDOWN_EDITOR_BLOCKS_NAME;
|
|
592
343
|
var PreviewBlock = ({ el, link }) => {
|
|
593
344
|
const client = useClient();
|
|
594
|
-
const dxn =
|
|
345
|
+
const dxn = URI.make(link.dxn);
|
|
595
346
|
const subject = client.graph.makeRef(dxn).target;
|
|
596
347
|
const data = useMemo2(() => ({
|
|
597
348
|
subject
|
|
@@ -611,22 +362,10 @@ var MarkdownEditor = {
|
|
|
611
362
|
};
|
|
612
363
|
|
|
613
364
|
// src/components/index.ts
|
|
614
|
-
var
|
|
365
|
+
var MarkdownSettings = lazy(() => import("../MarkdownSettings-YCTZJL5V.mjs"));
|
|
615
366
|
export {
|
|
616
|
-
Markdown_exports as Markdown,
|
|
617
|
-
MarkdownCapabilities,
|
|
618
367
|
MarkdownEditor,
|
|
619
368
|
MarkdownEditorProvider,
|
|
620
|
-
|
|
621
|
-
MarkdownPlugin,
|
|
622
|
-
MarkdownStateSchema,
|
|
623
|
-
Settings_exports as Settings,
|
|
624
|
-
getContentSnippet,
|
|
625
|
-
getFallbackName,
|
|
626
|
-
isEditorModel,
|
|
627
|
-
isMarkdownProperties,
|
|
628
|
-
meta,
|
|
629
|
-
serializer,
|
|
630
|
-
setFallbackName
|
|
369
|
+
MarkdownSettings
|
|
631
370
|
};
|
|
632
371
|
//# sourceMappingURL=index.mjs.map
|