markdown-text-editor 1.0.1 → 1.1.0
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/README.md +113 -17
- package/dist/markdown-text-editor.es.js +2570 -0
- package/dist/markdown-text-editor.es.js.map +1 -0
- package/dist/markdown-text-editor.umd.js +213 -0
- package/dist/markdown-text-editor.umd.js.map +1 -0
- package/package.json +25 -25
- package/dist/index.css +0 -5
- package/dist/index.css.map +0 -1
- package/dist/index.js +0 -3
- package/dist/index.js.LICENSE.txt +0 -1
- package/dist/index.js.map +0 -1
- package/dist/markdown-text-editor.css +0 -5
- package/dist/markdown-text-editor.css.map +0 -1
- package/dist/markdown-text-editor.js +0 -3
- package/dist/markdown-text-editor.js.LICENSE.txt +0 -3
- package/dist/markdown-text-editor.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-text-editor.js","mappings":"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","sources":["webpack://MarkdownEditor/webpack/universalModuleDefinition","webpack://MarkdownEditor/./src/components/Preview.js","webpack://MarkdownEditor/./src/components/toolbar/MakeTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/BoldTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/ItalicTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/StrikethroughTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/ULTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/OLTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/PreviewTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/CheckListTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/BlockQuoteTool.js","webpack://MarkdownEditor/./src/components/modal.js","webpack://MarkdownEditor/./src/components/toolbar/tools/LinkTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/HeadingTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/ImageTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/UndoTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/RedoTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/IndentTool.js","webpack://MarkdownEditor/./src/components/toolbar/tools/OutdentTool.js","webpack://MarkdownEditor/./src/components/toolbar/Toolbar.js","webpack://MarkdownEditor/./src/utils/IndentManager.js","webpack://MarkdownEditor/./src/utils/ListManager.js","webpack://MarkdownEditor/./node_modules/diff/libesm/diff/base.js","webpack://MarkdownEditor/./node_modules/diff/libesm/diff/character.js","webpack://MarkdownEditor/./src/utils/UndoRedoManager.js","webpack://MarkdownEditor/webpack/bootstrap","webpack://MarkdownEditor/webpack/runtime/define property getters","webpack://MarkdownEditor/webpack/runtime/hasOwnProperty shorthand","webpack://MarkdownEditor/./node_modules/marked/lib/marked.esm.js","webpack://MarkdownEditor/./src/components/Editor.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MarkdownEditor\"] = factory();\n\telse\n\t\troot[\"MarkdownEditor\"] = factory();\n})(Object(typeof self !== \"undefined\" ? self : this), () => {\nreturn ","class Preview {\n constructor(container) {\n this.previewContainer = document.createElement('div');\n this.previewContainer.className = 'preview-wrapper fj:p-2 fj:hidden fj:surface fj:surface-outline fj:border-0 fj:border-l';\n this.previewContent = document.createElement('div');\n this.previewContent.className = 'preview-content fj:prose fj:prose-sm fj:md:prose-base fj:prose-frutjam fj:p-1.5 fj:overflow-y-auto fj:h-[90lvh] fj:max-w-full';\n this.previewContainer.appendChild(this.previewContent);\n container.appendChild(this.previewContainer);\n }\n\n getPreviewContent() {\n return this.previewContent;\n }\n}\n\nexport default Preview;","class MakeTool {\n constructor(editor, title) {\n this.editor = editor;\n this.defaultText = `${title} text`; // Default text if nothing is selected\n this.button = this.createButton();\n this.title = title\n }\n\n // Create a button element (can be overridden in child classes)\n createButton(iconHtml) {\n const btn = document.createElement('button');\n const btnClass = this.title ? `${this.title.replace(/ /g, '-')}-btn`.toLowerCase() : '';\n btn.innerHTML = iconHtml; // Pass icon HTML from child classes\n btn.type = 'button';\n btn.title = this.title;\n btn.className = `markdown-btn ${btnClass} fj:btn fj:btn-xs fj:btn-square fj:btn-ghost`;\n btn.addEventListener('click', (event) => this.applySyntax(event)); // Default to 'both', can change in child\n\n if(btnClass == 'preview-btn') {\n const btnWrapper = document.createElement('div');\n btnWrapper.className = 'fj:surface fj:surface-outline fj:border-0 fj:border-l fj:sticky fj:-right-2 fj:px-1.5';\n btnWrapper.appendChild(btn);\n return btnWrapper;\n }\n \n return btn;\n }\n}\n\nexport default MakeTool;\n","import MakeTool from '../MakeTool.js';\n\nclass BoldTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Bold');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 5h6a3.5 3.5 0 0 1 0 7h-6l0 -7\" /><path d=\"M13 12h1a3.5 3.5 0 0 1 0 7h-7v-7\" /></svg>\n `)\n }\n\n // Apply bold syntax (**bold**)\n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '**';\n let newText = '';\n if (selectedText.startsWith(syntax) && selectedText.endsWith(syntax)) {\n // Remove the bold syntax if it's already wrapped\n newText = selectedText.slice(syntax.length, -syntax.length);\n } else {\n // Apply bold syntax\n newText = `${syntax}${selectedText || 'Bold text'}${syntax}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\nexport default BoldTool;\n","import MakeTool from '../MakeTool.js';\n\nclass ItalicTool extends MakeTool {\n constructor(editor) {\n // Call the parent constructor with the markdown syntax for italic (*)\n super(editor, 'Italic');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M11 5l6 0\" /><path d=\"M7 19l6 0\" /><path d=\"M14 5l-4 14\" /></svg>\n `);\n }\n\n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '*';\n let newText = '';\n if (selectedText.startsWith(syntax) && selectedText.endsWith(syntax)) {\n // Remove the italic syntax if it's already wrapped\n newText = selectedText.slice(syntax.length, -syntax.length);\n } else {\n // Apply italic syntax\n newText = `${syntax}${selectedText || 'Italic text'}${syntax}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\nexport default ItalicTool;","import MakeTool from '../MakeTool.js';\n\nclass StrikethroughTool extends MakeTool {\n constructor(editor) {\n // Call the parent constructor with the markdown syntax for strikethrough (~~)\n super(editor, 'Strikethrough');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M5 12l14 0\" /><path d=\"M16 6.5a4 2 0 0 0 -4 -1.5h-1a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-1.5a4 2 0 0 1 -4 -1.5\" /></svg>\n `);\n }\n\n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '~';\n let newText = '';\n if (selectedText.startsWith(syntax) && selectedText.endsWith(syntax)) {\n // Remove the strikethrough syntax if it's already wrapped\n newText = selectedText.slice(syntax.length, -syntax.length);\n } else {\n // Apply strikethrough syntax\n newText = `${syntax}${selectedText || 'Strikethrough text'}${syntax}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\nexport default StrikethroughTool;","import MakeTool from '../MakeTool.js';\n\nclass ULTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Unordered list');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M9 6l11 0\" /><path d=\"M9 12l11 0\" /><path d=\"M9 18l11 0\" /><path d=\"M5 6l0 .01\" /><path d=\"M5 12l0 .01\" /><path d=\"M5 18l0 .01\" /></svg>\n `);\n }\n \n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '- ';\n let newText = '';\n if (selectedText.startsWith(syntax)) {\n // Remove the Unordered syntax if it's already wrapped\n newText = selectedText.slice(syntax.length);\n } else {\n // Apply Unordered list syntax\n newText = `${syntax}${selectedText || 'Unordered list'}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\n\nexport default ULTool;","import MakeTool from '../MakeTool.js';\n\nclass OLTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Ordered list');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M11 6h9\" /><path d=\"M11 12h9\" /><path d=\"M12 18h8\" /><path d=\"M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4\" /><path d=\"M6 10v-6l-2 2\" /></svg>\n `);\n }\n \n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '1. ';\n let newText = '';\n if (selectedText.startsWith(syntax)) {\n // Remove the ordered syntax if it's already wrapped\n newText = selectedText.slice(syntax.length);\n } else {\n // Apply ordered list syntax\n newText = `${syntax}${selectedText || 'Ordered list'}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\n\nexport default OLTool;","// #components/Toolbar/tools/PreviewToggleTool.js\nimport MakeTool from '../MakeTool.js';\n\nclass PreviewTool extends MakeTool {\n constructor(editor) {\n // No markdown syntax for preview toggle, so we call the parent constructor with empty values\n super(editor, 'Preview');\n this.preview = true;\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 4v16\" /><path d=\"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14\" /><path d=\"M12 13l7.5 -7.5\" /><path d=\"M12 18l8 -8\" /><path d=\"M15 20l5 -5\" /><path d=\"M12 8l4 -4\" /></svg>\n `);\n }\n\n // Override applySyntax to handle preview toggling\n applySyntax() {\n const previewWrapper = this.editor.previewContent?.parentNode;\n const editorDiv = this.editor.markdownEditorDiv;\n\n if (!previewWrapper || !editorDiv) return;\n\n // Toggle the preview's visibility by switching between 'block' and 'hidden' classes\n if (this.editor.preview && this.preview) {\n this.enablePreview(previewWrapper, editorDiv);\n } else {\n this.disablePreview(previewWrapper, editorDiv);\n }\n }\n\n // Method to hide the preview (disable it)\n disablePreview(previewWrapper, editorDiv) {\n\n this.preview = true;\n\n const textareaWrapper = editorDiv.querySelector(\".textarea-wrapper\");\n\n editorDiv.parentNode.classList.toggle('fj:fixed');\n editorDiv.parentNode.classList.toggle('fj:top-0');\n editorDiv.parentNode.classList.toggle('fj:inset-x-0');\n editorDiv.parentNode.classList.toggle('fj:rounded-md');\n editorDiv.parentNode.classList.toggle('fj:z-999');\n \n // Add grid layout and divide classes to the editor div\n editorDiv.classList.remove(\n 'fj:md:grid-cols-2'\n );\n previewWrapper.classList.add('fj:hidden');\n textareaWrapper.classList.remove(\"fj:hidden\", \"md:grid\");\n\n textareaWrapper.classList.remove(\n 'fj:h-[90lvh]',\n );\n this.editor.render(); // Re-render content in the preview\n\n textareaWrapper.querySelector(\"textarea\").classList.remove(\"fj:h-[90lvh]!\");\n\n if(textareaWrapper.querySelector(\".display-layer\")){\n textareaWrapper.querySelector(\".display-layer\").classList.remove(\"fj:h-[90lvh]!\");\n }\n \n document.querySelector(\"body\").classList.remove('fj:overflow-hidden');\n\n document.querySelectorAll('.markdown-btn').forEach(button => {\n if (!button.classList.contains('preview-btn')) {\n button.classList.remove('fj:pointer-events-none', 'fj:md:pointer-events-auto', 'fj:opacity-25', 'fj:md:opacity-100');\n }else{\n button.classList.remove('fj:btn-active');\n }\n });\n }\n\n // Method to show the preview (enable it)\n enablePreview(previewWrapper, editorDiv) {\n\n this.preview = false;\n \n const textareaWrapper = editorDiv.querySelector(\".textarea-wrapper\");\n\n editorDiv.parentNode.classList.toggle('fj:fixed');\n editorDiv.parentNode.classList.toggle('fj:top-0');\n editorDiv.parentNode.classList.toggle('fj:inset-x-0');\n editorDiv.parentNode.classList.toggle('fj:rounded-md');\n editorDiv.parentNode.classList.toggle('fj:z-999');\n\n // Remove grid layout and divide classes from the editor div\n editorDiv.classList.add(\n 'fj:md:grid-cols-2'\n );\n previewWrapper.classList.remove('fj:hidden');\n textareaWrapper.classList.add(\"fj:hidden\", \"fj:md:grid\");\n\n textareaWrapper.classList.add(\n 'fj:h-[90lvh]',\n );\n\n textareaWrapper.querySelector(\"textarea\").classList.add(\"fj:h-[90lvh]!\");\n\n if(textareaWrapper.querySelector(\".display-layer\")){\n textareaWrapper.querySelector(\".display-layer\").classList.add(\"fj:h-[90lvh]!\");\n }\n\n document.querySelector(\"body\").classList.add('fj:overflow-hidden');\n\n document.querySelectorAll('.markdown-btn').forEach(button => {\n if (!button.classList.contains('preview-btn')) {\n button.classList.add('fj:pointer-events-none', 'fj:md:pointer-events-auto', 'fj:opacity-25', 'fj:md:opacity-100');\n }else{\n button.classList.add('fj:btn-active');\n }\n });\n }\n}\n\nexport default PreviewTool;\n","import MakeTool from '../MakeTool.js';\n\nclass CheckListTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Check list');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M3.5 5.5l1.5 1.5l2.5 -2.5\" /><path d=\"M3.5 11.5l1.5 1.5l2.5 -2.5\" /><path d=\"M3.5 17.5l1.5 1.5l2.5 -2.5\" /><path d=\"M11 6l9 0\" /><path d=\"M11 12l9 0\" /><path d=\"M11 18l9 0\" /></svg>\n `);\n }\n \n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '- [x] ';\n let newText = '';\n if (selectedText.startsWith(syntax)) {\n // Remove the checklist syntax if it's already wrapped\n newText = selectedText.slice(syntax.length);\n } else {\n // Apply check list syntax\n newText = `${syntax}${selectedText || 'Check list'}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\n\nexport default CheckListTool;","import MakeTool from '../MakeTool.js';\n\nclass BlockQuoteTool extends MakeTool {\n constructor(editor) {\n // Call the parent constructor with the markdown syntax for italic (*)\n super(editor, 'Blockquote');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M10 11h-4a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1h3a1 1 0 0 1 1 1v6c0 2.667 -1.333 4.333 -4 5\" /><path d=\"M19 11h-4a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1h3a1 1 0 0 1 1 1v6c0 2.667 -1.333 4.333 -4 5\" /></svg>\n `);\n }\n\n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const syntax = '>';\n let newText = '';\n if (selectedText.startsWith(syntax)) {\n // Remove the blockquote syntax if it's already wrapped\n newText = selectedText.slice(syntax.length);\n } else {\n // Apply blockquote syntax\n newText = `${syntax}${selectedText || 'Blockquote text'}`;\n }\n\n this.editor.insertText(newText);\n }\n}\n\nexport default BlockQuoteTool;","export function modal(event, size, bodyHTML) {\n const self = event.target;\n const mde = self.closest(\".markdown-editor-wrapper\");\n if(mde.querySelector(\".markdown-modal\")){\n mde.querySelector(\".markdown-modal\").remove(); \n }\n\n const modalHTML = `\n <dialog class=\"markdown-modal fj:modal fj:modal-y-top fj:lg:modal-y-center fj:modal-x-center\" id=\"nezanuha_toggleModal\">\n <div class=\"fj:modal-body ${size}\">\n ${bodyHTML}\n </div>\n </dialog>\n `;\n\n if(!mde.querySelector(\".markdown-modal\")){\n mde.insertAdjacentHTML(\"beforeend\", modalHTML);\n }\n \n const modal = mde.querySelector(\".markdown-modal\");\n modal.showModal();\n return modal;\n}","import MakeTool from '../MakeTool.js';\nimport { modal } from '../../modal.js';\n\nclass LinkTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Link');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M9 15l6 -6\" /><path d=\"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464\" /><path d=\"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463\" /></svg>\n `);\n }\n\n // Apply link syntax [text](url)\n applySyntax(event) {\n let editor = this.editor;\n let textarea = editor.usertextarea;\n let { selectionStart, selectionEnd } = textarea;\n let selectedText = textarea.value.substring(selectionStart, selectionEnd);\n \n // Check if the selected text contains a link syntax [text](url)\n const linkRegex = /\\[([^\\]]+)\\]\\(([^)]+)\\)/;\n \n if (selectedText && linkRegex.test(selectedText)) {\n // If the selected text is already a link, extract the text inside the brackets\n const match = selectedText.match(linkRegex);\n const linkText = match[1]; // Text inside the square brackets\n \n // Replace the selected text with just the text\n textarea.setRangeText(linkText, selectionStart, selectionEnd, 'select');\n } else {\n // If no link syntax, prompt for the URL and apply the syntax\n \n const bodyHTML =`\n <div class=\"fj:flex fj:justify-between fj:items-center fj:gap-3\">\n <div class=\"fj:font-medium\">Link</div>\n <button type=\"button\" class=\"fj:btn fj:btn-ghost fj:btn-xs fj:btn-circle\" onclick=\"nezanuha_toggleModal.remove()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n </div>\n <form method=\"post\">\n <div class=\"fj:flex fj:flex-col fj:justify-center fj:gap-y-4.5 fj:mt-4\">\n <input type=\"url\" placeholder=\"URL\" class=\"link-input fj:input fj:w-full\" required>\n <input type=\"text\" placeholder=\"Link text\" class=\"link-text-input fj:input fj:w-full\" value=\"${selectedText}\" required>\n <button type=\"submit\" class=\"submit-link fj:btn fj:btn-sm fj:self-end\">Apply</button>\n </div>\n </form>`;\n\n const modalElement = modal(event, 'fj:max-w-sm', bodyHTML);\n\n modalElement.querySelector(\".submit-link\").addEventListener(\"click\", function(e){\n e.preventDefault();\n let linkInput = modalElement.querySelector(\".link-input\");\n let linkTextInput = modalElement.querySelector(\".link-text-input\");\n\n if (!linkInput.validity.valid) {\n linkInput.reportValidity();\n } else if (!linkTextInput.validity.valid) {\n linkTextInput.reportValidity();\n } else {\n const link = linkInput.value;\n let linkText = linkTextInput.value;\n\n if(linkText == ''){\n linkText = 'Link Text';\n }\n\n let newText = '';\n if (selectedText) {\n newText = `[${selectedText}](${link})`; // Insert the link with selected text\n } else {\n newText = `[${linkText}](${link})`; // Insert a placeholder text if nothing is selected\n }\n editor.insertText(newText); // Insert the constructed link markdown\n \n linkInput.value = '';\n linkTextInput.value = '';\n modalElement.close();\n }\n });\n }\n }\n \n}\n\nexport default LinkTool;","import MakeTool from '../MakeTool.js';\n\nclass HeadingTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Heading');\n this.currentHeading = 1; // Start with Heading 1\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 12h10\" /><path d=\"M7 5v14\" /><path d=\"M17 5v14\" /><path d=\"M15 19h4\" /><path d=\"M15 5h4\" /><path d=\"M5 19h4\" /><path d=\"M5 5h4\" /></svg>\n `);\n }\n\n // Apply heading syntax (e.g., # sample text for h1, ## sample text for h2, etc.)\n applySyntax() {\n const textarea = this.editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n // Strip any existing heading symbols (i.e., # or ##) from the selected text\n const headingRegex = /^#+\\s*/; // Regex to match any # followed by space\n let cleanText = selectedText.replace(headingRegex, ''); // Remove existing heading\n\n let newText = '';\n\n // If there is a heading, continue from the current level\n if (selectedText) {\n const currentLevel = selectedText.match(/^#+/); // Match the number of # symbols at the start\n if (currentLevel) {\n let headingCount = currentLevel[0].length;\n if (headingCount === 6) {\n newText = cleanText; // Just plain text\n } else {\n newText = `${'#'.repeat(headingCount + 1)} ${cleanText}`;\n }\n } else {\n // If no # symbol, start from # (Heading 1)\n newText = `# ${cleanText}`;\n }\n } else {\n // If no text is selected, use default \"Heading\"\n newText = `${'#'.repeat(this.currentHeading)} Heading`;\n }\n\n // Insert the new heading text and replace any selected text\n this.editor.insertText(newText, true);\n\n // Cycle heading levels after applying the heading\n if (this.currentHeading === 6) {\n this.currentHeading = 1; // Reset to # for Heading 1 after reaching Heading 6\n } else {\n this.currentHeading++; // Increment the heading level\n }\n }\n}\n\nexport default HeadingTool;\n","import MakeTool from '../MakeTool.js';\nimport { modal } from '../../modal.js';\n\nclass ImageTool extends MakeTool {\n constructor(editor, config = {}) {\n super(editor, 'Image link');\n this.config = config;\n this.fileInputConfig = config.fileInput || false;\n // Logic: Respect config or default to true\n this.altInputConfig = config.altInput !== undefined ? config.altInput : { required: true };\n \n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M15 8h.01\" /><path d=\"M12.5 21h-6.5a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v6.5\" /><path d=\"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l4 4\" /><path d=\"M14 14l1 -1c.67 -.644 1.45 -.824 2.182 -.54\" /><path d=\"M16 19h6\" /><path d=\"M19 16v6\" /></svg>\n `);\n }\n\n applySyntax(event) {\n const editor = this.editor;\n const textarea = editor.usertextarea;\n const { selectionStart, selectionEnd } = textarea;\n const selectedText = textarea.value.substring(selectionStart, selectionEnd);\n\n const acceptFormats = this.fileInputConfig.accept\n ? this.fileInputConfig.accept.map(type => `image/${type}`).join(',')\n : 'image/*';\n\n const isAltRequired = typeof this.altInputConfig === 'boolean' \n ? this.altInputConfig \n : (this.altInputConfig.required !== false);\n\n const uploadUrl = this.fileInputConfig.uploadUrl || null;\n const customParams = this.fileInputConfig.params || {};\n\n const imageRegex = /!\\[([^\\]]*)\\]\\(([^)]+)\\)/;\n if (selectedText && imageRegex.test(selectedText)) {\n const match = selectedText.match(imageRegex);\n textarea.setRangeText(match[1], selectionStart, selectionEnd, 'select');\n return;\n }\n\n let fileInputTag = '';\n if (this.fileInputConfig) {\n fileInputTag = `\n <input type=\"file\" accept=\"${acceptFormats}\" class=\"img-file-input fj:input fj:w-full\">\n <div class=\"fj:divider fj:my-1\">OR</div>\n `;\n }\n\n const bodyHTML = `\n <div class=\"fj:flex fj:justify-between fj:items-center fj:gap-3\">\n <div class=\"fj:font-medium\">Image</div>\n <button type=\"button\" class=\"fj:btn fj:btn-ghost fj:btn-xs fj:btn-circle\" onclick=\"nezanuha_toggleModal.remove()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n </div>\n <div class=\"fj:mt-4 fj:flex fj:flex-col fj:gap-y-4\">\n ${fileInputTag}\n <input type=\"url\" placeholder=\"URL\" class=\"img-link-input fj:input fj:w-full\" required>\n <input type=\"text\" placeholder=\"Alt text\" class=\"img-link-alt-input fj:input fj:w-full\" value=\"${selectedText}\" ${isAltRequired ? 'required' : ''}>\n <button type=\"button\" class=\"submit-img-link fj:btn fj:btn-sm fj:self-end\">Apply</button>\n </div>`;\n\n const modalElement = modal(event, 'fj:max-w-sm', bodyHTML);\n const submitBtn = modalElement.querySelector(\".submit-img-link\");\n\n submitBtn.addEventListener(\"click\", async (e) => {\n e.preventDefault();\n\n const fileInputSelector = modalElement.querySelector(\".img-file-input\");\n const urlInputSelector = modalElement.querySelector(\".img-link-input\");\n const imgFileAltInput = modalElement.querySelector(\".img-link-alt-input\");\n\n const hasFile = fileInputSelector?.files[0];\n\n // --- 1. PRE-VALIDATION ---\n // If we are uploading a file, the URL is currently empty, so we temporarily\n // disable the 'required' on URL just to check the Alt text.\n if (hasFile) {\n urlInputSelector.required = false; \n }\n\n // Check if Alt (and URL if no file) are valid according to config\n if (isAltRequired && !imgFileAltInput.validity.valid) {\n imgFileAltInput.reportValidity();\n if (hasFile) urlInputSelector.required = true; // Restore\n return;\n }\n\n if (!hasFile && !urlInputSelector.validity.valid) {\n urlInputSelector.reportValidity();\n return;\n }\n\n // --- 2. ASYNC UPLOAD ---\n if (hasFile && uploadUrl) {\n const file = fileInputSelector.files[0];\n submitBtn.disabled = true;\n submitBtn.textContent = 'Uploading...';\n\n const formData = new FormData();\n formData.append('image_file', file);\n formData.append('image_alt', imgFileAltInput.value);\n\n Object.keys(customParams).forEach(key => {\n formData.append(key, customParams[key]);\n });\n\n try {\n const res = await fetch(uploadUrl, { method: 'POST', body: formData });\n const result = await res.json();\n\n if (result.success && result.image_path) {\n urlInputSelector.value = result.image_path;\n if (result.image_alt) imgFileAltInput.value = result.image_alt;\n } else {\n alert(result.error || result.message || 'Image upload failed.');\n submitBtn.disabled = false;\n submitBtn.textContent = 'Apply';\n urlInputSelector.required = true; // Restore\n return;\n }\n } catch (err) {\n alert(result.error || result.message || 'Upload failed.');\n submitBtn.disabled = false;\n submitBtn.textContent = 'Apply';\n urlInputSelector.required = true; // Restore\n return;\n }\n \n submitBtn.disabled = false;\n submitBtn.textContent = 'Apply';\n }\n\n // --- 3. FINAL INSERTION ---\n const imgLink = urlInputSelector.value;\n const imgLinkAlt = imgFileAltInput.value || '';\n \n const newText = selectedText \n ? `` \n : ``;\n\n editor.insertText(newText);\n modalElement.close();\n });\n }\n}\n\nexport default ImageTool;","import MakeTool from '../MakeTool.js';\n\nclass UndoTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Undo');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M9 14l-4 -4l4 -4\" /><path d=\"M5 10h11a4 4 0 1 1 0 8h-1\" /></svg>\n `);\n }\n\n applySyntax() {\n // Check if Undo is available and perform the undo action\n const undoRedoManager = this.editor.undoRedoManager;\n if (undoRedoManager) {\n undoRedoManager.undo();\n }\n }\n}\n\nexport default UndoTool;","import MakeTool from '../MakeTool.js';\n\nclass RedoTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Redo');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M15 14l4 -4l-4 -4\" /><path d=\"M19 10h-11a4 4 0 1 0 0 8h1\" /></svg>\n `);\n }\n\n applySyntax() {\n // Check if Redo is available and perform the redo action\n const undoRedoManager = this.editor.undoRedoManager;\n if (undoRedoManager) {\n undoRedoManager.redo();\n }\n }\n}\n\nexport default RedoTool;\n","import MakeTool from '../MakeTool.js';\n\nclass IndentTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Indent');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M20 6l-11 0\" /><path d=\"M20 12l-7 0\" /><path d=\"M20 18l-11 0\" /><path d=\"M4 8l4 4l-4 4\" /></svg>\n `);\n }\n \n applySyntax() {\n const indentManager = this.editor.indentManager;\n if (indentManager) {\n indentManager.indent();\n } \n }\n}\n\n\nexport default IndentTool;","import MakeTool from '../MakeTool.js';\n\nclass OutdentTool extends MakeTool {\n constructor(editor) {\n super(editor, 'Outdent');\n this.button = this.createButton(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M20 6l-7 0\" /><path d=\"M20 12l-9 0\" /><path d=\"M20 18l-7 0\" /><path d=\"M8 8l-4 4l4 4\" /></svg>\n `);\n }\n \n applySyntax(e) {\n const indentManager = this.editor.indentManager;\n if (indentManager) {\n indentManager.outdent();\n } \n }\n}\n\n\nexport default OutdentTool;","import BoldTool from './tools/BoldTool.js';\nimport ItalicTool from './tools/ItalicTool.js';\nimport StrikethroughTool from './tools/StrikethroughTool.js';\nimport ULTool from './tools/ULTool.js';\nimport OLTool from './tools/OLTool.js';\nimport PreviewTool from './tools/PreviewTool.js'\nimport CheckListTool from './tools/CheckListTool.js';\nimport BlockQuoteTool from './tools/BlockQuoteTool.js';\nimport LinkTool from './tools/LinkTool.js'\nimport HeadingTool from './tools/HeadingTool.js';\nimport ImageTool from './tools/ImageTool.js';\nimport UndoTool from './tools/UndoTool.js';\nimport RedoTool from './tools/RedoTool.js';\nimport IndentTool from './tools/IndentTool.js';\nimport OutdentTool from './tools/OutdentTool.js';\n\nclass Toolbar {\n constructor(editor, options) {\n this.editor = editor;\n this.options = options;\n this.toolbar = document.createElement('div');\n this.toolbar.className = 'toolbar fj:surface fj:surface-outline fj:border-0 fj:border-b fj:flex fj:gap-x-1 fj:p-1.5 fj:overflow-x-auto';\n this.init();\n }\n\n init() {\n const toolMapping = {\n heading: HeadingTool,\n ul: ULTool,\n ol: OLTool,\n checklist: CheckListTool,\n bold: BoldTool,\n italic: ItalicTool,\n strikethrough: StrikethroughTool,\n blockquote: BlockQuoteTool,\n link: LinkTool,\n image: ImageTool,\n undo: UndoTool,\n redo: RedoTool,\n indent: IndentTool,\n outdent: OutdentTool\n };\n\n // Append all tools except preview\n // this.options.forEach(tool => {\n // if (tool !== 'preview') {\n // const ToolClass = toolMapping[tool];\n // if (ToolClass) {\n // const toolInstance = new ToolClass(this.editor);\n // this.toolbar.appendChild(toolInstance.button); // Directly append to toolbar\n // }\n // }\n // });\n\n this.options.forEach(tool => {\n let ToolClass, config;\n \n if (typeof tool === 'string') {\n ToolClass = toolMapping[tool];\n } else if (typeof tool === 'object') {\n const toolName = Object.keys(tool)[0];\n config = tool[toolName];\n ToolClass = toolMapping[toolName];\n }\n \n if (ToolClass) {\n const toolInstance = new ToolClass(this.editor, config);\n this.toolbar.appendChild(toolInstance.button);\n }\n });\n\n // Append preview button at the end\n if (this.options.includes('preview')) {\n const previewToolInstance = new PreviewTool(this.editor);\n this.toolbar.appendChild(previewToolInstance.button); // Directly append to toolbar at the end\n }\n\n this.editor.editorContainer.insertBefore(this.toolbar, this.editor.markdownEditorDiv);\n }\n}\n\nexport default Toolbar;\n","export default class IndentManager {\n constructor(editor, renderCallback) {\n this.editor = editor;\n this.textarea = editor.usertextarea;\n this.renderCallback = renderCallback;\n this.pairs = {\n '{': '}',\n '[': ']',\n '(': ')',\n '<': '>',\n '\"': '\"',\n \"'\": \"'\"\n };\n this.init();\n }\n\n init() {\n this.textarea.addEventListener('keydown', (e) => {\n switch (e.key) {\n case 'Tab':\n e.preventDefault();\n e.shiftKey ? this.outdent() : this.indent();\n this._triggerUpdate();\n break;\n case 'Enter':\n this.autoIndent(e);\n break;\n case 'Backspace':\n this.handleBackspace(e);\n break;\n default:\n if (this.pairs[e.key]) this.handlePairs(e);\n }\n });\n }\n\n handlePairs(e) {\n const { textarea } = this;\n const { selectionStart, selectionEnd, value } = textarea;\n const char = e.key;\n\n // 1. Overtyping Logic\n // If the cursor is right before the closing character and the user types it\n if (selectionStart === selectionEnd && value[selectionStart] === char) {\n const isClosingChar = Object.values(this.pairs).includes(char);\n if (isClosingChar) {\n e.preventDefault();\n const newPos = selectionStart + 1;\n textarea.setSelectionRange(newPos, newPos);\n return; // Just move the cursor, don't trigger an update\n }\n }\n\n const open = char;\n const close = this.pairs[open];\n if (!close) return; // Not a paired character\n\n // 2. Selection Wrapping\n if (selectionStart !== selectionEnd) {\n e.preventDefault();\n const selectedText = value.substring(selectionStart, selectionEnd);\n const newValue = value.substring(0, selectionStart) + open + selectedText + close + value.substring(selectionEnd);\n \n textarea.value = newValue;\n textarea.setSelectionRange(selectionStart + 1, selectionEnd + 1);\n this._triggerUpdate();\n } \n \n // 3. Standard Pair Insertion\n else {\n e.preventDefault();\n const before = value.substring(0, selectionStart);\n const after = value.substring(selectionEnd);\n \n textarea.value = before + open + close + after;\n textarea.setSelectionRange(selectionStart + 1, selectionStart + 1);\n this._triggerUpdate();\n }\n }\n\n // Add this to your init() listener for 'keydown'\n handleBackspace(e) {\n const { textarea } = this;\n const { selectionStart, selectionEnd, value } = textarea;\n\n if (selectionStart === selectionEnd && selectionStart > 0) {\n const charBefore = value[selectionStart - 1];\n const charAfter = value[selectionStart];\n\n // If user deletes '(' when text is '()', delete the ')' too\n if (this.pairs[charBefore] === charAfter) {\n e.preventDefault();\n const before = value.substring(0, selectionStart - 1);\n const after = value.substring(selectionStart + 1);\n \n textarea.value = before + after;\n textarea.setSelectionRange(selectionStart - 1, selectionStart - 1);\n this._triggerUpdate();\n }\n }\n }\n\n autoIndent(e) {\n const { textarea } = this;\n const { selectionStart, value } = textarea;\n\n const lastNewline = value.lastIndexOf('\\n', selectionStart - 1);\n const currentLine = value.substring(lastNewline + 1, selectionStart);\n const indent = (currentLine.match(/^[ \\t]*/) || [''])[0];\n\n // EXTRA: If user hits Enter between { and }, add an extra indent level\n const charBefore = value[selectionStart - 1];\n const charAfter = value[selectionStart];\n \n if (charBefore === '{' && charAfter === '}') {\n e.preventDefault();\n const tab = '\\t'; // or ' '\n const insertion = '\\n' + indent + tab + '\\n' + indent;\n \n textarea.value = value.substring(0, selectionStart) + insertion + value.substring(selectionStart);\n \n // Put cursor on the middle (indented) line\n const newPos = selectionStart + indent.length + tab.length + 1;\n textarea.setSelectionRange(newPos, newPos);\n this._triggerUpdate();\n return;\n }\n\n if (indent.length > 0) {\n e.preventDefault();\n const insertion = '\\n' + indent;\n textarea.value = value.substring(0, selectionStart) + insertion + value.substring(textarea.selectionEnd);\n const newPos = selectionStart + insertion.length;\n textarea.setSelectionRange(newPos, newPos);\n this._triggerUpdate();\n }\n }\n\n _triggerUpdate() {\n if (typeof this.renderCallback === 'function') this.renderCallback();\n this.textarea.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n // Inside IndentManager class\n indent() {\n const { textarea } = this;\n const { selectionStart, selectionEnd, value } = textarea;\n\n const startPos = value.lastIndexOf('\\n', selectionStart - 1) + 1;\n let endPos = value.indexOf('\\n', selectionEnd);\n if (endPos === -1) endPos = value.length;\n\n const targetText = value.substring(startPos, endPos);\n const lines = targetText.split('\\n');\n const indentedText = lines.map(line => '\\t' + line).join('\\n');\n \n this._applyChange(\n value.substring(0, startPos) + indentedText + value.substring(endPos),\n selectionStart + 1,\n selectionEnd + lines.length\n );\n \n // Add this so external calls auto-update\n this._triggerUpdate(); \n }\n\n outdent() {\n const { textarea } = this;\n const { selectionStart, selectionEnd, value } = textarea;\n\n // 1. Find the start and end of the affected lines\n const startPos = value.lastIndexOf('\\n', selectionStart - 1) + 1;\n let endPos = value.indexOf('\\n', selectionEnd);\n if (endPos === -1) endPos = value.length;\n\n const targetText = value.substring(startPos, endPos);\n const lines = targetText.split('\\n');\n \n let removedFromFirst = 0;\n let totalRemoved = 0;\n\n // 2. Process each line\n const unindentedText = lines.map((line, index) => {\n if (line.startsWith('\\t')) {\n if (index === 0) removedFromFirst = 1;\n totalRemoved++;\n return line.substring(1);\n } else if (line.startsWith(' ')) { // Optional: handle 4-space indent\n if (index === 0) removedFromFirst = 4;\n totalRemoved += 4;\n return line.substring(4);\n }\n return line;\n }).join('\\n');\n\n // 3. Apply the change to the DOM\n this._applyChange(\n value.substring(0, startPos) + unindentedText + value.substring(endPos),\n Math.max(startPos, selectionStart - removedFromFirst),\n Math.max(startPos, selectionEnd - totalRemoved)\n );\n\n // 4. Trigger the undo stack and re-render\n this._triggerUpdate();\n }\n\n _applyChange(newValue, newStart, newEnd) {\n this.textarea.value = newValue;\n this.textarea.setSelectionRange(newStart, newEnd);\n }\n}","class ListManager {\n constructor(editor) {\n this.editor = editor;\n this.textarea = editor.usertextarea;\n\n // Attach the listener directly here\n this.textarea.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n this.handleEnter(e);\n }\n });\n }\n\n handleEnter(event) {\n const { selectionStart, value } = this.textarea;\n\n const lastNewline = value.lastIndexOf('\\n', selectionStart - 1);\n const lineStart = lastNewline + 1;\n const currentLine = value.substring(lineStart, selectionStart);\n\n // Patterns\n const olMatch = currentLine.match(/^(\\s*)(\\d+)\\.\\s/);\n const ulMatch = currentLine.match(/^(\\s*)([\\-\\*] )\\s*/);\n const taskMatch = currentLine.match(/^(\\s*)(\\[[\\s xX]\\] )\\s*/);\n const isEmptyList = currentLine.match(/^(\\s*)(\\d+\\.\\s|[\\-\\*]\\s|\\[[\\s xX]\\]\\s)$/);\n\n // Exit list if line is empty\n if (isEmptyList) {\n event.preventDefault();\n const before = value.substring(0, lineStart);\n const after = value.substring(selectionStart);\n this.textarea.value = before + \"\\n\" + after;\n this.textarea.setSelectionRange(lineStart + 1, lineStart + 1);\n this.editor.render(); // Trigger editor refresh\n return;\n }\n\n let continuation = null;\n if (olMatch) {\n continuation = `${olMatch[1]}${parseInt(olMatch[2]) + 1}. `;\n } else if (taskMatch) {\n continuation = `${taskMatch[1]}[ ] `;\n } else if (ulMatch) {\n continuation = `${ulMatch[1]}${ulMatch[2]}`;\n }\n\n if (continuation) {\n event.preventDefault();\n // Use the editor's existing helper\n this.editor.insertText(`\\n${continuation}`); \n // editor.insertText usually calls render(), \n // but we call it again to be safe if it doesn't\n this.editor.render(); \n }\n }\n}\n\nexport default ListManager;","export default class Diff {\n diff(oldStr, newStr, \n // Type below is not accurate/complete - see above for full possibilities - but it compiles\n options = {}) {\n let callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n else if ('callback' in options) {\n callback = options.callback;\n }\n // Allow subclasses to massage the input prior to running\n const oldString = this.castInput(oldStr, options);\n const newString = this.castInput(newStr, options);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n const newTokens = this.removeEmpty(this.tokenize(newString, options));\n return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options);\n if (callback) {\n setTimeout(function () { callback(value); }, 0);\n return undefined;\n }\n else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: undefined }];\n // Seed editLength = 0, i.e. the content starts with the same values\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // Identity per the equality and tokenizer\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n // Once we hit the right edge of the edit graph on some diagonal k, we can\n // definitely reach the end of the edit graph in no more than k edits, so\n // there's no point in considering any moves to diagonal k+1 any more (from\n // which we're guaranteed to need at least k+1 more edits).\n // Similarly, once we've reached the bottom of the edit graph, there's no\n // point considering moves to lower diagonals.\n // We record this fact by setting minDiagonalToConsider and\n // maxDiagonalToConsider to some finite value once we've hit the edge of\n // the edit graph.\n // This optimization is not faithful to the original algorithm presented in\n // Myers's paper, which instead pointlessly extends D-paths off the end of\n // the edit graph - see page 7 of Myers's paper which notes this point\n // explicitly and illustrates it with a diagram. This has major performance\n // implications for some common scenarios. For instance, to compute a diff\n // where the new text simply appends d characters on the end of the\n // original text of length n, the true Myers algorithm will take O(n+d^2)\n // time while this optimization needs only O(n+d) time.\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n // Main worker method. checks all permutations of a given edit length for acceptance.\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n // No one else is going to attempt to use this value, clear it\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath - 1] = undefined;\n }\n let canAdd = false;\n if (addPath) {\n // what newPos will be after we do an insertion:\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath] = undefined;\n continue;\n }\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the old string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n basePath = this.addToPath(addPath, true, false, 0, options);\n }\n else {\n basePath = this.addToPath(removePath, false, true, 1, options);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // If we have hit the end of both strings, then we are done\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n }\n else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(undefined);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n }());\n }\n else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path, added, removed, oldPosInc, options) {\n const last = path.lastComponent;\n if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n };\n }\n else {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options) {\n if (options.comparator) {\n return options.comparator(left, right);\n }\n else {\n return left === right\n || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n }\n }\n removeEmpty(array) {\n const ret = [];\n for (let i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options) {\n return Array.from(value);\n }\n join(chars) {\n // Assumes ValueT is string, which is the case for most subclasses.\n // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n // assume tokens and values are strings, but not completely - is weird and janky.\n return chars.join('');\n }\n postProcess(changeObjects, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n options) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n // First we convert our linked list of components in reverse order to an\n // array in the right order:\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = this.join(value);\n }\n else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n}\n","import Diff from './base.js';\nclass CharacterDiff extends Diff {\n}\nexport const characterDiff = new CharacterDiff();\nexport function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n}\n","import { diffChars } from 'diff';\n\nexport default class UndoRedoManager {\n constructor(editor) {\n this.editor = editor;\n this.textarea = editor.usertextarea;\n this.undoStack = [];\n this.redoStack = [];\n \n // Internal tracking\n this.lastValue = this.textarea.value;\n this.lastSelection = {\n selectionStart: this.textarea.selectionStart,\n selectionEnd: this.textarea.selectionEnd\n };\n\n // Settings\n this.debounceDelay = 1000;\n this.maxStackSize = 100;\n this._debounceTimer = null;\n\n this._bindEvents();\n }\n\n _bindEvents() {\n this.textarea.addEventListener('keydown', (e) => this._onKeyDown(e));\n \n // Listen for selection changes to \"pre-save\" state before an overwrite happens\n this.textarea.addEventListener('select', () => this._updateLastSelection());\n this.textarea.addEventListener('mousedown', () => {\n // Check selection after a short delay to let the click finish\n setTimeout(() => this._updateLastSelection(), 0);\n });\n\n this.textarea.addEventListener('beforeinput', (e) => {\n if (e.inputType === 'historyUndo') {\n e.preventDefault();\n this.undo();\n } else if (e.inputType === 'historyRedo') {\n e.preventDefault();\n this.redo();\n }\n });\n\n this.textarea.addEventListener('input', (e) => this._onInput(e));\n this.textarea.addEventListener('paste', () => this._saveState());\n this.textarea.addEventListener('blur', () => this._saveState());\n }\n\n _updateLastSelection() {\n // We only care about updating this if the value hasn't changed yet.\n // This marks the \"starting point\" for the next undo step.\n this.lastSelection = {\n selectionStart: this.textarea.selectionStart,\n selectionEnd: this.textarea.selectionEnd\n };\n }\n\n _onKeyDown(e) {\n const modifier = e.metaKey || e.ctrlKey;\n const isZ = e.key.toLowerCase() === 'z';\n const isY = e.key.toLowerCase() === 'y';\n const isShift = e.shiftKey;\n\n // 1. CRITICAL: Save state before selection is overwritten or deleted\n const hasSelection = this.textarea.selectionStart !== this.textarea.selectionEnd;\n const isDeletiveKey = e.key === 'Backspace' || e.key === 'Delete' || e.key === 'Enter';\n\n if (hasSelection && (e.key.length === 1 || isDeletiveKey)) {\n this._saveState();\n }\n\n // 2. Save state on structural keys (Enter, Delete, etc.) or generic Modifiers\n if (modifier || isDeletiveKey) {\n this._saveState();\n }\n\n // 3. UNDO: (Cmd+Z or Ctrl+Z)\n if (modifier && isZ && !isShift) {\n e.preventDefault();\n this.undo();\n } \n \n // 4. REDO: (Cmd+Shift+Z, Ctrl+Shift+Z, or Ctrl+Y)\n else if (modifier && ( (isShift && isZ) || (!e.metaKey && isY) )) {\n e.preventDefault();\n this.redo();\n }\n }\n\n _onInput(e) {\n clearTimeout(this._debounceTimer);\n const value = this.textarea.value;\n const lastChar = value[this.textarea.selectionStart - 1];\n \n if (lastChar && /[\\s.,;:!?()\\[\\]{}'\"`~]/.test(lastChar)) {\n this._saveState();\n } else {\n this._debounceTimer = setTimeout(() => this._saveState(), this.debounceDelay);\n }\n }\n\n _saveState() {\n const newValue = this.textarea.value || '';\n \n // 1. If nothing changed, exit immediately to save CPU\n if (newValue === this.lastValue) return;\n\n // 2. Clear any pending debounced timers so we don't save twice\n clearTimeout(this._debounceTimer);\n\n const diff = diffChars(this.lastValue, newValue);\n \n this.undoStack.push({\n diff,\n selection: { ...this.lastSelection }\n });\n\n // --- Performance Optimization: Max Depth ---\n // If the stack exceeds the limit, remove the oldest entry (bottom of stack)\n if (this.undoStack.length > this.maxStackSize) {\n this.undoStack.shift(); \n }\n\n this.lastValue = newValue;\n this._updateLastSelection();\n this.redoStack = []; // Standard: typing new text clears redo history\n }\n\n undo() {\n if (this.undoStack.length === 0) return;\n\n const lastStep = this.undoStack.pop();\n const prevValue = this._revertDiff(this.lastValue, lastStep.diff);\n\n this.redoStack.push({\n diff: lastStep.diff,\n selection: { \n selectionStart: this.textarea.selectionStart, \n selectionEnd: this.textarea.selectionEnd \n }\n });\n\n this._restoreState(prevValue, lastStep.selection);\n }\n\n redo() {\n if (this.redoStack.length === 0) return;\n\n const redoStep = this.redoStack.pop();\n const newValue = this._applyDiff(this.lastValue, redoStep.diff);\n\n this.undoStack.push({\n diff: redoStep.diff,\n selection: { ...this.lastSelection }\n });\n\n this._restoreState(newValue, redoStep.selection);\n }\n\n _applyDiff(oldValue, diff) {\n let newValue = '';\n diff.forEach(part => { if (!part.removed) newValue += part.value; });\n return newValue;\n }\n\n _revertDiff(currentValue, diff) {\n let oldValue = '';\n diff.forEach(part => { if (!part.added) oldValue += part.value; });\n return oldValue;\n }\n\n _restoreState(value, selection) {\n this.textarea.value = value;\n this.textarea.setSelectionRange(selection.selectionStart, selection.selectionEnd);\n this.lastValue = value;\n this.lastSelection = { ...selection };\n \n if (this.editor.render) this.editor.render();\n this.textarea.focus();\n }\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/**\n * marked v17.0.3 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction M(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=M();function H(u){T=u}var _={exec:()=>null};function k(u,e=\"\"){let t=typeof u==\"string\"?u:u.source,n={replace:(r,i)=>{let s=typeof i==\"string\"?i:i.source;return s=s.replace(m.caret,\"$1\"),t=t.replace(r,s),n},getRegex:()=>new RegExp(t,e)};return n}var Re=(()=>{try{return!!new RegExp(\"(?<=1)(?<!1)\")}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,unescapeTest:/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:u=>new RegExp(`^( {0,3}${u})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}#`),htmlBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}<(?:[a-z].*>|!--)`,\"i\"),blockquoteBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}>`)},Te=/^(?:[ \\t]*(?:\\n|$))+/,Oe=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,we=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,I=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,ye=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,N=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,re=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,se=k(re).replace(/bull/g,N).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Pe=k(re).replace(/bull/g,N).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),Q=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,Se=/^[^\\n]+/,F=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,$e=k(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",F).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),_e=k(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,N).getRegex(),q=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",j=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,Le=k(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",j).replace(\"tag\",q).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),ie=k(Q).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",q).getRegex(),Me=k(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",ie).getRegex(),U={blockquote:Me,code:Oe,def:$e,fences:we,heading:ye,hr:I,html:Le,lheading:se,list:_e,newline:Te,paragraph:ie,table:_,text:Se},te=k(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",q).getRegex(),ze={...U,lheading:Pe,table:te,paragraph:k(Q).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",te).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",q).getRegex()},Ce={...U,html:k(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",j).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:k(Q).replace(\"hr\",I).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",se).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ae=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ie=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,oe=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ee=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,v=/[\\p{P}\\p{S}]/u,K=/[\\s\\p{P}\\p{S}]/u,ae=/[^\\s\\p{P}\\p{S}]/u,Be=k(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,K).getRegex(),le=/(?!~)[\\p{P}\\p{S}]/u,De=/(?!~)[\\s\\p{P}\\p{S}]/u,qe=/(?:[^\\s\\p{P}\\p{S}]|~)/u,ue=/(?![*_])[\\p{P}\\p{S}]/u,ve=/(?![*_])[\\s\\p{P}\\p{S}]/u,Ge=/(?:[^\\s\\p{P}\\p{S}]|[*_])/u,He=k(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",Re?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),pe=/^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/,Ze=k(pe,\"u\").replace(/punct/g,v).getRegex(),Ne=k(pe,\"u\").replace(/punct/g,le).getRegex(),ce=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Qe=k(ce,\"gu\").replace(/notPunctSpace/g,ae).replace(/punctSpace/g,K).replace(/punct/g,v).getRegex(),Fe=k(ce,\"gu\").replace(/notPunctSpace/g,qe).replace(/punctSpace/g,De).replace(/punct/g,le).getRegex(),je=k(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,ae).replace(/punctSpace/g,K).replace(/punct/g,v).getRegex(),Ue=k(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,ue).getRegex(),Ke=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",We=k(Ke,\"gu\").replace(/notPunctSpace/g,Ge).replace(/punctSpace/g,ve).replace(/punct/g,ue).getRegex(),Xe=k(/\\\\(punct)/,\"gu\").replace(/punct/g,v).getRegex(),Je=k(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Ve=k(j).replace(\"(?:-->|$)\",\"-->\").getRegex(),Ye=k(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Ve).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),D=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+[^`]*?`+(?!`)|[^\\[\\]\\\\`])*?/,et=k(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\",D).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),he=k(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",D).replace(\"ref\",F).getRegex(),ke=k(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",F).getRegex(),tt=k(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",he).replace(\"nolink\",ke).getRegex(),ne=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,W={_backpedal:_,anyPunctuation:Xe,autolink:Je,blockSkip:He,br:oe,code:Ie,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:Ze,emStrongRDelimAst:Qe,emStrongRDelimUnd:je,escape:Ae,link:et,nolink:ke,punctuation:Be,reflink:he,reflinkSearch:tt,tag:Ye,text:Ee,url:_},nt={...W,link:k(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",D).getRegex(),reflink:k(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",D).getRegex()},Z={...W,emStrongRDelimAst:Fe,emStrongLDelim:Ne,delLDelim:Ue,delRDelim:We,url:k(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",ne).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",ne).getRegex()},rt={...Z,br:k(oe).replace(\"{2,}\",\"*\").getRegex(),text:k(Z.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},E={normal:U,gfm:ze,pedantic:Ce},z={normal:W,gfm:Z,breaks:rt,pedantic:nt};var st={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},de=u=>st[u];function O(u,e){if(e){if(m.escapeTest.test(u))return u.replace(m.escapeReplace,de)}else if(m.escapeTestNoEncode.test(u))return u.replace(m.escapeReplaceNoEncode,de);return u}function X(u){try{u=encodeURI(u).replace(m.percentDecode,\"%\")}catch{return null}return u}function J(u,e){let t=u.replace(m.findPipe,(i,s,a)=>{let o=!1,l=s;for(;--l>=0&&a[l]===\"\\\\\";)o=!o;return o?\"|\":\" |\"}),n=t.split(m.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;r<n.length;r++)n[r]=n[r].trim().replace(m.slashPipe,\"|\");return n}function C(u,e,t){let n=u.length;if(n===0)return\"\";let r=0;for(;r<n;){let i=u.charAt(n-r-1);if(i===e&&!t)r++;else if(i!==e&&t)r++;else break}return u.slice(0,n-r)}function ge(u,e){if(u.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<u.length;n++)if(u[n]===\"\\\\\")n++;else if(u[n]===e[0])t++;else if(u[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function fe(u,e=0){let t=e,n=\"\";for(let r of u)if(r===\"\t\"){let i=4-t%4;n+=\" \".repeat(i),t+=i}else n+=r,t++;return n}function me(u,e,t,n,r){let i=e.href,s=e.title||null,a=u[1].replace(r.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let o={type:u[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:i,title:s,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,o}function it(u,e,t){let n=u.match(t.other.indentCodeCompensation);if(n===null)return e;let r=n[1];return e.split(`\n`).map(i=>{let s=i.match(t.other.beginningSpace);if(s===null)return i;let[a]=s;return a.length>=r.length?i.slice(r.length):i}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:t[0],codeBlockStyle:\"indented\",text:this.options.pedantic?n:C(n,`\n`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=it(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=C(n,\"#\");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:\"heading\",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:C(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=C(t[0],`\n`).split(`\n`),r=\"\",i=\"\",s=[];for(;n.length>0;){let a=!1,o=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))o.push(n[l]),a=!0;else if(!a)o.push(n[l]);else break;n=n.slice(l);let p=o.join(`\n`),c=p.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");r=r?`${r}\n${p}`:p,i=i?`${i}\n${c}`:c;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=d,n.length===0)break;let h=s.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);s[s.length-1]=S,r=r.substring(0,r.length-R.raw.length)+S.raw,i=i.substring(0,i.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);s[s.length-1]=S,r=r.substring(0,r.length-h.raw.length)+S.raw,i=i.substring(0,i.length-R.raw.length)+S.raw,n=f.substring(s.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:r,tokens:s,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:\"list\",raw:\"\",ordered:r,start:r?+n.slice(0,-1):\"\",loose:!1,items:[]};n=r?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=r?n:\"[*+-]\");let s=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,p=\"\",c=\"\";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let d=fe(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!d.trim(),f=0;if(this.options.pedantic?(f=2,c=d.trimStart()):R?f=t[1].length+1:(f=d.search(this.rules.other.nonSpaceChar),f=f>4?1:f,c=d.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(p+=h+`\n`,e=e.substring(h.length+1),l=!0),!l){let S=this.rules.other.nextBulletRegex(f),V=this.rules.other.hrRegex(f),Y=this.rules.other.fencesBeginRegex(f),ee=this.rules.other.headingBeginRegex(f),xe=this.rules.other.htmlBeginRegex(f),be=this.rules.other.blockquoteBeginRegex(f);for(;e;){let G=e.split(`\n`,1)[0],A;if(h=G,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),A=h):A=h.replace(this.rules.other.tabCharGlobal,\" \"),Y.test(h)||ee.test(h)||xe.test(h)||be.test(h)||S.test(h)||V.test(h))break;if(A.search(this.rules.other.nonSpaceChar)>=f||!h.trim())c+=`\n`+A.slice(f);else{if(R||d.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||Y.test(d)||ee.test(d)||V.test(d))break;c+=`\n`+h}R=!h.trim(),p+=G+`\n`,e=e.substring(G.length+1),d=A.slice(f)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(a=!0)),i.items.push({type:\"list_item\",raw:p,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=p}let o=i.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items){if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),l.task){if(l.text=l.text.replace(this.rules.other.listReplaceTask,\"\"),l.tokens[0]?.type===\"text\"||l.tokens[0]?.type===\"paragraph\"){l.tokens[0].raw=l.tokens[0].raw.replace(this.rules.other.listReplaceTask,\"\"),l.tokens[0].text=l.tokens[0].text.replace(this.rules.other.listReplaceTask,\"\");for(let c=this.lexer.inlineQueue.length-1;c>=0;c--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[c].src)){this.lexer.inlineQueue[c].src=this.lexer.inlineQueue[c].src.replace(this.rules.other.listReplaceTask,\"\");break}}let p=this.rules.other.listTaskCheckbox.exec(l.raw);if(p){let c={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};l.checked=c.checked,i.loose?l.tokens[0]&&[\"paragraph\",\"text\"].includes(l.tokens[0].type)&&\"tokens\"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=c.raw+l.tokens[0].raw,l.tokens[0].text=c.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(c)):l.tokens.unshift({type:\"paragraph\",raw:c.raw,text:c.raw,tokens:[c]}):l.tokens.unshift(c)}}if(!i.loose){let p=l.tokens.filter(d=>d.type===\"space\"),c=p.length>0&&p.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=c}}if(i.loose)for(let l of i.items){l.loose=!0;for(let p of l.tokens)p.type===\"text\"&&(p.type=\"paragraph\")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:\"html\",block:!0,raw:t[0],pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=J(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],s={type:\"table\",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?s.align.push(\"right\"):this.rules.other.tableAlignCenter.test(a)?s.align.push(\"center\"):this.rules.other.tableAlignLeft.test(a)?s.align.push(\"left\"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of i)s.rows.push(J(a,s.header.length).map((o,l)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:\"heading\",raw:t[0],depth:t[2].charAt(0)===\"=\"?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=C(n.slice(0,-1),\"\\\\\");if((n.length-s.length)%2===0)return}else{let s=ge(t[2],\"()\");if(s===-2)return;if(s>-1){let o=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=\"\"}}let r=t[2],i=\"\";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):\"\";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),me(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\"),title:i&&i.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:\"text\",raw:s,text:s}}return me(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let r=this.rules.inline.emStrongLDelim.exec(e);if(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,a,o,l=s,p=0,c=r[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);(r=c.exec(t))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){l+=o;continue}else if((r[5]||r[6])&&s%3&&!((s+o)%3)){p+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+p);let d=[...r[0]][0].length,h=e.slice(0,s+r.index+d+o);if(Math.min(s,o)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let r=this.rules.inline.delLDelim.exec(e);if(!r)return;if(!(r[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,a,o,l=s,p=this.rules.inline.delRDelim;for(p.lastIndex=0,t=t.slice(-1*e.length+s);(r=p.exec(t))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a||(o=[...a].length,o!==s))continue;if(r[3]||r[4]){l+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l);let c=[...r[0]][0].length,d=e.slice(0,s+r.index+c+o),h=d.slice(s,-s);return{type:\"del\",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]===\"@\"?(n=t[1],r=\"mailto:\"+n):(n=t[1],r=n),{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]===\"@\")n=t[0],r=\"mailto:\"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(i!==t[0]);n=t[0],t[1]===\"www.\"?r=\"http://\"+t[0]:r=t[0]}return{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class u{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:E.normal,inline:z.normal};this.options.pedantic?(t.block=E.pedantic,t.inline=z.pedantic):this.options.gfm&&(t.block=E.gfm,this.options.breaks?t.inline=z.breaks:t.inline=z.gfm),this.tokenizer.rules=t}static get rules(){return{block:E,inline:z}}static lex(e,t){return new u(t).lex(e)}static lexInline(e,t){return new u(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));e;){let r;if(this.options.extensions?.block?.some(s=>(r=s.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let s=t.at(-1);r.raw.length===1&&s!==void 0?s.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let s=1/0,a=e.slice(1),o;this.options.extensions.startBlock.forEach(l=>{o=l.call({lexer:this},a),typeof o==\"number\"&&o>=0&&(s=Math.min(s,o))}),s<1/0&&s>=0&&(i=e.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let s=t.at(-1);n&&s?.type===\"paragraph\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(e){let s=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)o.includes(r[0].slice(r[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,r.index)+\"[\"+\"a\".repeat(r[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)i=r[2]?r[2].length:0,n=n.slice(0,r.index+i)+\"[\"+\"a\".repeat(r[0].length-i-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let s=!1,a=\"\";for(;e;){s||(a=\"\"),s=!1;let o;if(this.options.extensions?.inline?.some(p=>(o=p.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let p=t.at(-1);o.type===\"text\"&&p?.type===\"text\"?(p.raw+=o.raw,p.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,a)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,a)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let l=e;if(this.options.extensions?.startInline){let p=1/0,c=e.slice(1),d;this.options.extensions.startInline.forEach(h=>{d=h.call({lexer:this},c),typeof d==\"number\"&&d>=0&&(p=Math.min(p,d))}),p<1/0&&p>=0&&(l=e.substring(0,p+1))}if(o=this.tokenizer.inlineText(l)){e=e.substring(o.raw.length),o.raw.slice(-1)!==\"_\"&&(a=o.raw.slice(-1)),s=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=o.raw,p.text+=o.text):t.push(o);continue}if(e){let p=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return t}};var y=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let r=(t||\"\").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,\"\")+`\n`;return r?'<pre><code class=\"language-'+O(r)+'\">'+(n?i:O(i,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?i:O(i,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,r=\"\";for(let a=0;a<e.items.length;a++){let o=e.items[a];r+=this.listitem(o)}let i=t?\"ol\":\"ul\",s=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+i+s+`>\n`+r+\"</\"+i+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r=\"\";for(let i=0;i<e.rows.length;i++){let s=e.rows[i];n=\"\";for(let a=0;a<s.length;a++)n+=this.tablecell(s[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+r+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=X(e);if(i===null)return r;e=i;let s='<a href=\"'+e+'\"';return t&&(s+=' title=\"'+O(t)+'\"'),s+=\">\"+r+\"</a>\",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=X(e);if(i===null)return O(n);e=i;let s=`<img src=\"${e}\" alt=\"${O(n)}\"`;return t&&(s+=` title=\"${O(t)}\"`),s+=\">\",s}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:O(e.text)}};var $=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class u{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(e,t){return new u(t).parse(e)}static parseInline(e,t){return new u(t).parseInline(e)}parse(e){let t=\"\";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let s=r,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(s.type)){t+=a||\"\";continue}}let i=r;switch(i.type){case\"space\":{t+=this.renderer.space(i);break}case\"hr\":{t+=this.renderer.hr(i);break}case\"heading\":{t+=this.renderer.heading(i);break}case\"code\":{t+=this.renderer.code(i);break}case\"table\":{t+=this.renderer.table(i);break}case\"blockquote\":{t+=this.renderer.blockquote(i);break}case\"list\":{t+=this.renderer.list(i);break}case\"checkbox\":{t+=this.renderer.checkbox(i);break}case\"html\":{t+=this.renderer.html(i);break}case\"def\":{t+=this.renderer.def(i);break}case\"paragraph\":{t+=this.renderer.paragraph(i);break}case\"text\":{t+=this.renderer.text(i);break}default:{let s='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(s),\"\";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(i.type)){n+=a||\"\";continue}}let s=i;switch(s.type){case\"escape\":{n+=t.text(s);break}case\"html\":{n+=t.html(s);break}case\"link\":{n+=t.link(s);break}case\"image\":{n+=t.image(s);break}case\"checkbox\":{n+=t.checkbox(s);break}case\"strong\":{n+=t.strong(s);break}case\"em\":{n+=t.em(s);break}case\"codespan\":{n+=t.codespan(s);break}case\"br\":{n+=t.br(s);break}case\"del\":{n+=t.del(s);break}case\"text\":{n+=t.text(s);break}default:{let a='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(a),\"\";throw new Error(a)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?x.lex:x.lexInline}provideParser(){return this.block?b.parse:b.parseInline}};var B=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=$;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case\"table\":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,t));break}case\"list\":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error(\"extension name required\");if(\"renderer\"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if(\"tokenizer\"in i){if(!i.level||i.level!==\"block\"&&i.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level===\"block\"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level===\"inline\"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}\"childTokens\"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new y(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if([\"options\",\"parser\"].includes(s))continue;let a=s,o=n.renderer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c||\"\"}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new w(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(s))continue;let a=s,o=n.tokenizer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new P;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if([\"options\",\"block\"].includes(s))continue;let a=s,o=n.hooks[a],l=i[a];P.passThroughHooks.has(s)?i[a]=p=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await o.call(i,p);return l.call(i,d)})();let c=o.call(i,p);return l.call(i,c)}:i[a]=(...p)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(i,p);return d===!1&&(d=await l.apply(i,p)),d})();let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return a(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return a(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(n):n,p=await(s.hooks?await s.hooks.provideLexer():e?x.lex:x.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(p):p;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser():e?b.parse:b.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let l=(s.hooks?s.hooks.provideLexer():e?x.lex:x.lexInline)(n,s);s.hooks&&(l=s.hooks.processAllTokens(l)),s.walkTokens&&this.walkTokens(l,s.walkTokens);let c=(s.hooks?s.hooks.provideParser():e?b.parse:b.parseInline)(l,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let r=\"<p>An error occurred:</p><pre>\"+O(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var L=new B;function g(u,e){return L.parse(u,e)}g.options=g.setOptions=function(u){return L.setOptions(u),g.defaults=L.defaults,H(g.defaults),g};g.getDefaults=M;g.defaults=T;g.use=function(...u){return L.use(...u),g.defaults=L.defaults,H(g.defaults),g};g.walkTokens=function(u,e){return L.walkTokens(u,e)};g.parseInline=L.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=$;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var Ut=g.options,Kt=g.setOptions,Wt=g.use,Xt=g.walkTokens,Jt=g.parseInline,Vt=g,Yt=b.parse,en=x.lex;export{P as Hooks,x as Lexer,B as Marked,b as Parser,y as Renderer,$ as TextRenderer,w as Tokenizer,T as defaults,M as getDefaults,en as lexer,g as marked,Ut as options,Vt as parse,Jt as parseInline,Yt as parser,Kt as setOptions,Wt as use,Xt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","import '../styles/main.css';\nimport { marked } from 'marked';\nimport Toolbar from './toolbar/Toolbar.js';\nimport Preview from './Preview.js';\nimport UndoRedoManager from '../utils/UndoRedoManager.js';\nimport IndentManager from '../utils/IndentManager.js';\nimport ListManager from '../utils/ListManager.js';\n\nmarked.setOptions({\n breaks: true\n});\n\nclass MarkdownEditor {\n constructor(selector, options = {}) {\n this.usertextarea = typeof selector === 'string' ? document.querySelector(selector) : selector;\n this.options = options;\n this.mode = options.mode || 'plain';\n this.preview = (this.options.toolbar) ? this.options.toolbar.includes('preview') : true;\n this.previewTimer = null;\n this.init();\n this.undoRedoManager = new UndoRedoManager(this);\n this.listManager = new ListManager(this);\n this.indentManager = new IndentManager(this);\n }\n\n init() {\n this.createEditor();\n this.addToolbar();\n }\n\n createEditor() {\n if (!this.isTextareaValid()) return;\n\n this.applyDefaultAttributes();\n this.buildEditorLayout();\n this.addInputListener();\n this.render();\n }\n\n isTextareaValid() {\n return this.usertextarea.tagName === 'TEXTAREA';\n }\n\n applyDefaultAttributes() {\n this.usertextarea.classList.add(\n \"textarea\",\n \"fj:focus:ring-0\",\n \"fj:focus:outline-0\",\n \"fj:border-0\",\n \"fj:px-4\",\n \"fj:py-2\",\n \"fj:max-w-full\",\n \"fj:size-full\",\n \"fj:bg-transparent\",\n \"fj:outline-0\",\n \"fj:appearance-none\",\n \"fj:overflow-y-auto\",\n );\n if (!this.usertextarea.hasAttribute('placeholder')) {\n this.usertextarea.placeholder = this.options.placeholder || 'Write your markdown...';\n }\n }\n\n buildEditorLayout() {\n this.editorContainer = document.createElement('div');\n this.editorContainer.className = `\n markdown-editor-wrapper\n fj:surface\n fj:surface-outline\n fj:surface-rounded\n fj:overflow-hidden\n `;\n this.usertextarea.parentNode.insertBefore(this.editorContainer, this.usertextarea);\n\n this.markdownEditorDiv = document.createElement('div');\n this.markdownEditorDiv.className = `editor-layout fj:relative fj:grid fj:grid-cols-1`;\n this.editorContainer.appendChild(this.markdownEditorDiv);\n\n this.addTextareaWrapper();\n if (this.preview) this.addPreviewWrapper();\n }\n\n addTextareaWrapper() {\n const textareaContainer = document.createElement('div');\n textareaContainer.className = `\n textarea-wrapper\n not-prose\n fj:surface\n fj:h-full\n fj:grid\n `;\n\n if(this.mode == 'hybrid'){\n this.displayLayer = document.createElement('div');\n this.displayLayer.setAttribute('data-placeholder', this.usertextarea.placeholder);\n this.displayLayer.setAttribute(\"aria-hidden\", true);\n this.displayLayer.className = `\n display-layer\n fj:px-4\n fj:py-2\n fj:whitespace-pre-wrap fj:wrap-break-word \n fj:pointer-events-none \n fj:[grid-area:1/1/2/2]\n fj:size-full\n fj:m-0\n fj:box-border\n fj:z-0\n fj:overflow-y-auto\n fj:empty:after:content-[attr(data-placeholder)]\n fj:empty:after:absolute\n fj:empty:after:inset-0\n fj:empty:after:px-4\n fj:empty:after:py-2\n fj:empty:after:text-[CanvasText]\n fj:empty:after:opacity-50\n `;\n\n this.usertextarea.className += `\n fj:text-transparent \n fj:caret-primary\n fj:resize-none\n fj:outline-none\n fj:[grid-area:1/1/2/2]\n fj:m-0\n fj:box-border\n fj:relative\n fj:z-10 \n `;\n\n textareaContainer.appendChild(this.displayLayer);\n }\n\n textareaContainer.appendChild(this.usertextarea);\n this.markdownEditorDiv.appendChild(textareaContainer);\n }\n\n \n\n addPreviewWrapper() {\n const previewInstance = new Preview(this.markdownEditorDiv);\n this.previewContent = previewInstance.getPreviewContent();\n }\n\n addInputListener() {\n this.usertextarea.addEventListener('input', () => {\n this.renderHybrid(); // Fast: Only Regex\n this.debouncedPreview(); // Slow: Heavy Markdown Parse\n });\n\n this.usertextarea.addEventListener('scroll', () => {\n if (this.mode === 'hybrid') {\n // PIXEL PERFECT SYNC: Do not use ratios for the hybrid layer\n this.displayLayer.scrollTop = this.usertextarea.scrollTop;\n this.displayLayer.scrollLeft = this.usertextarea.scrollLeft;\n }\n\n if (this.preview && this.previewContent) {\n // RATIO SYNC: Use ratio only for the fully rendered preview\n const textarea = this.usertextarea;\n const ratio = textarea.scrollTop / (textarea.scrollHeight - textarea.clientHeight);\n this.previewContent.scrollTop = ratio * (this.previewContent.scrollHeight - this.previewContent.clientHeight);\n }\n });\n }\n\n debouncedPreview() {\n if (!this.preview) return;\n clearTimeout(this.previewTimer);\n this.previewTimer = setTimeout(() => {\n this.previewContent.innerHTML = marked(this.usertextarea.value);\n }, 150); // 150ms delay feels instant but saves CPU\n }\n\n addToolbar() {\n new Toolbar(\n this,\n this.options.toolbar ||\n [\n // History/System (Usually far left)\n 'undo', \n 'redo',\n \n // Block Structure\n 'heading', \n 'blockquote', \n \n // Lists & Indentation\n 'ul', \n 'ol', \n 'checklist', \n 'outdent', \n 'indent', \n \n // Inline Formatting\n 'bold', \n 'italic', \n 'strikethrough', \n \n // Rich Media/Links\n 'link', \n 'image',\n \n // View/Preview (Usually far right)\n 'preview'\n ]\n );\n }\n\n insertText(text) {\n const { selectionStart, selectionEnd } = this.usertextarea;\n const value = this.usertextarea.value;\n this.usertextarea.value = `${value.substring(0, selectionStart)}${text}${value.substring(selectionEnd)}`;\n this.usertextarea.focus();\n this.usertextarea.setSelectionRange(selectionStart, selectionStart + text.length);\n\n // Scroll the textarea to the inserted text\n this.scrollToView();\n\n this.render();\n }\n\n scrollToView() {\n const textarea = this.usertextarea;\n \n // Calculate the position of the inserted text\n const selectionStart = textarea.selectionStart;\n \n // Get the line height (height of each row of text)\n const lineHeight = parseInt(window.getComputedStyle(textarea).lineHeight);\n \n // Get how many rows fit into the visible area of the textarea\n const rowsInView = Math.floor(textarea.clientHeight / lineHeight);\n \n // Calculate the current line number of the selectionStart\n const currentLine = Math.floor(selectionStart / textarea.cols);\n \n // Scroll to the line number that places the inserted text in the center\n const targetScrollTop = (currentLine - Math.floor(rowsInView / 2)) * lineHeight;\n \n // Adjust scrollTop to center the cursor's line in the view\n textarea.scrollTop = targetScrollTop;\n }\n \n\n renderHybrid() {\n if (this.mode !== 'hybrid') return;\n\n const rawValue = this.usertextarea.value;\n let highlighted = rawValue\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n\n // SYNTAX HIGHLIGHTING CHAIN\n highlighted = highlighted\n\n // code block\n .replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, \n '<span class=\"fj:opacity-30\">```$1</span>\\n$2<span class=\"fj:opacity-30\">```</span>')\n\n // Inline Code (Single Backtick)\n .replace(/`([^`\\n]+)`/g, \n '<span class=\"fj:bg-surface\">$1</span>')\n\n // Headers\n .replace(/^(#+ )(.*)$/gm, \n '<span class=\"fj:text-primary\"><span class=\"fj:opacity-40\">$1</span><span class=\"fj:font-bold fj:tracking-[-0.040em]\">$2</span></span>')\n \n // Bold \n .replace(/\\*\\*(.*?)\\*\\*/g, \n '<span class=\"fj:text-secondary\"><span class=\"fj:opacity-40\">**</span><span class=\"fj:font-bold fj:tracking-[-0.040em]\">$1</span><span class=\"fj:opacity-40\">**</span></span>')\n\n // Lists (UL, OL, Checklist)\n // Matches: \"- \", \"* \", \"1. \", \"[ ] \", \"[x] \"\n .replace(/^([\\s]*)([\\-\\*] |[\\d]+\\. |\\[[\\s xX]\\] )(.*)$/gm, \n '$1<span class=\"fj:text-primary fj:font-medium\">$2</span>$3')\n\n // Inline Italic (Supports both *italic* and _italic_)\n .replace(/(\\*|_)(.*?)\\1/g, \n '<span class=\"fj:text-accent\"><span class=\"fj:opacity-40\">$1</span><span class=\"fj:italic\">$2</span><span class=\"fj:opacity-40\">$1</span></span>')\n\n // Strikethrough\n // Double ~~text~~\n .replace(/~~(.*?)~~/g, \n '<span class=\"fj:line-through fj:opacity-70\"><span class=\"fj:opacity-40\">~~</span>$1<span class=\"fj:opacity-40\">~~</span></span>')\n \n // Single ~text~ (Optional, only if you want to support both)\n // We use a negative lookbehind/lookahead logic or simply run it after the double replace\n .replace(/(?<!~)(~)([^~]+)\\1(?!~)/g, \n '<span class=\"fj:line-through fj:opacity-70\"><span class=\"fj:opacity-40\">$1</span>$2<span class=\"fj:opacity-40\">$1</span></span>')\n \n // Links & Images\n // Matches  and [text](url)\n .replace(/(!?\\[)(.*?)(\\]\\()(.*?)(\\))/g, \n '<span class=\"fj:opacity-40\">$1</span><span class=\"fj:text-primary\">$2</span><span class=\"fj:opacity-40\">$3</span><span class=\"fj:underline fj:opacity-50\">$4</span><span class=\"fj:opacity-50\">$5</span>')\n\n // Ensure height sync when ending with newline\n if (rawValue.length > 0 && rawValue.endsWith('\\n')) {\n highlighted += ' '; \n }\n\n this.displayLayer.innerHTML = highlighted;\n }\n\n render() {\n // Initial render or manual trigger\n this.renderHybrid();\n if (this.preview) this.previewContent.innerHTML = marked(this.usertextarea.value);\n }\n}\n\nexport default MarkdownEditor;"],"names":["root","factory","exports","module","define","amd","Object","self","this","Preview","container","_classCallCheck","previewContainer","document","createElement","className","previewContent","appendChild","key","value","MakeTool","editor","title","defaultText","concat","button","createButton","iconHtml","_this","btn","btnClass","replace","toLowerCase","innerHTML","type","addEventListener","event","applySyntax","btnWrapper","_MakeTool","BoldTool","_callSuper","_inherits","textarea","usertextarea","selectionStart","selectionEnd","selectedText","substring","syntax","newText","startsWith","endsWith","slice","insertText","ItalicTool","StrikethroughTool","ULTool","OLTool","PreviewTool","preview","_this$editor$previewC","previewWrapper","parentNode","editorDiv","markdownEditorDiv","enablePreview","disablePreview","textareaWrapper","querySelector","classList","toggle","remove","add","render","querySelectorAll","forEach","contains","CheckListTool","BlockQuoteTool","modal","size","bodyHTML","mde","target","closest","modalHTML","insertAdjacentHTML","showModal","LinkTool","linkRegex","test","linkText","match","setRangeText","modalElement","e","preventDefault","linkInput","linkTextInput","validity","valid","link","close","reportValidity","HeadingTool","currentHeading","cleanText","currentLevel","headingCount","length","repeat","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_defineProperties","_toPropertyKey","_typeof","toPrimitive","String","Number","_toPrimitive","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","valueOf","_setPrototypeOf","ImageTool","config","arguments","undefined","fileInputConfig","fileInput","altInputConfig","altInput","required","acceptFormats","accept","map","join","isAltRequired","uploadUrl","customParams","params","imageRegex","fileInputTag","submitBtn","_ref","_callee","fileInputSelector","urlInputSelector","imgFileAltInput","hasFile","file","formData","res","_result","imgLink","imgLinkAlt","_context","files","disabled","textContent","FormData","append","keys","fetch","method","body","json","result","success","image_path","image_alt","alert","error","message","_next","_throw","_x","UndoTool","undoRedoManager","undo","RedoTool","redo","IndentTool","indentManager","indent","OutdentTool","outdent","Toolbar","options","toolbar","init","toolMapping","heading","ul","ol","checklist","bold","italic","strikethrough","blockquote","image","tool","ToolClass","toolName","toolInstance","includes","previewToolInstance","editorContainer","insertBefore","IndentManager","renderCallback","pairs","shiftKey","_triggerUpdate","autoIndent","handleBackspace","handlePairs","char","values","newPos","setSelectionRange","open","newValue","before","after","charBefore","charAfter","lastNewline","lastIndexOf","insertion","tab","dispatchEvent","Event","bubbles","startPos","endPos","indexOf","lines","split","indentedText","line","_applyChange","removedFromFirst","totalRemoved","unindentedText","index","Math","max","newStart","newEnd","ListManager","handleEnter","_this$textarea","lineStart","currentLine","olMatch","ulMatch","taskMatch","continuation","parseInt","Diff","diff","oldStr","newStr","callback","oldString","castInput","newString","oldTokens","removeEmpty","tokenize","newTokens","diffWithOptionsObj","_a","postProcess","setTimeout","newLen","oldLen","editLength","maxEditLength","min","maxExecutionTime","timeout","Infinity","abortAfterTimestamp","Date","now","bestPath","oldPos","lastComponent","extractCommon","buildValues","minDiagonalToConsider","maxDiagonalToConsider","execEditLength","diagonalPath","basePath","removePath","addPath","canAdd","addPathNewPos","canRemove","addToPath","exec","ret","path","added","removed","oldPosInc","last","oneChangePerToken","count","previousComponent","commonCount","equals","left","right","comparator","ignoreCase","array","push","Array","from","chars","changeObjects","useLongestToken","components","nextComponent","reverse","componentLen","componentPos","component","oldValue","characterDiff","UndoRedoManager","undoStack","redoStack","lastValue","lastSelection","debounceDelay","maxStackSize","_debounceTimer","_bindEvents","_onKeyDown","_updateLastSelection","inputType","_onInput","_saveState","modifier","metaKey","ctrlKey","isZ","isY","isShift","hasSelection","isDeletiveKey","_this2","clearTimeout","lastChar","selection","_objectSpread","shift","lastStep","pop","prevValue","_revertDiff","_restoreState","redoStep","_applyDiff","part","currentValue","focus","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","get","obj","prop","hasOwnProperty","M","async","breaks","extensions","gfm","hooks","pedantic","renderer","silent","tokenizer","walkTokens","T","H","_","k","source","s","caret","getRegex","RegExp","Re","codeRemoveIndent","outputLinkReplace","indentCodeCompensation","beginningSpace","endingHash","startingSpaceChar","endingSpaceChar","nonSpaceChar","newLineCharGlobal","tabCharGlobal","multipleSpaceGlobal","blankLine","doubleBlankLine","blockquoteStart","blockquoteSetextReplace","blockquoteSetextReplace2","listReplaceNesting","listIsTask","listReplaceTask","listTaskCheckbox","anyLine","hrefBrackets","tableDelimiter","tableAlignChars","tableRowBlankLine","tableAlignRight","tableAlignCenter","tableAlignLeft","startATag","endATag","startPreScriptTag","endPreScriptTag","startAngleBracket","endAngleBracket","pedanticHrefTitle","unicodeAlphaNumeric","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","unescapeTest","percentDecode","findPipe","splitPipe","slashPipe","carriageReturn","spaceLine","notSpaceStart","endingNewline","listItemRegex","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","htmlBeginRegex","blockquoteBeginRegex","I","N","re","se","Pe","Q","F","$e","_e","q","j","Le","ie","U","code","def","fences","hr","html","lheading","list","newline","paragraph","table","text","te","ze","Ce","oe","K","ae","Be","le","ue","He","pe","Ze","Ne","ce","Qe","Fe","je","Ue","We","Xe","Je","Ve","Ye","D","et","he","ke","ne","W","_backpedal","anyPunctuation","autolink","blockSkip","br","del","delLDelim","delRDelim","emStrongLDelim","emStrongRDelimAst","emStrongRDelimUnd","escape","nolink","punctuation","reflink","reflinkSearch","tag","url","nt","Z","rt","E","normal","z","st","de","O","X","encodeURI","J","trim","at","splice","C","charAt","fe","me","href","other","state","inLink","raw","tokens","inlineTokens","rules","lexer","space","block","codeBlockStyle","it","lang","inline","depth","top","blockTokens","h","R","S","ordered","start","loose","items","trimStart","search","V","Y","ee","xe","be","A","task","trimEnd","inlineQueue","src","checked","unshift","filter","some","pre","header","align","rows","inRawBlock","ge","emStrong","lastIndex","codespan","inlineText","escaped","x","links","lex","lexInline","startBlock","charCodeAt","console","Error","emStrongMask","startInline","parser","parse","parseInline","listitem","checkbox","tablecell","tablerow","strong","em","textRenderer","$","b","renderers","P","static","Set","preprocess","postprocess","processAllTokens","provideLexer","provideParser","L","defaults","setOptions","parseMarkdown","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","childTokens","flat","name","level","passThroughHooks","has","passThroughHooksRespectAsync","onError","toString","all","catch","reject","g","getDefaults","marked","MarkdownEditor","selector","mode","previewTimer","listManager","createEditor","addToolbar","isTextareaValid","applyDefaultAttributes","buildEditorLayout","addInputListener","tagName","hasAttribute","placeholder","addTextareaWrapper","addPreviewWrapper","textareaContainer","displayLayer","setAttribute","previewInstance","getPreviewContent","renderHybrid","debouncedPreview","scrollTop","scrollLeft","ratio","scrollHeight","clientHeight","_this$usertextarea","scrollToView","lineHeight","window","getComputedStyle","rowsInView","floor","targetScrollTop","cols","rawValue","highlighted"],"sourceRoot":""}
|