@aquera/nile-elements 1.5.9 → 1.6.1

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.
Files changed (111) hide show
  1. package/README.md +6 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +382 -227
  5. package/dist/nile-floating-panel/index.cjs.js +1 -1
  6. package/dist/nile-floating-panel/index.esm.js +1 -1
  7. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  8. package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
  9. package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js +1 -1
  10. package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js.map +1 -1
  11. package/dist/nile-floating-panel/nile-floating-panel.css.esm.js +137 -21
  12. package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
  13. package/dist/nile-lite-tooltip/index.cjs.js +1 -1
  14. package/dist/nile-lite-tooltip/index.esm.js +1 -1
  15. package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
  16. package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js.map +1 -1
  17. package/dist/nile-lite-tooltip/nile-lite-tooltip.esm.js +1 -1
  18. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  19. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  20. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  21. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  22. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +24 -0
  23. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  24. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js +1 -1
  25. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js.map +1 -1
  26. package/dist/nile-rich-text-editor/nile-rte-link.esm.js +59 -44
  27. package/dist/nile-rich-text-editor/utils/inline-utils.cjs.js +1 -1
  28. package/dist/nile-rich-text-editor/utils/inline-utils.cjs.js.map +1 -1
  29. package/dist/nile-rich-text-editor/utils/inline-utils.esm.js +1 -1
  30. package/dist/src/index.d.ts +1 -1
  31. package/dist/src/index.js +1 -1
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/nile-floating-panel/index.js.map +1 -1
  34. package/dist/src/nile-floating-panel/nile-floating-panel.css.d.ts +1 -1
  35. package/dist/src/nile-floating-panel/nile-floating-panel.css.js +147 -20
  36. package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +1 -1
  37. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +90 -24
  38. package/dist/src/nile-floating-panel/nile-floating-panel.js +478 -159
  39. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
  40. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +24 -0
  41. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  42. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +6 -0
  43. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +62 -24
  44. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  45. package/dist/src/nile-rich-text-editor/nile-rte-link.d.ts +12 -0
  46. package/dist/src/nile-rich-text-editor/nile-rte-link.js +239 -130
  47. package/dist/src/nile-rich-text-editor/nile-rte-link.js.map +1 -1
  48. package/dist/src/nile-rich-text-editor/nile-rte-link.test.d.ts +1 -0
  49. package/dist/src/nile-rich-text-editor/nile-rte-link.test.js +469 -0
  50. package/dist/src/nile-rich-text-editor/nile-rte-link.test.js.map +1 -0
  51. package/dist/src/nile-rich-text-editor/utils/inline-utils.js +13 -4
  52. package/dist/src/nile-rich-text-editor/utils/inline-utils.js.map +1 -1
  53. package/dist/src/version.js +1 -1
  54. package/dist/src/version.js.map +1 -1
  55. package/dist/tippy.esm-57628c2b.esm.js +1 -0
  56. package/dist/tippy.esm-78baa8f2.cjs.js +2 -0
  57. package/dist/tippy.esm-78baa8f2.cjs.js.map +1 -0
  58. package/dist/tsconfig.tsbuildinfo +1 -1
  59. package/package.json +4 -3
  60. package/src/index.ts +2 -2
  61. package/src/nile-floating-panel/index.ts +0 -1
  62. package/src/nile-floating-panel/nile-floating-panel.css.ts +149 -21
  63. package/src/nile-floating-panel/nile-floating-panel.ts +489 -190
  64. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +24 -0
  65. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +66 -26
  66. package/src/nile-rich-text-editor/nile-rte-link.test.ts +682 -0
  67. package/src/nile-rich-text-editor/nile-rte-link.ts +195 -100
  68. package/src/nile-rich-text-editor/utils/inline-utils.ts +11 -4
  69. package/vscode-html-custom-data.json +229 -25
  70. package/dist/nile-floating-panel/anchor-manager.cjs.js +0 -2
  71. package/dist/nile-floating-panel/anchor-manager.cjs.js.map +0 -1
  72. package/dist/nile-floating-panel/anchor-manager.esm.js +0 -1
  73. package/dist/nile-floating-panel/content-manager.cjs.js +0 -2
  74. package/dist/nile-floating-panel/content-manager.cjs.js.map +0 -1
  75. package/dist/nile-floating-panel/content-manager.esm.js +0 -1
  76. package/dist/nile-floating-panel/event-manager.cjs.js +0 -2
  77. package/dist/nile-floating-panel/event-manager.cjs.js.map +0 -1
  78. package/dist/nile-floating-panel/event-manager.esm.js +0 -1
  79. package/dist/nile-floating-panel/position-manager.cjs.js +0 -2
  80. package/dist/nile-floating-panel/position-manager.cjs.js.map +0 -1
  81. package/dist/nile-floating-panel/position-manager.esm.js +0 -1
  82. package/dist/nile-floating-panel/style-manager.cjs.js +0 -2
  83. package/dist/nile-floating-panel/style-manager.cjs.js.map +0 -1
  84. package/dist/nile-floating-panel/style-manager.esm.js +0 -1
  85. package/dist/nile-floating-panel/types.cjs.js +0 -2
  86. package/dist/nile-floating-panel/types.cjs.js.map +0 -1
  87. package/dist/nile-floating-panel/types.esm.js +0 -1
  88. package/dist/src/nile-floating-panel/anchor-manager.d.ts +0 -6
  89. package/dist/src/nile-floating-panel/anchor-manager.js +0 -27
  90. package/dist/src/nile-floating-panel/anchor-manager.js.map +0 -1
  91. package/dist/src/nile-floating-panel/content-manager.d.ts +0 -5
  92. package/dist/src/nile-floating-panel/content-manager.js +0 -44
  93. package/dist/src/nile-floating-panel/content-manager.js.map +0 -1
  94. package/dist/src/nile-floating-panel/event-manager.d.ts +0 -14
  95. package/dist/src/nile-floating-panel/event-manager.js +0 -52
  96. package/dist/src/nile-floating-panel/event-manager.js.map +0 -1
  97. package/dist/src/nile-floating-panel/position-manager.d.ts +0 -17
  98. package/dist/src/nile-floating-panel/position-manager.js +0 -72
  99. package/dist/src/nile-floating-panel/position-manager.js.map +0 -1
  100. package/dist/src/nile-floating-panel/style-manager.d.ts +0 -9
  101. package/dist/src/nile-floating-panel/style-manager.js +0 -44
  102. package/dist/src/nile-floating-panel/style-manager.js.map +0 -1
  103. package/dist/src/nile-floating-panel/types.d.ts +0 -11
  104. package/dist/src/nile-floating-panel/types.js +0 -2
  105. package/dist/src/nile-floating-panel/types.js.map +0 -1
  106. package/src/nile-floating-panel/anchor-manager.ts +0 -33
  107. package/src/nile-floating-panel/content-manager.ts +0 -54
  108. package/src/nile-floating-panel/event-manager.ts +0 -74
  109. package/src/nile-floating-panel/position-manager.ts +0 -102
  110. package/src/nile-floating-panel/style-manager.ts +0 -54
  111. package/src/nile-floating-panel/types.ts +0 -15
