diff --git a/ng-app/package.json b/ng-app/package.json index 608703f..ab84487 100644 --- a/ng-app/package.json +++ b/ng-app/package.json @@ -32,6 +32,16 @@ "@lezer/highlight": "^1.0.0", "@lezer/javascript": "^1.2.0", "@lezer/lr": "^1.0.0", + "@milkdown-lab/plugin-split-editing": "^1.2.3", + "@milkdown/core": "^7.4.0", + "@milkdown/ctx": "^7.2.0", + "@milkdown/plugin-collab": "^7.4.0", + "@milkdown/plugin-slash": "^7.4.0", + "@milkdown/preset-commonmark": "^7.4.0", + "@milkdown/preset-gfm": "^7.4.0", + "@milkdown/prose": "^7.2.0", + "@milkdown/theme-nord": "^7.4.0", + "@milkdown/transformer": "^7.2.0", "@popperjs/core": "^2.11.8", "@replit/codemirror-lang-svelte": "^6.0.0", "@tauri-apps/api": "2.0.0-alpha.8", @@ -40,14 +50,17 @@ "async-proxy": "^0.4.1", "classnames": "^2.3.2", "codemirror": "^6.0.1", + "extend": "3.0.2", "flowbite": "^1.6.5", "flowbite-svelte": "^0.43.3", "html5-qrcode": "^2.3.8", + "lodash.debounce": "4.0.8", "ng-sdk-js": "workspace:^0.1.0-preview.1", "prosemirror-model": "^1.7.1", "prosemirror-state": "^1.2.3", "prosemirror-svelte": "^0.2.4", "prosemirror-view": "^1.9.10", + "style-mod": "^4.1.2", "svelte-codemirror-editor": "^1.4.0", "svelte-i18n": "^4.0.0", "svelte-inview": "^4.0.2", diff --git a/ng-app/src/apps/MilkDownEditor.svelte b/ng-app/src/apps/MilkDownEditor.svelte new file mode 100644 index 0000000..ef4c80a --- /dev/null +++ b/ng-app/src/apps/MilkDownEditor.svelte @@ -0,0 +1,147 @@ + + + + + + +
+
+
+ diff --git a/ng-app/src/apps/PostMdViewer.svelte b/ng-app/src/apps/PostMdViewer.svelte new file mode 100644 index 0000000..3e7b439 --- /dev/null +++ b/ng-app/src/apps/PostMdViewer.svelte @@ -0,0 +1,94 @@ + + + + + + +
+
+
+ diff --git a/ng-app/src/apps/ProseMirrorEditor.svelte b/ng-app/src/apps/ProseMirrorEditor.svelte index fd838ee..15ca620 100644 --- a/ng-app/src/apps/ProseMirrorEditor.svelte +++ b/ng-app/src/apps/ProseMirrorEditor.svelte @@ -42,7 +42,6 @@ let view; ydoc.on('update', async (update, origin) => { - console.log(update,origin); if (!origin.local) { try { await discrete_update(update, "YXml", commits.heads); diff --git a/ng-app/src/apps/milkdown-placeholder.ts b/ng-app/src/apps/milkdown-placeholder.ts new file mode 100644 index 0000000..297ec70 --- /dev/null +++ b/ng-app/src/apps/milkdown-placeholder.ts @@ -0,0 +1,102 @@ +/** +MIT License + +Copyright (c) 2022 Mox + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Source: https://github.com/HexMox/milkdown-plugin-placeholder + */ + +import type { MilkdownPlugin, TimerType } from '@milkdown/ctx' +import type { EditorView } from '@milkdown/prose/view' +import { createSlice, createTimer } from '@milkdown/ctx' +import { InitReady, prosePluginsCtx } from '@milkdown/core' +import { Plugin, PluginKey } from '@milkdown/prose/state' + +export const placeholderCtx = createSlice('Please input here...', 'placeholder') +export const placeholderTimerCtx = createSlice([] as TimerType[], 'editorStateTimer') + +export const PlaceholderReady = createTimer('PlaceholderReady') + +const key = new PluginKey('MILKDOWN_PLACEHOLDER') + +export const placeholder: MilkdownPlugin = (ctx) => { + ctx.inject(placeholderCtx).inject(placeholderTimerCtx, [InitReady]).record(PlaceholderReady) + + return async () => { + await ctx.waitTimers(placeholderTimerCtx) + + const prosePlugins = ctx.get(prosePluginsCtx) + + const update = (view: EditorView) => { + const placeholder = ctx.get(placeholderCtx) + const doc = view.state.doc + if ( + view.editable && + doc.childCount === 1 && + doc.firstChild?.isTextblock && + doc.firstChild?.content.size === 0 && + doc.firstChild?.type.name === 'paragraph' + ) { + view.dom.classList.add('editor_empty'); + view.dom.setAttribute('data-placeholder', placeholder); + } else { + view.dom.classList.remove('editor_empty'); + } + } + + const plugins = [ + ...prosePlugins, + new Plugin({ + key, + // props: { + // decorations(state) { + // const doc = state.doc + // if ( + // doc.childCount === 1 && + // doc.firstChild?.isTextblock && + // doc.firstChild?.content.size === 0 + // ) { + // return DecorationSet.create(doc, [ + // Decoration.widget(1, (view) => { + // if (view.editable) { + // const span = document.createElement('span') + // span.classList.add('placeholder') + // span.textContent = placeholder + // return span + // } + // }), + // ]) + // } + // }, + // }, + view(view) { + update(view) + + return { update } + }, + }), + ] + + ctx.set(prosePluginsCtx, plugins) + + ctx.done(PlaceholderReady) + } +} \ No newline at end of file diff --git a/ng-app/src/styles.css b/ng-app/src/styles.css index a73ca6d..de5428c 100644 --- a/ng-app/src/styles.css +++ b/ng-app/src/styles.css @@ -26,7 +26,31 @@ td.hljs { .splashing { display: none; } -.prosemirror-editor { + +.split-editor { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: 1fr; +} + +.split-editor:has(.milkdown-split-editor.hidden) { + grid-template-columns: repeat(1, 1fr); +} + +.milkdown-split-editor.hidden { + display: none; +} + +.ProseMirror.editor_empty::before { + position: absolute; + content: attr(data-placeholder); + pointer-events: none; + color: rgb(170, 170, 170); +} + +.prosemirror-editor, +.prosemirror-editor .milkdown, +.prosemirror-editor .milkdown .ProseMirror { height: 100%; overflow-wrap: anywhere !important; } diff --git a/ng-app/vite.config.ts b/ng-app/vite.config.ts index b779bc6..3b35fd3 100644 --- a/ng-app/vite.config.ts +++ b/ng-app/vite.config.ts @@ -14,7 +14,11 @@ export default defineConfig(async () => { optimizeDeps: { exclude: ["codemirror", "@codemirror/*", "@codemirror/language", "@codemirror/state", "@codemirror/view","@codemirror/legacy-modes/mode/sparql", "@codemirror/lang-javascript", "@codemirror/lang-rust", "@replit/codemirror-lang-svelte", "yjs", "y-codemirror.next", "svelte-codemirror-editor", - "prosemirror-svelte", "prosemirror-svelte/state", "prosemirror-svelte/helpers", "y-prosemirror", "prosemirror-state", "prosemirror-model", "prosemirror-view", "y-protocols"], + "prosemirror-svelte", "prosemirror-svelte/state", "prosemirror-svelte/helpers", "y-prosemirror", "prosemirror-state", "prosemirror-model", "prosemirror-view", "y-protocols", + "@milkdown/core", "@milkdown/ctx", "@milkdown/prose", "@milkdown/transformer", "@milkdown/preset-commonmark", "@milkdown/theme-nord", "@milkdown/plugin-collab", + "svelte-highlight", "svelte-highlight/languages/typescript", "svelte-highlight/languages/javascript", "svelte-highlight/languages/rust", "@milkdown/preset-gfm", + "@milkdown-lab/plugin-split-editing", "@milkdown/plugin-slash"], + include: ["debug","extend","highlight.js","highlight.js/lib/core","lodash.debounce"] }, worker: { format: 'es', diff --git a/package.json b/package.json index 946ad31..80d7eeb 100644 --- a/package.json +++ b/package.json @@ -14,5 +14,6 @@ "prettier-plugin-svelte": "^3.2.5" }, "dependencies": { + "style-mod": "^4.1.2" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a824fd6..3cbfc14 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,6 +47,16 @@ importers: '@lezer/highlight': ^1.0.0 '@lezer/javascript': ^1.2.0 '@lezer/lr': ^1.0.0 + '@milkdown-lab/plugin-split-editing': ^1.2.3 + '@milkdown/core': ^7.4.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/plugin-collab': ^7.4.0 + '@milkdown/plugin-slash': ^7.4.0 + '@milkdown/preset-commonmark': ^7.4.0 + '@milkdown/preset-gfm': ^7.4.0 + '@milkdown/prose': ^7.2.0 + '@milkdown/theme-nord': ^7.4.0 + '@milkdown/transformer': ^7.2.0 '@popperjs/core': ^2.11.8 '@replit/codemirror-lang-svelte': ^6.0.0 '@sveltejs/vite-plugin-svelte': ^2.0.0 @@ -62,11 +72,13 @@ importers: codemirror: ^6.0.1 cross-env: ^7.0.3 dayjs: ^1.11.10 + extend: 3.0.2 flowbite: ^1.6.5 flowbite-svelte: ^0.43.3 highlight.js: ^11.10.0 html5-qrcode: ^2.3.8 internal-ip: ^7.0.0 + lodash.debounce: 4.0.8 ng-sdk-js: workspace:^0.1.0-preview.1 node-gzip: ^1.1.2 postcss: ^8.4.23 @@ -115,6 +127,16 @@ importers: '@lezer/highlight': 1.2.0 '@lezer/javascript': 1.4.17 '@lezer/lr': 1.4.1 + '@milkdown-lab/plugin-split-editing': 1.2.3_a3dzv35plhvwzkijmviegrpz64 + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/plugin-collab': 7.4.0_ifyjutkej4ojnyzkqg4n5g44ji + '@milkdown/plugin-slash': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + '@milkdown/preset-commonmark': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + '@milkdown/preset-gfm': 7.4.0_pr2a727idfiaf646adnm34e2he + '@milkdown/prose': 7.4.0 + '@milkdown/theme-nord': 7.4.0_nuamxu4mkdll4kxrlkxmwjyqya + '@milkdown/transformer': 7.4.0_@milkdown+prose@7.4.0 '@popperjs/core': 2.11.8 '@replit/codemirror-lang-svelte': 6.0.0_lm5kufzbvgjiwtncg4ikhuo3ce '@tauri-apps/api': 2.0.0-alpha.8 @@ -123,9 +145,11 @@ importers: async-proxy: 0.4.1 classnames: 2.3.2 codemirror: 6.0.1_@lezer+common@1.2.1 + extend: 3.0.2 flowbite: 1.6.5 flowbite-svelte: 0.43.3_svelte@3.59.1 html5-qrcode: 2.3.8 + lodash.debounce: 4.0.8 ng-sdk-js: link:../ng-sdk-js/pkg prosemirror-model: 1.22.2 prosemirror-state: 1.4.3 @@ -281,6 +305,18 @@ packages: '@lezer/javascript': 1.4.17 dev: false + /@codemirror/lang-markdown/6.2.5: + resolution: {integrity: sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==} + dependencies: + '@codemirror/autocomplete': 6.17.0_y4udqqf6vpekb2i4jypui2pd5e + '@codemirror/lang-html': 6.4.9 + '@codemirror/language': 6.10.2 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.29.1 + '@lezer/common': 1.2.1 + '@lezer/markdown': 1.3.0 + dev: false + /@codemirror/lang-rust/6.0.1: resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} dependencies: @@ -841,6 +877,13 @@ packages: '@lezer/common': 1.2.1 dev: false + /@lezer/markdown/1.3.0: + resolution: {integrity: sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + dev: false + /@lezer/rust/1.0.2: resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} dependencies: @@ -849,6 +892,210 @@ packages: '@lezer/lr': 1.4.1 dev: false + /@milkdown-lab/plugin-split-editing/1.2.3_a3dzv35plhvwzkijmviegrpz64: + resolution: {integrity: sha512-sQI0wrazJ9tHuAF7EpNZBuyygJnHLcNxM72ogp4c7KbaxFZkVF5kEDCzv6aFrAKDPI0RN7PBZRpOwdwEGvoXsA==} + peerDependencies: + '@milkdown/core': '>=7.0.0' + '@milkdown/prose': '>=7.0.0' + dependencies: + '@codemirror/commands': 6.6.0 + '@codemirror/lang-markdown': 6.2.5 + '@codemirror/language': 6.10.2 + '@codemirror/state': 6.4.1 + '@codemirror/view': 6.29.1 + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/prose': 7.4.0 + '@milkdown/utils': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/core/7.4.0_honodruzo53dgte6h6joyje4le: + resolution: {integrity: sha512-TKHxVUiiQ6x+RoIP9ofC5jYqX54zO2qZMHX0Bvf+zXV/vpi+STbXa1VWcZC8rlVIivOlp300nw+ebJq1KArYHA==} + peerDependencies: + '@milkdown/ctx': ^7.2.0 + '@milkdown/prose': ^7.2.0 + '@milkdown/transformer': ^7.2.0 + dependencies: + '@milkdown/ctx': 7.4.0 + '@milkdown/exception': 7.4.0 + '@milkdown/prose': 7.4.0 + '@milkdown/transformer': 7.4.0_@milkdown+prose@7.4.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + tslib: 2.5.3 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@milkdown/ctx/7.4.0: + resolution: {integrity: sha512-jSXK/n+ew+vxBTNXKCKCaqf15K0gBa9OpP9sfvjiZeHF3tXh+SJKioA40YvUsVvi5JE/CGHMVnfLiB2AOyMKPg==} + dependencies: + '@milkdown/exception': 7.4.0 + tslib: 2.5.3 + dev: false + + /@milkdown/exception/7.4.0: + resolution: {integrity: sha512-id0kZrhIA6QRlpgPsrmNNZY71NPwujJg4RPZUSrbM+4PuXXZfzaVtMWd3LGn5HrDRDhkvmIrRzbEmqqfUnGYLg==} + dependencies: + tslib: 2.5.3 + dev: false + + /@milkdown/plugin-collab/7.4.0_ifyjutkej4ojnyzkqg4n5g44ji: + resolution: {integrity: sha512-/TBclQTZwBMW7GRWzg/d8XEndNdI+dfkMqxPzQhEBWH9TrLAWKyULV4qQPu4p8TJC+Vne7h6g0P93oqQT2+pfQ==} + peerDependencies: + '@milkdown/core': ^7.2.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/prose': ^7.2.0 + y-prosemirror: '*' + y-protocols: '*' + yjs: '*' + dependencies: + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/exception': 7.4.0 + '@milkdown/prose': 7.4.0 + '@milkdown/utils': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + tslib: 2.5.3 + y-prosemirror: 1.2.10_t5dsb3fc2figoeqqliqhb3exne + y-protocols: 1.0.6_yjs@13.6.18 + yjs: 13.6.18 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/plugin-slash/7.4.0_ds5rnvti6hlceu7l5yoqntrjgi: + resolution: {integrity: sha512-oAzgkDThSu1ie8SARr3N+gGxEq1NP1MQJ5byZsOTbr4zChr2PPPBvP7ex3eSqS92xAUfJsEhH2QVKmALW18akg==} + peerDependencies: + '@milkdown/core': ^7.2.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/prose': ^7.2.0 + dependencies: + '@floating-ui/dom': 1.5.3 + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/exception': 7.4.0 + '@milkdown/prose': 7.4.0 + '@milkdown/utils': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + '@types/lodash.debounce': 4.0.9 + composed-offset-position: 0.0.4 + lodash.debounce: 4.0.8 + tslib: 2.5.3 + transitivePeerDependencies: + - '@milkdown/transformer' + dev: false + + /@milkdown/preset-commonmark/7.4.0_ds5rnvti6hlceu7l5yoqntrjgi: + resolution: {integrity: sha512-L7yJcQZbqDT2bzkgfENV8x+1cZh16NPWasIKcB9Ap5BwlpclPNiyN0HHDMSzZLcNroXEhqI8UxjgCI0n31merg==} + peerDependencies: + '@milkdown/core': ^7.2.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/prose': ^7.2.0 + '@milkdown/transformer': ^7.2.0 + dependencies: + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/exception': 7.4.0 + '@milkdown/prose': 7.4.0 + '@milkdown/transformer': 7.4.0_@milkdown+prose@7.4.0 + '@milkdown/utils': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + '@sindresorhus/slugify': 2.2.1 + remark-inline-links: 7.0.0 + tslib: 2.5.3 + unist-util-visit: 5.0.0 + dev: false + + /@milkdown/preset-gfm/7.4.0_pr2a727idfiaf646adnm34e2he: + resolution: {integrity: sha512-qOiCzIQrxclLwBETr5eOUts8UaAk0gP1hbqYw8vB9Rui2EPKwwHFOz7tXyHM09zeCr51fgUZeWGplzU+TgSOlQ==} + peerDependencies: + '@milkdown/core': ^7.2.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/preset-commonmark': ^7.2.0 + '@milkdown/prose': ^7.2.0 + '@milkdown/transformer': ^7.2.0 + dependencies: + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/exception': 7.4.0 + '@milkdown/preset-commonmark': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + '@milkdown/prose': 7.4.0 + '@milkdown/transformer': 7.4.0_@milkdown+prose@7.4.0 + '@milkdown/utils': 7.4.0_ds5rnvti6hlceu7l5yoqntrjgi + remark-gfm: 4.0.0 + tslib: 2.5.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@milkdown/prose/7.4.0: + resolution: {integrity: sha512-bumSngLK5LLBrbpL24pCer0kZLPTXwQas1KsUHnJU2vYESi2SezeoxQVe3iYutwGDWeIspJup9r3SBKiKuoHgQ==} + dependencies: + '@milkdown/exception': 7.4.0 + prosemirror-changeset: 2.2.1 + prosemirror-commands: 1.6.0 + prosemirror-dropcursor: 1.8.1 + prosemirror-gapcursor: 1.3.2 + prosemirror-history: 1.4.1 + prosemirror-inputrules: 1.4.0 + prosemirror-keymap: 1.2.2 + prosemirror-model: 1.22.2 + prosemirror-schema-list: 1.4.1 + prosemirror-state: 1.4.3 + prosemirror-tables: 1.4.0 + prosemirror-transform: 1.9.0 + prosemirror-view: 1.33.9 + tslib: 2.5.3 + dev: false + + /@milkdown/theme-nord/7.4.0_nuamxu4mkdll4kxrlkxmwjyqya: + resolution: {integrity: sha512-YfzPuZTXUudN+L5FlzTiILnDyjcytrM/2hziRWyk9uUxDUlnC7a4B+iGEs6V7HYgbwO8U+jXrqlW5baWoy63/w==} + peerDependencies: + '@milkdown/core': ^7.2.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/prose': ^7.2.0 + dependencies: + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/prose': 7.4.0 + clsx: 2.1.1 + tslib: 2.5.3 + dev: false + + /@milkdown/transformer/7.4.0_@milkdown+prose@7.4.0: + resolution: {integrity: sha512-99bjUjgwtmFaRajbUgKp422evZEJ71sq7tk59ksFVBfuGXZ3aCk4/bm5g8FdHIrWwKIbiqZToG5P4CxiB4w2Ig==} + peerDependencies: + '@milkdown/prose': ^7.2.0 + dependencies: + '@milkdown/exception': 7.4.0 + '@milkdown/prose': 7.4.0 + remark: 15.0.1 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + tslib: 2.5.3 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@milkdown/utils/7.4.0_ds5rnvti6hlceu7l5yoqntrjgi: + resolution: {integrity: sha512-spGlHJbEVJqNtIvUrQd6xyA10x+8Zaf1eb2cXQGr5qjpoQVVDybazx18pEr5cIKmuCRBID13Agd47NKQgkjS7A==} + peerDependencies: + '@milkdown/core': ^7.2.0 + '@milkdown/ctx': ^7.2.0 + '@milkdown/prose': ^7.2.0 + '@milkdown/transformer': ^7.2.0 + dependencies: + '@milkdown/core': 7.4.0_honodruzo53dgte6h6joyje4le + '@milkdown/ctx': 7.4.0 + '@milkdown/exception': 7.4.0 + '@milkdown/prose': 7.4.0 + '@milkdown/transformer': 7.4.0_@milkdown+prose@7.4.0 + nanoid: 5.0.7 + tslib: 2.5.3 + dev: false + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -912,6 +1159,21 @@ packages: optional: true dev: false + /@sindresorhus/slugify/2.2.1: + resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} + engines: {node: '>=12'} + dependencies: + '@sindresorhus/transliterate': 1.6.0 + escape-string-regexp: 5.0.0 + dev: false + + /@sindresorhus/transliterate/1.6.0: + resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: false + /@sveltejs/vite-plugin-svelte-inspector/1.0.2_qiij5gx4uovhfqjpd2vh63pzyq: resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} engines: {node: ^14.18.0 || >= 16} @@ -1198,6 +1460,32 @@ packages: resolution: {integrity: sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==} dev: true + /@types/debug/4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + + /@types/lodash.debounce/4.0.9: + resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} + dependencies: + '@types/lodash': 4.17.7 + dev: false + + /@types/lodash/4.17.7: + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + dev: false + + /@types/mdast/4.0.4: + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /@types/ms/0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + /@types/node/18.16.16: resolution: {integrity: sha512-NpaM49IGQQAUlBhHMF82QH80J08os4ZmyF9MkpCzWAGuOHqE4gTEbhzd7L3l5LmWuZ6E0OiC1FweQ4tsiW35+g==} @@ -1205,6 +1493,10 @@ packages: resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} dev: true + /@types/unist/3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: false + /any-promise/1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: true @@ -1243,6 +1535,10 @@ packages: postcss-value-parser: 4.2.0 dev: true + /bail/2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true @@ -1299,6 +1595,14 @@ packages: resolution: {integrity: sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==} dev: true + /ccount/2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /character-entities/2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -1329,6 +1633,11 @@ packages: timers-ext: 0.1.8 dev: false + /clsx/2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false + /codemirror/6.0.1: resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} dependencies: @@ -1365,6 +1674,10 @@ packages: engines: {node: '>= 10'} dev: true + /composed-offset-position/0.0.4: + resolution: {integrity: sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==} + dev: false + /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1456,7 +1769,12 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true + + /decode-named-character-reference/1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false /deepmerge/4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} @@ -1469,11 +1787,22 @@ packages: execa: 5.1.1 dev: true + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} dev: true + /devlop/1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + /didyoumean/1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true @@ -1623,6 +1952,11 @@ packages: engines: {node: '>=6'} dev: true + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + /esniff/2.0.1: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} engines: {node: '>=0.10'} @@ -1665,6 +1999,10 @@ packages: type: 2.7.3 dev: false + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /fast-glob/3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -1910,6 +2248,11 @@ packages: engines: {node: '>=0.12.0'} dev: true + /is-plain-obj/4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + /is-promise/2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: false @@ -1954,6 +2297,14 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true + /lodash.debounce/4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: false + + /longest-streak/3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + /lru-queue/0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: @@ -1974,6 +2325,141 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /markdown-table/3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /mdast-util-definitions/6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + + /mdast-util-find-and-replace/3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /mdast-util-from-markdown/2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal/2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + dev: false + + /mdast-util-gfm-footnote/2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-strikethrough/2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-table/2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item/2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm/3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing/4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + dev: false + + /mdast-util-to-markdown/2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string/4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.4 + dev: false + /mdn-data/2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} dev: true @@ -2005,6 +2491,253 @@ packages: engines: {node: '>= 8'} dev: true + /micromark-core-commonmark/2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-autolink-literal/2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-footnote/2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-strikethrough/2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-table/2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-tagfilter/2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-task-list-item/2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm/3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-destination/2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-label/2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-space/2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-title/2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-whitespace/2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-character/2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-chunked/2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-classify-character/2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-combine-extensions/2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-decode-numeric-character-reference/2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-decode-string/2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-encode/2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + + /micromark-util-html-tag-name/2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + + /micromark-util-normalize-identifier/2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-resolve-all/2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-sanitize-uri/2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-subtokenize/2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-symbol/2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types/2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + + /micromark/4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -2051,7 +2784,6 @@ packages: /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /mz/2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -2066,6 +2798,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid/5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + /next-tick/1.1.0: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: false @@ -2274,6 +3012,12 @@ packages: hasBin: true dev: true + /prosemirror-changeset/2.2.1: + resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==} + dependencies: + prosemirror-transform: 1.9.0 + dev: false + /prosemirror-commands/1.6.0: resolution: {integrity: sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==} dependencies: @@ -2366,6 +3110,16 @@ packages: prosemirror-view: 1.33.9 dev: false + /prosemirror-tables/1.4.0: + resolution: {integrity: sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA==} + dependencies: + prosemirror-keymap: 1.2.2 + prosemirror-model: 1.22.2 + prosemirror-state: 1.4.3 + prosemirror-transform: 1.9.0 + prosemirror-view: 1.33.9 + dev: false + /prosemirror-transform/1.9.0: resolution: {integrity: sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==} dependencies: @@ -2409,6 +3163,57 @@ packages: engines: {node: '>=8'} dev: false + /remark-gfm/4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-inline-links/7.0.0: + resolution: {integrity: sha512-4uj1pPM+F495ySZhTIB6ay2oSkTsKgmYaKk/q5HIdhX2fuyLEegpjWa0VdJRJ01sgOqAFo7MBKdDUejIYBMVMQ==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-definitions: 6.0.0 + unist-util-visit: 5.0.0 + dev: false + + /remark-parse/11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-stringify/11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + dev: false + + /remark/15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2882,6 +3687,10 @@ packages: is-number: 7.0.0 dev: true + /trough/2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false + /ts-interface-checker/0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true @@ -2905,6 +3714,45 @@ packages: hasBin: true dev: true + /unified/11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.2 + dev: false + + /unist-util-is/6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-stringify-position/4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-visit-parents/6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + dev: false + + /unist-util-visit/5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + /update-browserslist-db/1.0.11_browserslist@4.21.7: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -2925,6 +3773,21 @@ packages: hasBin: true dev: false + /vfile-message/4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + dev: false + + /vfile/6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + /vite-plugin-singlefile/0.13.5_vite@4.3.9: resolution: {integrity: sha512-y/aRGh8qHmw2f1IhaI/C6PJAaov47ESYDvUv1am1YHMhpY+19B5k5Odp8P+tgs+zhfvak6QB1ykrALQErEAo7g==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3085,9 +3948,6 @@ packages: prosemirror-view: ^1.9.10 y-protocols: ^1.0.1 yjs: ^13.5.38 - peerDependenciesMeta: - y-protocols: - optional: true dependencies: lib0: 0.2.95 prosemirror-model: 1.22.2 @@ -3118,3 +3978,7 @@ packages: dependencies: lib0: 0.2.95 dev: false + + /zwitch/2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false