@aquera/nile-elements 1.9.5 → 1.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +470 -298
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.css.esm.js +8 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- package/dist/nile-hero/nile-hero.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.esm.js +14 -14
- package/dist/nile-hero/nile-hero.esm.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.esm.js +11 -11
- package/dist/nile-hero-header/nile-hero-header.esm.js +3 -3
- package/dist/nile-rich-text-editor/index.cjs.js +1 -1
- package/dist/nile-rich-text-editor/index.esm.js +1 -1
- 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 +70 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-image.cjs.js +3 -0
- package/dist/nile-rich-text-editor/nile-rte-image.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-image.esm.js +96 -0
- package/dist/src/nile-chip/nile-chip.css.js +8 -1
- package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +3 -3
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-hero/nile-hero.css.js +12 -12
- package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
- package/dist/src/nile-hero/nile-hero.js +1 -1
- package/dist/src/nile-hero/nile-hero.js.map +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.css.js +9 -9
- package/dist/src/nile-hero-header/nile-hero-header.css.js.map +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.js +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +70 -0
- 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 +3 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +81 -3
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-image.d.ts +87 -0
- package/dist/src/nile-rich-text-editor/nile-rte-image.js +1073 -0
- package/dist/src/nile-rich-text-editor/nile-rte-image.js.map +1 -0
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-chip/nile-chip.css.ts +8 -1
- package/src/nile-code-editor/nile-code-editor.ts +3 -3
- package/src/nile-hero/nile-hero.css.ts +12 -12
- package/src/nile-hero/nile-hero.ts +1 -1
- package/src/nile-hero-header/nile-hero-header.css.ts +9 -9
- package/src/nile-hero-header/nile-hero-header.ts +1 -1
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +70 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +89 -3
- package/src/nile-rich-text-editor/nile-rte-image.ts +1132 -0
- package/vscode-html-custom-data.json +41 -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":["import { LitElement, PropertyValues } 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,\n nearestElement,\n rgbToHex,\n toggleInlineTag,\n setBlockTag,\n setAlignment,\n setFontFamily,\n setForeColor,\n setBackColor,\n toggleList,\n} from './utils/index';\n\nimport { styles } from './nile-rich-text-editor.css';\n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\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\nconst DEFAULT_IMPORTANT_PROPS = [\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 'list-style-position',\n 'padding-inline-start',\n];\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() {\n return this;\n }\n\n @property({ type: String, attribute: true, reflect: true }) value = '';\n @property({ type: Boolean, attribute: true, reflect: true }) noStyles = false;\n @property({ type: Boolean, attribute: true, reflect: true }) disabled = false; \n @property({ type: Boolean, attribute: 'singlelineeditor', reflect: true }) singleLineEditor =\n false;\n @property({ type: String }) placeholder = '';\n\n\n @property({\n attribute: 'mentions',\n reflect: true,\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(\n i =>\n i &&\n typeof i.key === 'string' &&\n typeof i.label === 'string'\n )\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch {\n return {};\n }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n },\n })\n mentions: MentionsConfig = {};\n\n @property({\n attribute: 'whitelist',\n reflect: false,\n converter: {\n fromAttribute: (value: string): string[] => {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter(v => typeof v === 'string') : [];\n } catch {\n return [];\n }\n },\n },\n })\n whitelist: string[] = [];\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 private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\n private bgColorInput: HTMLInputElement | null = null;\n private colorSwatchEl: HTMLElement | null = null;\n private bgSwatchEl: HTMLElement | null = null;\n private containerEl: HTMLElement | null = null;\n private linkEl: HTMLElement | null = null;\n\n private mentionsEl: HTMLElement | null = null;\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 if (this.placeholder && this.editorEl) {\n this.editorEl.dataset.placeholder = this.placeholder;\n }\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 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 document.addEventListener('selectionchange', this.onSelectionChange, {\n passive: true,\n });\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 if (this.previewEl) {\n if (this.previewEl.parentElement !== this) {\n this.appendChild(this.previewEl);\n }\n\n if (this.previewEl.previousElementSibling !== this.containerEl) {\n this.insertBefore(this.previewEl, this.containerEl.nextSibling);\n }\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n super.firstUpdated(_changedProperties);\n\n if (this.editorEl) {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (isSafari) {\n this.editorEl.classList.add('safari');\n }\n }\n}\n\n private updateContentWithMention(mentionDetail: any) {\n this.updateContent();\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: {\n content: this.content,\n mention: mentionDetail,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n disconnectedCallback(): void {\n this.unwireEditor();\n document.removeEventListener('selectionchange', this.onSelectionChange);\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('value')) {\n if (this.editorEl && this.value !== this.editorEl.innerHTML) {\n this.editorEl.innerHTML = this.value || '<p><br></p>';\n this.content = this.editorEl.innerHTML;\n this.syncPreview();\n }\n }\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 if (changed.has('disabled') && this.editorEl) {\n this.editorEl.setAttribute('contenteditable', this.disabled ? 'false' : 'true');\n this.editorEl.tabIndex = this.disabled ? -1 : 0;\n if (this.linkEl) {\n (this.linkEl as any).disabled = this.disabled;\n }\n }\n if (changed.has('placeholder') && this.editorEl) {\n if (this.placeholder) {\n this.editorEl.dataset.placeholder = this.placeholder;\n } else {\n delete this.editorEl.dataset.placeholder;\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', this.disabled ? 'false' : 'true');\n editor.tabIndex = this.disabled ? -1 : 0;\n this.editorEl = editor;\n }\n if (this.placeholder) {\n this.editorEl.dataset.placeholder = this.placeholder;\n }\n \n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n }\n\n private unwrapMention(span: HTMLElement, preserveText = true) {\n const parent = span.parentNode;\n if (!parent) return;\n\n const txt = preserveText\n ? (span.textContent ?? '').replace(/\\u200B/g, '')\n : '';\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 const looksValid =\n !!key &&\n !!label &&\n text.length > 0 &&\n text.startsWith(trigger) &&\n text.includes(label);\n\n if (!text || !looksValid) {\n this.unwrapMention(span, true);\n return;\n }\n });\n }\n\n private onEditorClick = (e: MouseEvent) => {\n if (this.disabled) { e.preventDefault(); return; }\n const anchor = (e.target as HTMLElement).closest?.('a');\n if (anchor) e.preventDefault();\n };\n\n private onEditorPaste = (e: ClipboardEvent) => {\n if (this.disabled) e.preventDefault();\n };\n\n private onEditorDrop = (e: DragEvent) => {\n if (this.disabled) e.preventDefault();\n };\n\n private onEditorInput = () => {\n if (this.disabled) return;\n this.ensureAtLeastOneParagraph();\n this.scrubBrokenMentions();\n this.updateContent();\n this.updateToolbarState();\n };\n\n private onEditorMouseup = () => {\n this.saveSelection();\n this.updateToolbarState();\n };\n\n private onEditorKeyup = (e: KeyboardEvent) => {\n this.saveSelection();\n\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ].includes(e.key)\n ) {\n this.updateToolbarState();\n }\n };\n\n private wireEditor() {\n this.editorEl.addEventListener('click', this.onEditorClick);\n this.editorEl.addEventListener('input', this.onEditorInput);\n this.editorEl.addEventListener('mouseup', this.onEditorMouseup);\n this.editorEl.addEventListener('keyup', this.onEditorKeyup);\n this.editorEl.addEventListener('keydown', this.onEditorKeydown);\n this.editorEl.addEventListener('paste', this.onEditorPaste);\n this.editorEl.addEventListener('drop', this.onEditorDrop);\n }\n\n private unwireEditor() {\n if (!this.editorEl) return;\n this.editorEl.removeEventListener('click', this.onEditorClick);\n this.editorEl.removeEventListener('input', this.onEditorInput);\n this.editorEl.removeEventListener('mouseup', this.onEditorMouseup);\n this.editorEl.removeEventListener('keyup', this.onEditorKeyup);\n this.editorEl.removeEventListener('keydown', this.onEditorKeydown);\n this.editorEl.removeEventListener('paste', this.onEditorPaste);\n this.editorEl.removeEventListener('drop', this.onEditorDrop);\n }\n\n private onEditorKeydown = (e: KeyboardEvent) => {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\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 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 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 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 range.deleteContents();\n const tabNode = document.createTextNode('\\t');\n range.insertNode(tabNode);\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 private wireAuthoredToolbar(tb: HTMLElement) {\n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\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 as any).disabled = this.disabled;\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 as any).disabled = this.disabled;\n this.linkEl = child as HTMLElement;\n child.addEventListener('nile-link-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n\n if (tag === 'nile-rte-toolbar-item') {\n let btn = child.querySelector(\n ':scope > nile-button'\n ) 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 if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small';\n }\n (btn as any).disabled = this.disabled;\n\n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" color=\"${this.disabled ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))' : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\" ></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=\"${this.disabled ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))' : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\" ></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 if (!btn.isConnected) {\n if (this.disabled) {\n child.appendChild(btn);\n } else {\n const tooltip = document.createElement('nile-lite-tooltip');\n tooltip.setAttribute('content', label);\n tooltip.appendChild(btn);\n child.appendChild(tooltip);\n }\n }\n\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\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 child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n setBlockTag(this.editorEl, val as any);\n } else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n\n this.updateContent();\n this.updateToolbarState();\n });\n\n return;\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 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();\n if (!sel) return;\n sel.removeAllRanges();\n sel.addRange(this.lastRange);\n }\n private focusAndRestore() {\n this.editorEl?.focus();\n this.restoreSelection();\n }\n private getCleanContent(): string {\n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n clone.querySelectorAll<HTMLElement>('*').forEach(el => {\n el.removeAttribute('style');\n });\n \n return clone.innerHTML;\n }\n \n private insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\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);\n list.appendChild(li);\n });\n\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n }\n\n private 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\n private ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n const p = el.querySelector('p');\n if (p) {\n const range = document.createRange();\n range.setStart(p, 0);\n range.collapse(true);\n const sel = window.getSelection();\n if (sel) {\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n return;\n }\n\n const hasBlock = el.querySelector(\n 'p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre'\n );\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 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 // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n if (this.disabled) return;\n this.focusAndRestore();\n switch (cmd) {\n case 'bold':\n toggleInlineTag(this.editorEl, 'strong');\n break;\n case 'italic':\n toggleInlineTag(this.editorEl, 'em');\n break;\n case 'underline':\n toggleInlineTag(this.editorEl, 'u');\n break;\n case 'left':\n setAlignment(this.editorEl, 'left');\n break;\n case 'center':\n setAlignment(this.editorEl, 'center');\n break;\n case 'right':\n setAlignment(this.editorEl, 'right');\n break;\n case 'justify':\n setAlignment(this.editorEl, 'justify');\n break;\n case 'ul':\n toggleList(this.editorEl, 'ul');\n this.updateContent();\n this.updateToolbarState();\n break;\n case 'ol':\n toggleList(this.editorEl, 'ol');\n this.updateContent();\n this.updateToolbarState();\n break;\n\n case 'link':\n break;\n case 'clear':\n const walker = document.createTreeWalker(\n this.editorEl,\n NodeFilter.SHOW_ELEMENT\n );\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (\n ['B', 'STRONG', 'I', 'EM', 'U', 'SPAN', 'FONT'].includes(el.tagName)\n ) {\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:\n break;\n }\n this.updateContent();\n this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd);\n 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 =\n 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 ||\n getComputedStyle(block).textAlign ||\n 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi\n ? startElm.closest('ul,ol')?.tagName.toLowerCase() || ''\n : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n if (this.linkEl) {\n const linkBtn = this.linkEl.querySelector('nile-button');\n if (linkBtn) linkBtn.toggleAttribute('data-active', inLink);\n }\n\n this.setBtnActive(\n 'left',\n alignNorm === 'left' &&\n !['center', 'right', 'justify'].includes(alignNorm)\n );\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 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 if (this.fontSelect) {\n const ff = (comp.fontFamily || '')\n .replace(/[\"']/g, '')\n .split(',')[0]\n .trim()\n .toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) {\n this.fontSelect.value = opt.value;\n break;\n }\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)\n this.colorSwatchEl.style.backgroundColor = this.colorInput.value;\n }\n\n if (this.bgColorInput) {\n const bg = getComputedStyle(startElm).backgroundColor;\n if (\n bg &&\n !/transparent|rgba\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(bg)\n ) {\n const bgHex = rgbToHex(bg);\n if (\n bgHex &&\n this.bgColorInput.value.toLowerCase() !== bgHex.toLowerCase()\n ) {\n this.bgColorInput.value = bgHex;\n }\n }\n if (this.bgSwatchEl)\n this.bgSwatchEl.style.backgroundColor = this.bgColorInput.value;\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private getComputedImportantProps(): string[] {\n return Array.from(\n new Set([\n ...DEFAULT_IMPORTANT_PROPS,\n ...(this.whitelist ?? []),\n ])\n );\n }\n \n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n const isEmpty = (this.editorEl.textContent ?? '').trim() === '';\n this.editorEl.classList.toggle('empty', isEmpty);\n\n const sel = window.getSelection();\n const caretRange =\n sel && sel.rangeCount > 0 && this.editorEl.contains(sel.getRangeAt(0).startContainer)\n ? sel.getRangeAt(0).cloneRange()\n : null;\n\n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n \n if (!this.noStyles) {\n const origWalker = document.createTreeWalker(\n this.editorEl,\n NodeFilter.SHOW_ELEMENT\n );\n const cloneWalker = document.createTreeWalker(\n clone,\n NodeFilter.SHOW_ELEMENT\n );\n \n \n const importantProps = this.getComputedImportantProps();\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 const cssText = importantProps\n .map(prop => `${prop}:${computed.getPropertyValue(prop)}`)\n .join(';');\n \n if (cssText.trim()) {\n cloneEl.setAttribute('style', cssText);\n }\n }\n } else {\n clone.querySelectorAll<HTMLElement>('[style]').forEach(el =>\n el.removeAttribute('style')\n );\n }\n\n if (caretRange && sel && this.editorEl.contains(caretRange.startContainer)) {\n sel.removeAllRanges();\n sel.addRange(caretRange);\n }\n\n this.content = clone.innerHTML; \n if (this.previewEl) this.previewEl.innerHTML = this.content;\n \n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { content: this.content },\n bubbles: true,\n composed: true,\n })\n );\n }\n \n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n"],"names":["DEFAULT_ICONS","bold","italic","underline","link","left","center","right","justify","ul","ol","clear","DEFAULT_IMPORTANT_PROPS","_export","NileRichTextEditor","y","this","value","noStyles","disabled","singleLineEditor","placeholder","mentions","whitelist","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","containerEl","linkEl","mentionsEl","onEditorClick","e","preventDefault","anchor","target","closest","_t$target$closest","onEditorPaste","onEditorDrop","onEditorInput","ensureAtLeastOneParagraph","scrubBrokenMentions","updateContent","updateToolbarState","onEditorMouseup","saveSelection","onEditorKeyup","includes","key","onEditorKeydown","shiftKey","ctrlKey","toLowerCase","toggleInlineTag","editorEl","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","_i","_createClass","createRenderRoot","injectCss","cssText","querySelector","style","createElement","setAttribute","textContent","insertBefore","firstChild","connectedCallback","super","styles","ensureStructure","dataset","innerHTML","trim","wireAuthoredToolbar","attach","setExternalConfig","wireEditor","addEventListener","passive","syncPreview","className","appendChild","ensureEditor","parentElement","previousElementSibling","nextSibling","firstUpdated","_changedProperties","test","navigator","userAgent","classList","add","updateContentWithMention","mentionDetail","dispatchEvent","CustomEvent","detail","mention","bubbles","composed","disconnectedCallback","unwireEditor","removeEventListener","detach","updated","changed","has","toggle","tabIndex","editor","unwrapMention","span","_t$textContent","preserveText","arguments","undefined","parent","parentNode","txt","textNode","removeChild","_this2","querySelectorAll","forEach","m","_i$textContent","getAttribute","label","trigger","text","looksValid","startsWith","tb","Array","from","children","child","tag","tagName","alignment","setAlignment","_this3$buttonMap$get","btn","cmd","iconAttr","authoredHasContent","variant","size","defaultIcon","concat","isConnected","tooltip","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","restoreSelection","focus","getCleanContent","clone","cloneNode","el","removeAttribute","insertList","list","frag","extractContents","temp","childNodes","n","li","afterListEdit","node","onlyWhitespace","p","hasChildNodes","toggleList","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","_i8","_i7","remove","setBtnActive","active","_iterator","s","_step","done","toggleAttribute","err","f","startElm","nearestElement","comp","getComputedStyle","block","closestBlock","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","align","textAlign","alignNorm","listType","_s$closest","linkBtn","v","ff","fontFamily","split","_i13","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","bgHex","getComputedImportantProps","Set","_this$editorEl$textCo","isEmpty","caretRange","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","getPropertyValue","join","LitElement","__decorate","property","String","attribute","reflect","prototype","Boolean","converter","fromAttribute","parsed","JSON","parse","out","_i18","_Object$keys","Object","keys","trig","isArray","filter","i","_unused","toAttribute","stringify","_unused2","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":["import { LitElement, PropertyValues } 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';\nimport './nile-rte-image';\n\nimport {\n closestBlock,\n nearestElement,\n rgbToHex,\n toggleInlineTag,\n setBlockTag,\n setAlignment,\n setFontFamily,\n setForeColor,\n setBackColor,\n toggleList,\n} from './utils/index';\n\nimport { styles } from './nile-rich-text-editor.css';\n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\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\nconst DEFAULT_IMPORTANT_PROPS = [\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 'list-style-position',\n 'padding-inline-start',\n];\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() {\n return this;\n }\n\n @property({ type: String, attribute: true, reflect: true }) value = '';\n @property({ type: Boolean, attribute: true, reflect: true }) noStyles = false;\n @property({ type: Boolean, attribute: true, reflect: true }) disabled = false; \n @property({ type: Boolean, attribute: 'singlelineeditor', reflect: true }) singleLineEditor =\n false;\n @property({ type: String }) placeholder = '';\n\n\n @property({\n attribute: 'mentions',\n reflect: true,\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(\n i =>\n i &&\n typeof i.key === 'string' &&\n typeof i.label === 'string'\n )\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch {\n return {};\n }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n },\n })\n mentions: MentionsConfig = {};\n\n @property({\n attribute: 'whitelist',\n reflect: false,\n converter: {\n fromAttribute: (value: string): string[] => {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter(v => typeof v === 'string') : [];\n } catch {\n return [];\n }\n },\n },\n })\n whitelist: string[] = [];\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 private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\n private bgColorInput: HTMLInputElement | null = null;\n private colorSwatchEl: HTMLElement | null = null;\n private bgSwatchEl: HTMLElement | null = null;\n private containerEl: HTMLElement | null = null;\n private linkEl: HTMLElement | null = null;\n private imageEl: HTMLElement | null = null;\n\n private mentionsEl: HTMLElement | null = null;\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 if (this.placeholder && this.editorEl) {\n this.editorEl.dataset.placeholder = this.placeholder;\n }\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 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 document.addEventListener('selectionchange', this.onSelectionChange, {\n passive: true,\n });\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 if (this.previewEl) {\n if (this.previewEl.parentElement !== this) {\n this.appendChild(this.previewEl);\n }\n\n if (this.previewEl.previousElementSibling !== this.containerEl) {\n this.insertBefore(this.previewEl, this.containerEl.nextSibling);\n }\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValues): void {\n super.firstUpdated(_changedProperties);\n\n if (this.editorEl) {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (isSafari) {\n this.editorEl.classList.add('safari');\n }\n }\n}\n\n private updateContentWithMention(mentionDetail: any) {\n this.updateContent();\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: {\n content: this.content,\n mention: mentionDetail,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n disconnectedCallback(): void {\n this.unwireEditor();\n document.removeEventListener('selectionchange', this.onSelectionChange);\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('value')) {\n if (this.editorEl && this.value !== this.editorEl.innerHTML) {\n this.editorEl.innerHTML = this.value || '<p><br></p>';\n this.content = this.editorEl.innerHTML;\n this.syncPreview();\n }\n }\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 if (changed.has('disabled') && this.editorEl) {\n this.editorEl.setAttribute('contenteditable', this.disabled ? 'false' : 'true');\n this.editorEl.tabIndex = this.disabled ? -1 : 0;\n if (this.linkEl) {\n (this.linkEl as any).disabled = this.disabled;\n }\n if (this.imageEl) {\n (this.imageEl as any).disabled = this.disabled;\n }\n }\n if (changed.has('placeholder') && this.editorEl) {\n if (this.placeholder) {\n this.editorEl.dataset.placeholder = this.placeholder;\n } else {\n delete this.editorEl.dataset.placeholder;\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', this.disabled ? 'false' : 'true');\n editor.tabIndex = this.disabled ? -1 : 0;\n this.editorEl = editor;\n }\n if (this.placeholder) {\n this.editorEl.dataset.placeholder = this.placeholder;\n }\n \n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n }\n\n private unwrapMention(span: HTMLElement, preserveText = true) {\n const parent = span.parentNode;\n if (!parent) return;\n\n const txt = preserveText\n ? (span.textContent ?? '').replace(/\\u200B/g, '')\n : '';\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 const looksValid =\n !!key &&\n !!label &&\n text.length > 0 &&\n text.startsWith(trigger) &&\n text.includes(label);\n\n if (!text || !looksValid) {\n this.unwrapMention(span, true);\n return;\n }\n });\n }\n\n private onEditorClick = (e: MouseEvent) => {\n if (this.disabled) { e.preventDefault(); return; }\n const anchor = (e.target as HTMLElement).closest?.('a');\n if (anchor) e.preventDefault();\n };\n\n private onEditorPaste = (e: ClipboardEvent) => {\n if (this.disabled) e.preventDefault();\n };\n\n private onEditorDrop = (e: DragEvent) => {\n if (this.disabled) e.preventDefault();\n };\n\n private onEditorInput = () => {\n if (this.disabled) return;\n this.ensureAtLeastOneParagraph();\n this.scrubBrokenMentions();\n this.updateContent();\n this.updateToolbarState();\n };\n\n private onEditorMouseup = () => {\n this.saveSelection();\n this.updateToolbarState();\n };\n\n private onEditorKeyup = (e: KeyboardEvent) => {\n this.saveSelection();\n\n if (\n [\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ].includes(e.key)\n ) {\n this.updateToolbarState();\n }\n };\n\n private wireEditor() {\n this.editorEl.addEventListener('click', this.onEditorClick);\n this.editorEl.addEventListener('input', this.onEditorInput);\n this.editorEl.addEventListener('mouseup', this.onEditorMouseup);\n this.editorEl.addEventListener('keyup', this.onEditorKeyup);\n this.editorEl.addEventListener('keydown', this.onEditorKeydown);\n this.editorEl.addEventListener('paste', this.onEditorPaste);\n this.editorEl.addEventListener('drop', this.onEditorDrop);\n }\n\n private unwireEditor() {\n if (!this.editorEl) return;\n this.editorEl.removeEventListener('click', this.onEditorClick);\n this.editorEl.removeEventListener('input', this.onEditorInput);\n this.editorEl.removeEventListener('mouseup', this.onEditorMouseup);\n this.editorEl.removeEventListener('keyup', this.onEditorKeyup);\n this.editorEl.removeEventListener('keydown', this.onEditorKeydown);\n this.editorEl.removeEventListener('paste', this.onEditorPaste);\n this.editorEl.removeEventListener('drop', this.onEditorDrop);\n }\n\n private onEditorKeydown = (e: KeyboardEvent) => {\n if (this.disabled) {\n e.preventDefault();\n return;\n }\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 if (\n (e.key === 'Backspace' || e.key === 'Delete') &&\n this.handleFigureDeletion(e)\n ) {\n return;\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 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 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 range.deleteContents();\n const tabNode = document.createTextNode('\\t');\n range.insertNode(tabNode);\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 private handleFigureDeletion(e: KeyboardEvent): boolean {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return false;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return false;\n\n if (!range.collapsed) {\n const figures = Array.from(\n this.editorEl.querySelectorAll('figure.rte-image')\n );\n const touched = figures.filter(f => range.intersectsNode(f));\n if (!touched.length) return false;\n\n e.preventDefault();\n range.deleteContents();\n touched.forEach(f => f.isConnected && f.remove());\n this.ensureAtLeastOneParagraph();\n this.updateContent();\n this.updateToolbarState();\n return true;\n }\n\n const block =\n closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n if (e.key === 'Backspace') {\n const before = document.createRange();\n before.setStart(block, 0);\n before.setEnd(range.startContainer, range.startOffset);\n const atStart = before.toString().replace(/\\u200B/g, '') === '';\n const prev = block.previousElementSibling;\n if (atStart && prev?.matches?.('figure.rte-image')) {\n e.preventDefault();\n prev.remove();\n this.updateContent();\n this.updateToolbarState();\n return true;\n }\n } else {\n const after = document.createRange();\n after.setStart(range.endContainer, range.endOffset);\n after.setEnd(block, block.childNodes.length);\n const atEnd = after.toString().replace(/\\u200B/g, '') === '';\n const next = block.nextElementSibling;\n if (atEnd && next?.matches?.('figure.rte-image')) {\n e.preventDefault();\n next.remove();\n this.updateContent();\n this.updateToolbarState();\n return true;\n }\n }\n\n return false;\n }\n\n private wireAuthoredToolbar(tb: HTMLElement) {\n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\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 as any).disabled = this.disabled;\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 as any).disabled = this.disabled;\n this.linkEl = child as HTMLElement;\n child.addEventListener('nile-link-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n if (tag === 'nile-rte-image') {\n (child as any).editorEl = this.editorEl;\n (child as any).disabled = this.disabled;\n this.imageEl = child as HTMLElement;\n child.addEventListener('nile-image-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n\n if (tag === 'nile-rte-toolbar-item') {\n let btn = child.querySelector(\n ':scope > nile-button'\n ) 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 if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small';\n }\n (btn as any).disabled = this.disabled;\n\n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" color=\"${this.disabled ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))' : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\" ></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=\"${this.disabled ? 'var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))' : 'var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))'}\" ></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 if (!btn.isConnected) {\n if (this.disabled) {\n child.appendChild(btn);\n } else {\n const tooltip = document.createElement('nile-lite-tooltip');\n tooltip.setAttribute('content', label);\n tooltip.appendChild(btn);\n child.appendChild(tooltip);\n }\n }\n\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\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 child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n setBlockTag(this.editorEl, val as any);\n } else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n\n this.updateContent();\n this.updateToolbarState();\n });\n\n return;\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 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();\n if (!sel) return;\n sel.removeAllRanges();\n sel.addRange(this.lastRange);\n }\n private focusAndRestore() {\n this.editorEl?.focus();\n this.restoreSelection();\n }\n private getCleanContent(): string {\n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n clone.querySelectorAll<HTMLElement>('*').forEach(el => {\n el.removeAttribute('style');\n });\n \n return clone.innerHTML;\n }\n \n private insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\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);\n list.appendChild(li);\n });\n\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n }\n\n private 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\n private ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '' &&\n !el.querySelector('img');\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n const p = el.querySelector('p');\n if (p) {\n const range = document.createRange();\n range.setStart(p, 0);\n range.collapse(true);\n const sel = window.getSelection();\n if (sel) {\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n return;\n }\n\n const hasBlock = el.querySelector(\n 'p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre,figure'\n );\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 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 // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n if (this.disabled) return;\n this.focusAndRestore();\n switch (cmd) {\n case 'bold':\n toggleInlineTag(this.editorEl, 'strong');\n break;\n case 'italic':\n toggleInlineTag(this.editorEl, 'em');\n break;\n case 'underline':\n toggleInlineTag(this.editorEl, 'u');\n break;\n case 'left':\n setAlignment(this.editorEl, 'left');\n break;\n case 'center':\n setAlignment(this.editorEl, 'center');\n break;\n case 'right':\n setAlignment(this.editorEl, 'right');\n break;\n case 'justify':\n setAlignment(this.editorEl, 'justify');\n break;\n case 'ul':\n toggleList(this.editorEl, 'ul');\n this.updateContent();\n this.updateToolbarState();\n break;\n case 'ol':\n toggleList(this.editorEl, 'ol');\n this.updateContent();\n this.updateToolbarState();\n break;\n\n case 'link':\n break;\n case 'clear':\n const walker = document.createTreeWalker(\n this.editorEl,\n NodeFilter.SHOW_ELEMENT\n );\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (\n ['B', 'STRONG', 'I', 'EM', 'U', 'SPAN', 'FONT'].includes(el.tagName)\n ) {\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:\n break;\n }\n this.updateContent();\n this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd);\n 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 =\n 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 ||\n getComputedStyle(block).textAlign ||\n 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi\n ? startElm.closest('ul,ol')?.tagName.toLowerCase() || ''\n : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n if (this.linkEl) {\n const linkBtn = this.linkEl.querySelector('nile-button');\n if (linkBtn) linkBtn.toggleAttribute('data-active', inLink);\n }\n\n if (this.imageEl) {\n const inImage = !!startElm.closest('figure.rte-image');\n const imageBtn = this.imageEl.querySelector('nile-button');\n if (imageBtn) imageBtn.toggleAttribute('data-active', inImage);\n }\n\n this.setBtnActive(\n 'left',\n alignNorm === 'left' &&\n !['center', 'right', 'justify'].includes(alignNorm)\n );\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 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 if (this.fontSelect) {\n const ff = (comp.fontFamily || '')\n .replace(/[\"']/g, '')\n .split(',')[0]\n .trim()\n .toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) {\n this.fontSelect.value = opt.value;\n break;\n }\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)\n this.colorSwatchEl.style.backgroundColor = this.colorInput.value;\n }\n\n if (this.bgColorInput) {\n const bg = getComputedStyle(startElm).backgroundColor;\n if (\n bg &&\n !/transparent|rgba\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(bg)\n ) {\n const bgHex = rgbToHex(bg);\n if (\n bgHex &&\n this.bgColorInput.value.toLowerCase() !== bgHex.toLowerCase()\n ) {\n this.bgColorInput.value = bgHex;\n }\n }\n if (this.bgSwatchEl)\n this.bgSwatchEl.style.backgroundColor = this.bgColorInput.value;\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private getComputedImportantProps(): string[] {\n return Array.from(\n new Set([\n ...DEFAULT_IMPORTANT_PROPS,\n ...(this.whitelist ?? []),\n ])\n );\n }\n \n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n const isEmpty =\n (this.editorEl.textContent ?? '').trim() === '' &&\n !this.editorEl.querySelector('img');\n this.editorEl.classList.toggle('empty', isEmpty);\n\n const sel = window.getSelection();\n const caretRange =\n sel && sel.rangeCount > 0 && this.editorEl.contains(sel.getRangeAt(0).startContainer)\n ? sel.getRangeAt(0).cloneRange()\n : null;\n\n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n \n if (!this.noStyles) {\n const origWalker = document.createTreeWalker(\n this.editorEl,\n NodeFilter.SHOW_ELEMENT\n );\n const cloneWalker = document.createTreeWalker(\n clone,\n NodeFilter.SHOW_ELEMENT\n );\n \n \n const importantProps = this.getComputedImportantProps();\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 const cssText = importantProps\n .map(prop => `${prop}:${computed.getPropertyValue(prop)}`)\n .join(';');\n \n if (cssText.trim()) {\n cloneEl.setAttribute('style', cssText);\n }\n }\n } else {\n clone.querySelectorAll<HTMLElement>('[style]').forEach(el =>\n el.removeAttribute('style')\n );\n }\n\n if (caretRange && sel && this.editorEl.contains(caretRange.startContainer)) {\n sel.removeAllRanges();\n sel.addRange(caretRange);\n }\n\n this.content = clone.innerHTML; \n if (this.previewEl) this.previewEl.innerHTML = this.content;\n \n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { content: this.content },\n bubbles: true,\n composed: true,\n })\n );\n }\n \n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n"],"names":["DEFAULT_ICONS","bold","italic","underline","link","left","center","right","justify","ul","ol","clear","DEFAULT_IMPORTANT_PROPS","_export","NileRichTextEditor","y","this","value","noStyles","disabled","singleLineEditor","placeholder","mentions","whitelist","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","containerEl","linkEl","imageEl","mentionsEl","onEditorClick","e","preventDefault","anchor","target","closest","onEditorPaste","onEditorDrop","onEditorInput","ensureAtLeastOneParagraph","scrubBrokenMentions","updateContent","updateToolbarState","onEditorMouseup","saveSelection","onEditorKeyup","includes","key","onEditorKeydown","shiftKey","ctrlKey","toLowerCase","toggleInlineTag","editorEl","handleFigureDeletion","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","_i","_createClass","createRenderRoot","injectCss","cssText","querySelector","style","createElement","setAttribute","textContent","insertBefore","firstChild","connectedCallback","super","styles","ensureStructure","dataset","innerHTML","trim","wireAuthoredToolbar","attach","setExternalConfig","wireEditor","addEventListener","passive","syncPreview","className","appendChild","ensureEditor","parentElement","previousElementSibling","nextSibling","firstUpdated","_changedProperties","test","navigator","userAgent","classList","add","updateContentWithMention","mentionDetail","dispatchEvent","CustomEvent","detail","mention","bubbles","composed","disconnectedCallback","unwireEditor","removeEventListener","detach","updated","changed","has","toggle","tabIndex","editor","unwrapMention","span","preserveText","parent","parentNode","txt","_t$textContent","textNode","removeChild","_this2","querySelectorAll","forEach","m","getAttribute","label","trigger","text","_i$textContent","looksValid","startsWith","touched","Array","from","filter","f","intersectsNode","isConnected","remove","block","closestBlock","_r2$matches","setEnd","atStart","toString","prev","matches","_r3$matches","after","endContainer","endOffset","childNodes","atEnd","next","nextElementSibling","tb","children","child","tag","tagName","alignment","setAlignment","_this3$buttonMap$get","btn","cmd","iconAttr","authoredHasContent","variant","size","concat","defaultIcon","tooltip","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","restoreSelection","focus","getCleanContent","clone","cloneNode","el","removeAttribute","insertList","list","frag","extractContents","temp","n","li","afterListEdit","node","_t$textContent3","onlyWhitespace","p","hasChildNodes","toggleList","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","_i11","_i10","setBtnActive","active","_iterator","_createForOfIteratorHelper","s","_step","done","toggleAttribute","err","_this4","_s$closest","startElm","nearestElement","comp","getComputedStyle","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","align","textAlign","alignNorm","listType","linkBtn","inImage","imageBtn","v","ff","fontFamily","split","_i17","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","bgHex","getComputedImportantProps","Set","isEmpty","_this$editorEl$textCo","caretRange","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","getPropertyValue","join","LitElement","__decorate","property","String","attribute","reflect","prototype","Boolean","converter","fromAttribute","parsed","JSON","parse","out","_i22","_Object$keys","Object","keys","trig","isArray","i","_unused","toAttribute","stringify","_unused2","state","customElement"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["lit"],function(_export,_context){"use strict";var r,_templateObject,e;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){r=_lit.css;}],execute:function execute(){_export("s",e=r(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\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: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\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 var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\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: var(--nile-colors-white-base);\n }\n\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\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\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 line-height: 1.2;\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: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n"]))));}};});
|
|
1
|
+
System.register(["lit"],function(_export,_context){"use strict";var r,_templateObject,e;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){r=_lit.css;}],execute:function execute(){_export("s",e=r(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\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: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\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 var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\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: var(--nile-colors-white-base);\n }\n\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\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\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 line-height: 1.2;\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: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor figure.rte-image,\nnile-rte-preview figure.rte-image {\n margin: 1em 0;\n width: fit-content;\n max-width: 100%;\n}\n\n.editor > figure.rte-image:first-child,\nnile-rte-preview > figure.rte-image:first-child {\n margin-top: 0;\n}\n\n.editor figure.rte-image[data-align='center'],\nnile-rte-preview figure.rte-image[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n}\n\n.editor figure.rte-image[data-align='right'],\nnile-rte-preview figure.rte-image[data-align='right'] {\n margin-left: auto;\n}\n\n.editor figure.rte-image[data-align='justify'],\nnile-rte-preview figure.rte-image[data-align='justify'] {\n width: 100%;\n}\n\n.editor figure.rte-image[data-align='justify'] img,\nnile-rte-preview figure.rte-image[data-align='justify'] img {\n width: 100%;\n}\n\n.editor figure.rte-image img,\nnile-rte-preview figure.rte-image img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n}\n\n.editor figure.rte-image figcaption,\nnile-rte-preview figure.rte-image figcaption {\n margin-top: 6px;\n font-size: 0.875em;\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));\n}\n\n.editor figure.rte-image {\n cursor: pointer;\n}\n\n.editor figure.rte-image:hover img {\n outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n outline-offset: 2px;\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\nnile-rich-text-editor[disabled] .editor figure.rte-image {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\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":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\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: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\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 var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\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: var(--nile-colors-white-base);\n }\n\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\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\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 line-height: 1.2;\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: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAGaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
1
|
+
{"version":3,"file":"nile-rich-text-editor.css.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"sourcesContent":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\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: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\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 var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\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: var(--nile-colors-white-base);\n }\n\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\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\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 line-height: 1.2;\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: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor figure.rte-image,\nnile-rte-preview figure.rte-image {\n margin: 1em 0;\n width: fit-content;\n max-width: 100%;\n}\n\n.editor > figure.rte-image:first-child,\nnile-rte-preview > figure.rte-image:first-child {\n margin-top: 0;\n}\n\n.editor figure.rte-image[data-align='center'],\nnile-rte-preview figure.rte-image[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n}\n\n.editor figure.rte-image[data-align='right'],\nnile-rte-preview figure.rte-image[data-align='right'] {\n margin-left: auto;\n}\n\n.editor figure.rte-image[data-align='justify'],\nnile-rte-preview figure.rte-image[data-align='justify'] {\n width: 100%;\n}\n\n.editor figure.rte-image[data-align='justify'] img,\nnile-rte-preview figure.rte-image[data-align='justify'] img {\n width: 100%;\n}\n\n.editor figure.rte-image img,\nnile-rte-preview figure.rte-image img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n}\n\n.editor figure.rte-image figcaption,\nnile-rte-preview figure.rte-image figcaption {\n margin-top: 6px;\n font-size: 0.875em;\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));\n}\n\n.editor figure.rte-image {\n cursor: pointer;\n}\n\n.editor figure.rte-image:hover img {\n outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n outline-offset: 2px;\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\nnile-rich-text-editor[disabled] .editor figure.rte-image {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAGaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
|
|
@@ -198,6 +198,76 @@ nile-rich-text-editor[disabled] .editor a {
|
|
|
198
198
|
pointer-events: none;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
.editor figure.rte-image,
|
|
202
|
+
nile-rte-preview figure.rte-image {
|
|
203
|
+
margin: 1em 0;
|
|
204
|
+
width: fit-content;
|
|
205
|
+
max-width: 100%;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.editor > figure.rte-image:first-child,
|
|
209
|
+
nile-rte-preview > figure.rte-image:first-child {
|
|
210
|
+
margin-top: 0;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.editor figure.rte-image[data-align='center'],
|
|
214
|
+
nile-rte-preview figure.rte-image[data-align='center'] {
|
|
215
|
+
margin-left: auto;
|
|
216
|
+
margin-right: auto;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.editor figure.rte-image[data-align='right'],
|
|
220
|
+
nile-rte-preview figure.rte-image[data-align='right'] {
|
|
221
|
+
margin-left: auto;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.editor figure.rte-image[data-align='justify'],
|
|
225
|
+
nile-rte-preview figure.rte-image[data-align='justify'] {
|
|
226
|
+
width: 100%;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.editor figure.rte-image[data-align='justify'] img,
|
|
230
|
+
nile-rte-preview figure.rte-image[data-align='justify'] img {
|
|
231
|
+
width: 100%;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.editor figure.rte-image img,
|
|
235
|
+
nile-rte-preview figure.rte-image img {
|
|
236
|
+
max-width: 100%;
|
|
237
|
+
height: auto;
|
|
238
|
+
display: block;
|
|
239
|
+
border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.editor figure.rte-image figcaption,
|
|
243
|
+
nile-rte-preview figure.rte-image figcaption {
|
|
244
|
+
margin-top: 6px;
|
|
245
|
+
font-size: 0.875em;
|
|
246
|
+
color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.editor figure.rte-image {
|
|
250
|
+
cursor: pointer;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.editor figure.rte-image:hover img {
|
|
254
|
+
outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));
|
|
255
|
+
outline-offset: 2px;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
nile-rte-image nile-button.rte-image-button[data-active]::part(base) {
|
|
259
|
+
background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
nile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {
|
|
263
|
+
background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
nile-rich-text-editor[disabled] .editor figure.rte-image {
|
|
267
|
+
cursor: not-allowed;
|
|
268
|
+
pointer-events: none;
|
|
269
|
+
}
|
|
270
|
+
|
|
201
271
|
.editor.empty::before {
|
|
202
272
|
content: attr(data-placeholder);
|
|
203
273
|
color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));
|