@@ -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 } 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\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 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 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 }\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 wireEditor() {\n this.editorEl.addEventListener('input', () => {\n this.ensureAtLeastOneParagraph();\n this.scrubBrokenMentions();\n this.updateContent();\n this.updateToolbarState();\n });\n this.editorEl.addEventListener('mouseup', () => {\n this.saveSelection();\n this.updateToolbarState();\n });\n this.editorEl.addEventListener('keyup', e => {\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 this.editorEl.addEventListener('keydown', this.onEditorKeydown);\n }\n\n private onEditorKeydown = (e: KeyboardEvent) => {\n if (this.singleLineEditor && e.key === 'Enter' && e.shiftKey) {\n e.preventDefault();\n return;\n }\n if (e.ctrlKey && e.key.toLowerCase() === 'i') {\n e.preventDefault();\n toggleInlineTag(this.editorEl, 'em');\n this.updateContent();\n this.updateToolbarState();\n }\n\n 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.addEventListener('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 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 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 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 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 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","constructor","this","value","noStyles","disabled","singleLineEditor","placeholder","mentions","whitelist","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","containerEl","mentionsEl","onEditorKeydown","e","key","shiftKey","preventDefault","ctrlKey","toLowerCase","toggleInlineTag","editorEl","updateContent","updateToolbarState","focusAndRestore","sel","window","getSelection","rangeCount","range","getRangeAt","collapsed","startContainer","nodeType","Node","TEXT_NODE","t","off","startOffset","before","data","slice","removed","replace","length","r","document","createRange","setStart","collapse","removeAllRanges","addRange","deleteContents","tabNode","createTextNode","insertNode","setStartAfter","onSelectionChange","contains","commonAncestorContainer","cloneRange","_this","_inherits","_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","updateContentWithMention","mentionDetail","dispatchEvent","CustomEvent","detail","mention","bubbles","composed","disconnectedCallback","removeEventListener","detach","updated","changed","has","classList","toggle","tabIndex","editor","unwrapMention","span","_t$textContent","preserveText","arguments","undefined","parent","parentNode","txt","textNode","removeChild","scrubBrokenMentions","_this2","querySelectorAll","forEach","m","getAttribute","label","trigger","text","_i$textContent","looksValid","startsWith","includes","ensureAtLeastOneParagraph","saveSelection","tb","Array","from","children","child","tag","tagName","alignment","setAlignment","_this4$buttonMap$get","btn","cmd","iconAttr","authoredHasContent","variant","size","defaultIcon","isConnected","tooltip","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","restoreSelection","focus","getCleanContent","clone","cloneNode","el","removeAttribute","insertList","list","frag","extractContents","temp","childNodes","n","_t$textContent2","li","afterListEdit","node","onlyWhitespace","p","hasChildNodes","_t$textContent4","toggleList","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","_i7","_i6","remove","setBtnActive","active","_iterator","_createForOfIteratorHelper","s","_step","done","toggleAttribute","err","f","_this5","_s$closest","startElm","nearestElement","comp","getComputedStyle","block","closestBlock","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","closest","align","textAlign","alignNorm","listType","v","ff","fontFamily","split","_i12","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","test","bgHex","getComputedImportantProps","Set","concat","isEmpty","_this$editorEl$textCo","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","getPropertyValue","join","__decorate","LitElement","property","String","attribute","reflect","prototype","Boolean","converter","fromAttribute","parsed","JSON","parse","out","_i16","_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 } 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 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 const anchor = (e.target as HTMLElement).closest?.('a');\n if (anchor) e.preventDefault();\n };\n\n private onEditorInput = () => {\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 }\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 }\n\n private onEditorKeydown = (e: KeyboardEvent) => {\n if (this.singleLineEditor && e.key === 'Enter' && e.shiftKey) {\n e.preventDefault();\n return;\n }\n if (e.ctrlKey && e.key.toLowerCase() === 'i') {\n e.preventDefault();\n toggleInlineTag(this.editorEl, 'em');\n this.updateContent();\n this.updateToolbarState();\n }\n\n 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 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 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 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 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","constructor","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","_t$target$closest","_t$target","anchor","target","closest","preventDefault","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","updateContentWithMention","mentionDetail","dispatchEvent","CustomEvent","detail","mention","bubbles","composed","disconnectedCallback","unwireEditor","removeEventListener","detach","updated","changed","has","classList","toggle","tabIndex","editor","unwrapMention","span","preserveText","_t$textContent","parent","parentNode","txt","textNode","removeChild","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","_t$textContent3","onlyWhitespace","p","hasChildNodes","_t$textContent4","toggleList","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","_i7","_i6","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","_i12","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","test","bgHex","getComputedImportantProps","_this$whitelist","Set","isEmpty","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","_i16","_Object$keys","Object","keys","trig","isArray","filter","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 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 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: inside; \n padding: 0px;\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\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(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 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 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: inside; \n padding: 0px;\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(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 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 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: inside; \n padding: 0px;\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\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(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 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 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: inside; \n padding: 0px;\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(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"}
@@ -169,6 +169,30 @@ nile-rte-toolbar-item nile-button[data-active]::part(base):hover {
169
169
  background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));
170
170
  }
171
171
 
172
+ nile-rte-link nile-button[data-active]::part(base) {
173
+ background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));
174
+ }
175
+
176
+ nile-rte-link nile-button[data-active]::part(base):hover {
177
+ background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));
178
+ }
179
+
180
+ .editor a {
181
+ color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));
182
+ cursor: pointer;
183
+ text-decoration: none;
184
+ }
185
+
186
+ .editor a:hover {
187
+ text-decoration: none;
188
+ }
189
+
190
+ nile-rich-text-editor[disabled] .editor a {
191
+ color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));
192
+ cursor: not-allowed;
193
+ pointer-events: none;
194
+ }
195
+
172
196
  .editor.empty::before {
173
197
  content: attr(data-placeholder);
174
198
  color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));
