@aquera/nile-elements 0.1.67-beta-2.3 → 0.1.67-beta-2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/index.html +2 -2
- package/dist/index.js +113 -122
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +121 -130
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +120 -129
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +2 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +32 -25
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +121 -130
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +40 -43
- package/vscode-html-custom-data.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-rich-text-editor.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.ts"],"sourcesContent":["// nile-rich-text-editor.ts\nimport { LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport './nile-rte-toolbar';\nimport './nile-rte-toolbar-item';\nimport './nile-rte-select';\nimport './nile-rte-color';\nimport './nile-rte-divider';\nimport './nile-rte-preview';\nimport './nile-rte-mentions';\nimport './nile-rte-link';\n\nimport {\n closestBlock, nearestElement, rgbToHex,\n toggleInlineTag, setBlockTag, setAlignment,\n setFontFamily, setForeColor, setBackColor, \n} from './utils';\n\nimport {styles} from './nile-rich-text-editor.css'; \n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n\n\n \n\n \nconst DEFAULT_ICONS: Record<string, string> = {\n bold: 'format_bold',\n italic: 'format_italic',\n underline: 'format_underline',\n link: 'link_2',\n left: 'format_align_left',\n center: 'format_align_middle',\n right: 'format_align_right',\n justify: 'format_align_justify',\n ul: 'format_list_bulleted',\n ol: 'format_list_numbered',\n clear: 'format_clear',\n};\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() { return this; } \n protected shouldUpdate() { return false; } \n\n \n @property({ type: String }) value = '';\n @property({ type: Boolean, attribute: 'singlelineeditor' })singleLineEditor = false;\n\n \n @property({\n attribute: 'mentions',\n converter: {\n fromAttribute: (value: string): MentionsConfig => {\n try {\n const parsed = JSON.parse(value);\n const out: MentionsConfig = {};\n for (const trig of Object.keys(parsed)) {\n const arr = parsed[trig];\n if (Array.isArray(arr)) {\n out[trig] = arr\n .filter(i => i && typeof i.key === 'string' && typeof i.label === 'string')\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch { return {}; }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n }\n })\n mentions: MentionsConfig = {};\n\n \n @state() private content = '';\n private editorEl!: HTMLElement;\n private previewEl: HTMLElement | null = null;\n private toolbarEl: HTMLElement | null = null;\n\n private lastRange: Range | null = null;\n\n \n private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\nprivate bgColorInput: HTMLInputElement | null = null; \nprivate colorSwatchEl: HTMLElement | null = null; \nprivate bgSwatchEl: HTMLElement | null = null; \n\n\n \n private mentionsEl: HTMLElement | null = null;\n\n \n\n private injectCss(cssText: string) {\n if (this.querySelector('style[data-rte-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-style', 'true');\n style.textContent = cssText;\n this.insertBefore(style, this.firstChild);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n \n this.injectCss(styles.cssText); \n \n\n \n this.toolbarEl = this.querySelector('nile-rte-toolbar');\n this.previewEl = this.querySelector('nile-rte-preview');\n if (this.singleLineEditor) {\n this.editorEl?.classList.add('single-line');\n this.previewEl?.classList.add('single-line');\n }\n \n this.ensureEditor();\n\n \n if (this.value && !this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = this.value;\n }\n this.content = this.editorEl.innerHTML;\n\n \n if (this.toolbarEl) this.wireAuthoredToolbar(this.toolbarEl);\n\n \n this.mentionsEl = this.querySelector('nile-rte-mentions');\n if (this.mentionsEl) {\n \n (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);\n \n (this.mentionsEl as any).setExternalConfig?.(this.mentions);\n }\n\n \n this.wireEditor();\n\n \n this.updateToolbarState();\n this.syncPreview();\n\n \n document.addEventListener('selectionchange', this.onSelectionChange, true);\n if (this.mentionsEl) {\n this.mentionsEl.addEventListener('mention-selected', (e: any) => {\n this.updateContentWithMention(e.detail);\n });\n }\n \n }\n\n private updateContentWithMention(mentionDetail: any) {\n this.updateContent(); \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { \n content: this.content,\n mention: mentionDetail \n },\n bubbles: true,\n composed: true\n }));\n }\n \n\n disconnectedCallback(): void {\n document.removeEventListener('selectionchange', this.onSelectionChange, true);\n \n if (this.mentionsEl && (this.mentionsEl as any).detach) {\n (this.mentionsEl as any).detach();\n }\n super.disconnectedCallback();\n }\n protected updated(changed: Map<string, any>) {\n if (changed.has('singleLineEditor')) {\n if (this.editorEl) {\n this.editorEl.classList.toggle('single-line', this.singleLineEditor);\n }\n if (this.previewEl) {\n this.previewEl.classList.toggle('single-line', this.singleLineEditor);\n }\n }\n }\n \n\n private ensureEditor() {\n this.editorEl = this.querySelector('.editor') as HTMLElement;\n if (!this.editorEl) {\n const editor = document.createElement('article');\n editor.className = 'editor';\n editor.setAttribute('contenteditable','true');\n if (this.singleLineEditor) editor.classList.add('single-line');\n\n if (this.toolbarEl?.nextSibling) {\n this.insertBefore(editor, this.toolbarEl.nextSibling);\n } else if (this.previewEl) {\n this.insertBefore(editor, this.previewEl);\n } else {\n this.appendChild(editor);\n }\n this.editorEl = editor;\n }\n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n this.ensureAtLeastOneParagraph();\n }\n\n \n \n private unwrapMention(span: HTMLElement, preserveText = true) {\n const parent = span.parentNode;\n if (!parent) return;\n \n const txt = preserveText ? (span.textContent ?? '').replace(/\\u200B/g, '') : '';\n const textNode = document.createTextNode(txt);\n parent.insertBefore(textNode, span);\n parent.removeChild(span);\n const r = document.createRange();\n r.setStartAfter(textNode);\n r.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(r);\n }\n \n private scrubBrokenMentions() {\n if (!this.editorEl) return;\n const mentions = this.editorEl.querySelectorAll('span.mention');\n \n mentions.forEach((m) => {\n const span = m as HTMLElement;\n const key = span.getAttribute('data-mention-key');\n const label = span.getAttribute('data-mention-label');\n const trigger = span.getAttribute('data-mention-trigger') || '';\n const text = (span.textContent ?? '').replace(/\\u200B/g, '').trim();\n \n \n const looksValid = !!key && !!label && text.length > 0 &&\n text.startsWith(trigger) && text.includes(label);\n \n \n if (!text || !looksValid) {\n this.unwrapMention(span, true);\n return;\n }\n });\n }\n\n \n private wireEditor() {\n this.editorEl.addEventListener('input', () => { \n this.ensureAtLeastOneParagraph();\n this.scrubBrokenMentions();\n this.updateContent();\n });\n this.editorEl.addEventListener('mouseup', () => this.saveSelection());\n this.editorEl.addEventListener('keyup', () => this.saveSelection());\n this.editorEl.addEventListener('keydown', this.onEditorKeydown); \n }\n \n \n private onEditorKeydown = (e: KeyboardEvent) => {\n if (this.singleLineEditor && e.key === 'Enter' && e.shiftKey) {\n e.preventDefault();\n return; \n }\n if (e.ctrlKey && e.key.toLowerCase() === 'i') {\n e.preventDefault();\n toggleInlineTag(this.editorEl, 'em');\n this.updateContent();\n this.updateToolbarState();\n }\n \n \n if (this.singleLineEditor && e.key === 'Enter' ) {\n e.preventDefault();\n return; \n }\n if (e.key !== 'Tab') return;\n \n e.preventDefault();\n this.focusAndRestore();\n \n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n \n \n if (e.shiftKey) {\n if (range.collapsed && range.startContainer.nodeType === Node.TEXT_NODE) {\n const t = range.startContainer as Text;\n const off = range.startOffset;\n const before = t.data.slice(0, off);\n \n \n const removed = before.replace(/(\\t|[ \\u00a0]{2})$/, '');\n if (removed.length !== before.length) {\n t.data = removed + t.data.slice(off);\n const r = document.createRange();\n r.setStart(t, removed.length);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n this.updateContent();\n this.updateToolbarState();\n }\n }\n return;\n }\n \n \n range.deleteContents();\n const tabNode = document.createTextNode('\\t'); \n range.insertNode(tabNode);\n \n \n const r = document.createRange();\n r.setStartAfter(tabNode);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n \n this.updateContent();\n this.updateToolbarState();\n };\n \n\n private wireAuthoredToolbar(tb: HTMLElement) {\n \n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\n\n \n Array.from(tb.children).forEach(child => {\n const tag = child.tagName.toLowerCase();\n\n if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const alignment = e.detail as 'left'|'center'|'right'|'justify';\n setAlignment(this.editorEl, alignment);\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n if (tag === 'nile-rte-link') {\n (child as any).editorEl = this.editorEl;\n child.addEventListener('link-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n \n\n if (tag === 'nile-rte-toolbar-item') {\n \n let btn = child.querySelector(':scope > nile-button') as HTMLElement | null;\n \n const cmd = child.getAttribute('name') || '';\n const label = child.getAttribute('label') || cmd;\n const iconAttr = child.getAttribute('icon');\n const authoredHasContent = child.innerHTML.trim().length > 0;\n \n \n if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small'; // optional\n }\n \n \n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" aria-label=\"${label}\"></nile-icon>`;\n child.innerHTML = '';\n } else if (!authoredHasContent) {\n const defaultIcon = DEFAULT_ICONS[cmd];\n if (defaultIcon) {\n btn.innerHTML = `<nile-icon name=\"${defaultIcon}\" size=\"20\" color=\"black\" aria-label=\"${label}\"></nile-icon>`;\n } else {\n btn.textContent = label || cmd;\n }\n child.innerHTML = '';\n } else {\n btn.innerHTML = child.innerHTML;\n child.innerHTML = '';\n }\n \n // Mount button inside tooltip\nif (!btn.isConnected) {\n const tooltip = document.createElement('nile-tooltip');\n tooltip.setAttribute('content', label); \n tooltip.appendChild(btn);\n child.appendChild(tooltip);\n}\n\n \n // Interactions\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\n \n \n const arr = this.buttonMap.get(cmd) ?? [];\n arr.push(btn);\n this.buttonMap.set(cmd, arr);\n \n return; \n }\n if (tag === 'nile-rte-select') {\n const type = child.getAttribute('type') || '';\n\n // listen for our custom dropdown’s change event\n child.addEventListener('change', (e: any) => {\n // restore focus & selection\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n // apply block tag\n setBlockTag(this.editorEl, val as any);\n }\n else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n \n \n this.updateContent();\n this.updateToolbarState();\n });\n\n \n return;\n }\n \n\n if (tag === 'nile-rte-color') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const { mode, value } = e.detail;\n \n if (mode === 'backColor') {\n setBackColor(this.editorEl, value);\n } else {\n setForeColor(this.editorEl, value);\n }\n \n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n });\n }\n private onSelectionChange = () => {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (this.editorEl.contains(range.commonAncestorContainer)) {\n this.lastRange = range.cloneRange();\n this.updateToolbarState();\n }\n };\n private saveSelection() {\n const sel = window.getSelection();\n if (sel && sel.rangeCount) this.lastRange = sel.getRangeAt(0).cloneRange();\n }\n private restoreSelection() {\n if (!this.lastRange) return;\n const sel = document.getSelection(); if (!sel) return;\n sel.removeAllRanges(); sel.addRange(this.lastRange);\n }\n private focusAndRestore() { this.editorEl?.focus(); this.restoreSelection(); }\n\n \nprivate insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\n\n \n const list = document.createElement(type);\n\n // grab the selected fragment\n const frag = this.lastRange.extractContents();\n const temp = document.createElement('div');\n temp.appendChild(frag);\n\n // wrap each top-level node in an <li>\n Array.from(temp.childNodes).forEach(n => {\n // skip empty whitespace text nodes\n if (n.nodeType === Node.TEXT_NODE && !n.textContent?.trim()) return;\n const li = document.createElement('li');\n li.appendChild(n); // moves the node!\n list.appendChild(li);\n });\n\n // insert list where the selection was\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n}\n\nprivate afterListEdit(node: Node) {\n const range = document.createRange();\n range.setStartAfter(node);\n range.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n\n this.saveSelection();\n this.updateContent();\n this.updateToolbarState();\n}\n // Keep at least one <p><br></p> and wrap stray inline/text into a <p>\nprivate ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n // 1) If completely empty → seed a paragraph\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n return;\n }\n\n // 2) If no block elements exist, wrap whatever is there into a <p>\n const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');\n if (!hasBlock) {\n const p = document.createElement('p');\n while (el.firstChild) p.appendChild(el.firstChild);\n if (!p.hasChildNodes()) p.appendChild(document.createElement('br'));\n el.appendChild(p);\n return;\n }\n\n // 3) Make sure the first/only empty <p> still has a <br>\n el.querySelectorAll('p').forEach(p => {\n if ((p.textContent ?? '').replace(/\\u200B/g, '') === '') {\n if (!p.innerHTML.toLowerCase().includes('<br')) p.innerHTML = '<br>';\n }\n });\n}\n\n\n\n // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n this.focusAndRestore();\n switch (cmd) {\n case 'bold': toggleInlineTag(this.editorEl, 'strong'); break;\n case 'italic': toggleInlineTag(this.editorEl, 'em'); break;\n case 'underline': toggleInlineTag(this.editorEl, 'u'); break;\n case 'left': setAlignment(this.editorEl, 'left'); break;\n case 'center': setAlignment(this.editorEl, 'center'); break;\n case 'right': setAlignment(this.editorEl, 'right'); break;\n case 'justify': setAlignment(this.editorEl, 'justify'); break;\n case 'ul': this.insertList('ul'); break;\n case 'ol': this.insertList('ol'); break;\n case 'link': break;\n case 'clear':\n const walker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (['B','STRONG','I','EM','U','SPAN','FONT'].includes(el.tagName)) {\n toUnwrap.push(el);\n }\n }\n for (const el of toUnwrap) {\n while (el.firstChild) el.parentNode?.insertBefore(el.firstChild, el);\n el.remove();\n }\n this.ensureAtLeastOneParagraph();\n break;\n\n default: break;\n }\n this.updateContent(); this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd); if (!arr) return;\n for (const btn of arr) btn.toggleAttribute('data-active', !!active);\n }\n\n private updateToolbarState() {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return;\n\n const startElm = nearestElement(range.startContainer) || this.editorEl;\n const comp = getComputedStyle(startElm);\n const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n const isBold = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'strong' || t === 'b') return true;\n const w = getComputedStyle(n).fontWeight;\n if (parseInt(w, 10) >= 600) return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isItalic = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'em' || t === 'i') return true;\n if (getComputedStyle(n).fontStyle === 'italic') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isUnderline = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const tdl = getComputedStyle(n).textDecorationLine;\n if (tdl && tdl.includes('underline')) return true;\n if (n.tagName.toLowerCase() === 'u') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const inLink = !!startElm.closest('a');\n\n const align = (block.style.textAlign || getComputedStyle(block).textAlign || 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi ? (startElm.closest('ul,ol')?.tagName.toLowerCase() || '') : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n this.setBtnActive('left', alignNorm === 'left' && !['center','right','justify'].includes(alignNorm));\n this.setBtnActive('center', alignNorm === 'center');\n this.setBtnActive('right', alignNorm === 'right');\n this.setBtnActive('justify', alignNorm === 'justify');\n\n this.setBtnActive('ul', listType === 'ul');\n this.setBtnActive('ol', listType === 'ol');\n\n // Reflect heading\n if (this.headingSelect) {\n const tag = block.tagName.toLowerCase();\n const v = ['h1','h2','h3'].includes(tag) ? tag : 'p';\n if (this.headingSelect.value !== v) this.headingSelect.value = v;\n }\n\n // Reflect font family\n if (this.fontSelect) {\n const ff = (comp.fontFamily || '').replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) { this.fontSelect.value = opt.value; break; }\n }\n }\n }\n\n if (this.colorInput) {\n const hex = rgbToHex(comp.color);\n if (hex && this.colorInput.value.toLowerCase() !== hex.toLowerCase()) {\n this.colorInput.value = hex;\n }\n if (this.colorSwatchEl) this.colorSwatchEl.style.backgroundColor = this.colorInput.value;\n }\n \n\n if (this.bgColorInput) {\n const bg = getComputedStyle(startElm).backgroundColor;\n if (bg && !/transparent|rgba\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(bg)) {\n const bgHex = rgbToHex(bg);\n if (bgHex && this.bgColorInput.value.toLowerCase() !== bgHex.toLowerCase()) {\n this.bgColorInput.value = bgHex;\n }\n }\n if (this.bgSwatchEl) this.bgSwatchEl.style.backgroundColor = this.bgColorInput.value;\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n \n \n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n \n \n const origWalker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const cloneWalker = document.createTreeWalker(clone, NodeFilter.SHOW_ELEMENT);\n \n \n const importantProps = [\n 'font-weight',\n 'font-style',\n 'text-decoration',\n 'color',\n 'background-color',\n 'font-size',\n 'font-family',\n 'text-align',\n 'line-height',\n 'letter-spacing',\n 'white-space',\n 'vertical-align'\n ];\n \n while (origWalker.nextNode() && cloneWalker.nextNode()) {\n const origEl = origWalker.currentNode as HTMLElement;\n const cloneEl = cloneWalker.currentNode as HTMLElement;\n const computed = window.getComputedStyle(origEl);\n \n \n const cssText = importantProps\n .map(prop => `${prop}:${computed.getPropertyValue(prop)}`)\n .join(';');\n \n \n if (cssText.trim()) {\n cloneEl.setAttribute('style', cssText);\n }\n }\n \n \n this.content = clone.innerHTML;\n \n \n if (this.previewEl) this.previewEl.innerHTML = this.content;\n \n \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { content: this.content },\n bubbles: true,\n composed: true\n }));\n }\n \n \n \n \n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n\n"],"names":["DEFAULT_ICONS","bold","italic","underline","link","left","center","right","justify","ul","ol","clear","_export","NileRichTextEditor","_i","p","this","value","singleLineEditor","mentions","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","mentionsEl","onEditorKeydown","e","key","shiftKey","preventDefault","ctrlKey","toLowerCase","toggleInlineTag","editorEl","updateContent","updateToolbarState","focusAndRestore","sel","window","getSelection","rangeCount","range","getRangeAt","collapsed","startContainer","nodeType","Node","TEXT_NODE","t","off","startOffset","before","data","slice","removed","replace","length","r","document","createRange","setStart","collapse","removeAllRanges","addRange","deleteContents","tabNode","createTextNode","insertNode","setStartAfter","onSelectionChange","contains","commonAncestorContainer","cloneRange","_this","_inherits","_createClass","createRenderRoot","shouldUpdate","injectCss","cssText","querySelector","style","createElement","setAttribute","textContent","insertBefore","firstChild","connectedCallback","super","styles","classList","add","ensureEditor","innerHTML","trim","wireAuthoredToolbar","attach","setExternalConfig","wireEditor","syncPreview","addEventListener","updateContentWithMention","detail","mentionDetail","dispatchEvent","CustomEvent","mention","bubbles","composed","disconnectedCallback","removeEventListener","detach","updated","changed","has","toggle","_this$toolbarEl","editor","className","nextSibling","appendChild","ensureAtLeastOneParagraph","unwrapMention","span","preserveText","_t$textContent","parent","parentNode","txt","textNode","removeChild","scrubBrokenMentions","_this3","querySelectorAll","forEach","m","getAttribute","label","trigger","text","looksValid","startsWith","includes","saveSelection","tb","Array","from","children","child","tag","tagName","_this5$buttonMap$get","btn","cmd","iconAttr","authoredHasContent","variant","size","defaultIcon","isConnected","tooltip","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","alignment","setAlignment","restoreSelection","focus","insertList","list","frag","extractContents","temp","childNodes","n","_t$textContent2","li","afterListEdit","node","_t$textContent3","el","onlyWhitespace","hasChildNodes","_t$textContent4","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","removeAttribute","_i7","_i6","remove","setBtnActive","active","_iterator","_createForOfIteratorHelper","s","_step","done","toggleAttribute","err","f","_this6","_s$closest","startElm","nearestElement","comp","getComputedStyle","block","closestBlock","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","closest","align","textAlign","alignNorm","listType","v","ff","fontFamily","split","_i12","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","test","bgHex","clone","cloneNode","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","getPropertyValue","join","LitElement","__decorate","property","String","prototype","Boolean","attribute","converter","fromAttribute","parsed","JSON","parse","out","_i16","_Object$keys","Object","keys","trig","isArray","filter","i","_unused","toAttribute","stringify","state","customElement"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"nile-rich-text-editor.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.ts"],"sourcesContent":["// nile-rich-text-editor.ts\nimport { LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport './nile-rte-toolbar';\nimport './nile-rte-toolbar-item';\nimport './nile-rte-select';\nimport './nile-rte-color';\nimport './nile-rte-divider';\nimport './nile-rte-preview';\nimport './nile-rte-mentions';\nimport './nile-rte-link';\n\nimport {\n closestBlock, nearestElement, rgbToHex,\n toggleInlineTag, setBlockTag, setAlignment,\n setFontFamily, setForeColor, setBackColor, \n} from './utils';\n\nimport {styles} from './nile-rich-text-editor.css'; \n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n\n\n \n\n \nconst DEFAULT_ICONS: Record<string, string> = {\n bold: 'format_bold',\n italic: 'format_italic',\n underline: 'format_underline',\n link: 'link_2',\n left: 'format_align_left',\n center: 'format_align_middle',\n right: 'format_align_right',\n justify: 'format_align_justify',\n ul: 'format_list_bulleted',\n ol: 'format_list_numbered',\n clear: 'format_clear',\n};\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() { return this; } \n // protected shouldUpdate() { return false; } \n\n \n @property({ type: String }) value = '';\n @property({ type: Boolean, attribute: 'singlelineeditor' })singleLineEditor = false;\n\n \n @property({\n attribute: 'mentions',\n converter: {\n fromAttribute: (value: string): MentionsConfig => {\n try {\n const parsed = JSON.parse(value);\n const out: MentionsConfig = {};\n for (const trig of Object.keys(parsed)) {\n const arr = parsed[trig];\n if (Array.isArray(arr)) {\n out[trig] = arr\n .filter(i => i && typeof i.key === 'string' && typeof i.label === 'string')\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch { return {}; }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n }\n })\n mentions: MentionsConfig = {};\n\n \n @state() private content = '';\n private editorEl!: HTMLElement;\n private previewEl: HTMLElement | null = null;\n private toolbarEl: HTMLElement | null = null;\n\n private lastRange: Range | null = null;\n\n \n private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\nprivate bgColorInput: HTMLInputElement | null = null; \nprivate colorSwatchEl: HTMLElement | null = null; \nprivate bgSwatchEl: HTMLElement | null = null; \nprivate containerEl: HTMLElement | null = null;\n\n\n\n \n private mentionsEl: HTMLElement | null = null;\n\n \n\n private injectCss(cssText: string) {\n if (this.querySelector('style[data-rte-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-style', 'true');\n style.textContent = cssText;\n this.insertBefore(style, this.firstChild);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.injectCss(styles.cssText);\n this.ensureStructure();\n\n if (this.value && !this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = this.value;\n }\n this.content = this.editorEl.innerHTML;\n\n if (this.toolbarEl) this.wireAuthoredToolbar(this.toolbarEl);\n this.mentionsEl = this.querySelector('nile-rte-mentions');\n if (this.mentionsEl) {\n (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);\n (this.mentionsEl as any).setExternalConfig?.(this.mentions);\n }\n\n this.wireEditor();\n this.updateToolbarState();\n this.syncPreview();\n }\n\n private ensureStructure() {\n this.toolbarEl = this.querySelector('nile-rte-toolbar');\n this.previewEl = this.querySelector('nile-rte-preview');\n \n // container for toolbar + editor\n this.containerEl = this.querySelector('.rte-container') as HTMLElement;\n if (!this.containerEl) {\n this.containerEl = document.createElement('div');\n this.containerEl.className = 'rte-container';\n this.appendChild(this.containerEl);\n }\n \n // ensure editor\n this.ensureEditor();\n \n // put toolbar + editor inside container\n if (this.toolbarEl && this.toolbarEl.parentElement !== this.containerEl) {\n this.containerEl.appendChild(this.toolbarEl);\n }\n if (this.editorEl.parentElement !== this.containerEl) {\n this.containerEl.appendChild(this.editorEl);\n }\n \n // 👉 move preview OUTSIDE container, right after it\n if (this.previewEl) {\n if (this.previewEl.parentElement !== this) {\n this.appendChild(this.previewEl);\n }\n // ensure preview is placed AFTER container\n if (this.previewEl.previousElementSibling !== this.containerEl) {\n this.insertBefore(this.previewEl, this.containerEl.nextSibling);\n }\n }\n }\n \n\n private updateContentWithMention(mentionDetail: any) {\n this.updateContent(); \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { \n content: this.content,\n mention: mentionDetail \n },\n bubbles: true,\n composed: true\n }));\n }\n \n\n disconnectedCallback(): void {\n document.removeEventListener('selectionchange', this.onSelectionChange, true);\n \n if (this.mentionsEl && (this.mentionsEl as any).detach) {\n (this.mentionsEl as any).detach();\n }\n super.disconnectedCallback();\n }\n protected updated(changed: Map<string, any>) {\n if (changed.has('singleLineEditor')) {\n if (this.editorEl) {\n this.editorEl.classList.toggle('single-line', this.singleLineEditor);\n }\n if (this.previewEl) {\n this.previewEl.classList.toggle('single-line', this.singleLineEditor);\n }\n }\n }\n \n private ensureEditor() {\n this.editorEl = this.querySelector('.editor') as HTMLElement;\n if (!this.editorEl) {\n const editor = document.createElement('article');\n editor.className = 'editor';\n editor.setAttribute('contenteditable', 'true');\n this.editorEl = editor;\n }\n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n }\n\n \n \n private unwrapMention(span: HTMLElement, preserveText = true) {\n const parent = span.parentNode;\n if (!parent) return;\n \n const txt = preserveText ? (span.textContent ?? '').replace(/\\u200B/g, '') : '';\n const textNode = document.createTextNode(txt);\n parent.insertBefore(textNode, span);\n parent.removeChild(span);\n const r = document.createRange();\n r.setStartAfter(textNode);\n r.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(r);\n }\n \n private scrubBrokenMentions() {\n if (!this.editorEl) return;\n const mentions = this.editorEl.querySelectorAll('span.mention');\n \n mentions.forEach((m) => {\n const span = m as HTMLElement;\n const key = span.getAttribute('data-mention-key');\n const label = span.getAttribute('data-mention-label');\n const trigger = span.getAttribute('data-mention-trigger') || '';\n const text = (span.textContent ?? '').replace(/\\u200B/g, '').trim();\n \n \n const looksValid = !!key && !!label && text.length > 0 &&\n text.startsWith(trigger) && text.includes(label);\n \n \n if (!text || !looksValid) {\n this.unwrapMention(span, true);\n return;\n }\n });\n }\n\n \n private wireEditor() {\n this.editorEl.addEventListener('input', () => { \n this.ensureAtLeastOneParagraph();\n this.scrubBrokenMentions();\n this.updateContent();\n });\n this.editorEl.addEventListener('mouseup', () => this.saveSelection());\n this.editorEl.addEventListener('keyup', () => this.saveSelection());\n this.editorEl.addEventListener('keydown', this.onEditorKeydown); \n }\n \n \n private onEditorKeydown = (e: KeyboardEvent) => {\n if (this.singleLineEditor && e.key === 'Enter' && e.shiftKey) {\n e.preventDefault();\n return; \n }\n if (e.ctrlKey && e.key.toLowerCase() === 'i') {\n e.preventDefault();\n toggleInlineTag(this.editorEl, 'em');\n this.updateContent();\n this.updateToolbarState();\n }\n \n \n if (this.singleLineEditor && e.key === 'Enter' ) {\n e.preventDefault();\n return; \n }\n if (e.key !== 'Tab') return;\n \n e.preventDefault();\n this.focusAndRestore();\n \n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n \n \n if (e.shiftKey) {\n if (range.collapsed && range.startContainer.nodeType === Node.TEXT_NODE) {\n const t = range.startContainer as Text;\n const off = range.startOffset;\n const before = t.data.slice(0, off);\n \n \n const removed = before.replace(/(\\t|[ \\u00a0]{2})$/, '');\n if (removed.length !== before.length) {\n t.data = removed + t.data.slice(off);\n const r = document.createRange();\n r.setStart(t, removed.length);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n this.updateContent();\n this.updateToolbarState();\n }\n }\n return;\n }\n \n \n range.deleteContents();\n const tabNode = document.createTextNode('\\t'); \n range.insertNode(tabNode);\n \n \n const r = document.createRange();\n r.setStartAfter(tabNode);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n \n this.updateContent();\n this.updateToolbarState();\n };\n \n\n private wireAuthoredToolbar(tb: HTMLElement) {\n \n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\n\n \n Array.from(tb.children).forEach(child => {\n const tag = child.tagName.toLowerCase();\n\n if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const alignment = e.detail as 'left'|'center'|'right'|'justify';\n setAlignment(this.editorEl, alignment);\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n if (tag === 'nile-rte-link') {\n (child as any).editorEl = this.editorEl;\n child.addEventListener('link-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n \n\n if (tag === 'nile-rte-toolbar-item') {\n \n let btn = child.querySelector(':scope > nile-button') as HTMLElement | null;\n \n const cmd = child.getAttribute('name') || '';\n const label = child.getAttribute('label') || cmd;\n const iconAttr = child.getAttribute('icon');\n const authoredHasContent = child.innerHTML.trim().length > 0;\n \n \n if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small'; // optional\n }\n \n \n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" aria-label=\"${label}\"></nile-icon>`;\n child.innerHTML = '';\n } else if (!authoredHasContent) {\n const defaultIcon = DEFAULT_ICONS[cmd];\n if (defaultIcon) {\n btn.innerHTML = `<nile-icon name=\"${defaultIcon}\" size=\"20\" color=\"black\" aria-label=\"${label}\"></nile-icon>`;\n } else {\n btn.textContent = label || cmd;\n }\n child.innerHTML = '';\n } else {\n btn.innerHTML = child.innerHTML;\n child.innerHTML = '';\n }\n \n // Mount button inside tooltip\nif (!btn.isConnected) {\n const tooltip = document.createElement('nile-tooltip');\n tooltip.setAttribute('content', label); \n tooltip.appendChild(btn);\n child.appendChild(tooltip);\n}\n\n \n // Interactions\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\n \n \n const arr = this.buttonMap.get(cmd) ?? [];\n arr.push(btn);\n this.buttonMap.set(cmd, arr);\n \n return; \n }\n if (tag === 'nile-rte-select') {\n const type = child.getAttribute('type') || '';\n\n // listen for our custom dropdown’s change event\n child.addEventListener('change', (e: any) => {\n // restore focus & selection\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n // apply block tag\n setBlockTag(this.editorEl, val as any);\n }\n else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n \n \n this.updateContent();\n this.updateToolbarState();\n });\n\n \n return;\n }\n \n\n if (tag === 'nile-rte-color') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const { mode, value } = e.detail;\n \n if (mode === 'backColor') {\n setBackColor(this.editorEl, value);\n } else {\n setForeColor(this.editorEl, value);\n }\n \n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n });\n }\n private onSelectionChange = () => {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (this.editorEl.contains(range.commonAncestorContainer)) {\n this.lastRange = range.cloneRange();\n this.updateToolbarState();\n }\n };\n private saveSelection() {\n const sel = window.getSelection();\n if (sel && sel.rangeCount) this.lastRange = sel.getRangeAt(0).cloneRange();\n }\n private restoreSelection() {\n if (!this.lastRange) return;\n const sel = document.getSelection(); if (!sel) return;\n sel.removeAllRanges(); sel.addRange(this.lastRange);\n }\n private focusAndRestore() { this.editorEl?.focus(); this.restoreSelection(); }\n\n \nprivate insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\n\n \n const list = document.createElement(type);\n\n // grab the selected fragment\n const frag = this.lastRange.extractContents();\n const temp = document.createElement('div');\n temp.appendChild(frag);\n\n // wrap each top-level node in an <li>\n Array.from(temp.childNodes).forEach(n => {\n // skip empty whitespace text nodes\n if (n.nodeType === Node.TEXT_NODE && !n.textContent?.trim()) return;\n const li = document.createElement('li');\n li.appendChild(n); // moves the node!\n list.appendChild(li);\n });\n\n // insert list where the selection was\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n}\n\nprivate afterListEdit(node: Node) {\n const range = document.createRange();\n range.setStartAfter(node);\n range.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n\n this.saveSelection();\n this.updateContent();\n this.updateToolbarState();\n}\n // Keep at least one <p><br></p> and wrap stray inline/text into a <p>\nprivate ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n // 1) If completely empty → seed a paragraph\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n return;\n }\n\n // 2) If no block elements exist, wrap whatever is there into a <p>\n const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');\n if (!hasBlock) {\n const p = document.createElement('p');\n while (el.firstChild) p.appendChild(el.firstChild);\n if (!p.hasChildNodes()) p.appendChild(document.createElement('br'));\n el.appendChild(p);\n return;\n }\n\n // 3) Make sure the first/only empty <p> still has a <br>\n el.querySelectorAll('p').forEach(p => {\n if ((p.textContent ?? '').replace(/\\u200B/g, '') === '') {\n if (!p.innerHTML.toLowerCase().includes('<br')) p.innerHTML = '<br>';\n }\n });\n}\n\n\n\n // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n this.focusAndRestore();\n switch (cmd) {\n case 'bold': toggleInlineTag(this.editorEl, 'strong'); break;\n case 'italic': toggleInlineTag(this.editorEl, 'em'); break;\n case 'underline': toggleInlineTag(this.editorEl, 'u'); break;\n case 'left': setAlignment(this.editorEl, 'left'); break;\n case 'center': setAlignment(this.editorEl, 'center'); break;\n case 'right': setAlignment(this.editorEl, 'right'); break;\n case 'justify': setAlignment(this.editorEl, 'justify'); break;\n case 'ul': this.insertList('ul'); break;\n case 'ol': this.insertList('ol'); break;\n case 'link': break;\n case 'clear':\n const walker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (['B','STRONG','I','EM','U','SPAN','FONT'].includes(el.tagName)) {\n toUnwrap.push(el);\n }\n }\n for (const el of toUnwrap) {\n while (el.firstChild) el.parentNode?.insertBefore(el.firstChild, el);\n el.remove();\n }\n this.ensureAtLeastOneParagraph();\n break;\n\n default: break;\n }\n this.updateContent(); this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd); if (!arr) return;\n for (const btn of arr) btn.toggleAttribute('data-active', !!active);\n }\n\n private updateToolbarState() {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return;\n\n const startElm = nearestElement(range.startContainer) || this.editorEl;\n const comp = getComputedStyle(startElm);\n const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n const isBold = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'strong' || t === 'b') return true;\n const w = getComputedStyle(n).fontWeight;\n if (parseInt(w, 10) >= 600) return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isItalic = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'em' || t === 'i') return true;\n if (getComputedStyle(n).fontStyle === 'italic') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isUnderline = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const tdl = getComputedStyle(n).textDecorationLine;\n if (tdl && tdl.includes('underline')) return true;\n if (n.tagName.toLowerCase() === 'u') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const inLink = !!startElm.closest('a');\n\n const align = (block.style.textAlign || getComputedStyle(block).textAlign || 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi ? (startElm.closest('ul,ol')?.tagName.toLowerCase() || '') : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n this.setBtnActive('left', alignNorm === 'left' && !['center','right','justify'].includes(alignNorm));\n this.setBtnActive('center', alignNorm === 'center');\n this.setBtnActive('right', alignNorm === 'right');\n this.setBtnActive('justify', alignNorm === 'justify');\n\n this.setBtnActive('ul', listType === 'ul');\n this.setBtnActive('ol', listType === 'ol');\n\n // Reflect heading\n if (this.headingSelect) {\n const tag = block.tagName.toLowerCase();\n const v = ['h1','h2','h3'].includes(tag) ? tag : 'p';\n if (this.headingSelect.value !== v) this.headingSelect.value = v;\n }\n\n // Reflect font family\n if (this.fontSelect) {\n const ff = (comp.fontFamily || '').replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) { this.fontSelect.value = opt.value; break; }\n }\n }\n }\n\n if (this.colorInput) {\n const hex = rgbToHex(comp.color);\n if (hex && this.colorInput.value.toLowerCase() !== hex.toLowerCase()) {\n this.colorInput.value = hex;\n }\n if (this.colorSwatchEl) this.colorSwatchEl.style.backgroundColor = this.colorInput.value;\n }\n \n\n if (this.bgColorInput) {\n const bg = getComputedStyle(startElm).backgroundColor;\n if (bg && !/transparent|rgba\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(bg)) {\n const bgHex = rgbToHex(bg);\n if (bgHex && this.bgColorInput.value.toLowerCase() !== bgHex.toLowerCase()) {\n this.bgColorInput.value = bgHex;\n }\n }\n if (this.bgSwatchEl) this.bgSwatchEl.style.backgroundColor = this.bgColorInput.value;\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n \n \n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n \n \n const origWalker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const cloneWalker = document.createTreeWalker(clone, NodeFilter.SHOW_ELEMENT);\n \n \n const importantProps = [\n 'font-weight',\n 'font-style',\n 'text-decoration',\n 'color',\n 'background-color',\n 'font-size',\n 'font-family',\n 'text-align',\n 'line-height',\n 'letter-spacing',\n 'white-space',\n 'vertical-align'\n ];\n \n while (origWalker.nextNode() && cloneWalker.nextNode()) {\n const origEl = origWalker.currentNode as HTMLElement;\n const cloneEl = cloneWalker.currentNode as HTMLElement;\n const computed = window.getComputedStyle(origEl);\n \n \n const cssText = importantProps\n .map(prop => `${prop}:${computed.getPropertyValue(prop)}`)\n .join(';');\n \n \n if (cssText.trim()) {\n cloneEl.setAttribute('style', cssText);\n }\n }\n \n \n this.content = clone.innerHTML;\n \n \n if (this.previewEl) this.previewEl.innerHTML = this.content;\n \n \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { content: this.content },\n bubbles: true,\n composed: true\n }));\n }\n \n \n \n \n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n\n"],"names":["DEFAULT_ICONS","bold","italic","underline","link","left","center","right","justify","ul","ol","clear","_export","NileRichTextEditor","_i","p","this","value","singleLineEditor","mentions","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","containerEl","mentionsEl","onEditorKeydown","e","key","shiftKey","preventDefault","ctrlKey","toLowerCase","toggleInlineTag","editorEl","updateContent","updateToolbarState","focusAndRestore","sel","window","getSelection","rangeCount","range","getRangeAt","collapsed","startContainer","nodeType","Node","TEXT_NODE","t","off","startOffset","before","data","slice","removed","replace","length","r","document","createRange","setStart","collapse","removeAllRanges","addRange","deleteContents","tabNode","createTextNode","insertNode","setStartAfter","onSelectionChange","contains","commonAncestorContainer","cloneRange","_this","_inherits","_createClass","createRenderRoot","injectCss","cssText","querySelector","style","createElement","setAttribute","textContent","insertBefore","firstChild","connectedCallback","super","styles","ensureStructure","innerHTML","trim","wireAuthoredToolbar","attach","setExternalConfig","wireEditor","syncPreview","className","appendChild","ensureEditor","parentElement","previousElementSibling","nextSibling","updateContentWithMention","mentionDetail","dispatchEvent","CustomEvent","detail","mention","bubbles","composed","disconnectedCallback","removeEventListener","detach","updated","changed","has","classList","toggle","editor","unwrapMention","span","_t$textContent","preserveText","arguments","undefined","parent","parentNode","txt","textNode","removeChild","scrubBrokenMentions","querySelectorAll","forEach","m","getAttribute","label","trigger","text","looksValid","startsWith","includes","addEventListener","ensureAtLeastOneParagraph","saveSelection","tb","Array","from","children","child","tag","tagName","_this4$buttonMap$get","btn","cmd","iconAttr","authoredHasContent","variant","size","defaultIcon","isConnected","tooltip","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","alignment","setAlignment","restoreSelection","focus","insertList","list","frag","extractContents","temp","childNodes","n","li","afterListEdit","node","el","onlyWhitespace","_t$textContent3","hasChildNodes","_t$textContent4","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","removeAttribute","_i7","_i6","remove","setBtnActive","active","_iterator","_createForOfIteratorHelper","s","_step","done","toggleAttribute","err","f","_this5","_s$closest","startElm","nearestElement","comp","getComputedStyle","block","closestBlock","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","closest","align","textAlign","alignNorm","listType","v","ff","fontFamily","split","_i12","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","test","bgHex","clone","cloneNode","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","concat","getPropertyValue","join","__decorate","LitElement","property","String","prototype","Boolean","attribute","converter","fromAttribute","parsed","JSON","parse","out","_i16","_Object$keys","Object","keys","trig","isArray","filter","i","_unused","toAttribute","stringify","state","customElement"],"mappings":"q3KA4BMA,EAAwC,CAC5CC,IAAAA,CAAM,aACNC,CAAAA,MAAAA,CAAQ,eACRC,CAAAA,SAAAA,CAAW,kBACXC,CAAAA,IAAAA,CAAM,QACNC,CAAAA,IAAAA,CAAM,mBACNC,CAAAA,MAAAA,CAAQ,qBACRC,CAAAA,KAAAA,CAAO,oBACPC,CAAAA,OAAAA,CAAS,sBACTC,CAAAA,EAAAA,CAAI,sBACJC,CAAAA,EAAAA,CAAI,sBACJC,CAAAA,KAAAA,CAAO,cAIF,CAAA,CAAAC,OAAA,KAAMC,CAAN,uBAAAC,EAAA,EAAA,SAAAC,EAAA,uEAKuBC,KAAAA,CAAKC,KAAAA,CAAG,EACuBD,CAAAA,KAAAA,CAAgBE,gBAAG,CAAA,CAAA,CAAA,CAwB9EF,KAAAA,CAAQG,QAAAA,CAAmB,GAGVH,KAAAA,CAAOI,OAAAA,CAAG,EAEnBJ,CAAAA,KAAAA,CAASK,SAAuB,CAAA,IAAA,CAChCL,KAAAA,CAASM,SAAAA,CAAuB,IAEhCN,CAAAA,KAAAA,CAASO,SAAiB,CAAA,IAAA,CAG1BP,KAAAA,CAAAQ,SAAAA,CAAY,GAAIC,CAAAA,GAAAA,CAAAA,CAAAA,CAChBT,KAAAA,CAAaU,aAAAA,CAA6B,IAC1CV,CAAAA,KAAAA,CAAUW,WAA6B,IACvCX,CAAAA,KAAAA,CAAUY,UAA4B,CAAA,IAAA,CACxCZ,KAAAA,CAAYa,YAAAA,CAA4B,IACxCb,CAAAA,KAAAA,CAAac,aAAuB,CAAA,IAAA,CACpCd,KAAAA,CAAUe,UAAAA,CAAuB,IACjCf,CAAAA,KAAAA,CAAWgB,WAAuB,CAAA,IAAA,CAKhChB,KAAAA,CAAUiB,UAAAA,CAAuB,IAyKjCjB,CAAAA,KAAAA,CAAAkB,eAAmBC,CAAAA,SAAAA,CAAAA,CAAAA,CACzB,GAAInB,KAAAA,CAAKE,gBAA8B,EAAA,OAAA,GAAViB,CAAEC,CAAAA,GAAAA,EAAmBD,CAAEE,CAAAA,QAAAA,CAElD,WADAF,CAAAA,CAAEG,CAAAA,cAAAA,CAAAA,CAAAA,CAWJ,GARIH,CAAAA,CAAEI,OAAmC,EAAA,GAAA,GAAxBJ,CAAEC,CAAAA,GAAAA,CAAII,WACrBL,CAAAA,CAAAA,GAAAA,CAAAA,CAAEG,cACFG,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBzB,KAAAA,CAAK0B,QAAAA,CAAU,IAC/B1B,CAAAA,CAAAA,KAAAA,CAAK2B,aACL3B,CAAAA,CAAAA,CAAAA,KAAAA,CAAK4B,kBAIH5B,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAKE,gBAA8B,EAAA,OAAA,GAAViB,CAAEC,CAAAA,GAAAA,CAE7B,MADAD,KAAAA,CAAAA,CAAAA,CAAEG,cAGJ,CAAA,CAAA,CAAA,GAAc,KAAVH,GAAAA,CAAAA,CAAEC,IAAe,OAErBD,CAAAA,CAAEG,cACFtB,CAAAA,CAAAA,CAAAA,KAAAA,CAAK6B,eAEL,CAAA,CAAA,CAAA,GAAMC,CAAAA,CAAMC,CAAAA,MAAAA,CAAOC,YACnB,CAAA,CAAA,CAAA,GAAA,CAAKF,CAA0B,EAAA,CAAA,GAAnBA,CAAIG,CAAAA,UAAAA,CAAkB,OAClC,GAAMC,CAAAA,CAAQJ,CAAAA,CAAAA,CAAIK,UAAW,CAAA,CAAA,CAAA,CAG7B,GAAIhB,CAAAA,CAAEE,QAAU,CAAA,CACd,GAAIa,CAAAA,CAAME,SAAaF,EAAAA,CAAAA,CAAMG,cAAeC,CAAAA,QAAAA,GAAaC,KAAKC,SAAW,CAAA,CACvE,GAAMC,CAAAA,EAAAA,CAAIP,CAAMG,CAAAA,cAAAA,CACVK,EAAMR,CAAAA,CAAAA,CAAMS,WACZC,CAAAA,EAAAA,CAASH,EAAEI,CAAAA,IAAAA,CAAKC,KAAM,CAAA,CAAA,CAAGJ,EAGzBK,CAAAA,CAAAA,EAAAA,CAAUH,EAAOI,CAAAA,OAAAA,CAAQ,oBAAsB,CAAA,EAAA,CAAA,CACrD,GAAID,EAAAA,CAAQE,MAAWL,GAAAA,EAAAA,CAAOK,MAAQ,CAAA,CACpCR,EAAEI,CAAAA,IAAAA,CAAOE,EAAUN,CAAAA,EAAAA,CAAEI,KAAKC,KAAMJ,CAAAA,EAAAA,CAAAA,CAChC,GAAMQ,CAAAA,EAAAA,CAAIC,QAASC,CAAAA,WAAAA,CAAAA,CAAAA,CACnBF,EAAEG,CAAAA,QAAAA,CAASZ,EAAGM,CAAAA,EAAAA,CAAQE,MACtBC,CAAAA,CAAAA,EAAAA,CAAEI,QAAS,CAAA,CAAA,CAAA,CAAA,CACXxB,CAAIyB,CAAAA,eAAAA,CAAAA,CAAAA,CACJzB,CAAI0B,CAAAA,QAAAA,CAASN,EACblD,CAAAA,CAAAA,KAAAA,CAAK2B,aACL3B,CAAAA,CAAAA,CAAAA,KAAAA,CAAK4B,kBACN,CAAA,CAAA,EACF,CACD,OACD,CAGDM,CAAAA,CAAMuB,cACN,CAAA,CAAA,CAAA,GAAMC,CAAAA,EAAUP,QAASQ,CAAAA,cAAAA,CAAe,IACxCzB,CAAAA,CAAAA,CAAAA,CAAM0B,UAAWF,CAAAA,CAAAA,CAAAA,CAGjB,GAAMR,CAAAA,CAAAA,CAAIC,QAASC,CAAAA,WAAAA,CAAAA,CAAAA,CACnBF,CAAEW,CAAAA,aAAAA,CAAcH,CAChBR,CAAAA,CAAAA,CAAAA,CAAEI,UAAS,CACXxB,CAAAA,CAAAA,CAAAA,CAAIyB,eACJzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAI0B,QAASN,CAAAA,CAAAA,CAAAA,CAEblD,KAAAA,CAAK2B,aAAAA,CAAAA,CAAAA,CACL3B,KAAAA,CAAK4B,kBAAAA,CAAAA,CAAoB,EAyInB5B,CAAAA,KAAAA,CAAiB8D,iBAAG,CAAA,UAAA,CAC1B,IAAK9D,KAAAA,CAAK0B,QAAAA,CAAU,OACpB,GAAMI,CAAAA,CAAMqB,CAAAA,QAAAA,CAASnB,YACrB,CAAA,CAAA,CAAA,GAAA,CAAKF,CAA0B,EAAA,CAAA,GAAnBA,CAAIG,CAAAA,UAAAA,CAAkB,OAClC,GAAMC,CAAAA,CAAQJ,CAAAA,CAAAA,CAAIK,UAAW,CAAA,CAAA,CAAA,CACzBnC,KAAAA,CAAK0B,QAAAA,CAASqC,QAAS7B,CAAAA,CAAAA,CAAM8B,uBAC/BhE,CAAAA,GAAAA,KAAAA,CAAKO,SAAY2B,CAAAA,CAAAA,CAAM+B,UACvBjE,CAAAA,CAAAA,CAAAA,KAAAA,CAAK4B,kBACN,CAAA,CAAA,CAAA,EA4SJ,QAAAsC,KAAA,EAxtBWC,SAAA,CAAApE,CAAA,CAAAD,EAAA,SAAAsE,YAAA,CAAArE,CAAA,GAAAqB,GAAA,oBAAAnB,KAAA,UAAAoE,gBAAAA,CAAAA,CAAAA,CAAqB,MAAOrE,KAAO,EAwDrC,GAAAoB,GAAA,aAAAnB,KAAA,UAAAqE,SAAAA,CAAUC,CAAAA,CAAAA,CAChB,GAAIvE,IAAAA,CAAKwE,aAAc,CAAA,uBAAA,CAAA,CAA0B,OACjD,GAAMC,CAAAA,CAAQtB,CAAAA,QAAAA,CAASuB,aAAc,CAAA,OAAA,CAAA,CACrCD,CAAME,CAAAA,YAAAA,CAAa,gBAAkB,CAAA,MAAA,CAAA,CACrCF,CAAMG,CAAAA,WAAAA,CAAcL,CACpBvE,CAAAA,IAAAA,CAAK6E,YAAaJ,CAAAA,CAAAA,CAAOzE,IAAK8E,CAAAA,UAAAA,CAC/B,EAED,GAAA1D,GAAA,qBAAAnB,KAAA,UAAA8E,iBAAAA,CAAAA,CAAAA,KAAAA,qBAAAA,CAAAA,gBAAAA,CAAAA,qBAAAA,CAAAA,iBAAAA,CACEC,aAAAA,CAAAA,CAAAA,iCACAhF,IAAKsE,CAAAA,SAAAA,CAAUW,CAAOV,CAAAA,OAAAA,CAAAA,CACtBvE,IAAKkF,CAAAA,eAAAA,CAAAA,CAAAA,CAEDlF,IAAKC,CAAAA,KAAAA,EAAAA,CAAUD,IAAK0B,CAAAA,QAAAA,CAASyD,SAAUC,CAAAA,IAAAA,CAAAA,CAAAA,GACzCpF,IAAK0B,CAAAA,QAAAA,CAASyD,SAAYnF,CAAAA,IAAAA,CAAKC,KAEjCD,CAAAA,CAAAA,IAAAA,CAAKI,OAAUJ,CAAAA,IAAAA,CAAK0B,QAASyD,CAAAA,SAAAA,CAEzBnF,IAAKM,CAAAA,SAAAA,EAAWN,IAAKqF,CAAAA,mBAAAA,CAAoBrF,KAAKM,SAClDN,CAAAA,CAAAA,IAAAA,CAAKiB,UAAajB,CAAAA,IAAAA,CAAKwE,aAAc,CAAA,mBAAA,CAAA,CACjCxE,IAAKiB,CAAAA,UAAAA,GACNjB,CAAAA,qBAAAA,EAAAA,gBAAAA,KAAKiB,CAAAA,UAAAA,EAAmBqE,MAAStF,UAAAA,qBAAAA,WAAjCA,qBAAAA,CAAAA,IAAAA,CAAAA,gBAAAA,CAAiCA,IAAAA,CAAK0B,QAAU1B,CAAAA,IAAAA,CAAAA,EAAAA,qBAAAA,CAChDA,CAAAA,iBAAAA,KAAKiB,CAAAA,UAAAA,EAAmBsE,iBAAoBvF,UAAAA,qBAAAA,WAA5CA,qBAAAA,CAAAA,IAAAA,CAAAA,iBAAAA,CAA4CA,IAAAA,CAAKG,QAGpDH,CAAAA,CAAAA,CAAAA,IAAAA,CAAKwF,UACLxF,CAAAA,CAAAA,CAAAA,IAAAA,CAAK4B,kBACL5B,CAAAA,CAAAA,CAAAA,IAAAA,CAAKyF,WACN,CAAA,CAAA,EAEO,GAAArE,GAAA,mBAAAnB,KAAA,UAAAiF,eAAAA,CAAAA,CAAAA,CACNlF,IAAKM,CAAAA,SAAAA,CAAYN,KAAKwE,aAAc,CAAA,kBAAA,CAAA,CACpCxE,IAAKK,CAAAA,SAAAA,CAAYL,IAAKwE,CAAAA,aAAAA,CAAc,kBAGpCxE,CAAAA,CAAAA,IAAAA,CAAKgB,WAAchB,CAAAA,IAAAA,CAAKwE,aAAc,CAAA,gBAAA,CAAA,CACjCxE,IAAKgB,CAAAA,WAAAA,GACRhB,IAAKgB,CAAAA,WAAAA,CAAcmC,QAASuB,CAAAA,aAAAA,CAAc,KAC1C1E,CAAAA,CAAAA,IAAAA,CAAKgB,WAAY0E,CAAAA,SAAAA,CAAY,eAC7B1F,CAAAA,IAAAA,CAAK2F,WAAY3F,CAAAA,IAAAA,CAAKgB,WAIxBhB,CAAAA,CAAAA,CAAAA,IAAAA,CAAK4F,YAGD5F,CAAAA,CAAAA,CAAAA,IAAAA,CAAKM,WAAaN,IAAKM,CAAAA,SAAAA,CAAUuF,aAAkB7F,GAAAA,IAAAA,CAAKgB,WAC1DhB,EAAAA,IAAAA,CAAKgB,WAAY2E,CAAAA,WAAAA,CAAY3F,IAAKM,CAAAA,SAAAA,CAAAA,CAEhCN,IAAK0B,CAAAA,QAAAA,CAASmE,aAAkB7F,GAAAA,IAAAA,CAAKgB,WACvChB,EAAAA,IAAAA,CAAKgB,WAAY2E,CAAAA,WAAAA,CAAY3F,IAAK0B,CAAAA,QAAAA,CAAAA,CAIhC1B,IAAKK,CAAAA,SAAAA,GACHL,IAAKK,CAAAA,SAAAA,CAAUwF,aAAkB7F,GAAAA,IAAAA,EACnCA,IAAK2F,CAAAA,WAAAA,CAAY3F,IAAKK,CAAAA,SAAAA,CAAAA,CAGpBL,KAAKK,SAAUyF,CAAAA,sBAAAA,GAA2B9F,IAAKgB,CAAAA,WAAAA,EACjDhB,IAAK6E,CAAAA,YAAAA,CAAa7E,IAAKK,CAAAA,SAAAA,CAAWL,IAAKgB,CAAAA,WAAAA,CAAY+E,WAGxD,CAAA,CAAA,EAGO,GAAA3E,GAAA,4BAAAnB,KAAA,UAAA+F,wBAAAA,CAAyBC,CAC/BjG,CAAAA,CAAAA,IAAAA,CAAK2B,aACL3B,CAAAA,CAAAA,CAAAA,IAAAA,CAAKkG,aAAc,CAAA,GAAIC,CAAAA,WAAY,CAAA,iBAAA,CAAmB,CACpDC,MAAAA,CAAQ,CACNhG,OAAAA,CAASJ,IAAKI,CAAAA,OAAAA,CACdiG,OAASJ,CAAAA,CAAAA,CAAAA,CAEXK,SAAS,CACTC,CAAAA,QAAAA,CAAAA,CAAU,CAEb,CAAA,CAAA,CAAA,EAGD,GAAAnF,GAAA,wBAAAnB,KAAA,UAAAuG,oBAAAA,CAAAA,CAAAA,CACErD,QAASsD,CAAAA,mBAAAA,CAAoB,iBAAmBzG,CAAAA,IAAAA,CAAK8D,iBAAmB,CAAA,CAAA,CAAA,CAAA,CAEpE9D,IAAKiB,CAAAA,UAAAA,EAAejB,KAAKiB,UAAmByF,CAAAA,MAAAA,EAC7C1G,IAAKiB,CAAAA,UAAAA,CAAmByF,MAE3B1B,CAAAA,CAAAA,CAAAA,aAAAA,CAAAA,CAAAA,mCACD,EACS,GAAA5D,GAAA,WAAAnB,KAAA,UAAA0G,OAAAA,CAAQC,CACZA,CAAAA,CAAAA,CAAAA,CAAQC,GAAI,CAAA,kBAAA,CAAA,GACV7G,KAAK0B,QACP1B,EAAAA,IAAAA,CAAK0B,QAASoF,CAAAA,SAAAA,CAAUC,MAAO,CAAA,aAAA,CAAe/G,IAAKE,CAAAA,gBAAAA,CAAAA,CAEjDF,IAAKK,CAAAA,SAAAA,EACPL,IAAKK,CAAAA,SAAAA,CAAUyG,SAAUC,CAAAA,MAAAA,CAAO,aAAe/G,CAAAA,IAAAA,CAAKE,gBAGzD,CAAA,CAAA,EAEO,GAAAkB,GAAA,gBAAAnB,KAAA,UAAA2F,YAAAA,CAAAA,CAAAA,CAEN,GADA5F,IAAAA,CAAK0B,QAAW1B,CAAAA,IAAAA,CAAKwE,aAAc,CAAA,SAAA,CAAA,CAAA,CAC9BxE,IAAK0B,CAAAA,QAAAA,CAAU,CAClB,GAAMsF,CAAAA,IAAS7D,QAASuB,CAAAA,aAAAA,CAAc,SACtCsC,CAAAA,CAAAA,GAAAA,CAAOtB,SAAY,CAAA,QAAA,CACnBsB,GAAOrC,CAAAA,YAAAA,CAAa,iBAAmB,CAAA,MAAA,CAAA,CACvC3E,IAAK0B,CAAAA,QAAAA,CAAWsF,GACjB,EACIhH,IAAK0B,CAAAA,QAAAA,CAASyD,SAAUC,CAAAA,IAAAA,CAAAA,CAAAA,GAC3BpF,IAAK0B,CAAAA,QAAAA,CAASyD,SAAY,CAAA,aAAA,CAE7B,EAIO,GAAA/D,GAAA,iBAAAnB,KAAA,UAAAgH,aAAAA,CAAcC,CAAAA,CAAkC,KAAAC,cAAA,IAAfC,CAAAA,CAAe,CAAAC,SAAA,CAAApE,MAAA,IAAAoE,SAAA,MAAAC,SAAA,CAAAD,SAAA,IAAA,CAAA,CAAA,CACtD,GAAME,CAAAA,CAAAA,CAASL,EAAKM,UACpB,CAAA,GAAA,CAAKD,CAAQ,CAAA,OAEb,GAAME,CAAAA,CAAAA,CAAML,CAAgBF,CAAAA,EAAAA,cAAAA,CAAAA,CAAAA,CAAKtC,WAAe,UAAAuC,cAAA,UAAAA,cAAA,CAAA,EAAA,EAAInE,OAAQ,CAAA,SAAA,CAAW,EAAM,CAAA,CAAA,EAAA,CACvE0E,CAAWvE,CAAAA,QAAAA,CAASQ,cAAe8D,CAAAA,CAAAA,CAAAA,CACzCF,CAAO1C,CAAAA,YAAAA,CAAa6C,CAAUR,CAAAA,CAAAA,CAAAA,CAC9BK,CAAOI,CAAAA,WAAAA,CAAYT,CACnB,CAAA,CAAA,GAAMhE,CAAAA,CAAIC,CAAAA,QAAAA,CAASC,WACnBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAEW,cAAc6D,CAChBxE,CAAAA,CAAAA,CAAAA,CAAEI,QAAS,CAAA,CAAA,CAAA,CAAA,CACX,GAAMxB,CAAAA,CAAAA,CAAMC,MAAOC,CAAAA,YAAAA,CAAAA,CAAAA,CACnBF,CAAKyB,SAALzB,CAAKyB,WAALzB,CAAKyB,CAAAA,eAAAA,CAAAA,CAAAA,CACLzB,CAAK0B,SAAL1B,CAAK0B,iBAAL1B,CAAK0B,CAAAA,QAAAA,CAASN,CACf,CAAA,EAEO,GAAA9B,GAAA,uBAAAnB,KAAA,UAAA2H,mBAAAA,CAAAA,CAAAA,KAAAA,MAAAA,MACN,GAAK5H,CAAAA,IAAAA,CAAK0B,QAAU,CAAA,OACH1B,IAAK0B,CAAAA,QAAAA,CAASmG,gBAAiB,CAAA,cAAA,CAAA,CAEvCC,OAASC,CAAAA,SAAAA,CAAAA,CAAAA,KAAAA,cAAAA,CAChB,GAAMb,CAAAA,CAAAA,CAAOa,CACP3G,CAAAA,CAAAA,CAAM8F,EAAKc,YAAa,CAAA,kBAAA,CAAA,CACxBC,CAAQf,CAAAA,CAAAA,CAAKc,YAAa,CAAA,oBAAA,CAAA,CAC1BE,CAAUhB,CAAAA,CAAAA,CAAKc,YAAa,CAAA,sBAAA,CAAA,EAA2B,EACvDG,CAAAA,CAAAA,CAAAA,EAAAA,cAAAA,CAAQjB,CAAKtC,CAAAA,WAAAA,UAAAA,cAAAA,UAAAA,cAAAA,CAAe,EAAI5B,EAAAA,OAAAA,CAAQ,SAAW,CAAA,EAAA,CAAA,CAAIoC,IAGvDgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAehH,CAAS6G,EAAAA,CAAAA,CAAAA,CAAAA,EAASE,CAAKlF,CAAAA,MAAAA,CAAS,CAClCkF,EAAAA,CAAAA,CAAKE,UAAWH,CAAAA,CAAAA,CAAAA,EAAYC,CAAKG,CAAAA,QAAAA,CAASL,GAGxDE,CAASC,EAAAA,CAAAA,EACZpI,MAAKiH,CAAAA,aAAAA,CAAcC,CAAM,CAAA,CAAA,CAAA,CAE1B,EAEJ,CAAA,EAGO,GAAA9F,GAAA,cAAAnB,KAAA,UAAAuF,UAAAA,CAAAA,CAAAA,KAAAA,MAAAA,MACNxF,IAAK0B,CAAAA,QAAAA,CAAS6G,gBAAiB,CAAA,OAAA,CAAS,UACtCvI,CAAAA,MAAAA,CAAKwI,yBACLxI,CAAAA,CAAAA,CAAAA,MAAAA,CAAK4H,mBACL5H,CAAAA,CAAAA,CAAAA,MAAAA,CAAK2B,aAAe,CAAA,CAAA,EAAA,CAAA,CAEtB3B,IAAK0B,CAAAA,QAAAA,CAAS6G,gBAAiB,CAAA,SAAA,CAAW,iBAAMvI,CAAAA,MAAAA,CAAKyI,aACrDzI,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAK0B,SAAS6G,gBAAiB,CAAA,OAAA,CAAS,iBAAMvI,CAAAA,MAAAA,CAAKyI,aACnDzI,CAAAA,CAAAA,EAAAA,CAAAA,CAAAA,IAAAA,CAAK0B,QAAS6G,CAAAA,gBAAAA,CAAiB,SAAWvI,CAAAA,IAAAA,CAAKkB,eAChD,CAAA,EAqEO,GAAAE,GAAA,uBAAAnB,KAAA,UAAAoF,mBAAAA,CAAoBqD,CAE1B1I,CAAAA,KAAAA,MAAAA,MAAAA,IAAAA,CAAKQ,SAAUb,CAAAA,KAAAA,CAAAA,CAAAA,CACfK,IAAKU,CAAAA,aAAAA,CAAgB,IACrBV,CAAAA,IAAAA,CAAKW,UAAa,CAAA,IAAA,CAClBX,IAAKY,CAAAA,UAAAA,CAAa,IAGlB+H,CAAAA,KAAAA,CAAMC,IAAKF,CAAAA,CAAAA,CAAGG,UAAUf,OAAQgB,CAAAA,SAAAA,CAAAA,CAAAA,CAC9B,GAAMC,CAAAA,CAAAA,CAAMD,CAAME,CAAAA,OAAAA,CAAQxH,WAE1B,CAAA,CAAA,CAAA,GAAY,iBAARuH,GAAAA,CAAAA,EAA4D,OAA/BD,GAAAA,CAAAA,CAAMd,YAAa,CAAA,MAAA,CAAA,CAApD,CAUA,GAAY,eAAA,GAARe,CAMF,CAAA,MALCD,CAAAA,CAAcpH,CAAAA,QAAAA,CAAW1B,MAAK0B,CAAAA,QAAAA,CAAAA,IAC/BoH,CAAAA,CAAMP,CAAAA,gBAAAA,CAAiB,cAAgB,CAAA,UAAA,CACrCvI,MAAK2B,CAAAA,aAAAA,CAAAA,CAAAA,CACL3B,OAAK4B,kBAAoB,CAAA,CAAA,EAAA,CAAA,CAO7B,GAAY,uBAAA,GAARmH,CAAiC,CAAA,KAAAE,oBAAA,CAEnC,GAAIC,CAAAA,GAAAA,CAAMJ,CAAMtE,CAAAA,aAAAA,CAAc,sBAE9B,CAAA,CAAA,GAAM2E,CAAAA,GAAQL,CAAAA,CAAAA,CAAMd,YAAa,CAAA,MAAA,CAAA,EAAY,EACvCC,CAAAA,GAAAA,CAAQa,CAAMd,CAAAA,YAAAA,CAAa,OAAYmB,CAAAA,EAAAA,GAAAA,CACvCC,GAAWN,CAAAA,CAAAA,CAAMd,YAAa,CAAA,MAAA,CAAA,CAC9BqB,GAAqBP,CAAAA,CAAAA,CAAM3D,SAAUC,CAAAA,IAAAA,CAAAA,CAAAA,CAAOnC,OAAS,CAU3D,CAAA,GAPKiG,GACHA,GAAAA,GAAAA,CAAM/F,QAASuB,CAAAA,aAAAA,CAAc,aAC5BwE,CAAAA,CAAAA,GAAAA,CAAYI,OAAU,CAAA,UAAA,CACtBJ,GAAYK,CAAAA,IAAAA,CAAO,OAIlBH,CAAAA,CAAAA,GAAAA,CACFF,GAAI/D,CAAAA,SAAAA,sBAAAA,MAAAA,CAAgCiE,GAAAA,qBAAAA,MAAAA,CAAyBnB,GAC7Da,mBAAAA,CAAAA,CAAAA,CAAM3D,SAAY,CAAA,EAAA,CAAA,IACb,IAAKkE,GAAAA,CASVH,GAAI/D,CAAAA,SAAAA,CAAY2D,CAAM3D,CAAAA,SAAAA,CACtB2D,CAAM3D,CAAAA,SAAAA,CAAY,OAVY,CAC9B,GAAMqE,CAAAA,GAAcxK,CAAAA,CAAAA,CAAcmK,GAC9BK,CAAAA,CAAAA,GAAAA,CACFN,GAAI/D,CAAAA,SAAAA,sBAAAA,MAAAA,CAAgCqE,GAAAA,iDAAAA,MAAAA,CAAoDvB,GAExFiB,mBAAAA,CAAAA,GAAAA,CAAItE,WAAcqD,CAAAA,GAAAA,EAASkB,GAE7BL,CAAAA,CAAAA,CAAM3D,SAAY,CAAA,EACnB,EAMT,GAAA,CAAK+D,GAAIO,CAAAA,WAAAA,CAAa,CACpB,GAAMC,CAAAA,GAAUvG,CAAAA,QAAAA,CAASuB,aAAc,CAAA,cAAA,CAAA,CACvCgF,GAAQ/E,CAAAA,YAAAA,CAAa,UAAWsD,GAChCyB,CAAAA,CAAAA,GAAAA,CAAQ/D,WAAYuD,CAAAA,GAAAA,CAAAA,CACpBJ,CAAMnD,CAAAA,WAAAA,CAAY+D,GACnB,CAAA,EAIOR,GAAIvE,CAAAA,YAAAA,CAAa,YAAcsD,CAAAA,GAAAA,CAAAA,CAC/BiB,GAAIX,CAAAA,gBAAAA,CAAiB,WAAapH,CAAAA,SAAAA,CAAAA,QAAKA,CAAAA,CAAEG,CAAAA,cAAAA,CAAAA,CAAAA,EAAAA,CAAAA,CACzC4H,GAAIX,CAAAA,gBAAAA,CAAiB,OAAS,CAAA,iBAAMvI,CAAAA,MAAK2J,CAAAA,gBAAAA,CAAiBR,GAG1D,CAAA,EAAA,CAAA,CAAA,GAAMS,CAAAA,EAAM5J,EAAAA,oBAAAA,CAAAA,MAAAA,CAAKQ,SAAUqJ,CAAAA,GAAAA,CAAIV,iEAAQ,EAIvC,CAAA,MAHAS,CAAAA,EAAIE,CAAAA,IAAAA,CAAKZ,GACTlJ,CAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAKQ,SAAUuJ,CAAAA,GAAAA,CAAIZ,GAAKS,CAAAA,EAAAA,CAGzB,EACD,GAAY,iBAARb,GAAAA,CAAAA,CA4Be,gBAARA,GAAAA,CAAAA,EACHD,CAAMP,CAAAA,gBAAAA,CAAiB,QAAWpH,CAAAA,SAAAA,CAAAA,CAAAA,CAChCnB,MAAK6B,CAAAA,eAAAA,CAAAA,CAAAA,CACL,IAAAmI,SAAA,CAAwB7I,CAAAA,CAAEiF,MAEb,CAFL6D,CAAIhK,CAAAA,SAAAA,CAANgK,IAAAA,CAAQhK,CAAUkB,CAAAA,SAAAA,CAAZlB,KAAAA,CAEC,WAAA,GAATgK,EACFC,CAAalK,CAAAA,MAAAA,CAAK0B,QAAUzB,CAAAA,CAAAA,CAAAA,CAE5BkK,CAAanK,CAAAA,MAAAA,CAAK0B,QAAUzB,CAAAA,CAAAA,CAAAA,CAG9BD,MAAK2B,CAAAA,aAAAA,CAAAA,CAAAA,CACL3B,MAAK4B,CAAAA,kBAAAA,CAAAA,CAAoB,EAxCnC,CAAA,CAAA,IAAA,CACO,GAAMwI,CAAAA,GAAAA,CAAOtB,CAAMd,CAAAA,YAAAA,CAAa,MAAW,CAAA,EAAA,EAAA,CAG1Cc,CAAMP,CAAAA,gBAAAA,CAAiB,QAAWpH,CAAAA,SAAAA,CAAAA,CAAAA,CAEhCnB,MAAK6B,CAAAA,eAAAA,CAAAA,CAAAA,CAEL,GAAMwI,CAAAA,CAAAA,CAAMlJ,CAAEiF,CAAAA,MAAAA,CAED,YAATgE,GAEFE,CAAAA,CAAAA,CAAYtK,MAAK0B,CAAAA,QAAAA,CAAU2I,CAEX,CAAA,CAAA,MAAA,GAATD,GACPG,EAAAA,CAAAA,CAAcvK,MAAK0B,CAAAA,QAAAA,CAAU2I,CAI/BrK,CAAAA,CAAAA,MAAAA,CAAK2B,aACL3B,CAAAA,CAAAA,CAAAA,MAAAA,CAAK4B,kBAAoB,CAAA,CAAA,EAAA,CAK3B,EA3FP,CAAA,IARCkH,CAAAA,CAAMP,CAAAA,gBAAAA,CAAiB,QAAWpH,CAAAA,SAAAA,CAAAA,CAAAA,CAChCnB,MAAK6B,CAAAA,eAAAA,CAAAA,CAAAA,CACL,GAAM2I,CAAAA,CAAAA,CAAYrJ,CAAEiF,CAAAA,MAAAA,CACpBqE,CAAazK,CAAAA,MAAAA,CAAK0B,SAAU8I,CAC5BxK,CAAAA,CAAAA,MAAAA,CAAK2B,aACL3B,CAAAA,CAAAA,CAAAA,MAAAA,CAAK4B,kBAAoB,CAAA,CAAA,EAAA,CAgHtB,EAGV,CAAA,EAWO,GAAAR,GAAA,iBAAAnB,KAAA,UAAAwI,aAAAA,CAAAA,CAAAA,CACN,GAAM3G,CAAAA,CAAAA,CAAMC,MAAOC,CAAAA,YAAAA,CAAAA,CAAAA,CACfF,GAAOA,CAAIG,CAAAA,UAAAA,GAAYjC,IAAKO,CAAAA,SAAAA,CAAYuB,CAAIK,CAAAA,UAAAA,CAAW,CAAG8B,CAAAA,CAAAA,UAAAA,CAAAA,CAAAA,CAC/D,EACO,GAAA7C,GAAA,oBAAAnB,KAAA,UAAAyK,gBAAAA,CAAAA,CACN,CAAA,GAAA,CAAK1K,IAAKO,CAAAA,SAAAA,CAAW,OACrB,GAAMuB,CAAAA,CAAAA,CAAMqB,QAASnB,CAAAA,YAAAA,CAAAA,CAAAA,CAAqBF,CAC1CA,GAAAA,CAAAA,CAAIyB,eAAmBzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAI0B,QAASxD,CAAAA,IAAAA,CAAKO,SAC1C,CAAA,CAAA,EACO,GAAAa,GAAA,mBAAAnB,KAAA,UAAA4B,eAAAA,CAAAA,CAAAA,KAAAA,cAAAA,CAAoB7B,CAAAA,cAAAA,KAAK0B,CAAAA,QAAAA,UAAAA,cAAAA,WAAL1B,cAAAA,CAAe2K,KAAS3K,CAAAA,CAAAA,CAAAA,IAAAA,CAAK0K,gBAAqB,CAAA,CAAA,EAGxE,GAAAtJ,GAAA,cAAAnB,KAAA,UAAA2K,UAAAA,CAAWR,CAEjB,CAAA,CAAA,GADApK,IAAK0K,CAAAA,gBAAAA,CAAAA,CAAAA,CAAAA,CACA1K,IAAKO,CAAAA,SAAAA,CAAW,OAGrB,GAAMsK,CAAAA,EAAO1H,QAASuB,CAAAA,aAAAA,CAAc0F,CAG9BU,CAAAA,CAAAA,CAAAA,CAAQ9K,IAAKO,CAAAA,SAAAA,CAAUwK,eACvBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ7H,QAASuB,CAAAA,aAAAA,CAAc,KACrCsG,CAAAA,CAAAA,CAAAA,CAAKrF,WAAYmF,CAAAA,CAAAA,CAAAA,CAGjBnC,KAAMC,CAAAA,IAAAA,CAAKoC,CAAKC,CAAAA,UAAAA,CAAAA,CAAYnD,OAAQoD,CAAAA,SAAAA,CAAAA,CAAAA,KAAAA,eAAAA,CAElC,GAAIA,CAAAA,CAAE5I,QAAaC,GAAAA,IAAAA,CAAKC,SAAc0I,EAAAA,GAAAA,eAAAA,CAAAA,CAAAA,CAAEtG,WAAaQ,UAAAA,eAAAA,WAAf8F,eAAAA,CAAe9F,IAAAA,CAAAA,CAAAA,EAAQ,OAC7D,GAAM+F,CAAAA,EAAKhI,QAASuB,CAAAA,aAAAA,CAAc,IAClCyG,CAAAA,CAAAA,CAAAA,CAAGxF,WAAYuF,CAAAA,CAAAA,CAAAA,CACfL,CAAKlF,CAAAA,WAAAA,CAAYwF,CAAG,CAAA,EAAA,CAAA,CAItBnL,IAAKO,CAAAA,SAAAA,CAAUqD,UAAWiH,CAAAA,CAAAA,CAAAA,CAC1B7K,IAAKoL,CAAAA,aAAAA,CAAcP,CACpB,CAAA,EAEO,GAAAzJ,GAAA,iBAAAnB,KAAA,UAAAmL,aAAAA,CAAcC,CACpB,CAAA,CAAA,GAAMnJ,CAAAA,CAAQiB,CAAAA,QAAAA,CAASC,WACvBlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM2B,aAAcwH,CAAAA,CAAAA,CAAAA,CACpBnJ,CAAMoB,CAAAA,QAAAA,CAAAA,CAAS,GACf,GAAMxB,CAAAA,CAAAA,CAAMC,MAAOC,CAAAA,YAAAA,CAAAA,CAAAA,CACnBF,CAAKyB,SAALzB,CAAKyB,WAALzB,CAAKyB,CAAAA,eAAAA,CAAAA,CAAAA,CACLzB,CAAK0B,SAAL1B,CAAK0B,WAAL1B,CAAK0B,CAAAA,QAAAA,CAAStB,CAEdlC,CAAAA,CAAAA,IAAAA,CAAKyI,aACLzI,CAAAA,CAAAA,CAAAA,IAAAA,CAAK2B,aACL3B,CAAAA,CAAAA,CAAAA,IAAAA,CAAK4B,kBACN,CAAA,CAAA,EAEO,GAAAR,GAAA,6BAAAnB,KAAA,UAAAuI,yBAAAA,CAAAA,CAAAA,KAAAA,eAAAA,CACN,GAAM8C,CAAAA,CAAAA,CAAKtL,IAAK0B,CAAAA,QAAAA,CAChB,GAAK4J,CAAAA,CAAAA,CAAI,OAGT,GAAMC,CAAAA,CACqD,CAAA,EAAA,GAAA,EAAAC,eAAA,CAAxDF,CAAG1G,CAAAA,WAAAA,UAAAA,eAAAA,UAAAA,eAAAA,CAAe,IAAI5B,OAAQ,CAAA,SAAA,CAAW,EAAIoC,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAChD,GAA6B,CAAA,GAAzBkG,CAAGL,CAAAA,UAAAA,CAAWhI,MAAgBsI,EAAAA,CAAAA,CAEhC,MADAD,MAAAA,CAAAA,CAAGnG,SAAY,CAAA,aAAA,CAAA,CAMjB,GADiBmG,CAAAA,CAAAA,CAAG9G,aAAc,CAAA,gDAAA,CAAA,CACnB,CACb,GAAMzE,CAAAA,GAAIoD,CAAAA,QAAAA,CAASuB,aAAc,CAAA,GAAA,CAAA,CACjC,KAAO4G,CAAAA,CAAGxG,UAAY/E,EAAAA,GAAAA,CAAE4F,WAAY2F,CAAAA,CAAAA,CAAGxG,YAGvC,MAFK/E,CAAAA,GAAAA,CAAE0L,aAAiB1L,CAAAA,CAAAA,EAAAA,GAAAA,CAAE4F,WAAYxC,CAAAA,QAAAA,CAASuB,aAAc,CAAA,IAAA,CAAA,CAAA,CAAA,IAC7D4G,CAAAA,CAAG3F,CAAAA,WAAAA,CAAY5F,GAEhB,CAAA,EAGDuL,CAAGzD,CAAAA,gBAAAA,CAAiB,GAAKC,CAAAA,CAAAA,OAAAA,CAAQ/H,SAAAA,CACsB,CAAA,KAAA2L,eAAA,CAAA,EAAA,GAAA,EAAAA,eAAA,CAAhD3L,CAAE6E,CAAAA,WAAAA,UAAAA,eAAAA,UAAAA,eAAAA,CAAe,EAAI5B,EAAAA,OAAAA,CAAQ,SAAW,CAAA,EAAA,CAAA,GACtCjD,CAAEoF,CAAAA,SAAAA,CAAU3D,WAAc8G,CAAAA,CAAAA,CAAAA,QAAAA,CAAS,KAAQvI,CAAAA,GAAAA,CAAAA,CAAEoF,UAAY,MAC/D,CAAA,CAAA,EAAA,CAEJ,EAKS,GAAA/D,GAAA,oBAAAnB,KAAA,UAAA0J,gBAAAA,CAAiBR,CAAAA,CAAAA,CAEvB,OADAnJ,IAAAA,CAAK6B,eACGsH,CAAAA,CAAAA,CAAAA,CAAAA,EACN,IAAK,MAAA,CAAQ1H,CAAgBzB,CAAAA,IAAAA,CAAK0B,QAAU,CAAA,QAAA,CAAA,CAAW,MACvD,IAAK,QAAUD,CAAAA,CAAAA,CAAgBzB,IAAK0B,CAAAA,QAAAA,CAAU,IAAO,CAAA,CAAA,MACrD,IAAK,WAAA,CAAaD,CAAgBzB,CAAAA,IAAAA,CAAK0B,QAAU,CAAA,GAAA,CAAA,CAAM,MACvD,IAAK,MAAA,CAAQ+I,CAAazK,CAAAA,IAAAA,CAAK0B,QAAU,CAAA,MAAA,CAAA,CAAS,MAClD,IAAK,QAAU+I,CAAAA,CAAAA,CAAazK,IAAK0B,CAAAA,QAAAA,CAAU,QAAW,CAAA,CAAA,MACtD,IAAK,OAAS+I,CAAAA,CAAAA,CAAazK,IAAK0B,CAAAA,QAAAA,CAAU,OAAU,CAAA,CAAA,MACpD,IAAK,SAAA,CAAW+I,CAAazK,CAAAA,IAAAA,CAAK0B,QAAU,CAAA,SAAA,CAAA,CAAY,MACxD,IAAK,KAAM1B,IAAK4K,CAAAA,UAAAA,CAAW,IAAO,CAAA,CAAA,MAClC,IAAK,IAAA,CAAM5K,IAAK4K,CAAAA,UAAAA,CAAW,IAAO,CAAA,CAAA,MAClC,IAAK,MAAA,CAAS,MACd,IAAK,OACT,CAAA,GAAMe,CAAAA,GAASxI,CAAAA,QAAAA,CAASyI,gBAAiB5L,CAAAA,IAAAA,CAAK0B,QAAUmK,CAAAA,UAAAA,CAAWC,YAC7DC,CAAAA,CAAAA,GAAAA,CAA0B,EAChC,CAAA,KAAOJ,GAAOK,CAAAA,QAAAA,CAAAA,CAAAA,EAAY,CACxB,GAAMV,CAAAA,IAAKK,GAAOM,CAAAA,WAAAA,CAClBX,GAAGY,CAAAA,eAAAA,CAAgB,OACf,CAAA,CAAA,CAAC,GAAI,CAAA,QAAA,CAAS,GAAI,CAAA,IAAA,CAAK,GAAI,CAAA,MAAA,CAAO,MAAQ5D,CAAAA,CAAAA,QAAAA,CAASgD,GAAGtC,CAAAA,OAAAA,CAAAA,EACxD+C,GAASjC,CAAAA,IAAAA,CAAKwB,GAEjB,CAAA,EACD,QAAAa,GAAA,GAAAC,GAAA,CAAiBL,GAAAA,CAAAA,GAAAA,CAAAA,GAAAA,CAAAA,MAAAA,CAAAA,GAAAA,GAAU,CAAtB,GAAMT,CAAAA,GAAMS,CAAAA,GAAAA,CAAAA,GAAAA,EACf,KAAOT,GAAGxG,CAAAA,UAAAA,OAAAA,cAAAA,CAAYwG,CAAAA,cAAAA,CAAAA,GAAG9D,CAAAA,UAAAA,UAAAA,cAAAA,WAAH8D,cAAAA,CAAezG,aAAayG,GAAGxG,CAAAA,UAAAA,CAAYwG,GACjEA,CAAAA,CAAAA,CAAAA,GAAAA,CAAGe,MACJ,CAAA,CAAA,EACDrM,IAAKwI,CAAAA,yBAAAA,CAAAA,CAAAA,EAKHxI,IAAK2B,CAAAA,aAAAA,CAAAA,CAAAA,CAAiB3B,IAAK4B,CAAAA,kBAAAA,CAAAA,CAC5B,EAEO,GAAAR,GAAA,gBAAAnB,KAAA,UAAAqM,YAAAA,CAAanD,CAAAA,CAAaoD,CAChC,CAAA,CAAA,GAAM3C,CAAAA,CAAM5J,CAAAA,IAAAA,CAAKQ,SAAUqJ,CAAAA,GAAAA,CAAIV,CAAM,CAAA,CAAA,GAAKS,CAC1C,MAAA4C,SAAA,CAAAC,0BAAA,CAAkB7C,CAAKV,EAAAA,KAAAA,KAAvB,IAAAsD,SAAA,CAAAE,CAAA,KAAAC,KAAA,CAAAH,SAAA,CAAAtB,CAAA,IAAA0B,IAAA,EAAuB1D,IAAZA,CAAAA,GAAAA,CAAAA,KAAAA,CAAAA,KAAAA,CAAYA,GAAAA,CAAI2D,gBAAgB,aAAiBN,CAAAA,CAAAA,CAAAA,CAAAA,CAC7D,CAD6DA,CAC7D,OAAAO,GAAA,EAAAN,SAAA,CAAArL,CAAA,CAAA2L,GAAA,WAAAN,SAAA,CAAAO,CAAA,MAEO,GAAA3L,GAAA,sBAAAnB,KAAA,UAAA2B,kBAAAA,CAAAA,CACN,KAAAoL,MAAA,MAAAC,UAAA,CAAA,GAAA,CAAKjN,IAAK0B,CAAAA,QAAAA,CAAU,OACpB,GAAMI,CAAAA,CAAMqB,CAAAA,QAAAA,CAASnB,YACrB,CAAA,CAAA,CAAA,GAAA,CAAKF,CAA0B,EAAA,CAAA,GAAnBA,CAAIG,CAAAA,UAAAA,CAAkB,OAClC,GAAMC,CAAAA,CAAQJ,CAAAA,CAAAA,CAAIK,UAAW,CAAA,CAAA,CAAA,CAC7B,GAAKnC,CAAAA,IAAAA,CAAK0B,QAASqC,CAAAA,QAAAA,CAAS7B,CAAM8B,CAAAA,uBAAAA,CAAAA,CAA0B,OAE5D,GAAMkJ,CAAAA,CAAAA,CAAWC,CAAejL,CAAAA,CAAAA,CAAMG,cAAmBrC,CAAAA,EAAAA,IAAAA,CAAK0B,QACxD0L,CAAAA,CAAAA,CAAOC,gBAAiBH,CAAAA,CAAAA,CAAAA,CACxBI,CAAQC,CAAAA,CAAAA,CAAarL,CAAMG,CAAAA,cAAAA,CAAgBrC,IAAK0B,CAAAA,QAAAA,CAAAA,EAAa1B,IAAK0B,CAAAA,QAAAA,CAElE8L,CAAS,CAAA,UAAA,CACb,GAAItC,CAAAA,CAAAA,CAAiBgC,CACrB,CAAA,KAAOhC,CAAKA,EAAAA,CAAAA,GAAMlL,MAAK0B,CAAAA,QAAAA,EAAU,CAC/B,GAAIwJ,YAAauC,CAAAA,WAAa,CAAA,CAC5B,GAAMhL,CAAAA,GAAAA,CAAIyI,CAAElC,CAAAA,OAAAA,CAAQxH,WACpB,CAAA,CAAA,CAAA,GAAU,QAANiB,GAAAA,GAAAA,EAAwB,GAANA,GAAAA,GAAAA,CAAW,MAAO,CAAA,CAAA,CACxC,GAAMiL,CAAAA,GAAAA,CAAIL,gBAAiBnC,CAAAA,CAAAA,CAAAA,CAAGyC,UAC9B,CAAA,GAAIC,QAASF,CAAAA,GAAAA,CAAG,EAAO,CAAA,EAAA,GAAA,CAAK,MAAO,CAAA,CACpC,EACDxC,CAAAA,CAAIA,CAAE1D,CAAAA,UACP,EACD,MAAO,CAAA,CACR,EAZc,CAAA,CAAA,CAcTqG,CAAW,CAAA,UAAA,CACf,GAAI3C,CAAAA,CAAAA,CAAiBgC,CACrB,CAAA,KAAOhC,CAAKA,EAAAA,CAAAA,GAAMlL,MAAK0B,CAAAA,QAAAA,EAAU,CAC/B,GAAIwJ,CAAauC,WAAAA,CAAAA,WAAAA,CAAa,CAC5B,GAAMhL,CAAAA,GAAIyI,CAAAA,CAAAA,CAAElC,OAAQxH,CAAAA,WAAAA,CAAAA,CAAAA,CACpB,GAAU,IAAA,GAANiB,GAAoB,EAAA,GAAA,GAANA,GAAW,CAAA,MAAA,CAAO,EACpC,GAAsC,QAAA,GAAlC4K,gBAAiBnC,CAAAA,CAAAA,CAAAA,CAAG4C,SAAwB,CAAA,MAAA,CAAO,CACxD,EACD5C,CAAIA,CAAAA,CAAAA,CAAE1D,UACP,EACD,MAAO,CAAA,CACR,GAEKuG,CAAAA,CAAAA,CAAAA,CACJ,UAAA,CAAA,GAAI7C,CAAAA,CAAiBgC,CAAAA,CAAAA,CACrB,KAAOhC,CAAAA,EAAKA,CAAMlL,GAAAA,MAAAA,CAAK0B,QAAU,EAAA,CAC/B,GAAIwJ,CAAAA,WAAauC,CAAAA,YAAa,CAC5B,GAAMO,CAAAA,IAAMX,CAAAA,gBAAAA,CAAiBnC,CAAG+C,CAAAA,CAAAA,kBAAAA,CAChC,GAAID,IAAAA,EAAOA,IAAI1F,CAAAA,QAAAA,CAAS,WAAc,CAAA,CAAA,MAAA,CAAO,CAC7C,CAAA,GAAgC,GAA5B4C,GAAAA,CAAAA,CAAElC,OAAQxH,CAAAA,WAAAA,CAAAA,CAAAA,CAAuB,MAAO,CAAA,CAC7C,EACD0J,CAAAA,CAAIA,CAAE1D,CAAAA,UACP,EACD,MAAA,CAAO,CACR,EAAA,CAEK0G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhB,EAASiB,OAAQ,CAAA,GAAA,CAAA,CAE5BC,CAASd,CAAAA,CAAAA,CAAM7I,KAAM4J,CAAAA,SAAAA,EAAahB,gBAAiBC,CAAAA,CAAAA,CAAAA,CAAOe,SAAa,EAAA,OAAA,CACvEC,CAAsB,CAAA,OAAA,GAAVF,CAAoB,CAAA,MAAA,CAASA,CAGzCG,CAAAA,CAAAA,CAAAA,CAAAA,CADSrB,CAASiB,CAAAA,OAAAA,CAAQ,IACPjB,CAAAA,IAAAA,UAAAA,CAAAA,CAAAA,CAASiB,OAAQ,CAAA,OAAA,CAAA,UAAAlB,UAAA,iBAAjBC,UAAAA,CAA2BlE,OAAQxH,CAAAA,WAAAA,CAAAA,CAAAA,GAAuB,EAgBnF,CAAA,GAdAxB,IAAKsM,CAAAA,YAAAA,CAAa,MAAQkB,CAAAA,CAAAA,CAAAA,CAC1BxN,KAAKsM,YAAa,CAAA,QAAA,CAAUuB,CAC5B7N,CAAAA,CAAAA,IAAAA,CAAKsM,YAAa,CAAA,WAAA,CAAayB,CAC/B/N,CAAAA,CAAAA,IAAAA,CAAKsM,YAAa,CAAA,MAAA,CAAQ4B,CAE1BlO,CAAAA,CAAAA,IAAAA,CAAKsM,YAAa,CAAA,MAAA,CAAsB,MAAdgC,GAAAA,CAAAA,EAAAA,CAAyB,CAAC,QAAA,CAAS,OAAQ,CAAA,SAAA,CAAA,CAAWhG,QAASgG,CAAAA,CAAAA,CAAAA,CAAAA,CACzFtO,IAAKsM,CAAAA,YAAAA,CAAa,QAAwB,CAAA,QAAA,GAAdgC,CAC5BtO,CAAAA,CAAAA,IAAAA,CAAKsM,YAAa,CAAA,OAAA,CAAuB,UAAdgC,CAC3BtO,CAAAA,CAAAA,IAAAA,CAAKsM,YAAa,CAAA,SAAA,CAAyB,SAAdgC,GAAAA,CAAAA,CAAAA,CAE7BtO,IAAKsM,CAAAA,YAAAA,CAAa,IAAmB,CAAA,IAAA,GAAbiC,CACxBvO,CAAAA,CAAAA,IAAAA,CAAKsM,YAAa,CAAA,IAAA,CAAmB,IAAbiC,GAAAA,CAAAA,CAAAA,CAGpBvO,IAAKU,CAAAA,aAAAA,CAAe,CACtB,GAAMqI,CAAAA,GAAMuE,CAAAA,CAAAA,CAAMtE,OAAQxH,CAAAA,WAAAA,CAAAA,CAAAA,CACpBgN,IAAI,CAAA,CAAC,IAAK,CAAA,IAAA,CAAK,IAAMlG,CAAAA,CAAAA,QAAAA,CAASS,KAAOA,GAAM,CAAA,GAAA,CAC7C/I,IAAKU,CAAAA,aAAAA,CAAcT,KAAUuO,GAAAA,IAAAA,GAAGxO,IAAKU,CAAAA,aAAAA,CAAcT,KAAQuO,CAAAA,IAAAA,CAChE,EAGD,GAAIxO,IAAKW,CAAAA,UAAAA,CAAY,CACnB,GAAM8N,CAAAA,GAAMrB,CAAAA,CAAAA,CAAAA,CAAKsB,UAAc,EAAA,EAAA,EAAI1L,OAAQ,CAAA,OAAA,CAAS,EAAI2L,CAAAA,CAAAA,KAAAA,CAAM,GAAK,CAAA,CAAA,CAAA,CAAA,CAAGvJ,IAAO5D,CAAAA,CAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAC7E,GAAIiN,GAAAA,CACF,QAAAG,IAAA,GAAAC,WAAA,CAAkBlG,KAAMC,CAAAA,IAAAA,CAAK5I,IAAKW,CAAAA,UAAAA,CAAWmO,OAC3C,CAAA,CAAAF,IAAA,CAAAC,WAAA,CAAA5L,MAAA,CAAA2L,IAAA,IADG,GAAMG,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,IAAAA,EACT,GAAIA,IAAI9O,CAAAA,KAAAA,CAAMuB,WAAkBiN,CAAAA,CAAAA,GAAAA,GAAAA,CAAI,CAAEzO,IAAAA,CAAKW,UAAWV,CAAAA,KAAAA,CAAQ8O,IAAI9O,CAAAA,KAAAA,CAAO,MAAQ,CAGtF,EAED,GAAID,IAAKY,CAAAA,UAAAA,CAAY,CACnB,GAAMoO,CAAAA,GAAMC,CAAAA,CAAAA,CAAS7B,CAAK8B,CAAAA,KAAAA,CAAAA,CACtBF,KAAOhP,IAAKY,CAAAA,UAAAA,CAAWX,KAAMuB,CAAAA,WAAAA,CAAAA,CAAAA,GAAkBwN,GAAIxN,CAAAA,WAAAA,CAAAA,CAAAA,GACrDxB,IAAKY,CAAAA,UAAAA,CAAWX,KAAQ+O,CAAAA,GAAAA,CAAAA,CAEtBhP,IAAKc,CAAAA,aAAAA,GAAed,IAAKc,CAAAA,aAAAA,CAAc2D,KAAM0K,CAAAA,eAAAA,CAAkBnP,IAAKY,CAAAA,UAAAA,CAAWX,KACpF,CAAA,EAGD,GAAID,IAAAA,CAAKa,YAAc,CAAA,CACrB,GAAMuO,CAAAA,GAAAA,CAAK/B,gBAAiBH,CAAAA,CAAAA,CAAAA,CAAUiC,eACtC,CAAA,GAAIC,MAAO,sDAAuDC,CAAAA,IAAAA,CAAKD,GAAK,CAAA,CAAA,CAC1E,GAAME,CAAAA,IAAAA,CAAQL,CAASG,CAAAA,GAAAA,CAAAA,CACnBE,IAAStP,EAAAA,IAAAA,CAAKa,YAAaZ,CAAAA,KAAAA,CAAMuB,WAAkB8N,CAAAA,CAAAA,GAAAA,IAAAA,CAAM9N,WAC3DxB,CAAAA,CAAAA,GAAAA,IAAAA,CAAKa,YAAaZ,CAAAA,KAAAA,CAAQqP,IAE7B,CAAA,EACGtP,IAAKe,CAAAA,UAAAA,GAAYf,IAAKe,CAAAA,UAAAA,CAAW0D,KAAM0K,CAAAA,eAAAA,CAAkBnP,IAAKa,CAAAA,YAAAA,CAAaZ,KAC9E,CAAA,EACJ,CAEO,GAAAmB,GAAA,eAAAnB,KAAA,UAAAwF,WAAAA,CAAAA,CAAAA,CACNzF,IAAK2B,CAAAA,aAAAA,CAAAA,CACN,EAEO,GAAAP,GAAA,iBAAAnB,KAAA,UAAA0B,aAAAA,CAAAA,CACN,CAAA,GAAA,CAAK3B,IAAK0B,CAAAA,QAAAA,CAAU,OACpB1B,IAAAA,CAAKwI,yBAGL,CAAA,CAAA,CAAA,GAAM+G,CAAAA,CAAQvP,CAAAA,IAAAA,CAAK0B,QAAS8N,CAAAA,SAAAA,CAAAA,CAAU,CAGhCC,CAAAA,CAAAA,CAAAA,CAAatM,QAASyI,CAAAA,gBAAAA,CAAiB5L,IAAK0B,CAAAA,QAAAA,CAAUmK,UAAWC,CAAAA,YAAAA,CAAAA,CACjE4D,CAAcvM,CAAAA,QAAAA,CAASyI,gBAAiB2D,CAAAA,CAAAA,CAAO1D,WAAWC,YAG1D6D,CAAAA,CAAAA,CAAAA,CAAiB,CACrB,aAAA,CACA,YACA,CAAA,iBAAA,CACA,OACA,CAAA,kBAAA,CACA,WACA,CAAA,aAAA,CACA,YACA,CAAA,aAAA,CACA,gBACA,CAAA,aAAA,CACA,gBAGF,CAAA,CAAA,IAAAC,KAAA,UAAAA,MAAA,CAAwD,CACtD,GAAMC,CAAAA,CAASJ,CAAAA,CAAAA,CAAWxD,WACpB6D,CAAAA,CAAAA,CAAUJ,CAAYzD,CAAAA,WAAAA,CACtB8D,CAAWhO,CAAAA,MAAAA,CAAOsL,iBAAiBwC,CAGnCtL,CAAAA,CAAAA,CAAAA,CAAUoL,CACbK,CAAAA,GAAAA,CAAIC,SAAAA,CAAQ,WAAAC,MAAA,CAAGD,CAAQF,MAAAA,MAAAA,CAAAA,CAAAA,CAASI,gBAAiBF,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CACjDG,IAAK,CAAA,GAAA,CAAA,CAGJ7L,CAAQa,CAAAA,IAAAA,CAAAA,CAAAA,EACV0K,CAAQnL,CAAAA,YAAAA,CAAa,OAASJ,CAAAA,CAAAA,CAEjC,EAGDvE,CAjBA,KAAOyP,CAAWzD,CAAAA,QAAAA,CAAAA,CAAAA,EAAc0D,CAAY1D,CAAAA,QAAAA,CAAAA,CAAAA,GAAAA,KAAAA,IAiB5ChM,IAAAA,CAAKI,OAAUmP,CAAAA,CAAAA,CAAMpK,SAGjBnF,CAAAA,IAAAA,CAAKK,SAAWL,GAAAA,IAAAA,CAAKK,SAAU8E,CAAAA,SAAAA,CAAYnF,IAAKI,CAAAA,OAAAA,CAAAA,CAGpDJ,KAAKkG,aAAc,CAAA,GAAIC,CAAAA,WAAY,CAAA,iBAAA,CAAmB,CACpDC,MAAAA,CAAQ,CAAEhG,OAAAA,CAASJ,IAAKI,CAAAA,OAAAA,CAAAA,CACxBkG,OAAS,CAAA,CAAA,CAAA,CACTC,QAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAEb,EA/sB2B8J,MALUC,CAAjC,GAKuBD,CAAAA,CAAA,CAA3BE,CAAAA,CAAS,CAAEnG,IAAAA,CAAMoG,MAAqB3Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4Q,SAAA,CAAA,OAAA,CAAA,IAAA,EACoBJ,CAAAA,CAAAA,CAAAA,CAAA,CAA1DE,CAAAA,CAAS,CAAEnG,IAAAA,CAAMsG,QAASC,SAAW,CAAA,kBAAA,CAAA,CAAA,CAAA,CAA8C9Q,CAAA4Q,CAAAA,SAAAA,CAAA,kBAAA,CAAA,IAAA,EAAA,CAAA,CAwBpFJ,CAAA,CAAA,CArBCE,CAAS,CAAA,CACRI,SAAW,CAAA,UAAA,CACXC,SAAW,CAAA,CACTC,aAAgB5Q,CAAAA,QAAhB4Q,CAAAA,aAAgB5Q,CAAAA,CAAAA,CAAAA,CACd,GACE,CAAA,GAAM6Q,CAAAA,IAASC,CAAAA,IAAAA,CAAKC,KAAM/Q,CAAAA,CAAAA,CAAAA,CACpBgR,GAAsB,CAAA,CAAA,CAC5B,CAAA,QAAAC,IAAA,GAAAC,YAAA,CAAmBC,MAAOC,CAAAA,IAAAA,CAAKP,sCAAS,CAAnC,GAAMQ,CAAAA,IAAAA,CAAAA,YAAAA,CAAAA,IAAAA,EACT,GAAM1H,CAAAA,GAAMkH,CAAAA,IAAAA,CAAOQ,IACf3I,CAAAA,CAAAA,KAAAA,CAAM4I,OAAQ3H,CAAAA,GAAAA,CAAAA,GAChBqH,GAAIK,CAAAA,IAAAA,CAAAA,CAAQ1H,GACT4H,CAAAA,MAAAA,CAAOC,SAAAA,CAAKA,QAAAA,CAAAA,CAAAA,EAAsB,QAAVA,EAAAA,MAAAA,CAAAA,CAAAA,CAAErQ,GAAuC,EAAA,QAAA,EAAA,MAAZqQ,CAAAA,CAAExJ,CAAAA,KAAAA,EAAAA,CAAAA,CACvD+H,GAAIyB,CAAAA,SAAAA,CAAAA,SAAQrQ,GAAAA,CAAKqQ,CAAErQ,CAAAA,GAAAA,CAAK6G,KAAOwJ,CAAAA,CAAAA,CAAExJ,KAEvC,CAAA,EAAA,CAAA,CAAA,EACD,MAAOgJ,CAAAA,GACR,EAAC,MAAAS,OAAA,CAAQ,CAAA,MAAO,EAAK,EAExBC,CAAAA,CAAAA,WAAAA,CAAcnD,QAAdmD,CAAAA,WAAAA,CAAcnD,CAAsBuC,QAAAA,CAAAA,IAAAA,CAAKa,SAAUpD,CAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,CAAAA,CAGzB3O,CAAA4Q,CAAAA,SAAAA,CAAA,UAAA,CAAA,IAAA,EAAA,CAAA,CAGbJ,CAAA,CAAA,CAAhBwB,CAA6BhS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4Q,SAAA,CAAA,SAAA,CAAA,IAAA,EAjCnB5Q,CAAAA,CAAAA,OAAAA,KAAAA,CAAAA,CAAkBwQ,CAAA,CAAA,CAD9ByB,CAAc,CAAA,uBAAA,CAAA,CAAA,CACFjS"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,
|
1
|
+
System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,i;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",i=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n .editor { all: revert; }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n /* --- Card 1: Toolbar + Editor --- */\n .rte-container {\n width: 100%;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n background: #fff;\n box-sizing: border-box;\n }\n\n /* Toolbar inside container */\n.rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n border-radius: 8px 8px 0 0;\n\n width: 100%; \n box-sizing: border-box; \n}\n\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: #fff;\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: 8px;\n }\n\n /* --- Card 2: Preview --- */\n /* Preview card */\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed #e5e7eb;\n border-radius: 8px;\n background: #fafafa;\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n\n /* Toolbar button styling */\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid #e5e7eb;\n background: #fff;\n border-radius: 6px;\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: #eff6ff;\n }\n\n /* Heading normalization */\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n /* Single-line variant */\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: #E6E9EB;\n }\n"]))));}};});
|
2
2
|
//# sourceMappingURL=nile-rich-text-editor.css.cjs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-rich-text-editor.css.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"sourcesContent":["// rte-styles.ts\nimport { css } from 'lit';\n\nexport const styles = css`\n
|
1
|
+
{"version":3,"file":"nile-rich-text-editor.css.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"sourcesContent":["// FILE: src/components/rte-styles.ts\nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert; }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n /* --- Card 1: Toolbar + Editor --- */\n .rte-container {\n width: 100%;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n background: #fff;\n box-sizing: border-box;\n }\n\n /* Toolbar inside container */\n.rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n border-radius: 8px 8px 0 0;\n\n width: 100%; \n box-sizing: border-box; \n}\n\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: #fff;\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: 8px;\n }\n\n /* --- Card 2: Preview --- */\n /* Preview card */\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed #e5e7eb;\n border-radius: 8px;\n background: #fafafa;\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n\n /* Toolbar button styling */\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid #e5e7eb;\n background: #fff;\n border-radius: 6px;\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: #eff6ff;\n }\n\n /* Heading normalization */\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n /* Single-line variant */\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: #E6E9EB;\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAGaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
@@ -1,138 +1,129 @@
|
|
1
|
-
import{css as e}from"lit";const
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
width: 478px;
|
23
|
-
min-height: 50px;
|
24
|
-
overflow-x: auto;
|
25
|
-
white-space: nowrap;
|
26
|
-
border-radius: 8px;
|
27
|
-
}
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
.toolbar, nile-rte-toolbar {
|
35
|
-
width:486px;
|
36
|
-
display:flex; align-items:center; gap:6px; padding:8px;
|
37
|
-
border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;
|
38
|
-
}
|
39
|
-
|
40
|
-
nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {
|
41
|
-
border:1px solid #e5e7eb; background:#fff; border-radius:6px;
|
42
|
-
cursor:pointer;
|
43
|
-
}
|
44
|
-
|
45
|
-
|
46
|
-
/* Ensure clicks hit the button (not nested icon internals) */
|
47
|
-
nile-rte-toolbar-item > button nile-icon { pointer-events:none; }
|
48
|
-
|
49
|
-
nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }
|
50
|
-
nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }
|
51
|
-
nile-rte-color input[type="color"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }
|
52
|
-
nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }
|
53
|
-
|
54
|
-
.editor p { margin:1em 0; }
|
55
|
-
.editor h1, .preview h1 { all: revert; font-size:2em, display: block;
|
56
|
-
font-size: 2em;
|
57
|
-
margin-top: 0.67em;
|
58
|
-
margin-bottom: 0.67em;
|
59
|
-
margin-left: 0;
|
60
|
-
margin-right: 0;
|
61
|
-
font-weight: bold; }
|
62
|
-
.editor h2, .preview h2 { all: revert; display: block;
|
63
|
-
font-size: 1.5em;
|
64
|
-
margin-top: 0.83em;
|
65
|
-
margin-bottom: 0.83em;
|
66
|
-
margin-left: 0;
|
67
|
-
margin-right: 0;
|
68
|
-
font-weight: bold;}
|
69
|
-
.editor h3 { font-size:1.17em }
|
70
|
-
.editor h4 { font-size:1em }
|
71
|
-
.editor h5 { font-size:0.83em }
|
72
|
-
.editor h6 { font-size:0.67em }
|
73
|
-
|
74
|
-
.editor { min-height:160px; max-width:478px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none;
|
75
|
-
tab-size: 4;
|
76
|
-
-moz-tab-size: 4;
|
77
|
-
word-break: break-word;
|
78
|
-
}
|
79
|
-
nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; max-width:478px; }
|
80
|
-
|
81
|
-
nile-rte-preview.single-line {
|
82
|
-
width: 478px;
|
83
|
-
min-height: 50px;
|
84
|
-
overflow-x: auto;
|
85
|
-
white-space: nowrap;
|
86
|
-
}
|
87
|
-
|
88
|
-
.rte-color-trigger {
|
89
|
-
display: inline-flex;
|
1
|
+
import{css as e}from"lit";const i=e`
|
2
|
+
.editor { all: revert; }
|
3
|
+
|
4
|
+
nile-rich-text-editor {
|
5
|
+
position: relative;
|
6
|
+
display: block;
|
7
|
+
font-family: inherit;
|
8
|
+
}
|
9
|
+
|
10
|
+
/* --- Card 1: Toolbar + Editor --- */
|
11
|
+
.rte-container {
|
12
|
+
width: 100%;
|
13
|
+
border: 1px solid #e5e7eb;
|
14
|
+
border-radius: 8px;
|
15
|
+
background: #fff;
|
16
|
+
box-sizing: border-box;
|
17
|
+
}
|
18
|
+
|
19
|
+
/* Toolbar inside container */
|
20
|
+
.rte-container nile-rte-toolbar {
|
21
|
+
display: flex;
|
90
22
|
align-items: center;
|
91
|
-
|
92
|
-
|
93
|
-
border-
|
23
|
+
gap: 6px;
|
24
|
+
padding: 8px;
|
25
|
+
border-bottom: 1px solid #e5e7eb;
|
94
26
|
background: #fff;
|
95
|
-
|
96
|
-
border:none;
|
97
|
-
|
27
|
+
border-radius: 8px 8px 0 0;
|
98
28
|
|
99
|
-
|
100
|
-
|
101
|
-
width:32px; height:32px; padding:0px 6px;
|
102
|
-
}
|
103
|
-
.rte-color-trigger .glyph-stack {
|
104
|
-
display: grid; /* stack vertically */
|
105
|
-
grid-auto-rows: max-content;
|
106
|
-
align-items: center;
|
107
|
-
justify-items: center;
|
108
|
-
line-height: 1;
|
29
|
+
width: 100%;
|
30
|
+
box-sizing: border-box;
|
109
31
|
}
|
110
32
|
|
111
|
-
.rte-color-trigger .glyph {
|
112
|
-
font-size: 14px;
|
113
|
-
line-height: 1;
|
114
|
-
margin-bottom: 2px;
|
115
|
-
}
|
116
33
|
|
117
|
-
.rte-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
34
|
+
.rte-container .editor {
|
35
|
+
min-height: 160px;
|
36
|
+
width: 100%;
|
37
|
+
padding: 12px;
|
38
|
+
background: #fff;
|
39
|
+
border-radius: 0 0 8px 8px;
|
40
|
+
outline: none;
|
41
|
+
tab-size: 4;
|
42
|
+
-moz-tab-size: 4;
|
43
|
+
word-break: break-word;
|
44
|
+
box-sizing: border-box;
|
45
|
+
border-radius: 8px;
|
46
|
+
}
|
47
|
+
|
48
|
+
/* --- Card 2: Preview --- */
|
49
|
+
/* Preview card */
|
50
|
+
nile-rte-preview {
|
51
|
+
display: block;
|
52
|
+
width: 100%;
|
53
|
+
margin-top: 16px;
|
54
|
+
padding: 12px;
|
55
|
+
border: 1px dashed #e5e7eb;
|
56
|
+
border-radius: 8px;
|
57
|
+
background: #fafafa;
|
58
|
+
box-sizing: border-box;
|
59
|
+
word-wrap: break-word;
|
133
60
|
}
|
134
61
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
62
|
+
|
63
|
+
/* Toolbar button styling */
|
64
|
+
nile-rte-toolbar-item nile-button::part(base) {
|
65
|
+
width: 32px;
|
66
|
+
height: 32px;
|
67
|
+
padding: 0px 6px;
|
68
|
+
border: none;
|
69
|
+
}
|
70
|
+
|
71
|
+
nile-rte-toolbar-item > button,
|
72
|
+
nile-rte-toolbar button {
|
73
|
+
border: 1px solid #e5e7eb;
|
74
|
+
background: #fff;
|
75
|
+
border-radius: 6px;
|
76
|
+
cursor: pointer;
|
77
|
+
}
|
78
|
+
|
79
|
+
nile-rte-toolbar-item > button nile-icon { pointer-events: none; }
|
80
|
+
|
81
|
+
nile-rte-toolbar-item > button.active {
|
82
|
+
border-color: #2563eb;
|
83
|
+
background: #eff6ff;
|
84
|
+
}
|
85
|
+
|
86
|
+
/* Heading normalization */
|
87
|
+
.editor p { margin: 1em 0; }
|
88
|
+
.editor h1, .preview h1 {
|
89
|
+
font-size: 2em;
|
90
|
+
margin: 0.67em 0;
|
91
|
+
font-weight: bold;
|
92
|
+
}
|
93
|
+
.editor h2, .preview h2 {
|
94
|
+
font-size: 1.5em;
|
95
|
+
margin: 0.83em 0;
|
96
|
+
font-weight: bold;
|
97
|
+
}
|
98
|
+
.editor h3 { font-size: 1.17em; }
|
99
|
+
.editor h4 { font-size: 1em; }
|
100
|
+
.editor h5 { font-size: 0.83em; }
|
101
|
+
.editor h6 { font-size: 0.67em; }
|
102
|
+
|
103
|
+
/* Single-line variant */
|
104
|
+
.editor.single-line {
|
105
|
+
min-height: 50px;
|
106
|
+
max-height: 50px;
|
107
|
+
overflow-x: auto;
|
108
|
+
white-space: nowrap;
|
109
|
+
padding: 0px 12px 0px 12px;
|
110
|
+
scrollbar-width: none;
|
111
|
+
-ms-overflow-style: none;
|
112
|
+
}
|
113
|
+
nile-rte-preview.single-line {
|
114
|
+
min-height: 50px;
|
115
|
+
max-height: 50px;
|
116
|
+
padding: 0px 12px 0px 12px;
|
117
|
+
overflow-x: auto;
|
118
|
+
white-space: nowrap;
|
119
|
+
scrollbar-width: none;
|
120
|
+
-ms-overflow-style: none;
|
121
|
+
}
|
122
|
+
nile-rte-divider {
|
123
|
+
margin: 0 4px;
|
124
|
+
display: inline-block;
|
125
|
+
height: 24px;
|
126
|
+
width: 1px;
|
127
|
+
background: #E6E9EB;
|
128
|
+
}
|
129
|
+
`;export{i as s};
|