@aquera/nile-elements 1.5.8 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +6 -0
  2. package/dist/index.js +85 -46
  3. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  4. package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
  5. package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
  6. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  7. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  8. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  9. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  10. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +24 -0
  11. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  12. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js +1 -1
  13. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js.map +1 -1
  14. package/dist/nile-rich-text-editor/nile-rte-link.esm.js +59 -44
  15. package/dist/nile-rich-text-editor/utils/inline-utils.cjs.js +1 -1
  16. package/dist/nile-rich-text-editor/utils/inline-utils.cjs.js.map +1 -1
  17. package/dist/nile-rich-text-editor/utils/inline-utils.esm.js +1 -1
  18. package/dist/src/nile-dropdown/nile-dropdown.js +4 -2
  19. package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
  20. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +24 -0
  21. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  22. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +6 -0
  23. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +62 -24
  24. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  25. package/dist/src/nile-rich-text-editor/nile-rte-link.d.ts +12 -0
  26. package/dist/src/nile-rich-text-editor/nile-rte-link.js +239 -130
  27. package/dist/src/nile-rich-text-editor/nile-rte-link.js.map +1 -1
  28. package/dist/src/nile-rich-text-editor/nile-rte-link.test.d.ts +1 -0
  29. package/dist/src/nile-rich-text-editor/nile-rte-link.test.js +469 -0
  30. package/dist/src/nile-rich-text-editor/nile-rte-link.test.js.map +1 -0
  31. package/dist/src/nile-rich-text-editor/utils/inline-utils.js +13 -4
  32. package/dist/src/nile-rich-text-editor/utils/inline-utils.js.map +1 -1
  33. package/dist/src/version.js +1 -1
  34. package/dist/src/version.js.map +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +1 -1
  37. package/src/nile-dropdown/nile-dropdown.ts +5 -3
  38. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +24 -0
  39. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +66 -26
  40. package/src/nile-rich-text-editor/nile-rte-link.test.ts +682 -0
  41. package/src/nile-rich-text-editor/nile-rte-link.ts +195 -100
  42. package/src/nile-rich-text-editor/utils/inline-utils.ts +11 -4
  43. package/vscode-html-custom-data.json +16 -2