@@ -1 +1 @@
1
- import{__decorate as t}from"tslib";import{LitElement as i}from"lit";import{property as s,state as e,customElement as n}from"lit/decorators.js";import"./nile-rte-toolbar.esm.js";import"./nile-rte-toolbar-item.esm.js";import"./nile-rte-select.esm.js";import"./nile-rte-color.esm.js";import"./nile-rte-divider.esm.js";import"./nile-rte-preview.esm.js";import"./nile-rte-mentions.esm.js";import"./nile-rte-link.esm.js";import{s as r,a as o,n as h,c as l}from"./utils/block-utils.esm.js";import{t as c,s as a,r as u}from"./utils/inline-utils.esm.js";import{s as d,a as f}from"./utils/color-utils.esm.js";import{t as m}from"./utils/list-utils.esm.js";import{s as p}from"./nile-rich-text-editor.css.esm.js";const b={bold:"format_bold",italic:"format_italic",underline:"format_underline",link:"link_2",left:"format_align_left",center:"format_align_middle",right:"format_align_right",justify:"format_align_justify",ul:"format_list_bulleted",ol:"format_list_numbered",clear:"format_clear"},g=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align","list-style-position","padding-inline-start"];let y=class extends i{constructor(){super(...arguments),this.value="",this.noStyles=!1,this.disabled=!1,this.singleLineEditor=!1,this.placeholder="",this.mentions={},this.whitelist=[],this.content="",this.previewEl=null,this.toolbarEl=null,this.lastRange=null,this.buttonMap=new Map,this.headingSelect=null,this.fontSelect=null,this.colorInput=null,this.bgColorInput=null,this.colorSwatchEl=null,this.bgSwatchEl=null,this.containerEl=null,this.mentionsEl=null,this.onEditorKeydown=t=>{if(this.singleLineEditor&&"Enter"===t.key&&t.shiftKey)return void t.preventDefault();if(t.ctrlKey&&"i"===t.key.toLowerCase()&&(t.preventDefault(),c(this.editorEl,"em"),this.updateContent(),this.updateToolbarState()),this.singleLineEditor&&"Enter"===t.key)return void t.preventDefault();if("Tab"!==t.key)return;t.preventDefault(),this.focusAndRestore();const i=window.getSelection();if(!i||0===i.rangeCount)return;const s=i.getRangeAt(0);if(t.shiftKey){if(s.collapsed&&s.startContainer.nodeType===Node.TEXT_NODE){const t=s.startContainer,e=s.startOffset,n=t.data.slice(0,e),r=n.replace(/(\t|[ \u00a0]{2})$/,"");if(r.length!==n.length){t.data=r+t.data.slice(e);const s=document.createRange();s.setStart(t,r.length),s.collapse(!0),i.removeAllRanges(),i.addRange(s),this.updateContent(),this.updateToolbarState()}}return}s.deleteContents();const e=document.createTextNode("\t");s.insertNode(e);const n=document.createRange();n.setStartAfter(e),n.collapse(!0),i.removeAllRanges(),i.addRange(n),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const t=document.getSelection();if(!t||0===t.rangeCount)return;const i=t.getRangeAt(0);this.editorEl.contains(i.commonAncestorContainer)&&(this.lastRange=i.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}injectCss(t){if(this.querySelector("style[data-rte-style]"))return;const i=document.createElement("style");i.setAttribute("data-rte-style","true"),i.textContent=t,this.insertBefore(i,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(p.cssText),this.ensureStructure(),this.placeholder&&this.editorEl&&(this.editorEl.dataset.placeholder=this.placeholder),this.value&&!this.editorEl.innerHTML.trim()&&(this.editorEl.innerHTML=this.value),this.content=this.editorEl.innerHTML,this.toolbarEl&&this.wireAuthoredToolbar(this.toolbarEl),this.mentionsEl=this.querySelector("nile-rte-mentions"),this.mentionsEl&&(this.mentionsEl.attach?.(this.editorEl,this),this.mentionsEl.setExternalConfig?.(this.mentions)),this.wireEditor(),document.addEventListener("selectionchange",this.onSelectionChange,{passive:!0}),this.updateToolbarState(),this.syncPreview()}ensureStructure(){this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.containerEl=this.querySelector(".rte-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.className="rte-container",this.appendChild(this.containerEl)),this.ensureEditor(),this.toolbarEl&&this.toolbarEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.toolbarEl),this.editorEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.editorEl),this.previewEl&&(this.previewEl.parentElement!==this&&this.appendChild(this.previewEl),this.previewEl.previousElementSibling!==this.containerEl&&this.insertBefore(this.previewEl,this.containerEl.nextSibling))}updateContentWithMention(t){this.updateContent(),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content,mention:t},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}updated(t){t.has("value")&&this.editorEl&&this.value!==this.editorEl.innerHTML&&(this.editorEl.innerHTML=this.value||"<p><br></p>",this.content=this.editorEl.innerHTML,this.syncPreview()),t.has("singleLineEditor")&&(this.editorEl&&this.editorEl.classList.toggle("single-line",this.singleLineEditor),this.previewEl&&this.previewEl.classList.toggle("single-line",this.singleLineEditor)),t.has("disabled")&&this.editorEl&&(this.editorEl.setAttribute("contenteditable",this.disabled?"false":"true"),this.editorEl.tabIndex=this.disabled?-1:0)}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const t=document.createElement("article");t.className="editor",t.setAttribute("contenteditable",this.disabled?"false":"true"),t.tabIndex=this.disabled?-1:0,this.editorEl=t}this.placeholder&&(this.editorEl.dataset.placeholder=this.placeholder),this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>")}unwrapMention(t,i=!0){const s=t.parentNode;if(!s)return;const e=i?(t.textContent??"").replace(/\u200B/g,""):"",n=document.createTextNode(e);s.insertBefore(n,t),s.removeChild(t);const r=document.createRange();r.setStartAfter(n),r.collapse(!0);const o=window.getSelection();o?.removeAllRanges(),o?.addRange(r)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((t=>{const i=t,s=i.getAttribute("data-mention-key"),e=i.getAttribute("data-mention-label"),n=i.getAttribute("data-mention-trigger")||"",r=(i.textContent??"").replace(/\u200B/g,"").trim(),o=!!s&&!!e&&r.length>0&&r.startsWith(n)&&r.includes(e);r&&o||this.unwrapMention(i,!0)}))}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent(),this.updateToolbarState()})),this.editorEl.addEventListener("mouseup",(()=>{this.saveSelection(),this.updateToolbarState()})),this.editorEl.addEventListener("keyup",(t=>{this.saveSelection(),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t.key)&&this.updateToolbarState()})),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(t){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(t.children).forEach((t=>{const i=t.tagName.toLowerCase();if("nile-rte-select"===i&&"align"===t.getAttribute("type"))return t.disabled=this.disabled,void t.addEventListener("change",(t=>{this.focusAndRestore();const i=t.detail;r(this.editorEl,i),this.updateContent(),this.updateToolbarState()}));if("nile-rte-link"===i)return t.editorEl=this.editorEl,void t.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===i){let i=t.querySelector(":scope > nile-button");const s=t.getAttribute("name")||"",e=t.getAttribute("label")||s,n=t.getAttribute("icon"),r=t.innerHTML.trim().length>0;if(i||(i=document.createElement("nile-button"),i.variant="tertiary",i.size="small"),i.disabled=this.disabled,n)i.innerHTML=`<nile-icon name="${n}" 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>`,t.innerHTML="";else if(r)i.innerHTML=t.innerHTML,t.innerHTML="";else{const n=b[s];n?i.innerHTML=`<nile-icon name="${n}" 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>`:i.textContent=e||s,t.innerHTML=""}if(!i.isConnected)if(this.disabled)t.appendChild(i);else{const s=document.createElement("nile-lite-tooltip");s.setAttribute("content",e),s.appendChild(i),t.appendChild(s)}i.setAttribute("aria-label",e),i.addEventListener("mousedown",(t=>t.preventDefault())),i.addEventListener("click",(()=>this.onToolbarCommand(s)));const o=this.buttonMap.get(s)??[];return o.push(i),void this.buttonMap.set(s,o)}if("nile-rte-select"!==i)"nile-rte-color"!==i||t.addEventListener("change",(t=>{this.focusAndRestore();const{mode:i,value:s}=t.detail;"backColor"===i?d(this.editorEl,s):f(this.editorEl,s),this.updateContent(),this.updateToolbarState()}));else{const i=t.getAttribute("type")||"";t.addEventListener("change",(t=>{this.focusAndRestore();const s=t.detail;"heading"===i?o(this.editorEl,s):"font"===i&&a(this.editorEl,s),this.updateContent(),this.updateToolbarState()}))}}))}saveSelection(){const t=window.getSelection();t&&t.rangeCount&&(this.lastRange=t.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const t=document.getSelection();t&&(t.removeAllRanges(),t.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}getCleanContent(){const t=this.editorEl.cloneNode(!0);return t.querySelectorAll("*").forEach((t=>{t.removeAttribute("style")})),t.innerHTML}insertList(t){if(this.restoreSelection(),!this.lastRange)return;const i=document.createElement(t),s=this.lastRange.extractContents(),e=document.createElement("div");e.appendChild(s),Array.from(e.childNodes).forEach((t=>{if(t.nodeType===Node.TEXT_NODE&&!t.textContent?.trim())return;const s=document.createElement("li");s.appendChild(t),i.appendChild(s)})),this.lastRange.insertNode(i),this.afterListEdit(i)}afterListEdit(t){const i=document.createRange();i.setStartAfter(t),i.collapse(!0);const s=window.getSelection();s?.removeAllRanges(),s?.addRange(i),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const t=this.editorEl;if(!t)return;const i=""===(t.textContent??"").replace(/\u200B/g,"").trim();if(0===t.childNodes.length||i)return void(t.innerHTML="<p><br></p>");if(!t.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const i=document.createElement("p");for(;t.firstChild;)i.appendChild(t.firstChild);return i.hasChildNodes()||i.appendChild(document.createElement("br")),void t.appendChild(i)}t.querySelectorAll("p").forEach((t=>{""===(t.textContent??"").replace(/\u200B/g,"")&&(t.innerHTML.toLowerCase().includes("<br")||(t.innerHTML="<br>"))}))}onToolbarCommand(t){switch(this.focusAndRestore(),t){case"bold":c(this.editorEl,"strong");break;case"italic":c(this.editorEl,"em");break;case"underline":c(this.editorEl,"u");break;case"left":r(this.editorEl,"left");break;case"center":r(this.editorEl,"center");break;case"right":r(this.editorEl,"right");break;case"justify":r(this.editorEl,"justify");break;case"ul":m(this.editorEl,"ul"),this.updateContent(),this.updateToolbarState();break;case"ol":m(this.editorEl,"ol"),this.updateContent(),this.updateToolbarState();break;case"link":break;case"clear":const t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),i=[];for(;t.nextNode();){const s=t.currentNode;s.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(s.tagName)&&i.push(s)}for(const t of i){for(;t.firstChild;)t.parentNode?.insertBefore(t.firstChild,t);t.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(t,i){const s=this.buttonMap.get(t);if(s)for(const t of s)t.toggleAttribute("data-active",!!i)}updateToolbarState(){if(!this.editorEl)return;const t=document.getSelection();if(!t||0===t.rangeCount)return;const i=t.getRangeAt(0);if(!this.editorEl.contains(i.commonAncestorContainer))return;const s=h(i.startContainer)||this.editorEl,e=getComputedStyle(s),n=l(i.startContainer,this.editorEl)||this.editorEl,r=(()=>{let t=s;for(;t&&t!==this.editorEl;){if(t instanceof HTMLElement){const i=t.tagName.toLowerCase();if("strong"===i||"b"===i)return!0;const s=getComputedStyle(t).fontWeight;if(parseInt(s,10)>=600)return!0}t=t.parentNode}return!1})(),o=(()=>{let t=s;for(;t&&t!==this.editorEl;){if(t instanceof HTMLElement){const i=t.tagName.toLowerCase();if("em"===i||"i"===i)return!0;if("italic"===getComputedStyle(t).fontStyle)return!0}t=t.parentNode}return!1})(),c=(()=>{let t=s;for(;t&&t!==this.editorEl;){if(t instanceof HTMLElement){const i=getComputedStyle(t).textDecorationLine;if(i&&i.includes("underline"))return!0;if("u"===t.tagName.toLowerCase())return!0}t=t.parentNode}return!1})(),a=!!s.closest("a"),d=n.style.textAlign||getComputedStyle(n).textAlign||"start",f="start"===d?"left":d,m=!!s.closest("li")&&s.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",r),this.setBtnActive("italic",o),this.setBtnActive("underline",c),this.setBtnActive("link",a),this.setBtnActive("left","left"===f&&!["center","right","justify"].includes(f)),this.setBtnActive("center","center"===f),this.setBtnActive("right","right"===f),this.setBtnActive("justify","justify"===f),this.setBtnActive("ul","ul"===m),this.setBtnActive("ol","ol"===m),this.headingSelect){const t=n.tagName.toLowerCase(),i=["h1","h2","h3"].includes(t)?t:"p";this.headingSelect.value!==i&&(this.headingSelect.value=i)}if(this.fontSelect){const t=(e.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(t)for(const i of Array.from(this.fontSelect.options))if(i.value.toLowerCase()===t){this.fontSelect.value=i.value;break}}if(this.colorInput){const t=u(e.color);t&&this.colorInput.value.toLowerCase()!==t.toLowerCase()&&(this.colorInput.value=t),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const t=getComputedStyle(s).backgroundColor;if(t&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(t)){const i=u(t);i&&this.bgColorInput.value.toLowerCase()!==i.toLowerCase()&&(this.bgColorInput.value=i)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}getComputedImportantProps(){return Array.from(new Set([...g,...this.whitelist??[]]))}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const t=""===(this.editorEl.textContent??"").trim();this.editorEl.classList.toggle("empty",t);const i=this.editorEl.cloneNode(!0);if(this.noStyles)i.querySelectorAll("[style]").forEach((t=>t.removeAttribute("style")));else{const t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),s=document.createTreeWalker(i,NodeFilter.SHOW_ELEMENT),e=this.getComputedImportantProps();for(;t.nextNode()&&s.nextNode();){const i=t.currentNode,n=s.currentNode,r=window.getComputedStyle(i),o=e.map((t=>`${t}:${r.getPropertyValue(t)}`)).join(";");o.trim()&&n.setAttribute("style",o)}}this.content=i.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content},bubbles:!0,composed:!0}))}};t([s({type:String,attribute:!0,reflect:!0})],y.prototype,"value",void 0),t([s({type:Boolean,attribute:!0,reflect:!0})],y.prototype,"noStyles",void 0),t([s({type:Boolean,attribute:!0,reflect:!0})],y.prototype,"disabled",void 0),t([s({type:Boolean,attribute:"singlelineeditor",reflect:!0})],y.prototype,"singleLineEditor",void 0),t([s({type:String})],y.prototype,"placeholder",void 0),t([s({attribute:"mentions",reflect:!0,converter:{fromAttribute:t=>{try{const i=JSON.parse(t),s={};for(const t of Object.keys(i)){const e=i[t];Array.isArray(e)&&(s[t]=e.filter((t=>t&&"string"==typeof t.key&&"string"==typeof t.label)).map((t=>({key:t.key,label:t.label}))))}return s}catch{return{}}},toAttribute:t=>JSON.stringify(t)}})],y.prototype,"mentions",void 0),t([s({attribute:"whitelist",reflect:!1,converter:{fromAttribute:t=>{try{const i=JSON.parse(t);return Array.isArray(i)?i.filter((t=>"string"==typeof t)):[]}catch{return[]}}}})],y.prototype,"whitelist",void 0),t([e()],y.prototype,"content",void 0),y=t([n("nile-rich-text-editor")],y);export{y as N};
1
+ import{__decorate as t}from"tslib";import{LitElement as i}from"lit";import{property as s,state as e,customElement as n}from"lit/decorators.js";import"./nile-rte-toolbar.esm.js";import"./nile-rte-toolbar-item.esm.js";import"./nile-rte-select.esm.js";import"./nile-rte-color.esm.js";import"./nile-rte-divider.esm.js";import"./nile-rte-preview.esm.js";import"./nile-rte-mentions.esm.js";import"./nile-rte-link.esm.js";import{s as r,a as o,n as h,c as l}from"./utils/block-utils.esm.js";import{t as c,s as a,r as u}from"./utils/inline-utils.esm.js";import{s as d,a as f}from"./utils/color-utils.esm.js";import{t as m}from"./utils/list-utils.esm.js";import{s as p}from"./nile-rich-text-editor.css.esm.js";const b={bold:"format_bold",italic:"format_italic",underline:"format_underline",link:"link_2",left:"format_align_left",center:"format_align_middle",right:"format_align_right",justify:"format_align_justify",ul:"format_list_bulleted",ol:"format_list_numbered",clear:"format_clear"},g=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align","list-style-position","padding-inline-start"];let y=class extends i{constructor(){super(...arguments),this.value="",this.noStyles=!1,this.disabled=!1,this.singleLineEditor=!1,this.placeholder="",this.mentions={},this.whitelist=[],this.content="",this.previewEl=null,this.toolbarEl=null,this.lastRange=null,this.buttonMap=new Map,this.headingSelect=null,this.fontSelect=null,this.colorInput=null,this.bgColorInput=null,this.colorSwatchEl=null,this.bgSwatchEl=null,this.containerEl=null,this.linkEl=null,this.mentionsEl=null,this.onEditorClick=t=>{const i=t.target.closest?.("a");i&&t.preventDefault()},this.onEditorInput=()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent(),this.updateToolbarState()},this.onEditorMouseup=()=>{this.saveSelection(),this.updateToolbarState()},this.onEditorKeyup=t=>{this.saveSelection(),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t.key)&&this.updateToolbarState()},this.onEditorKeydown=t=>{if(this.singleLineEditor&&"Enter"===t.key&&t.shiftKey)return void t.preventDefault();if(t.ctrlKey&&"i"===t.key.toLowerCase()&&(t.preventDefault(),c(this.editorEl,"em"),this.updateContent(),this.updateToolbarState()),this.singleLineEditor&&"Enter"===t.key)return void t.preventDefault();if("Tab"!==t.key)return;t.preventDefault(),this.focusAndRestore();const i=window.getSelection();if(!i||0===i.rangeCount)return;const s=i.getRangeAt(0);if(t.shiftKey){if(s.collapsed&&s.startContainer.nodeType===Node.TEXT_NODE){const t=s.startContainer,e=s.startOffset,n=t.data.slice(0,e),r=n.replace(/(\t|[ \u00a0]{2})$/,"");if(r.length!==n.length){t.data=r+t.data.slice(e);const s=document.createRange();s.setStart(t,r.length),s.collapse(!0),i.removeAllRanges(),i.addRange(s),this.updateContent(),this.updateToolbarState()}}return}s.deleteContents();const e=document.createTextNode("\t");s.insertNode(e);const n=document.createRange();n.setStartAfter(e),n.collapse(!0),i.removeAllRanges(),i.addRange(n),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const t=document.getSelection();if(!t||0===t.rangeCount)return;const i=t.getRangeAt(0);this.editorEl.contains(i.commonAncestorContainer)&&(this.lastRange=i.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}injectCss(t){if(this.querySelector("style[data-rte-style]"))return;const i=document.createElement("style");i.setAttribute("data-rte-style","true"),i.textContent=t,this.insertBefore(i,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(p.cssText),this.ensureStructure(),this.placeholder&&this.editorEl&&(this.editorEl.dataset.placeholder=this.placeholder),this.value&&!this.editorEl.innerHTML.trim()&&(this.editorEl.innerHTML=this.value),this.content=this.editorEl.innerHTML,this.toolbarEl&&this.wireAuthoredToolbar(this.toolbarEl),this.mentionsEl=this.querySelector("nile-rte-mentions"),this.mentionsEl&&(this.mentionsEl.attach?.(this.editorEl,this),this.mentionsEl.setExternalConfig?.(this.mentions)),this.wireEditor(),document.addEventListener("selectionchange",this.onSelectionChange,{passive:!0}),this.updateToolbarState(),this.syncPreview()}ensureStructure(){this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.containerEl=this.querySelector(".rte-container"),this.containerEl||(this.containerEl=document.createElement("div"),this.containerEl.className="rte-container",this.appendChild(this.containerEl)),this.ensureEditor(),this.toolbarEl&&this.toolbarEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.toolbarEl),this.editorEl.parentElement!==this.containerEl&&this.containerEl.appendChild(this.editorEl),this.previewEl&&(this.previewEl.parentElement!==this&&this.appendChild(this.previewEl),this.previewEl.previousElementSibling!==this.containerEl&&this.insertBefore(this.previewEl,this.containerEl.nextSibling))}updateContentWithMention(t){this.updateContent(),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content,mention:t},bubbles:!0,composed:!0}))}disconnectedCallback(){this.unwireEditor(),document.removeEventListener("selectionchange",this.onSelectionChange),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}updated(t){t.has("value")&&this.editorEl&&this.value!==this.editorEl.innerHTML&&(this.editorEl.innerHTML=this.value||"<p><br></p>",this.content=this.editorEl.innerHTML,this.syncPreview()),t.has("singleLineEditor")&&(this.editorEl&&this.editorEl.classList.toggle("single-line",this.singleLineEditor),this.previewEl&&this.previewEl.classList.toggle("single-line",this.singleLineEditor)),t.has("disabled")&&this.editorEl&&(this.editorEl.setAttribute("contenteditable",this.disabled?"false":"true"),this.editorEl.tabIndex=this.disabled?-1:0,this.linkEl&&(this.linkEl.disabled=this.disabled)),t.has("placeholder")&&this.editorEl&&(this.placeholder?this.editorEl.dataset.placeholder=this.placeholder:delete this.editorEl.dataset.placeholder)}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const t=document.createElement("article");t.className="editor",t.setAttribute("contenteditable",this.disabled?"false":"true"),t.tabIndex=this.disabled?-1:0,this.editorEl=t}this.placeholder&&(this.editorEl.dataset.placeholder=this.placeholder),this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>")}unwrapMention(t,i=!0){const s=t.parentNode;if(!s)return;const e=i?(t.textContent??"").replace(/\u200B/g,""):"",n=document.createTextNode(e);s.insertBefore(n,t),s.removeChild(t);const r=document.createRange();r.setStartAfter(n),r.collapse(!0);const o=window.getSelection();o?.removeAllRanges(),o?.addRange(r)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((t=>{const i=t,s=i.getAttribute("data-mention-key"),e=i.getAttribute("data-mention-label"),n=i.getAttribute("data-mention-trigger")||"",r=(i.textContent??"").replace(/\u200B/g,"").trim(),o=!!s&&!!e&&r.length>0&&r.startsWith(n)&&r.includes(e);r&&o||this.unwrapMention(i,!0)}))}wireEditor(){this.editorEl.addEventListener("click",this.onEditorClick),this.editorEl.addEventListener("input",this.onEditorInput),this.editorEl.addEventListener("mouseup",this.onEditorMouseup),this.editorEl.addEventListener("keyup",this.onEditorKeyup),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}unwireEditor(){this.editorEl&&(this.editorEl.removeEventListener("click",this.onEditorClick),this.editorEl.removeEventListener("input",this.onEditorInput),this.editorEl.removeEventListener("mouseup",this.onEditorMouseup),this.editorEl.removeEventListener("keyup",this.onEditorKeyup),this.editorEl.removeEventListener("keydown",this.onEditorKeydown))}wireAuthoredToolbar(t){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(t.children).forEach((t=>{const i=t.tagName.toLowerCase();if("nile-rte-select"===i&&"align"===t.getAttribute("type"))return t.disabled=this.disabled,void t.addEventListener("change",(t=>{this.focusAndRestore();const i=t.detail;r(this.editorEl,i),this.updateContent(),this.updateToolbarState()}));if("nile-rte-link"===i)return t.editorEl=this.editorEl,t.disabled=this.disabled,this.linkEl=t,void t.addEventListener("nile-link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===i){let i=t.querySelector(":scope > nile-button");const s=t.getAttribute("name")||"",e=t.getAttribute("label")||s,n=t.getAttribute("icon"),r=t.innerHTML.trim().length>0;if(i||(i=document.createElement("nile-button"),i.variant="tertiary",i.size="small"),i.disabled=this.disabled,n)i.innerHTML=`<nile-icon name="${n}" 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>`,t.innerHTML="";else if(r)i.innerHTML=t.innerHTML,t.innerHTML="";else{const n=b[s];n?i.innerHTML=`<nile-icon name="${n}" 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>`:i.textContent=e||s,t.innerHTML=""}if(!i.isConnected)if(this.disabled)t.appendChild(i);else{const s=document.createElement("nile-lite-tooltip");s.setAttribute("content",e),s.appendChild(i),t.appendChild(s)}i.setAttribute("aria-label",e),i.addEventListener("mousedown",(t=>t.preventDefault())),i.addEventListener("click",(()=>this.onToolbarCommand(s)));const o=this.buttonMap.get(s)??[];return o.push(i),void this.buttonMap.set(s,o)}if("nile-rte-select"!==i)"nile-rte-color"!==i||t.addEventListener("change",(t=>{this.focusAndRestore();const{mode:i,value:s}=t.detail;"backColor"===i?d(this.editorEl,s):f(this.editorEl,s),this.updateContent(),this.updateToolbarState()}));else{const i=t.getAttribute("type")||"";t.addEventListener("change",(t=>{this.focusAndRestore();const s=t.detail;"heading"===i?o(this.editorEl,s):"font"===i&&a(this.editorEl,s),this.updateContent(),this.updateToolbarState()}))}}))}saveSelection(){const t=window.getSelection();t&&t.rangeCount&&(this.lastRange=t.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const t=document.getSelection();t&&(t.removeAllRanges(),t.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}getCleanContent(){const t=this.editorEl.cloneNode(!0);return t.querySelectorAll("*").forEach((t=>{t.removeAttribute("style")})),t.innerHTML}insertList(t){if(this.restoreSelection(),!this.lastRange)return;const i=document.createElement(t),s=this.lastRange.extractContents(),e=document.createElement("div");e.appendChild(s),Array.from(e.childNodes).forEach((t=>{if(t.nodeType===Node.TEXT_NODE&&!t.textContent?.trim())return;const s=document.createElement("li");s.appendChild(t),i.appendChild(s)})),this.lastRange.insertNode(i),this.afterListEdit(i)}afterListEdit(t){const i=document.createRange();i.setStartAfter(t),i.collapse(!0);const s=window.getSelection();s?.removeAllRanges(),s?.addRange(i),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const t=this.editorEl;if(!t)return;const i=""===(t.textContent??"").replace(/\u200B/g,"").trim();if(0===t.childNodes.length||i)return void(t.innerHTML="<p><br></p>");if(!t.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const i=document.createElement("p");for(;t.firstChild;)i.appendChild(t.firstChild);return i.hasChildNodes()||i.appendChild(document.createElement("br")),void t.appendChild(i)}t.querySelectorAll("p").forEach((t=>{""===(t.textContent??"").replace(/\u200B/g,"")&&(t.innerHTML.toLowerCase().includes("<br")||(t.innerHTML="<br>"))}))}onToolbarCommand(t){switch(this.focusAndRestore(),t){case"bold":c(this.editorEl,"strong");break;case"italic":c(this.editorEl,"em");break;case"underline":c(this.editorEl,"u");break;case"left":r(this.editorEl,"left");break;case"center":r(this.editorEl,"center");break;case"right":r(this.editorEl,"right");break;case"justify":r(this.editorEl,"justify");break;case"ul":m(this.editorEl,"ul"),this.updateContent(),this.updateToolbarState();break;case"ol":m(this.editorEl,"ol"),this.updateContent(),this.updateToolbarState();break;case"link":break;case"clear":const t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),i=[];for(;t.nextNode();){const s=t.currentNode;s.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(s.tagName)&&i.push(s)}for(const t of i){for(;t.firstChild;)t.parentNode?.insertBefore(t.firstChild,t);t.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(t,i){const s=this.buttonMap.get(t);if(s)for(const t of s)t.toggleAttribute("data-active",!!i)}updateToolbarState(){if(!this.editorEl)return;const t=document.getSelection();if(!t||0===t.rangeCount)return;const i=t.getRangeAt(0);if(!this.editorEl.contains(i.commonAncestorContainer))return;const s=h(i.startContainer)||this.editorEl,e=getComputedStyle(s),n=l(i.startContainer,this.editorEl)||this.editorEl,r=(()=>{let t=s;for(;t&&t!==this.editorEl;){if(t instanceof HTMLElement){const i=t.tagName.toLowerCase();if("strong"===i||"b"===i)return!0;const s=getComputedStyle(t).fontWeight;if(parseInt(s,10)>=600)return!0}t=t.parentNode}return!1})(),o=(()=>{let t=s;for(;t&&t!==this.editorEl;){if(t instanceof HTMLElement){const i=t.tagName.toLowerCase();if("em"===i||"i"===i)return!0;if("italic"===getComputedStyle(t).fontStyle)return!0}t=t.parentNode}return!1})(),c=(()=>{let t=s;for(;t&&t!==this.editorEl;){if(t instanceof HTMLElement){const i=getComputedStyle(t).textDecorationLine;if(i&&i.includes("underline"))return!0;if("u"===t.tagName.toLowerCase())return!0}t=t.parentNode}return!1})(),a=!!s.closest("a"),d=n.style.textAlign||getComputedStyle(n).textAlign||"start",f="start"===d?"left":d,m=!!s.closest("li")&&s.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",r),this.setBtnActive("italic",o),this.setBtnActive("underline",c),this.setBtnActive("link",a),this.linkEl){const t=this.linkEl.querySelector("nile-button");t&&t.toggleAttribute("data-active",a)}if(this.setBtnActive("left","left"===f&&!["center","right","justify"].includes(f)),this.setBtnActive("center","center"===f),this.setBtnActive("right","right"===f),this.setBtnActive("justify","justify"===f),this.setBtnActive("ul","ul"===m),this.setBtnActive("ol","ol"===m),this.headingSelect){const t=n.tagName.toLowerCase(),i=["h1","h2","h3"].includes(t)?t:"p";this.headingSelect.value!==i&&(this.headingSelect.value=i)}if(this.fontSelect){const t=(e.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(t)for(const i of Array.from(this.fontSelect.options))if(i.value.toLowerCase()===t){this.fontSelect.value=i.value;break}}if(this.colorInput){const t=u(e.color);t&&this.colorInput.value.toLowerCase()!==t.toLowerCase()&&(this.colorInput.value=t),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const t=getComputedStyle(s).backgroundColor;if(t&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(t)){const i=u(t);i&&this.bgColorInput.value.toLowerCase()!==i.toLowerCase()&&(this.bgColorInput.value=i)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}getComputedImportantProps(){return Array.from(new Set([...g,...this.whitelist??[]]))}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const t=""===(this.editorEl.textContent??"").trim();this.editorEl.classList.toggle("empty",t);const i=this.editorEl.cloneNode(!0);if(this.noStyles)i.querySelectorAll("[style]").forEach((t=>t.removeAttribute("style")));else{const t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),s=document.createTreeWalker(i,NodeFilter.SHOW_ELEMENT),e=this.getComputedImportantProps();for(;t.nextNode()&&s.nextNode();){const i=t.currentNode,n=s.currentNode,r=window.getComputedStyle(i),o=e.map((t=>`${t}:${r.getPropertyValue(t)}`)).join(";");o.trim()&&n.setAttribute("style",o)}}this.content=i.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("nile-change",{detail:{content:this.content},bubbles:!0,composed:!0}))}};t([s({type:String,attribute:!0,reflect:!0})],y.prototype,"value",void 0),t([s({type:Boolean,attribute:!0,reflect:!0})],y.prototype,"noStyles",void 0),t([s({type:Boolean,attribute:!0,reflect:!0})],y.prototype,"disabled",void 0),t([s({type:Boolean,attribute:"singlelineeditor",reflect:!0})],y.prototype,"singleLineEditor",void 0),t([s({type:String})],y.prototype,"placeholder",void 0),t([s({attribute:"mentions",reflect:!0,converter:{fromAttribute:t=>{try{const i=JSON.parse(t),s={};for(const t of Object.keys(i)){const e=i[t];Array.isArray(e)&&(s[t]=e.filter((t=>t&&"string"==typeof t.key&&"string"==typeof t.label)).map((t=>({key:t.key,label:t.label}))))}return s}catch{return{}}},toAttribute:t=>JSON.stringify(t)}})],y.prototype,"mentions",void 0),t([s({attribute:"whitelist",reflect:!1,converter:{fromAttribute:t=>{try{const i=JSON.parse(t);return Array.isArray(i)?i.filter((t=>"string"==typeof t)):[]}catch{return[]}}}})],y.prototype,"whitelist",void 0),t([e()],y.prototype,"content",void 0),y=t([n("nile-rich-text-editor")],y);export{y as N};
@@ -1,2 +1,2 @@
1
- function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js"],function(_export,_context){"use strict";var t,i,n,e,s,o,_templateObject,_templateObject2,r;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value;}},_get.apply(null,arguments);}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t;}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){t=_tslib.__decorate;},function(_lit){i=_lit.LitElement;n=_lit.html;},function(_litDecoratorsJs){e=_litDecoratorsJs.property;s=_litDecoratorsJs.state;o=_litDecoratorsJs.customElement;}],execute:function execute(){r=/*#__PURE__*/function(_i){function r(){var _this;_classCallCheck(this,r);_this=_callSuper(this,r,arguments),_this.newTab=!1,_this.placeholder="Type or paste link here",_this.label="Link",_this.linkValue="",_this.hasActiveLink=!1,_this.popoverStyle="",_this.selectionRange=null,_this.activeAnchor=null,_this.ignoreBlur=!1,_this.isApplying=!1,_this.onScroll=function(){_this.closePopover();};return _this;}_inherits(r,_i);return _createClass(r,[{key:"createRenderRoot",value:function createRenderRoot(){return this;}},{key:"connectedCallback",value:function connectedCallback(){_superPropGet(r,"connectedCallback",this,3)([]),this.injectCss("\n nile-popover.rte-link-popover::part(popover) {\n min-width: 316px;\n background: white;\n border: 1px solid var(--nile-colors-neutral-400,var(--ng-componentcolors-utility-gray-400));\n border-radius: 4px;\n padding: 0;\n gap: 0;\n }\n\n .link-popup {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n }\n\n .link-input {\n flex: 1;\n padding: 6px 8px;\n font-size: 14px;\n width: 276px;\n height: 14px;\n padding: 12px;\n border: 1px solid var(--nile-colors-primary-600, var(--ng-colors-border-brand));\n border-radius: 4px;\n }\n nile-button.rte-link-button::part(base) {\n border: none;\n height: 32px; \n width: 32px;\n }\n nile-button.rte-edit-button::part(base) {\n border: none;\n height: 38px; \n width: 38px;\n }\n ");}},{key:"injectCss",value:function injectCss(t){if(this.querySelector("style[data-rte-link-style]"))return;var i=document.createElement("style");i.setAttribute("data-rte-link-style","true"),i.textContent=t,this.insertBefore(i,this.firstChild);}},{key:"normalizeUrl",value:function normalizeUrl(t){return /^(https?:|mailto:|tel:)/i.test(t)?t:"https://".concat(t);}},{key:"displayUrl",value:function displayUrl(t){return t.replace(/^https?:\/\//i,"");}},{key:"getSelectionRect",value:function getSelectionRect(){if(!this.selectionRange)return null;var t=this.selectionRange.getBoundingClientRect();if(0===t.width&&0===t.height){var _i2=document.createElement("span");_i2.textContent="​";this.selectionRange.cloneRange().insertNode(_i2),t=_i2.getBoundingClientRect(),_i2.remove();}return t;}},{key:"positionPopover",value:function positionPopover(){var t=this.getSelectionRect();t&&(this.popoverStyle="\n position: fixed;\n top: ".concat(t.bottom+8,"px;\n left: ").concat(t.left+t.width/2,"px;\n transform: translateX(-50%);\n z-index: 1000;\n "));}},{key:"openPopover",value:function openPopover(){var _this2=this;requestAnimationFrame(function(){var t=_this2.querySelector("nile-popover");t&&(t.isShow=!0),window.addEventListener("scroll",_this2.onScroll,!0);});}},{key:"closePopover",value:function closePopover(){var t=this.querySelector("nile-popover");t&&(t.isShow=!1),window.removeEventListener("scroll",this.onScroll,!0),this.linkValue="",this.selectionRange=null,this.activeAnchor=null,this.hasActiveLink=!1,this.popoverStyle="";}},{key:"unwrapLink",value:function unwrapLink(t){for(;t.firstChild;){var _t$parentNode;(_t$parentNode=t.parentNode)===null||_t$parentNode===void 0||_t$parentNode.insertBefore(t.firstChild,t);}t.remove();}},{key:"onOpen",value:function onOpen(){var _this3=this;var t=document.getSelection();if(!t||0===t.rangeCount)return;this.selectionRange=t.getRangeAt(0).cloneRange(),this.activeAnchor=null,this.hasActiveLink=!1;var i=this.selectionRange.startContainer;for(;i&&i!==this.editorEl;){if(i instanceof HTMLAnchorElement){this.activeAnchor=i,this.hasActiveLink=!0;break;}i=i.parentNode;}this.linkValue=this.activeAnchor?this.displayUrl(this.activeAnchor.href):"",this.positionPopover(),this.openPopover(),requestAnimationFrame(function(){var _this3$querySelector;(_this3$querySelector=_this3.querySelector(".link-input"))===null||_this3$querySelector===void 0||_this3$querySelector.focus();});}},{key:"onInputKeydown",value:function onInputKeydown(t){if("Escape"===t.key||"Enter"===t.key)if(t.preventDefault(),t.stopPropagation(),"Escape"!==t.key){this.isApplying=!0;try{this.applyLink();}finally{this.isApplying=!1;}}else this.closePopover();}},{key:"onInputBlur",value:function onInputBlur(){this.ignoreBlur||this.isApplying||this.closePopover();}},{key:"applyLink",value:function applyLink(){if(!(this.selectionRange instanceof Range))return;var t,i=this.linkValue.trim();if(!i)return;try{if(t=new URL(i,window.location.href),!["http:","https:","mailto:","tel:"].includes(t.protocol))return;}catch(_unused){return;}i=t.href,i=this.normalizeUrl(i),this.editorEl.focus();var n=document.getSelection();if(n){if(n.removeAllRanges(),n.addRange(this.selectionRange),this.activeAnchor)this.activeAnchor.href=i,this.newTab?(this.activeAnchor.target="_blank",this.activeAnchor.rel="noopener noreferrer"):(this.activeAnchor.removeAttribute("target"),this.activeAnchor.removeAttribute("rel"));else{var _t=document.createElement("a");if(_t.href=i,this.newTab?(_t.target="_blank",_t.rel="noopener noreferrer"):(_t.removeAttribute("target"),_t.removeAttribute("rel")),this.selectionRange.collapsed)_t.textContent=i,this.selectionRange.insertNode(_t);else try{this.selectionRange.surroundContents(_t);}catch(_unused2){var _i3=this.selectionRange.extractContents();_t.appendChild(_i3),this.selectionRange.insertNode(_t);}}this.emit(i),this.closePopover();}}},{key:"onRemove",value:function onRemove(){this.activeAnchor&&(this.unwrapLink(this.activeAnchor),this.emit(""),this.closePopover());}},{key:"emit",value:function emit(t){this.dispatchEvent(new CustomEvent("nile-link-changed",{detail:{href:t},bubbles:!0,composed:!0}));}},{key:"render",value:function render(){var _this4=this;return n(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <nile-lite-tooltip content=","> \n <nile-button\n variant=\"tertiary\"\n size=\"small\"\n @mousedown=","\n @click=","\n class=\"rte-link-button\"\n >\n <nile-icon name=\"link_2\"></nile-icon>\n </nile-button>\n </nile-lite-tooltip>\n\n <nile-popover\n class=\"rte-link-popover\"\n .arrow=","\n style=","\n @mousedown=","\n @mouseup=","\n >\n <div class=\"link-popup\">\n <input\n class=\"link-input\"\n placeholder=","\n .value=","\n @input=","\n @keydown=","\n @blur=","\n />\n\n ","\n </div>\n </nile-popover>\n "])),this.label,function(t){return t.preventDefault();},function(){return _this4.onOpen();},!1,this.popoverStyle,function(){return _this4.ignoreBlur=!0;},function(){return _this4.ignoreBlur=!1;},this.placeholder,this.linkValue,function(t){return _this4.linkValue=t.target.value;},this.onInputKeydown,this.onInputBlur,this.hasActiveLink?n(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <nile-button\n size=\"small\"\n variant=\"tertiary\"\n class=\"rte-edit-button\"\n @click=","\n >\n <nile-icon name=\"pencil\"></nile-icon>\n </nile-button>\n\n <nile-button\n size=\"small\"\n variant=\"tertiary\"\n class=\"rte-edit-button\"\n @click=","\n >\n <nile-icon name=\"unlink\"></nile-icon>\n </nile-button>\n "])),function(){return _this4.applyLink();},function(){return _this4.onRemove();}):null);}}]);}(i);t([e({attribute:!1})],r.prototype,"editorEl",void 0),t([e({type:Boolean})],r.prototype,"newTab",void 0),t([e({type:String})],r.prototype,"placeholder",void 0),t([e({type:String})],r.prototype,"label",void 0),t([s()],r.prototype,"linkValue",void 0),t([s()],r.prototype,"hasActiveLink",void 0),t([s()],r.prototype,"popoverStyle",void 0),r=t([o("nile-rte-link")],r);}};});
1
+ function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o;}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o;},_typeof(o);}System.register(["tslib","lit","lit/decorators.js"],function(_export,_context){"use strict";var t,i,n,e,s,l,_templateObject,_templateObject2,_templateObject3,o;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o);}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e;}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+"";}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.");}return("string"===r?String:Number)(t);}function _callSuper(t,o,e){return o=_getPrototypeOf(o),_possibleConstructorReturn(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],_getPrototypeOf(t).constructor):o.apply(t,e));}function _possibleConstructorReturn(t,e){if(e&&("object"==_typeof(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(t);}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e;}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function _superPropGet(t,o,e,r){var p=_get(_getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t);}:p;}function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=_superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value;}},_get.apply(null,arguments);}function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=_getPrototypeOf(t)););return t;}function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t);},_getPrototypeOf(t);}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&_setPrototypeOf(t,e);}function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t;},_setPrototypeOf(t,e);}return{setters:[function(_tslib){t=_tslib.__decorate;},function(_lit){i=_lit.LitElement;n=_lit.html;},function(_litDecoratorsJs){e=_litDecoratorsJs.property;s=_litDecoratorsJs.state;l=_litDecoratorsJs.customElement;}],execute:function execute(){o=/*#__PURE__*/function(_i){function o(){var _this;_classCallCheck(this,o);_this=_callSuper(this,o,arguments),_this.newTab=!1,_this.disabled=!1,_this.showTextSupport=!1,_this.placeholder="Type or paste link here",_this.textPlaceholder="Display text",_this.label="Link",_this.linkValue="",_this.textValue="",_this.hasActiveLink=!1,_this.popoverStyle="",_this.selectionRange=null,_this.activeAnchor=null,_this.ignoreBlur=!1,_this.isApplying=!1,_this.onScroll=function(){_this.closePopover();},_this.onOpen=function(){if(_this.disabled)return;var t=document.getSelection();if(!t||0===t.rangeCount)return;if(!_this.editorEl.contains(t.getRangeAt(0).commonAncestorContainer))return;_this.selectionRange=t.getRangeAt(0).cloneRange(),_this.activeAnchor=null,_this.hasActiveLink=!1;var i=_this.selectionRange.startContainer;for(;i&&i!==_this.editorEl;){if(i instanceof HTMLAnchorElement){_this.activeAnchor=i,_this.hasActiveLink=!0;break;}i=i.parentNode;}_this.linkValue=_this.activeAnchor?_this.displayUrl(_this.activeAnchor.href):"",_this.showTextSupport&&(_this.activeAnchor?_this.textValue=_this.activeAnchor.textContent||"":_this.selectionRange.collapsed?_this.textValue="":_this.textValue=_this.selectionRange.toString()),_this.positionPopover(),_this.openPopover(),requestAnimationFrame(function(){var t=_this.querySelectorAll("nile-input"),i=t.length>1?t[1]:t[0];i===null||i===void 0||i.focus();});},_this.onInputKeydown=function(t){if("Escape"===t.key||"Enter"===t.key)if(t.preventDefault(),t.stopPropagation(),"Escape"!==t.key){_this.isApplying=!0;try{_this.applyLink();}finally{_this.isApplying=!1;}}else _this.closePopover();},_this.onInputBlur=function(){_this.ignoreBlur||_this.isApplying||requestAnimationFrame(function(){if(_this.ignoreBlur||_this.isApplying)return;var t=_this.querySelector("nile-popover");(t===null||t===void 0?void 0:t.matches(":focus-within"))||_this.closePopover();});},_this.onLinkInput=function(t){_this.linkValue=t.detail.value;},_this.onTextInput=function(t){_this.textValue=t.detail.value;},_this.onPopoverMousedown=function(){_this.ignoreBlur=!0;},_this.onPopoverMouseup=function(){_this.ignoreBlur=!1;},_this.onToolbarButtonMousedown=function(t){t.preventDefault();},_this.onActionMousedown=function(t){t.preventDefault(),_this.ignoreBlur=!0;},_this.onApplyClick=function(){_this.isApplying=!0,_this.applyLink(),_this.isApplying=!1,_this.ignoreBlur=!1;},_this.onUnlinkClick=function(){_this.isApplying=!0,_this.onRemove(),_this.isApplying=!1,_this.ignoreBlur=!1;};return _this;}_inherits(o,_i);return _createClass(o,[{key:"createRenderRoot",value:function createRenderRoot(){return this;}},{key:"connectedCallback",value:function connectedCallback(){_superPropGet(o,"connectedCallback",this,3)([]),this.injectCss("\n nile-popover.rte-link-popover::part(popover) {\n min-width: 340px;\n max-width: 420px;\n background: white;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-componentcolors-utility-gray-400));\n border-radius: 8px;\n padding: 0;\n gap: 0;\n overflow: hidden;\n height: auto;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);\n }\n\n .link-popup-wrap {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n }\n\n .link-popup-wrap nile-input {\n width: 100%;\n }\n\n .link-popup-wrap .link-input-row {\n width: 100%;\n }\n\n .link-popup-wrap .link-actions-row {\n display: flex;\n align-items: flex-end;\n gap: 4px;\n width: 100%;\n }\n\n .link-popup-wrap .link-actions-row nile-input {\n flex: 1;\n min-width: 0;\n }\n\n \n nile-button.rte-link-button::part(base) {\n border: none;\n height: 32px;\n width: 32px;\n }\n nile-button.rte-edit-button::part(base) {\n border: none;\n height: 32px;\n width: 32px;\n flex-shrink: 0;\n }\n ");}},{key:"injectCss",value:function injectCss(t){if(this.querySelector("style[data-rte-link-style]"))return;var i=document.createElement("style");i.setAttribute("data-rte-link-style","true"),i.textContent=t,this.insertBefore(i,this.firstChild);}},{key:"normalizeUrl",value:function normalizeUrl(t){return /^(https?:|mailto:|tel:)/i.test(t)?t:"https://".concat(t);}},{key:"displayUrl",value:function displayUrl(t){return t;}},{key:"getSelectionRect",value:function getSelectionRect(){if(!this.selectionRange)return null;var t=this.selectionRange.getBoundingClientRect();if(0===t.width&&0===t.height){var _i2=document.createElement("span");_i2.textContent="​";this.selectionRange.cloneRange().insertNode(_i2),t=_i2.getBoundingClientRect(),_i2.remove();}return t;}},{key:"positionPopover",value:function positionPopover(){var t=this.getSelectionRect();t&&(this.popoverStyle="\n position: fixed;\n top: ".concat(t.bottom+8,"px;\n left: ").concat(t.left+t.width/2,"px;\n transform: translateX(-50%);\n z-index: 1000;\n "));}},{key:"openPopover",value:function openPopover(){var _this2=this;requestAnimationFrame(function(){var t=_this2.querySelector("nile-popover");t&&(t.isShow=!0),window.addEventListener("scroll",_this2.onScroll,!0);});}},{key:"closePopover",value:function closePopover(){var t=this.querySelector("nile-popover");t&&(t.isShow=!1),window.removeEventListener("scroll",this.onScroll,!0),this.linkValue="",this.textValue="",this.selectionRange=null,this.activeAnchor=null,this.hasActiveLink=!1,this.popoverStyle="";}},{key:"unwrapLink",value:function unwrapLink(t){for(;t.firstChild;){var _t$parentNode;(_t$parentNode=t.parentNode)===null||_t$parentNode===void 0||_t$parentNode.insertBefore(t.firstChild,t);}t.remove();}},{key:"applyLink",value:function applyLink(){if(!(this.selectionRange instanceof Range))return;var t=this.linkValue.trim();if(!t)return;if(/^javascript:/i.test(t))return;/^(https?:\/\/|mailto:|tel:|\/)/i.test(t)||(t="https://".concat(t)),this.editorEl.focus();var i=document.getSelection();if(!i)return;i.removeAllRanges(),i.addRange(this.selectionRange);var n=this.showTextSupport&&this.textValue.trim()?this.textValue.trim():"";if(this.activeAnchor)this.activeAnchor.href=t,n&&(this.activeAnchor.textContent=n),this.newTab?(this.activeAnchor.target="_blank",this.activeAnchor.rel="noopener noreferrer"):(this.activeAnchor.removeAttribute("target"),this.activeAnchor.removeAttribute("rel"));else{var _i3=document.createElement("a");if(_i3.href=t,this.newTab?(_i3.target="_blank",_i3.rel="noopener noreferrer"):(_i3.removeAttribute("target"),_i3.removeAttribute("rel")),n)this.selectionRange.deleteContents(),_i3.textContent=n,this.selectionRange.insertNode(_i3);else if(this.selectionRange.collapsed)_i3.textContent=t,this.selectionRange.insertNode(_i3);else try{this.selectionRange.surroundContents(_i3);}catch(_unused){var _t=this.selectionRange.extractContents();_i3.appendChild(_t),this.selectionRange.insertNode(_i3);}}this.emit(t),this.closePopover();}},{key:"onRemove",value:function onRemove(){this.activeAnchor&&(this.unwrapLink(this.activeAnchor),this.emit(""),this.closePopover());}},{key:"emit",value:function emit(t){this.dispatchEvent(new CustomEvent("nile-link-changed",{detail:{href:t},bubbles:!0,composed:!0}));}},{key:"render",value:function render(){var t=this.disabled?"var(--nile-colors-neutral-500, var(--ng-colors-fg-disabled-subtle))":"var(--nile-colors-dark-900, var(--ng-colors-text-primary-900))";return n(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <nile-lite-tooltip content=",">\n <nile-button\n variant=\"tertiary\"\n size=\"small\"\n ?disabled=","\n @mousedown=","\n @click=","\n class=\"rte-link-button\"\n >\n <nile-icon name=\"link_2\" color=","></nile-icon>\n </nile-button>\n </nile-lite-tooltip>\n\n <nile-popover\n class=\"rte-link-popover\"\n .arrow=","\n style=","\n @mousedown=","\n @mouseup=","\n >\n <div class=\"link-popup-wrap\">\n ","\n <div class=\"link-actions-row\">\n <nile-input\n label=","\n placeholder=","\n .value=","\n @nile-input=","\n @keydown=","\n @nile-blur=","\n ></nile-input>\n ","\n </div>\n </div>\n </nile-popover>\n "])),this.label,this.disabled,this.onToolbarButtonMousedown,this.onOpen,t,!1,this.popoverStyle,this.onPopoverMousedown,this.onPopoverMouseup,this.showTextSupport?n(_templateObject2||(_templateObject2=_taggedTemplateLiteral(["\n <div class=\"link-input-row\">\n <nile-input\n label=\"Text\"\n placeholder=","\n .value=","\n @nile-input=","\n @keydown=","\n @nile-blur=","\n ></nile-input>\n </div>\n "])),this.textPlaceholder,this.textValue,this.onTextInput,this.onInputKeydown,this.onInputBlur):null,this.showTextSupport?"URL":"",this.placeholder,this.linkValue,this.onLinkInput,this.onInputKeydown,this.onInputBlur,this.hasActiveLink?n(_templateObject3||(_templateObject3=_taggedTemplateLiteral(["\n <nile-button\n size=\"small\"\n variant=\"tertiary\"\n class=\"rte-edit-button\"\n @mousedown=","\n @click=","\n >\n <nile-icon name=\"pencil\"></nile-icon>\n </nile-button>\n <nile-button\n size=\"small\"\n variant=\"tertiary\"\n class=\"rte-edit-button\"\n @mousedown=","\n @click=","\n >\n <nile-icon name=\"unlink\"></nile-icon>\n </nile-button>\n "])),this.onActionMousedown,this.onApplyClick,this.onActionMousedown,this.onUnlinkClick):null);}}]);}(i);t([e({attribute:!1})],o.prototype,"editorEl",void 0),t([e({type:Boolean,reflect:!0,attribute:!0})],o.prototype,"newTab",void 0),t([e({type:Boolean,reflect:!0,attribute:!0})],o.prototype,"disabled",void 0),t([e({type:Boolean,reflect:!0,attribute:!0})],o.prototype,"showTextSupport",void 0),t([e({type:String,reflect:!0,attribute:!0})],o.prototype,"placeholder",void 0),t([e({type:String,reflect:!0,attribute:!0})],o.prototype,"textPlaceholder",void 0),t([e({type:String,reflect:!0,attribute:!0})],o.prototype,"label",void 0),t([s()],o.prototype,"linkValue",void 0),t([s()],o.prototype,"textValue",void 0),t([s()],o.prototype,"hasActiveLink",void 0),t([s()],o.prototype,"popoverStyle",void 0),o=t([l("nile-rte-link")],o);}};});
2
2
  //# sourceMappingURL=nile-rte-link.cjs.js.map