markdown-text-editor 0.5.0 → 1.0.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.
@@ -1 +1 @@
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/./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-1 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:dark:prose-invert 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-sm 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-1 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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\">\n <path d=\"M8 11H12.5C13.8807 11 15 9.88071 15 8.5C15 7.11929 13.8807 6 12.5 6H8V11ZM18 15.5C18 17.9853 15.9853 20 13.5 20H6V4H12.5C14.9853 4 17 6.01472 17 8.5C17 9.70431 16.5269 10.7981 15.7564 11.6058C17.0979 12.3847 18 13.837 18 15.5ZM8 13V18H13.5C14.8807 18 16 16.8807 16 15.5C16 14.1193 14.8807 13 13.5 13H8Z\"></path>\n </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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M15 20H7V18H9.92661L12.0425 6H9V4H17V6H14.0734L11.9575 18H15V20Z\"></path></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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M17.1538 14C17.3846 14.5161 17.5 15.0893 17.5 15.7196C17.5 17.0625 16.9762 18.1116 15.9286 18.867C14.8809 19.6223 13.4335 20 11.5862 20C9.94674 20 8.32335 19.6185 6.71592 18.8555V16.6009C8.23538 17.4783 9.7908 17.917 11.3822 17.917C13.9333 17.917 15.2128 17.1846 15.2208 15.7196C15.2208 15.0939 15.0049 14.5598 14.5731 14.1173C14.5339 14.0772 14.4939 14.0381 14.4531 14H3V12H21V14H17.1538ZM13.076 11H7.62908C7.4566 10.8433 7.29616 10.6692 7.14776 10.4778C6.71592 9.92084 6.5 9.24559 6.5 8.45207C6.5 7.21602 6.96583 6.165 7.89749 5.299C8.82916 4.43299 10.2706 4 12.2219 4C13.6934 4 15.1009 4.32808 16.4444 4.98426V7.13591C15.2448 6.44921 13.9293 6.10587 12.4978 6.10587C10.0187 6.10587 8.77917 6.88793 8.77917 8.45207C8.77917 8.87172 8.99709 9.23796 9.43293 9.55079C9.86878 9.86362 10.4066 10.1135 11.0463 10.3004C11.6665 10.4816 12.3431 10.7148 13.076 11H13.076Z\"></path></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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M8 4H21V6H8V4ZM4.5 6.5C3.67157 6.5 3 5.82843 3 5C3 4.17157 3.67157 3.5 4.5 3.5C5.32843 3.5 6 4.17157 6 5C6 5.82843 5.32843 6.5 4.5 6.5ZM4.5 13.5C3.67157 13.5 3 12.8284 3 12C3 11.1716 3.67157 10.5 4.5 10.5C5.32843 10.5 6 11.1716 6 12C6 12.8284 5.32843 13.5 4.5 13.5ZM4.5 20.4C3.67157 20.4 3 19.7284 3 18.9C3 18.0716 3.67157 17.4 4.5 17.4C5.32843 17.4 6 18.0716 6 18.9C6 19.7284 5.32843 20.4 4.5 20.4ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z\"></path></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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M8 4H21V6H8V4ZM5 3V6H6V7H3V6H4V4H3V3H5ZM3 14V11.5H5V11H3V10H6V12.5H4V13H6V14H3ZM5 19.5H3V18.5H5V18H3V17H6V21H3V20H5V19.5ZM8 11H21V13H8V11ZM8 18H21V20H8V18Z\"></path></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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M11 5H5V19H11V5ZM13 5V19H19V5H13ZM4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3Z\"></path></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 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 previewWrapper.classList.toggle('fj:hidden');\n\n // Add grid layout and divide classes to the editor div\n editorDiv.classList.remove(\n 'fj:md:grid',\n 'fj:md:grid-cols-2'\n );\n\n editorDiv.querySelector(\".textarea-wrapper\").classList.remove(\n 'fj:h-[90lvh]',\n 'fj:hidden',\n 'fj:md:block'\n );\n this.editor.render(); // Re-render content in the preview\n\n editorDiv.querySelector(\".textarea-wrapper\").querySelector(\"textarea\").classList.remove(\"fj:h-[90lvh]!\");\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 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 previewWrapper.classList.toggle('fj:hidden');\n // Remove grid layout and divide classes from the editor div\n editorDiv.classList.add(\n 'fj:md:grid',\n 'fj:md:grid-cols-2'\n );\n\n editorDiv.querySelector(\".textarea-wrapper\").classList.add(\n 'fj:h-[90lvh]',\n 'fj:hidden',\n 'fj:md:block'\n );\n editorDiv.querySelector(\".textarea-wrapper\").querySelector(\"textarea\").classList.add(\"fj:h-[90lvh]!\");\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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M8.00008 6V9H5.00008V6H8.00008ZM3.00008 4V11H10.0001V4H3.00008ZM13.0001 4H21.0001V6H13.0001V4ZM13.0001 11H21.0001V13H13.0001V11ZM13.0001 18H21.0001V20H13.0001V18ZM10.7072 16.2071L9.29297 14.7929L6.00008 18.0858L4.20718 16.2929L2.79297 17.7071L6.00008 20.9142L10.7072 16.2071Z\"></path></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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M4.58341 17.3211C3.55316 16.2274 3 15 3 13.0103C3 9.51086 5.45651 6.37366 9.03059 4.82318L9.92328 6.20079C6.58804 8.00539 5.93618 10.346 5.67564 11.822C6.21263 11.5443 6.91558 11.4466 7.60471 11.5105C9.40908 11.6778 10.8312 13.159 10.8312 15C10.8312 16.933 9.26416 18.5 7.33116 18.5C6.2581 18.5 5.23196 18.0095 4.58341 17.3211ZM14.5834 17.3211C13.5532 16.2274 13 15 13 13.0103C13 9.51086 15.4565 6.37366 19.0306 4.82318L19.9233 6.20079C16.588 8.00539 15.9362 10.346 15.6756 11.822C16.2126 11.5443 16.9156 11.4466 17.6047 11.5105C19.4091 11.6778 20.8312 13.159 20.8312 15C20.8312 16.933 19.2642 18.5 17.3312 18.5C16.2581 18.5 15.232 18.0095 14.5834 17.3211Z\"></path></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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\">\n <path d=\"M18.3638 15.5355L16.9496 14.1213L18.3638 12.7071C20.3164 10.7545 20.3164 7.58866 18.3638 5.63604C16.4112 3.68341 13.2453 3.68341 11.2927 5.63604L9.87849 7.05025L8.46428 5.63604L9.87849 4.22182C12.6122 1.48815 17.0443 1.48815 19.778 4.22182C22.5117 6.95549 22.5117 11.3876 19.778 14.1213L18.3638 15.5355ZM15.5353 18.364L14.1211 19.7782C11.3875 22.5118 6.95531 22.5118 4.22164 19.7782C1.48797 17.0445 1.48797 12.6123 4.22164 9.87868L5.63585 8.46446L7.05007 9.87868L5.63585 11.2929C3.68323 13.2455 3.68323 16.4113 5.63585 18.364C7.58847 20.3166 10.7543 20.3166 12.7069 18.364L14.1211 16.9497L15.5353 18.364ZM14.8282 7.75736L16.2425 9.17157L9.17139 16.2426L7.75717 14.8284L14.8282 7.75736Z\"></path>\n </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\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\"><path d=\"M17 11V4H19V21H17V13H7V21H5V4H7V11H17Z\"></path></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 this.altInputConfig = config.altInput || 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\">\n <path d=\"M16 5h6\"/><path d=\"M19 2v6\"/><path d=\"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5\"/>\n <path d=\"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"/><circle cx=\"9\" cy=\"9\" r=\"2\"/>\n </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 const acceptFormats = this.fileInputConfig.accept\n ? this.fileInputConfig.accept.map(type => `image/${type}`).join(',')\n : 'image/*'; // Handle file formats\n\n const altRequired = this.altInputConfig.required === undefined ? true : this.altInputConfig.required;\n\n const uploadUrl = this.fileInputConfig.uploadUrl || null;\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 // Check if the selected text contains an image markdown syntax ![alt text](url)\n const imageRegex = /!\\[([^\\]]*)\\]\\(([^)]+)\\)/;\n\n if (selectedText && imageRegex.test(selectedText)) {\n // If the selected text is already an image markdown, extract the alt text and URL\n const match = selectedText.match(imageRegex);\n const altText = match[1]; // Alt text inside the square brackets\n // const imageUrl = match[2]; // URL inside the parentheses\n\n // Replace the selected text with just the text\n textarea.setRangeText(altText, selectionStart, selectionEnd, 'select');\n } else {\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 <form method=\"post\">\n <div class=\"fj:flex fj:flex-col fj:justify-center fj:gap-y-4.5 fj:mt-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}\" ${(altRequired) && 'required'}>\n <button type=\"submit\" class=\"submit-img-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 if(this.fileInputConfig){\n const fileInputSelector = modalElement.querySelector(\".img-file-input\");\n const urlInputSelector = modalElement.querySelector(\".img-link-input\");\n const submitBtnSelector = modalElement.querySelector(\".submit-img-link\");\n\n fileInputSelector.addEventListener(\"change\", async () => {\n const file = fileInputSelector.files[0];\n if (!file || !uploadUrl) return;\n \n submitBtnSelector.disabled = true;\n submitBtnSelector.textContent = 'Uploading...';\n \n const formData = new FormData();\n formData.append('image', file);\n \n try {\n const res = await fetch(uploadUrl, {\n method: 'POST',\n body: formData\n });\n const result = await res.json();\n \n if (result.success && result.path) {\n urlInputSelector.value = result.path;\n submitBtnSelector.disabled = false;\n submitBtnSelector.textContent = 'Apply';\n } else {\n alert('Image upload failed.');\n fileInputSelector.value = ''; // ✅ Reset file input\n submitBtnSelector.disabled = false;\n submitBtnSelector.textContent = 'Apply';\n }\n } catch (err) {\n console.error(err);\n alert('Upload error.');\n fileInputSelector.value = ''; // ✅ Reset file input\n submitBtnSelector.disabled = false;\n submitBtnSelector.textContent = 'Apply';\n }\n });\n }\n \n\n modalElement.querySelector(\".submit-img-link\").addEventListener(\"click\", function(e){\n e.preventDefault();\n let imgLinkInput = modalElement.querySelector(\".img-link-input\");\n let imgLinkAltInput = modalElement.querySelector(\".img-link-alt-input\");\n\n if (!imgLinkInput.validity.valid) {\n imgLinkInput.reportValidity();\n } else if (!imgLinkAltInput.validity.valid) {\n imgLinkAltInput.reportValidity();\n } else {\n const imgLink = imgLinkInput.value;\n let imgLinkAlt = imgLinkAltInput.value;\n\n if(imgLinkAlt == ''){\n imgLinkAlt = '';\n }\n\n let newText = '';\n if (selectedText) {\n newText = `![${selectedText}](${imgLink})`; // Insert the link with selected text\n } else {\n newText = `![${imgLinkAlt}](${imgLink})`; // Insert a placeholder text if nothing is selected\n }\n editor.insertText(newText); // Insert the constructed link markdown\n \n imgLinkInput.value = '';\n imgLinkAltInput.value = '';\n modalElement.close();\n }\n });\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\">\n <path d=\"M3 7v6h6\"/><path d=\"M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\"/>\n </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\">\n <path d=\"M21 7v6h-6\"/><path d=\"M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7\"/>\n </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=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 5H11\"/><path d=\"M21 12H11\"/><path d=\"M21 19H11\"/><path d=\"m3 8 4 4-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=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 5H11\"/><path d=\"M21 12H11\"/><path d=\"M21 19H11\"/><path d=\"m7 8-4 4 4 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-1 fj:surface-outline fj:border-0 fj:border-b fj:flex fj:gap-x-1.5 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(textarea, renderCallback) {\n this.textarea = textarea;\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}","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.1 - a markdown parser\n * Copyright (c) 2018-2025, 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 L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=L();function Z(u){T=u}var C={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 me=(()=>{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,listReplaceTabs:/^\\t+/,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\")},xe=/^(?:[ \\t]*(?:\\n|$))+/,be=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,Re=/^ {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+|$)/,Te=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,N=/(?:[*+-]|\\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(),Oe=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]+)*)/,we=/^[^\\n]+/,F=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,ye=k(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",F).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),Pe=k(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,N).getRegex(),v=\"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]*?(?:-->|$))/,Se=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\",v).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[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),$e=k(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",ie).getRegex(),U={blockquote:$e,code:be,def:ye,fences:Re,heading:Te,hr:I,html:Se,lheading:se,list:Pe,newline:xe,paragraph:ie,table:C,text:we},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[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),_e={...U,lheading:Oe,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[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},Le={...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:C,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()},Me=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,ze=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,oe=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ae=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,D=/[\\p{P}\\p{S}]/u,K=/[\\s\\p{P}\\p{S}]/u,ae=/[^\\s\\p{P}\\p{S}]/u,Ce=k(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,K).getRegex(),le=/(?!~)[\\p{P}\\p{S}]/u,Ie=/(?!~)[\\s\\p{P}\\p{S}]/u,Ee=/(?:[^\\s\\p{P}\\p{S}]|~)/u,Be=k(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",me?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ue=/^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/,qe=k(ue,\"u\").replace(/punct/g,D).getRegex(),ve=k(ue,\"u\").replace(/punct/g,le).getRegex(),pe=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",De=k(pe,\"gu\").replace(/notPunctSpace/g,ae).replace(/punctSpace/g,K).replace(/punct/g,D).getRegex(),He=k(pe,\"gu\").replace(/notPunctSpace/g,Ee).replace(/punctSpace/g,Ie).replace(/punct/g,le).getRegex(),Ze=k(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,ae).replace(/punctSpace/g,K).replace(/punct/g,D).getRegex(),Ge=k(/\\\\(punct)/,\"gu\").replace(/punct/g,D).getRegex(),Ne=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(),Qe=k(j).replace(\"(?:-->|$)\",\"-->\").getRegex(),Fe=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\",Qe).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+[^`]*?`+(?!`)|[^\\[\\]\\\\`])*?/,je=k(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ce=k(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",F).getRegex(),he=k(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",F).getRegex(),Ue=k(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",ce).replace(\"nolink\",he).getRegex(),ne=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,W={_backpedal:C,anyPunctuation:Ge,autolink:Ne,blockSkip:Be,br:oe,code:ze,del:C,emStrongLDelim:qe,emStrongRDelimAst:De,emStrongRDelimUnd:Ze,escape:Me,link:je,nolink:he,punctuation:Ce,reflink:ce,reflinkSearch:Ue,tag:Fe,text:Ae,url:C},Ke={...W,link:k(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:k(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},G={...W,emStrongRDelimAst:He,emStrongLDelim:ve,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()},We={...G,br:k(oe).replace(\"{2,}\",\"*\").getRegex(),text:k(G.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},E={normal:U,gfm:_e,pedantic:Le},M={normal:W,gfm:G,breaks:We,pedantic:Ke};var Xe={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},ke=u=>Xe[u];function w(u,e){if(e){if(m.escapeTest.test(u))return u.replace(m.escapeReplace,ke)}else if(m.escapeTestNoEncode.test(u))return u.replace(m.escapeReplaceNoEncode,ke);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 z(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 de(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 ge(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 Je(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 y=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:z(n,`\n`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Je(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=z(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:z(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=z(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 g=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=g,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`),O=this.blockquote(f);s[s.length-1]=O,r=r.substring(0,r.length-R.raw.length)+O.raw,i=i.substring(0,i.length-R.text.length)+O.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),O=this.list(f);s[s.length-1]=O,r=r.substring(0,r.length-h.raw.length)+O.raw,i=i.substring(0,i.length-R.raw.length)+O.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 g=t[2].split(`\n`,1)[0].replace(this.rules.other.listReplaceTabs,O=>\" \".repeat(3*O.length)),h=e.split(`\n`,1)[0],R=!g.trim(),f=0;if(this.options.pedantic?(f=2,c=g.trimStart()):R?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,c=g.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 O=this.rules.other.nextBulletRegex(f),V=this.rules.other.hrRegex(f),Y=this.rules.other.fencesBeginRegex(f),ee=this.rules.other.headingBeginRegex(f),fe=this.rules.other.htmlBeginRegex(f);for(;e;){let H=e.split(`\n`,1)[0],A;if(h=H,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)||fe.test(h)||O.test(h)||V.test(h))break;if(A.search(this.rules.other.nonSpaceChar)>=f||!h.trim())c+=`\n`+A.slice(f);else{if(R||g.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||Y.test(g)||ee.test(g)||V.test(g))break;c+=`\n`+h}!R&&!h.trim()&&(R=!0),p+=H+`\n`,e=e.substring(H.length+1),g=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(g=>g.type===\"space\"),c=p.length>0&&p.some(g=>this.rules.other.anyLine.test(g.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=z(n.slice(0,-1),\"\\\\\");if((n.length-s.length)%2===0)return}else{let s=de(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)),ge(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 ge(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 g=[...r[0]][0].length,h=e.slice(0,s+r.index+g+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){let t=this.rules.inline.del.exec(e);if(t)return{type:\"del\",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}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 y,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:M.normal};this.options.pedantic?(t.block=E.pedantic,t.inline=M.pedantic):this.options.gfm&&(t.block=E.gfm,this.options.breaks?t.inline=M.breaks:t.inline=M.gfm),this.tokenizer.rules=t}static get rules(){return{block:E,inline:M}}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)){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),g;this.options.extensions.startInline.forEach(h=>{g=h.call({lexer:this},c),typeof g==\"number\"&&g>=0&&(p=Math.min(p,g))}),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 P=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-'+w(r)+'\">'+(n?i:w(i,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?i:w(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>${w(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=\"'+w(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 w(n);e=i;let s=`<img src=\"${e}\" alt=\"${n}\"`;return t&&(s+=` title=\"${w(t)}\"`),s+=\">\",s}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:w(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 P,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 S=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=L();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=P;TextRenderer=$;Lexer=x;Tokenizer=y;Hooks=S;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 P(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 y(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 S;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];S.passThroughHooks.has(s)?i[a]=p=>{if(this.defaults.async&&S.passThroughHooksRespectAsync.has(s))return(async()=>{let g=await o.call(i,p);return l.call(i,g)})();let c=o.call(i,p);return l.call(i,c)}:i[a]=(...p)=>{if(this.defaults.async)return(async()=>{let g=await o.apply(i,p);return g===!1&&(g=await l.apply(i,p)),g})();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>\"+w(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var _=new B;function d(u,e){return _.parse(u,e)}d.options=d.setOptions=function(u){return _.setOptions(u),d.defaults=_.defaults,Z(d.defaults),d};d.getDefaults=L;d.defaults=T;d.use=function(...u){return _.use(...u),d.defaults=_.defaults,Z(d.defaults),d};d.walkTokens=function(u,e){return _.walkTokens(u,e)};d.parseInline=_.parseInline;d.Parser=b;d.parser=b.parse;d.Renderer=P;d.TextRenderer=$;d.Lexer=x;d.lexer=x.lex;d.Tokenizer=y;d.Hooks=S;d.parse=d;var Dt=d.options,Ht=d.setOptions,Zt=d.use,Gt=d.walkTokens,Nt=d.parseInline,Qt=d,Ft=b.parse,jt=x.lex;export{S as Hooks,x as Lexer,B as Marked,b as Parser,P as Renderer,$ as TextRenderer,y as Tokenizer,T as defaults,L as getDefaults,jt as lexer,d as marked,Dt as options,Qt as parse,Nt as parseInline,Ft as parser,Ht as setOptions,Zt as use,Gt 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';\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.preview = this.options.toolbar.includes('preview');\n this.init();\n this.undoRedoManager = new UndoRedoManager(this);\n this.indentManager = new IndentManager(this.usertextarea, () => this.render());\n }\n\n init() {\n this.createEditor();\n if (this.options.toolbar) 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 \"fj:textarea\",\n \"fj:focus:ring-0\",\n \"fj:focus:outline-0\",\n \"fj:border-0\",\n \"fj:p-1.5\",\n \"fj:max-w-full\",\n \"fj:size-full\",\n \"fj:bg-transparent\",\n \"fj:outline-0\",\n \"fj:appearance-none\",\n \"fj:prose\",\n \"fj:prose-sm\",\n \"fj:md:prose-base\",\n \"fj:dark:prose-invert\",\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-1\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`;\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 fj:surface\n fj:h-full\n fj:p-2\n fj:grid\n fj:after:px-3.5\n fj:after:py-2.5\n fj:after:text-inherit\n fj:[&>textarea]:resize-none\n fj:[&>textarea]:[grid-area:1/1/2/2]\n fj:after:[grid-area:1/1/2/2]\n fj:after:whitespace-pre-wrap\n fj:after:invisible\n fj:after:content-[attr(data-cloned-val)_'_']\n fj:after:border\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', () => this.render());\n\n this.usertextarea.addEventListener('scroll', () => {\n const textarea = this.usertextarea;\n const previewPane = this.previewContent;\n \n // Calculate the proportion of the textarea that has been scrolled\n const textareaScrollRatio = textarea.scrollTop / (textarea.scrollHeight - textarea.clientHeight);\n \n // Apply the same scroll ratio to the preview pane\n previewPane.scrollTop = textareaScrollRatio * (previewPane.scrollHeight - previewPane.clientHeight);\n });\n }\n\n addToolbar() {\n new Toolbar(this, this.options.toolbar || ['bold', 'italic', 'strikethrough']);\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 render() {\n const html = marked(this.usertextarea.value);\n if (this.preview) this.previewContent.innerHTML = html;\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","classList","toggle","remove","querySelector","render","querySelectorAll","forEach","contains","add","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","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_typeof","toPrimitive","String","Number","_toPrimitive","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","valueOf","_setPrototypeOf","ImageTool","config","undefined","fileInputConfig","fileInput","altInputConfig","altInput","acceptFormats","accept","map","join","altRequired","required","uploadUrl","fileInputTag","imageRegex","altText","fileInputSelector","urlInputSelector","submitBtnSelector","_callee","file","formData","res","result","_t","_context","files","disabled","textContent","FormData","append","fetch","method","body","json","success","path","alert","console","error","imgLinkInput","imgLinkAltInput","imgLink","imgLinkAlt","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","keys","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","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","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","L","async","breaks","extensions","gfm","hooks","pedantic","renderer","silent","tokenizer","walkTokens","T","Z","C","k","source","s","caret","getRegex","RegExp","me","codeRemoveIndent","outputLinkReplace","indentCodeCompensation","beginningSpace","endingHash","startingSpaceChar","endingSpaceChar","nonSpaceChar","newLineCharGlobal","tabCharGlobal","multipleSpaceGlobal","blankLine","doubleBlankLine","blockquoteStart","blockquoteSetextReplace","blockquoteSetextReplace2","listReplaceTabs","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","I","N","re","se","Oe","Q","F","ye","Pe","j","Se","ie","U","code","def","fences","hr","html","lheading","list","newline","paragraph","table","text","te","_e","Le","oe","D","K","ae","Ce","le","Be","ue","qe","ve","pe","De","He","Ze","Ge","Ne","Qe","Fe","q","je","ce","he","ne","W","_backpedal","anyPunctuation","autolink","blockSkip","br","del","emStrongLDelim","emStrongRDelimAst","emStrongRDelimUnd","escape","nolink","punctuation","reflink","reflinkSearch","tag","url","Ke","We","E","normal","M","Xe","ke","X","encodeURI","J","trim","at","splice","z","charAt","ge","href","other","state","inLink","raw","tokens","inlineTokens","rules","lexer","space","block","codeBlockStyle","Je","lang","inline","depth","g","top","blockTokens","h","R","O","ordered","start","loose","items","trimStart","search","V","Y","ee","fe","A","H","task","trimEnd","inlineQueue","src","checked","unshift","filter","some","pre","header","align","rows","inRawBlock","de","emStrong","lastIndex","codespan","inlineText","escaped","x","links","lex","lexInline","startBlock","charCodeAt","Error","emStrongMask","startInline","P","parser","parse","parseInline","listitem","checkbox","tablecell","tablerow","strong","em","textRenderer","$","b","renderers","S","static","Set","preprocess","postprocess","processAllTokens","provideLexer","provideParser","_","defaults","setOptions","parseMarkdown","Parser","Renderer","TextRenderer","Lexer","Tokenizer","Hooks","use","childTokens","flat","name","level","passThroughHooks","has","passThroughHooksRespectAsync","onError","toString","all","catch","message","reject","getDefaults","marked","MarkdownEditor","selector","createEditor","addToolbar","isTextareaValid","applyDefaultAttributes","buildEditorLayout","addInputListener","tagName","hasAttribute","placeholder","addTextareaWrapper","addPreviewWrapper","textareaContainer","previewInstance","getPreviewContent","previewPane","textareaScrollRatio","scrollTop","scrollHeight","clientHeight","_this$usertextarea","scrollToView","lineHeight","parseInt","window","getComputedStyle","rowsInView","floor","targetScrollTop","cols"],"sourceRoot":""}
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 ? `![${selectedText}](${imgLink})` \n : `![${imgLinkAlt}](${imgLink})`;\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={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},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, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\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 ![alt](src) 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":""}