@@ -1 +1 @@
1
- {"version":3,"file":"inline-utils.js","sourceRoot":"","sources":["../../../../src/nile-rich-text-editor/utils/inline-utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function toggleInlineTag(\n root: HTMLElement,\n tag: 'strong' | 'em' | 'u' | 'span',\n attrs?: Record<string, string>\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const aliases: Record<string, string[]> = {\n strong: ['strong', 'b'],\n em: ['em', 'i'],\n u: ['u'],\n span: ['span'],\n };\n const candidates = aliases[tag] ?? [tag];\n const isMatch = (el: HTMLElement) =>\n candidates.includes(el.tagName.toLowerCase());\n\n function unwrap(el: HTMLElement) {\n const p = el.parentNode;\n if (!p) return;\n while (el.firstChild) p.insertBefore(el.firstChild, el);\n p.removeChild(el);\n }\n\n function removeEmptyAndNested(root: HTMLElement) {\n root.querySelectorAll(candidates.join(',')).forEach(el => {\n if (!el.textContent?.trim()) {\n el.remove();\n return;\n }\n const nested = Array.from(el.querySelectorAll(candidates.join(',')));\n nested.forEach(n => {\n if (n === el) return;\n while (n.firstChild) el.insertBefore(n.firstChild, n);\n n.remove();\n });\n });\n }\n\n function mergeAdjacent(root: HTMLElement) {\n const list = Array.from(root.querySelectorAll(candidates.join(',')));\n list.forEach(el => {\n const next = el.nextSibling;\n if (next instanceof HTMLElement && isMatch(next)) {\n while (next.firstChild) el.appendChild(next.firstChild);\n next.remove();\n }\n });\n }\n if (range.collapsed) {\n let inside = false;\n let n: Node | null = range.startContainer;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n inside = true;\n break;\n }\n n = n.parentNode;\n }\n\n if (inside && n instanceof HTMLElement) {\n unwrap(n);\n } else {\n const elm = document.createElement(tag);\n if (attrs)\n Object.entries(attrs).forEach(([k, v]) => elm.setAttribute(k, v));\n elm.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(elm);\n range.setStart(elm.firstChild!, 1);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n return;\n }\n if (range.startContainer.nodeType === Node.TEXT_NODE)\n (range.startContainer as Text).splitText(range.startOffset);\n if (range.endContainer.nodeType === Node.TEXT_NODE)\n (range.endContainer as Text).splitText(range.endOffset);\n const walker = document.createTreeWalker(\n range.commonAncestorContainer,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue?.trim()) return NodeFilter.FILTER_REJECT;\n const r = document.createRange();\n r.selectNodeContents(n);\n const inter =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return inter ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const textNodes: Text[] = [];\n let tn: Node | null;\n while ((tn = walker.nextNode())) textNodes.push(tn as Text);\n\n const allInside =\n textNodes.length > 0 &&\n textNodes.every(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) return true;\n n = n.parentNode;\n }\n return false;\n });\n\n if (allInside) {\n const first = textNodes[0];\n const last = textNodes[textNodes.length - 1];\n const common = first.parentElement?.closest(tag) as HTMLElement | null;\n if (common && common.contains(last)) {\n const parent = common.parentNode;\n if (parent) {\n const beforeRange = document.createRange();\n beforeRange.setStartBefore(common);\n beforeRange.setEndBefore(first);\n const before = beforeRange.cloneContents();\n\n const afterRange = document.createRange();\n afterRange.setStartAfter(last);\n afterRange.setEndAfter(common);\n const after = afterRange.cloneContents();\n\n const middleRange = document.createRange();\n middleRange.setStartBefore(first);\n middleRange.setEndAfter(last);\n const middle = middleRange.extractContents();\n\n const frag = document.createDocumentFragment();\n if (before.childNodes.length) {\n const b = document.createElement(tag);\n while (before.firstChild) b.appendChild(before.firstChild);\n frag.appendChild(b);\n }\n while (middle.firstChild) frag.appendChild(middle.firstChild);\n if (after.childNodes.length) {\n const a = document.createElement(tag);\n while (after.firstChild) a.appendChild(after.firstChild);\n frag.appendChild(a);\n }\n parent.insertBefore(frag, common);\n parent.removeChild(common);\n }\n } else {\n textNodes.forEach(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n unwrap(n);\n break;\n }\n n = n.parentNode;\n }\n });\n }\n } else {\n textNodes.forEach(txt => {\n const skip = txt.parentElement?.closest('a, .mention, nile-mention');\n if (skip) return;\n const wrapper = document.createElement(tag);\n if (attrs)\n Object.entries(attrs).forEach(([k, v]) => wrapper.setAttribute(k, v));\n txt.parentNode?.insertBefore(wrapper, txt);\n wrapper.appendChild(txt);\n });\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\nexport function surroundInline(\n range: Range,\n tag: string,\n attrs?: Record<string, string>\n) {\n const wrap = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrap.setAttribute(k, v));\n try {\n range.surroundContents(wrap);\n } catch {\n const frag = range.extractContents();\n wrap.appendChild(frag);\n range.insertNode(wrap);\n }\n}\n\nexport function unwrap(node: HTMLElement) {\n const p = node.parentNode;\n if (!p) return;\n while (node.firstChild) p.insertBefore(node.firstChild, node);\n p.removeChild(node);\n}\n\nfunction unwrapAllMatching(\n node: Node,\n root: HTMLElement,\n matcher: (el: HTMLElement) => boolean\n) {\n let n: Node | null = node.parentNode;\n while (n && n !== root) {\n if (n instanceof HTMLElement && matcher(n)) {\n unwrap(n);\n\n n = node.parentNode;\n continue;\n }\n n = n.parentNode;\n }\n}\n\nexport function rgbToHex(rgb: string): string {\n const m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n if (!m) return '#000000';\n const r = Number(m[1]).toString(16).padStart(2, '0');\n const g = Number(m[2]).toString(16).padStart(2, '0');\n const b = Number(m[3]).toString(16).padStart(2, '0');\n return `#${r}${g}${b}`;\n}\n\nexport function setFontFamily(root: HTMLElement, family: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (range.collapsed) {\n const span = document.createElement('span');\n span.style.fontFamily = family;\n span.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(span);\n const r = document.createRange();\n r.setStart(span.firstChild!, 1);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n surroundInline(range, 'span', { style: `font-family:${family}` });\n}\n"]}
1
+ {"version":3,"file":"inline-utils.js","sourceRoot":"","sources":["../../../../src/nile-rich-text-editor/utils/inline-utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function toggleInlineTag(\n root: HTMLElement,\n tag: 'strong' | 'em' | 'u' | 'span',\n attrs?: Record<string, string>\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const aliases: Record<string, string[]> = {\n strong: ['strong', 'b'],\n em: ['em', 'i'],\n u: ['u'],\n span: ['span'],\n };\n const candidates = aliases[tag] ?? [tag];\n const isMatch = (el: HTMLElement) =>\n candidates.includes(el.tagName.toLowerCase());\n\n function unwrap(el: HTMLElement) {\n const p = el.parentNode;\n if (!p) return;\n while (el.firstChild) p.insertBefore(el.firstChild, el);\n p.removeChild(el);\n }\n\n function removeEmptyAndNested(root: HTMLElement) {\n root.querySelectorAll(candidates.join(',')).forEach(el => {\n if (!el.textContent?.trim()) {\n el.remove();\n return;\n }\n const nested = Array.from(el.querySelectorAll(candidates.join(',')));\n nested.forEach(n => {\n if (n === el) return;\n while (n.firstChild) el.insertBefore(n.firstChild, n);\n n.remove();\n });\n });\n }\n\n function mergeAdjacent(root: HTMLElement) {\n const list = Array.from(root.querySelectorAll(candidates.join(',')));\n list.forEach(el => {\n const next = el.nextSibling;\n if (next instanceof HTMLElement && isMatch(next)) {\n while (next.firstChild) el.appendChild(next.firstChild);\n next.remove();\n }\n });\n }\n if (range.collapsed) {\n let inside = false;\n let n: Node | null = range.startContainer;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n inside = true;\n break;\n }\n n = n.parentNode;\n }\n\n if (inside && n instanceof HTMLElement) {\n unwrap(n);\n } else {\n const elm = document.createElement(tag);\n if (attrs)\n Object.entries(attrs).forEach(([k, v]) => elm.setAttribute(k, v));\n elm.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(elm);\n range.setStart(elm.firstChild!, 1);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n return;\n }\n if (range.startContainer.nodeType === Node.TEXT_NODE)\n (range.startContainer as Text).splitText(range.startOffset);\n if (range.endContainer.nodeType === Node.TEXT_NODE)\n (range.endContainer as Text).splitText(range.endOffset);\n const walker = document.createTreeWalker(\n range.commonAncestorContainer,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue?.trim()) return NodeFilter.FILTER_REJECT;\n const r = document.createRange();\n r.selectNodeContents(n);\n const inter =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return inter ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const textNodes: Text[] = [];\n let tn: Node | null;\n while ((tn = walker.nextNode())) textNodes.push(tn as Text);\n\n const allInside =\n textNodes.length > 0 &&\n textNodes.every(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) return true;\n n = n.parentNode;\n }\n return false;\n });\n\n if (allInside) {\n const first = textNodes[0];\n const last = textNodes[textNodes.length - 1];\n const common = first.parentElement?.closest(tag) as HTMLElement | null;\n if (common && common.contains(last)) {\n const parent = common.parentNode;\n if (parent) {\n const beforeRange = document.createRange();\n beforeRange.setStartBefore(common);\n beforeRange.setEndBefore(first);\n const before = beforeRange.cloneContents();\n\n const afterRange = document.createRange();\n afterRange.setStartAfter(last);\n afterRange.setEndAfter(common);\n const after = afterRange.cloneContents();\n\n const middleRange = document.createRange();\n middleRange.setStartBefore(first);\n middleRange.setEndAfter(last);\n const middle = middleRange.extractContents();\n\n const frag = document.createDocumentFragment();\n if (before.childNodes.length) {\n const b = document.createElement(tag);\n while (before.firstChild) b.appendChild(before.firstChild);\n frag.appendChild(b);\n }\n while (middle.firstChild) frag.appendChild(middle.firstChild);\n if (after.childNodes.length) {\n const a = document.createElement(tag);\n while (after.firstChild) a.appendChild(after.firstChild);\n frag.appendChild(a);\n }\n parent.insertBefore(frag, common);\n parent.removeChild(common);\n }\n } else {\n textNodes.forEach(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatch(n)) {\n unwrap(n);\n break;\n }\n n = n.parentNode;\n }\n });\n }\n } else {\n textNodes.forEach(txt => {\n const inProtected = txt.parentElement?.closest('.mention, nile-mention');\n if (inProtected) return;\n const inAnchor = txt.parentElement?.closest('a');\n if (inAnchor && tag === 'span') return;\n const wrapper = document.createElement(tag);\n if (attrs)\n Object.entries(attrs).forEach(([k, v]) => wrapper.setAttribute(k, v));\n if (inAnchor) {\n inAnchor.insertBefore(wrapper, txt);\n wrapper.appendChild(txt);\n } else {\n txt.parentNode?.insertBefore(wrapper, txt);\n wrapper.appendChild(txt);\n }\n });\n }\n\n removeEmptyAndNested(root);\n mergeAdjacent(root);\n\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\nexport function surroundInline(\n range: Range,\n tag: string,\n attrs?: Record<string, string>\n) {\n const wrap = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrap.setAttribute(k, v));\n try {\n range.surroundContents(wrap);\n } catch {\n const frag = range.extractContents();\n wrap.appendChild(frag);\n range.insertNode(wrap);\n }\n}\n\nexport function unwrap(node: HTMLElement) {\n const p = node.parentNode;\n if (!p) return;\n while (node.firstChild) p.insertBefore(node.firstChild, node);\n p.removeChild(node);\n}\n\nfunction unwrapAllMatching(\n node: Node,\n root: HTMLElement,\n matcher: (el: HTMLElement) => boolean\n) {\n let n: Node | null = node.parentNode;\n while (n && n !== root) {\n if (n instanceof HTMLElement && matcher(n)) {\n unwrap(n);\n\n n = node.parentNode;\n continue;\n }\n n = n.parentNode;\n }\n}\n\nexport function rgbToHex(rgb: string): string {\n const m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n if (!m) return '#000000';\n const r = Number(m[1]).toString(16).padStart(2, '0');\n const g = Number(m[2]).toString(16).padStart(2, '0');\n const b = Number(m[3]).toString(16).padStart(2, '0');\n return `#${r}${g}${b}`;\n}\n\nexport function setFontFamily(root: HTMLElement, family: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (range.collapsed) {\n const span = document.createElement('span');\n span.style.fontFamily = family;\n span.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(span);\n const r = document.createRange();\n r.setStart(span.firstChild!, 1);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n surroundInline(range, 'span', { style: `font-family:${family}` });\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // Version utility - placeholders will be replaced during build
2
- export const NILE_ELEMENTS_VERSION = '1.5.8';
2
+ export const NILE_ELEMENTS_VERSION = '1.6.0';
3
3
  export const NILE_VERSION = '1.2.2';
4
4
  // Set global versions for runtime access
5
5
  if (typeof window !== 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.5.8';\nexport const NILE_VERSION = '1.2.2';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.6.0';\nexport const NILE_VERSION = '1.2.2';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}