diff --git a/apps/client/package.json b/apps/client/package.json index 953324b37..a323c4657 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -23,6 +23,7 @@ "@popperjs/core": "2.11.8", "@triliumnext/ckeditor5": "workspace:*", "@triliumnext/commons": "workspace:*", + "@triliumnext/codemirror": "workspace:*", "bootstrap": "5.3.6", "dayjs": "1.11.13", "dayjs-plugin-utc": "0.1.2", diff --git a/apps/client/src/types.d.ts b/apps/client/src/types.d.ts index 0a466825a..70e51aede 100644 --- a/apps/client/src/types.d.ts +++ b/apps/client/src/types.d.ts @@ -135,74 +135,6 @@ declare global { trust: boolean; }) => void; - interface CodeMirrorOpts { - value: string; - viewportMargin: number; - indentUnit: number; - matchBrackets: boolean; - matchTags: { bothTags: boolean }; - highlightSelectionMatches: { - showToken: boolean; - annotateScrollbar: boolean; - }; - lineNumbers: boolean; - lineWrapping: boolean; - keyMap?: "vim" | "default"; - lint?: boolean; - gutters?: string[]; - tabindex?: number; - dragDrop?: boolean; - placeholder?: string; - readOnly?: boolean; - } - - var CodeMirror: { - (el: HTMLElement, opts: CodeMirrorOpts): CodeMirrorInstance; - keyMap: { - default: Record; - }; - modeURL: string; - modeInfo: ModeInfo[]; - findModeByMIME(mime: string): ModeInfo; - autoLoadMode(instance: CodeMirrorInstance, mode: string) - registerHelper(type: string, filter: string | null, callback: (text: string, options: object) => unknown); - Pos(line: number, col: number); - } - - interface ModeInfo { - name: string; - mode: string; - mime: string; - mimes: string[]; - } - - interface CodeMirrorInstance { - getValue(): string; - setValue(val: string); - clearHistory(); - setOption(name: string, value: string); - refresh(); - focus(); - getCursor(): { line: number, col: number, ch: number }; - setCursor(line: number, col: number); - getSelection(): string; - lineCount(): number; - on(event: string, callback: () => void); - operation(callback: () => void); - scrollIntoView(pos: number); - doc: { - getValue(): string; - markText( - from: { line: number, ch: number } | number, - to: { line: number, ch: number } | number, - opts: { - className: string - }); - setSelection(from: number, to: number); - replaceRange(text: string, from: number, to: number); - } - } - var katex: { renderToString(text: string, opts: { throwOnError: boolean diff --git a/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts b/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts index 69bc38bd7..9614a3881 100644 --- a/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts +++ b/apps/client/src/widgets/type_widgets/abstract_code_type_widget.ts @@ -1,7 +1,5 @@ import TypeWidget from "./type_widget.js"; -import libraryLoader from "../../services/library_loader.js"; -import options from "../../services/options.js"; -import type FNote from "../../entities/fnote.js"; +import CodeMirror from "@triliumnext/codemirror"; /** * An abstract {@link TypeWidget} which implements the CodeMirror editor, meant to be used as a parent for @@ -19,54 +17,27 @@ import type FNote from "../../entities/fnote.js"; export default class AbstractCodeTypeWidget extends TypeWidget { protected $editor!: JQuery; - protected codeEditor!: CodeMirrorInstance; + protected codeEditor!: CodeMirror; doRender() { this.initialized = this.#initEditor(); } async #initEditor() { - await libraryLoader.requireLibrary(libraryLoader.CODE_MIRROR); - - // these conflict with backward/forward navigation shortcuts - delete CodeMirror.keyMap.default["Alt-Left"]; - delete CodeMirror.keyMap.default["Alt-Right"]; - - CodeMirror.modeURL = `${window.glob.assetPath}/node_modules/codemirror/mode/%N/%N.js`; - const jsMode = CodeMirror.modeInfo.find((mode) => mode.name === "JavaScript"); - if (jsMode) { - jsMode.mimes.push(...["application/javascript;env=frontend", "application/javascript;env=backend"]); - } - const sqlMode = CodeMirror.modeInfo.find((mode) => mode.name === "SQLite"); - if (sqlMode) { - sqlMode.mimes = ["text/x-sqlite", "text/x-sqlite;schema=trilium"]; - } - - this.codeEditor = CodeMirror(this.$editor[0], { - value: "", - viewportMargin: Infinity, - indentUnit: 4, - matchBrackets: true, - matchTags: { bothTags: true }, - highlightSelectionMatches: { showToken: false, annotateScrollbar: false }, - lineNumbers: true, - // we line wrap partly also because without it horizontal scrollbar displays only when you scroll - // all the way to the bottom of the note. With line wrap, there's no horizontal scrollbar so no problem - lineWrapping: options.is("codeLineWrapEnabled"), - ...this.getExtraOpts() + this.codeEditor = new CodeMirror({ + parent: this.$editor[0], }); - this.onEditorInitialized(); } - /** - * Can be extended in derived classes to add extra options to the CodeMirror constructor. The options are appended - * at the end, so it is possible to override the default values introduced by the abstract editor as well. - * - * @returns the extra options to be passed to the CodeMirror constructor. - */ - getExtraOpts(): Partial { - return {}; - } + // /** + // * Can be extended in derived classes to add extra options to the CodeMirror constructor. The options are appended + // * at the end, so it is possible to override the default values introduced by the abstract editor as well. + // * + // * @returns the extra options to be passed to the CodeMirror constructor. + // */ + // getExtraOpts(): Partial { + // return {}; + // } /** * Called as soon as the CodeMirror library has been loaded and the editor was constructed. Can be extended in @@ -85,29 +56,29 @@ export default class AbstractCodeTypeWidget extends TypeWidget { * @param {*} content the new content of the note. */ _update(note: { mime: string }, content: string) { - // CodeMirror breaks pretty badly on null, so even though it shouldn't happen (guarded by a consistency check) - // we provide fallback - this.codeEditor.setValue(content || ""); - this.codeEditor.clearHistory(); + // // CodeMirror breaks pretty badly on null, so even though it shouldn't happen (guarded by a consistency check) + // // we provide fallback + // this.codeEditor.setValue(content || ""); + // this.codeEditor.clearHistory(); - let info = CodeMirror.findModeByMIME(note.mime); - if (!info) { - // Switch back to plain text if CodeMirror does not have a mode for whatever MIME type we're editing. - // To avoid inheriting a mode from a previously open code note. - info = CodeMirror.findModeByMIME("text/plain"); - } + // let info = CodeMirror.findModeByMIME(note.mime); + // if (!info) { + // // Switch back to plain text if CodeMirror does not have a mode for whatever MIME type we're editing. + // // To avoid inheriting a mode from a previously open code note. + // info = CodeMirror.findModeByMIME("text/plain"); + // } - this.codeEditor.setOption("mode", info.mime); - CodeMirror.autoLoadMode(this.codeEditor, info.mode); + // this.codeEditor.setOption("mode", info.mime); + // CodeMirror.autoLoadMode(this.codeEditor, info.mode); } show() { this.$widget.show(); - if (this.codeEditor) { - // show can be called before render - this.codeEditor.refresh(); - } + // if (this.codeEditor) { + // // show can be called before render + // this.codeEditor.refresh(); + // } } focus() { @@ -116,15 +87,15 @@ export default class AbstractCodeTypeWidget extends TypeWidget { } scrollToEnd() { - this.codeEditor.setCursor(this.codeEditor.lineCount(), 0); - this.codeEditor.focus(); + // this.codeEditor.setCursor(this.codeEditor.lineCount(), 0); + // this.codeEditor.focus(); } cleanup() { if (this.codeEditor) { - this.spacedUpdate.allowUpdateWithoutChange(() => { - this.codeEditor.setValue(""); - }); + // this.spacedUpdate.allowUpdateWithoutChange(() => { + // this.codeEditor.setValue(""); + // }); } } } diff --git a/apps/client/src/widgets/type_widgets/editable_code.ts b/apps/client/src/widgets/type_widgets/editable_code.ts index fbdee8244..0a3312edd 100644 --- a/apps/client/src/widgets/type_widgets/editable_code.ts +++ b/apps/client/src/widgets/type_widgets/editable_code.ts @@ -41,19 +41,19 @@ export default class EditableCodeTypeWidget extends AbstractCodeTypeWidget { super.doRender(); } - getExtraOpts(): Partial { - return { - keyMap: options.is("vimKeymapEnabled") ? "vim" : "default", - lint: true, - gutters: ["CodeMirror-lint-markers"], - tabindex: 300, - dragDrop: false, // with true the editor inlines dropped files which is not what we expect - placeholder: t("editable_code.placeholder") - }; - } + // getExtraOpts(): Partial { + // return { + // keyMap: options.is("vimKeymapEnabled") ? "vim" : "default", + // lint: true, + // gutters: ["CodeMirror-lint-markers"], + // tabindex: 300, + // dragDrop: false, // with true the editor inlines dropped files which is not what we expect + // placeholder: t("editable_code.placeholder") + // }; + // } onEditorInitialized() { - this.codeEditor.on("change", () => this.spacedUpdate.scheduleUpdate()); + // this.codeEditor.on("change", () => this.spacedUpdate.scheduleUpdate()); } async doRefresh(note: FNote) { @@ -72,7 +72,8 @@ export default class EditableCodeTypeWidget extends AbstractCodeTypeWidget { getData() { return { - content: this.codeEditor.getValue() + // content: this.codeEditor.getValue() + content: "" }; } diff --git a/apps/client/tsconfig.app.json b/apps/client/tsconfig.app.json index 588ce728f..11ed3a1b4 100644 --- a/apps/client/tsconfig.app.json +++ b/apps/client/tsconfig.app.json @@ -35,10 +35,13 @@ ], "references": [ { - "path": "../../packages/ckeditor5/tsconfig.lib.json" + "path": "../../packages/codemirror/tsconfig.lib.json" }, { "path": "../../packages/commons/tsconfig.lib.json" + }, + { + "path": "../../packages/ckeditor5/tsconfig.lib.json" } ] } diff --git a/apps/client/tsconfig.json b/apps/client/tsconfig.json index 433040798..05472be69 100644 --- a/apps/client/tsconfig.json +++ b/apps/client/tsconfig.json @@ -4,11 +4,14 @@ "include": [], "references": [ { - "path": "../../packages/ckeditor5" + "path": "../../packages/codemirror" }, { "path": "../../packages/commons" }, + { + "path": "../../packages/ckeditor5" + }, { "path": "./tsconfig.app.json" }, diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 7c05151ea..61cdf5f3b 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -18,5 +18,8 @@ "nx": { "name": "codemirror" }, - "dependencies": {} + "dependencies": { + "@codemirror/commands": "6.8.1", + "@codemirror/view": "6.36.7" + } } diff --git a/packages/codemirror/src/index.ts b/packages/codemirror/src/index.ts index ddc3d2ea4..55191d8b1 100644 --- a/packages/codemirror/src/index.ts +++ b/packages/codemirror/src/index.ts @@ -1 +1,13 @@ -export * from './lib/codemirror.js'; +import { defaultKeymap } from "@codemirror/commands"; +import { EditorView, keymap, type EditorViewConfig } from "@codemirror/view"; + +export default class CodeMirror extends EditorView { + constructor(config: EditorViewConfig) { + super({ + ...config, + extensions: [ + keymap.of(defaultKeymap) + ] + }); + } +} diff --git a/packages/codemirror/src/lib/codemirror.ts b/packages/codemirror/src/lib/codemirror.ts deleted file mode 100644 index 38b94faa0..000000000 --- a/packages/codemirror/src/lib/codemirror.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function codemirror(): string { - return 'codemirror'; -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45e1fd36a..ad51bda61 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -200,6 +200,9 @@ importers: '@triliumnext/ckeditor5': specifier: workspace:* version: link:../../packages/ckeditor5 + '@triliumnext/codemirror': + specifier: workspace:* + version: link:../../packages/codemirror '@triliumnext/commons': specifier: workspace:* version: link:../../packages/commons @@ -1149,7 +1152,14 @@ importers: specifier: ^9.0.7 version: 9.12.7(bufferutil@4.0.9)(utf-8-validate@6.0.5) - packages/codemirror: {} + packages/codemirror: + dependencies: + '@codemirror/commands': + specifier: 6.8.1 + version: 6.8.1 + '@codemirror/view': + specifier: 6.36.7 + version: 6.36.7 packages/commons: dependencies: @@ -2135,6 +2145,18 @@ packages: '@ckeditor/ckeditor5-word-count@45.0.0': resolution: {integrity: sha512-72Fd2mUKN8dXRMKGKLPhUiQHhoGnp0ZyPwP8Ezcpbwfn/mh5SBxP3LyQGg35sKy1xJgDYywHlWvjVhw95LgIjg==} + '@codemirror/commands@6.8.1': + resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} + + '@codemirror/language@6.11.0': + resolution: {integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==} + + '@codemirror/state@6.5.2': + resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + + '@codemirror/view@6.36.7': + resolution: {integrity: sha512-kCWGW/chWGPgZqfZ36Um9Iz0X2IVpmCjg1P/qY6B6a2ecXtWRRAigmpJ6YgUQ5lTWXMyyVdfmpzhLZmsZQMbtg==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -3323,6 +3345,15 @@ packages: '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + '@lezer/common@1.2.3': + resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + + '@lezer/lr@1.4.2': + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + '@ljharb/resumer@0.0.1': resolution: {integrity: sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==} engines: {node: '>= 0.4'} @@ -3349,6 +3380,9 @@ packages: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} + '@marijn/find-cluster-break@1.0.2': + resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + '@mermaid-js/layout-elk@0.1.7': resolution: {integrity: sha512-G3AJ2jMaCAqky2CT3z/sf3pK5UuS3tne98GsXDl3PkKByCmPmOYmJPf+6oX5PUlV3HNWWHuSgtZ9NU/CZDSuHQ==} peerDependencies: @@ -12627,6 +12661,9 @@ packages: peerDependencies: webpack: ^5.27.0 + style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + stylehacks@5.1.1: resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} @@ -13544,6 +13581,9 @@ packages: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + w3c-xmlserializer@2.0.0: resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} engines: {node: '>=10'} @@ -15096,23 +15136,27 @@ snapshots: - supports-color - utf-8-validate - '@ckeditor/ckeditor5-collaboration-core@45.0.0': + '@ckeditor/ckeditor5-collaboration-core@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: '@ckeditor/ckeditor5-comments': 45.0.0 '@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-icons': 45.0.0 '@ckeditor/ckeditor5-theme-lark': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-track-changes': 45.0.0 + '@ckeditor/ckeditor5-track-changes': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-ui': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-utils': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@types/luxon': 3.4.2 ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) luxon: 3.5.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate '@ckeditor/ckeditor5-comments@45.0.0': dependencies: '@ckeditor/ckeditor5-clipboard': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-collaboration-core': 45.0.0 + '@ckeditor/ckeditor5-collaboration-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-engine': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-enter': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -15133,7 +15177,7 @@ snapshots: '@ckeditor/ckeditor5-comments@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: '@ckeditor/ckeditor5-clipboard': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-collaboration-core': 45.0.0 + '@ckeditor/ckeditor5-collaboration-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-engine': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-enter': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -15399,18 +15443,6 @@ snapshots: - supports-color - utf-8-validate - '@ckeditor/ckeditor5-emoji@45.0.0': - dependencies: - '@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-icons': 45.0.0 - '@ckeditor/ckeditor5-mention': 45.0.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d) - '@ckeditor/ckeditor5-typing': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-ui': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-utils': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) - es-toolkit: 1.32.0 - fuzzysort: 3.1.0 - '@ckeditor/ckeditor5-emoji@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: '@ckeditor/ckeditor5-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -16014,7 +16046,7 @@ snapshots: '@ckeditor/ckeditor5-operations-compressor': 45.0.0 '@ckeditor/ckeditor5-revision-history': 45.0.0 '@ckeditor/ckeditor5-theme-lark': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-track-changes': 45.0.0 + '@ckeditor/ckeditor5-track-changes': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-ui': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-utils': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) @@ -16227,7 +16259,7 @@ snapshots: - supports-color - utf-8-validate - '@ckeditor/ckeditor5-track-changes@45.0.0': + '@ckeditor/ckeditor5-track-changes@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: '@ckeditor/ckeditor5-clipboard': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-code-block': 45.0.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -16256,6 +16288,10 @@ snapshots: ckeditor5: 45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41) ckeditor5-collaboration: 45.0.0 es-toolkit: 1.32.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate '@ckeditor/ckeditor5-typing@45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -16362,6 +16398,32 @@ snapshots: - supports-color - utf-8-validate + '@codemirror/commands@6.8.1': + dependencies: + '@codemirror/language': 6.11.0 + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.36.7 + '@lezer/common': 1.2.3 + + '@codemirror/language@6.11.0': + dependencies: + '@codemirror/state': 6.5.2 + '@codemirror/view': 6.36.7 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + + '@codemirror/state@6.5.2': + dependencies: + '@marijn/find-cluster-break': 1.0.2 + + '@codemirror/view@6.36.7': + dependencies: + '@codemirror/state': 6.5.2 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -17748,6 +17810,16 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} + '@lezer/common@1.2.3': {} + + '@lezer/highlight@1.2.1': + dependencies: + '@lezer/common': 1.2.3 + + '@lezer/lr@1.4.2': + dependencies: + '@lezer/common': 1.2.3 + '@ljharb/resumer@0.0.1': dependencies: '@ljharb/through': 2.3.14 @@ -17787,6 +17859,8 @@ snapshots: - supports-color optional: true + '@marijn/find-cluster-break@1.0.2': {} + '@mermaid-js/layout-elk@0.1.7(mermaid@11.6.0)': dependencies: d3: 7.9.0 @@ -21507,7 +21581,7 @@ snapshots: ckeditor5-collaboration@45.0.0: dependencies: - '@ckeditor/ckeditor5-collaboration-core': 45.0.0 + '@ckeditor/ckeditor5-collaboration-core': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) ckeditor5@45.0.0(patch_hash=8331a09d41443b39ea1c784daaccfeb0da4f9065ed556e7de92e9c77edd9eb41): dependencies: @@ -21530,7 +21604,7 @@ snapshots: '@ckeditor/ckeditor5-editor-decoupled': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-editor-inline': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-editor-multi-root': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) - '@ckeditor/ckeditor5-emoji': 45.0.0 + '@ckeditor/ckeditor5-emoji': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-engine': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-enter': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) '@ckeditor/ckeditor5-essentials': 45.0.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) @@ -29151,6 +29225,8 @@ snapshots: dependencies: webpack: 5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.4)(webpack-cli@6.0.1) + style-mod@4.1.2: {} + stylehacks@5.1.1(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -30276,6 +30352,8 @@ snapshots: dependencies: browser-process-hrtime: 1.0.0 + w3c-keyname@2.2.8: {} + w3c-xmlserializer@2.0.0: dependencies: xml-name-validator: 3.0.0