@aquera/nile-elements 0.1.67-beta-2.0 → 0.1.67-beta-2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/demo/index.html CHANGED
@@ -22,6 +22,22 @@
22
22
  background: yellow !important;
23
23
  }
24
24
 
25
+ /* nile-rich-text-editor .editor{
26
+ background: red;
27
+ width: 478px;
28
+ min-height: 50px;
29
+ overflow-x: auto;
30
+ white-space: nowrap;
31
+ }
32
+
33
+ nile-rte-preview {
34
+ background: blue !important;
35
+ width: 478px;
36
+ min-height: 50px;
37
+ overflow-x: auto;
38
+ white-space: nowrap;
39
+ } */
40
+
25
41
  h2{
26
42
  color:red;
27
43
  }
@@ -40,6 +56,7 @@ h2{
40
56
 
41
57
  <nile-rte-mentions>
42
58
  <nile-rte-mentions-item
59
+
43
60
  mentionscharacter="@"
44
61
  mentionscolor="#e0f7fa"
45
62
  mentionsprefix="{{"
@@ -49,6 +66,7 @@ h2{
49
66
  {"key":"pqr","label":"PQR"}
50
67
  ]'
51
68
  ></nile-rte-mentions-item>
69
+
52
70
  <nile-rte-mentions-item
53
71
 
54
72
  mentionscharacter="#"
package/dist/index.js CHANGED
@@ -13014,6 +13014,8 @@ class Xi{constructor(e){this._element=null;const t=e??window;this._node=t,e&&(th
13014
13014
  </nile-popover>
13015
13015
  `}};function $p(e,t){for(;e&&e!==t;){if(e instanceof HTMLElement){const t=getComputedStyle(e).display;if(e.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/)||"block"===t||"list-item"===t)return e}e=e?.parentNode||null}return t}function Jp(e){const t=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i);if(!t)return"#000000";return`#${Number(t[1]).toString(16).padStart(2,"0")}${Number(t[2]).toString(16).padStart(2,"0")}${Number(t[3]).toString(16).padStart(2,"0")}`}function Hp(e,t,M){const i=document.createElement(t);M&&Object.entries(M).forEach((([e,t])=>i.setAttribute(e,t)));try{e.surroundContents(i)}catch{const t=e.extractContents();i.appendChild(t),e.insertNode(i)}}function Xp(e,t,M){const i=document.getSelection();if(!i||0===i.rangeCount)return;const N=i.getRangeAt(0),o={strong:["strong","b"],em:["em","i"],u:["u"],span:["span"]}[t]??[t];if(N.collapsed){const e=document.createElement(t);M&&Object.entries(M).forEach((([t,M])=>e.setAttribute(t,M))),e.appendChild(document.createTextNode("​")),N.insertNode(e);const o=document.createRange();return o.setStart(e.firstChild,1),o.collapse(!0),i.removeAllRanges(),void i.addRange(o)}let n=N.startContainer,s=null;for(;n&&n!==e;){if(n instanceof HTMLElement&&o.includes(n.tagName.toLowerCase())){s=n;break}n=n.parentNode}s?function(e){const t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}}(s):Hp(N,t,M)}function qp(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=$p(M.getRangeAt(0).startContainer,e);i&&(i.style.textAlign="justify"===t?"justify":t)}function Kp(e,t,M){for(;t&&t!==e;){if(t instanceof HTMLSpanElement&&t.hasAttribute(M))return t;t=t.parentNode}return null}function eS(e,t,M,i){const N=window.getSelection();if(!N||0===N.rangeCount)return;const o=N.getRangeAt(0);if(!e.contains(o.commonAncestorContainer))return;const n=o.cloneRange();if(n.collapsed){const o=Kp(e,n.startContainer,i);if(o)return o.style[t]=M,void MS(e,i,t);const s=document.createElement("span");s.setAttribute(i,"1"),s.style[t]=M,s.appendChild(document.createTextNode("​")),n.insertNode(s);const r=document.createRange();return r.setStart(s.firstChild,1),r.collapse(!0),N.removeAllRanges(),N.addRange(r),void MS(e,i,t)}const s=Kp(e,n.startContainer,i),r=Kp(e,n.endContainer,i);if(s&&s===r){if(function(e,t){const M=document.createRange();return M.selectNodeContents(t),e.compareBoundaryPoints(Range.START_TO_START,M)<=0&&e.compareBoundaryPoints(Range.END_TO_END,M)>=0}(n,s))s.style[t]=M;else{const e=function(e,t,M,i,N){const o=e.style[i],n=document.createRange();n.setStart(e,0),n.setEnd(t.startContainer,t.startOffset);const s=document.createRange();s.setStart(t.endContainer,t.endOffset),s.setEnd(e,e.childNodes.length);const r=document.createDocumentFragment(),a=e=>{const t=document.createElement("span");return t.setAttribute(M,"1"),t.style[i]=e,t};if(tS(n)){const e=a(o);e.appendChild(n.cloneContents()),r.appendChild(e)}const l=a(N);if(l.appendChild(t.cloneContents()),r.appendChild(l),tS(s)){const e=a(o);e.appendChild(s.cloneContents()),r.appendChild(e)}return e.replaceWith(r),l}(s,n,i,t,M),N=window.getSelection(),o=document.createRange();o.selectNodeContents(e),N?.removeAllRanges(),N?.addRange(o)}return void MS(e,i,t)}const a=(()=>{let e=n.commonAncestorContainer;for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e})(),l=document.createTreeWalker(a||e,NodeFilter.SHOW_TEXT,{acceptNode:e=>{if(!e.nodeValue||!e.nodeValue.trim())return NodeFilter.FILTER_REJECT;const t=document.createRange();t.selectNodeContents(e);return n.compareBoundaryPoints(Range.END_TO_START,t)<0&&n.compareBoundaryPoints(Range.START_TO_END,t)>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),D=[];let u;for(;u=l.nextNode();)D.push(u);D.forEach((N=>{let o=0,s=N.length;N===n.startContainer&&(o=n.startOffset),N===n.endContainer&&(s=n.endOffset),o>0&&(N=N.splitText(o)),s<N.length&&N.splitText(s);const r=Kp(e,N,i);if(r)return void(r.style[t]=M);const a=document.createElement("span");a.setAttribute(i,"1"),a.style[t]=M;N.parentElement.replaceChild(a,N),a.appendChild(N)})),MS(e,i,t),N.removeAllRanges(),N.addRange(n)}function tS(e){if(e.collapsed)return!1;return(e.cloneContents().textContent||"").length>0}function MS(e,t,M){const i=Array.from(e.querySelectorAll(`span[${t}]`)),N=e=>e.style[M];i.forEach((e=>{Array.from(e.querySelectorAll(`span[${t}]`)).forEach((t=>{if(N(t)===N(e)){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}}));const M=e.previousSibling;if(M instanceof HTMLSpanElement&&M.hasAttribute(t)&&N(M)===N(e)){for(;e.firstChild;)M.appendChild(e.firstChild);return void e.remove()}const i=e.nextSibling;if(i instanceof HTMLSpanElement&&i.hasAttribute(t)&&N(i)===N(e)){for(;i.firstChild;)e.appendChild(i.firstChild);i.remove()}}))}e([ge({attribute:!1})],Fp.prototype,"editorEl",void 0),e([ge({type:String})],Fp.prototype,"placeholder",void 0),e([ce()],Fp.prototype,"linkValue",void 0),Fp=e([le("nile-rte-link")],Fp);const iS=n`
13016
13016
 
13017
+
13018
+ .editor {all: revert;}
13017
13019
 
13018
13020
  nile-rich-text-editor { position: relative; display: block; font-family: inherit; }
13019
13021
 
@@ -13032,6 +13034,8 @@ nile-rte-preview {
13032
13034
 
13033
13035
 
13034
13036
  .toolbar, nile-rte-toolbar {
13037
+
13038
+ width:486px;
13035
13039
  display:flex; align-items:center; gap:6px; padding:8px;
13036
13040
  border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;
13037
13041
  }
@@ -13051,7 +13055,7 @@ nile-rte-preview {
13051
13055
  nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }
13052
13056
 
13053
13057
  .editor p { margin:1em 0; }
13054
- .editor h1, .preview h1 { font-size:2em, all: revert; display: block;
13058
+ .editor h1, .preview h1 { all: revert; font-size:2em, display: block;
13055
13059
  font-size: 2em;
13056
13060
  margin-top: 0.67em;
13057
13061
  margin-bottom: 0.67em;
@@ -13070,10 +13074,12 @@ font-weight: bold;}
13070
13074
  .editor h5 { font-size:0.83em }
13071
13075
  .editor h6 { font-size:0.67em }
13072
13076
 
13073
- .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; white-space: pre-wrap;
13077
+ .editor { min-height:160px; max-width:478px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none;
13074
13078
  tab-size: 4;
13075
- -moz-tab-size: 4; }
13076
- nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }
13079
+ -moz-tab-size: 4;
13080
+ word-break: break-word;
13081
+ }
13082
+ nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; max-width:478px; }
13077
13083
 
13078
13084
  .rte-color-trigger {
13079
13085
  display: inline-flex;
@@ -13133,7 +13139,7 @@ nile-rte-toolbar-item > nile-button[data-active]::part(base):hover {
13133
13139
 
13134
13140
 
13135
13141
 
13136
- `,NS={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"};let oS=class extends re{constructor(){super(...arguments),this.value="",this.mentions={},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.mentionsEl=null,this.onEditorKeydown=e=>{if("Tab"!==e.key)return;e.preventDefault(),this.focusAndRestore();const t=window.getSelection();if(!t||0===t.rangeCount)return;const M=t.getRangeAt(0);if(e.shiftKey){if(M.collapsed&&M.startContainer.nodeType===Node.TEXT_NODE){const e=M.startContainer,i=M.startOffset,N=e.data.slice(0,i),o=N.replace(/(\t|[ \u00a0]{2})$/,"");if(o.length!==N.length){e.data=o+e.data.slice(i);const M=document.createRange();M.setStart(e,o.length),M.collapse(!0),t.removeAllRanges(),t.addRange(M),this.updateContent(),this.updateToolbarState()}}return}M.deleteContents();const i=document.createTextNode("\t");M.insertNode(i);const N=document.createRange();N.setStartAfter(i),N.collapse(!0),t.removeAllRanges(),t.addRange(N),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);this.editorEl.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}shouldUpdate(){return!1}injectCss(e){if(this.querySelector("style[data-rte-style]"))return;const t=document.createElement("style");t.setAttribute("data-rte-style","true"),t.textContent=e,this.insertBefore(t,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(iS.cssText),this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.ensureEditor(),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(),this.updateToolbarState(),this.syncPreview(),document.addEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.addEventListener("mention-selected",(e=>{this.updateContentWithMention(e.detail)}))}updateContentWithMention(e){this.updateContent(),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content,mention:e},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const e=document.createElement("article");e.className="editor",e.setAttribute("contenteditable","true"),this.toolbarEl?.nextSibling?this.insertBefore(e,this.toolbarEl.nextSibling):this.previewEl?this.insertBefore(e,this.previewEl):this.appendChild(e),this.editorEl=e}this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>"),this.ensureAtLeastOneParagraph()}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.updateContent()})),this.editorEl.addEventListener("mouseup",(()=>this.saveSelection())),this.editorEl.addEventListener("keyup",(()=>this.saveSelection())),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(e){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(e.children).forEach((e=>{const t=e.tagName.toLowerCase();if("nile-rte-select"!==t||"align"!==e.getAttribute("type")){if("nile-rte-link"===t)return e.editorEl=this.editorEl,void e.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===t){let t=e.querySelector(":scope > nile-button");const M=e.getAttribute("name")||"",i=e.getAttribute("label")||M,N=e.getAttribute("icon"),o=e.innerHTML.trim().length>0;if(t||(t=document.createElement("nile-button"),t.variant="tertiary",t.size="small"),N)t.innerHTML=`<nile-icon name="${N}" aria-label="${i}"></nile-icon>`,e.innerHTML="";else if(o)t.innerHTML=e.innerHTML,e.innerHTML="";else{const N=NS[M];N?t.innerHTML=`<nile-icon name="${N}" size="20" color="black" aria-label="${i}"></nile-icon>`:t.textContent=i||M,e.innerHTML=""}t.isConnected||e.appendChild(t),t.setAttribute("aria-label",i),t.addEventListener("mousedown",(e=>e.preventDefault())),t.addEventListener("click",(()=>this.onToolbarCommand(M)));const n=this.buttonMap.get(M)??[];return n.push(t),void this.buttonMap.set(M,n)}if("nile-rte-select"!==t)"nile-rte-color"!==t||e.addEventListener("change",(e=>{this.focusAndRestore();const{mode:t,value:M}=e.detail;"backColor"===t?eS(this.editorEl,"backgroundColor",M,"data-rte-bg"):function(e,t){eS(e,"color",t,"data-rte-color")}(this.editorEl,M),this.updateContent(),this.updateToolbarState()}));else{const t=e.getAttribute("type")||"";e.addEventListener("change",(e=>{this.focusAndRestore();const M=e.detail;"heading"===t?function(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=$p(M.getRangeAt(0).startContainer,e);if(!i)return;if(i.tagName.toLowerCase()===t)return;const N=document.createElement(t);for(;i.firstChild;)N.appendChild(i.firstChild);i.replaceWith(N);const o=document.createRange();o.selectNodeContents(N),o.collapse(!0),M.removeAllRanges(),M.addRange(o)}(this.editorEl,M):"font"===t&&function(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0);if(i.collapsed){const e=document.createElement("span");e.style.fontFamily=t,e.appendChild(document.createTextNode("​")),i.insertNode(e);const N=document.createRange();return N.setStart(e.firstChild,1),N.collapse(!0),M.removeAllRanges(),void M.addRange(N)}Hp(i,"span",{style:`font-family:${t}`})}(this.editorEl,M),this.updateContent(),this.updateToolbarState()}))}}else e.addEventListener("change",(e=>{this.focusAndRestore();const t=e.detail;qp(this.editorEl,t),this.updateContent(),this.updateToolbarState()}))}))}saveSelection(){const e=window.getSelection();e&&e.rangeCount&&(this.lastRange=e.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}insertList(e){if(this.restoreSelection(),!this.lastRange)return;const t=document.createElement(e),M=this.lastRange.extractContents(),i=document.createElement("div");i.appendChild(M),Array.from(i.childNodes).forEach((e=>{if(e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim())return;const M=document.createElement("li");M.appendChild(e),t.appendChild(M)})),this.lastRange.insertNode(t),this.afterListEdit(t)}afterListEdit(e){const t=document.createRange();t.setStartAfter(e),t.collapse(!0);const M=window.getSelection();M?.removeAllRanges(),M?.addRange(t),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const e=this.editorEl;if(!e)return;const t=""===(e.textContent??"").replace(/\u200B/g,"").trim();if(0===e.childNodes.length||t)return void(e.innerHTML="<p><br></p>");if(!e.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const t=document.createElement("p");for(;e.firstChild;)t.appendChild(e.firstChild);return t.hasChildNodes()||t.appendChild(document.createElement("br")),void e.appendChild(t)}e.querySelectorAll("p").forEach((e=>{""===(e.textContent??"").replace(/\u200B/g,"")&&(e.innerHTML.toLowerCase().includes("<br")||(e.innerHTML="<br>"))}))}onToolbarCommand(e){switch(this.focusAndRestore(),e){case"bold":Xp(this.editorEl,"strong");break;case"italic":Xp(this.editorEl,"em");break;case"underline":Xp(this.editorEl,"u");break;case"left":qp(this.editorEl,"left");break;case"center":qp(this.editorEl,"center");break;case"right":qp(this.editorEl,"right");break;case"justify":qp(this.editorEl,"justify");break;case"ul":this.insertList("ul");break;case"ol":this.insertList("ol");break;case"link":break;case"clear":const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),t=[];for(;e.nextNode();){const M=e.currentNode;M.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(M.tagName)&&t.push(M)}for(const e of t){for(;e.firstChild;)e.parentNode?.insertBefore(e.firstChild,e);e.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(e,t){const M=this.buttonMap.get(e);if(M)for(const e of M)e.toggleAttribute("data-active",!!t)}updateToolbarState(){if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);if(!this.editorEl.contains(t.commonAncestorContainer))return;const M=function(e){for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e}(t.startContainer)||this.editorEl,i=getComputedStyle(M),N=$p(t.startContainer,this.editorEl)||this.editorEl,o=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("strong"===t||"b"===t)return!0;const M=getComputedStyle(e).fontWeight;if(parseInt(M,10)>=600)return!0}e=e.parentNode}return!1})(),n=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("em"===t||"i"===t)return!0;if("italic"===getComputedStyle(e).fontStyle)return!0}e=e.parentNode}return!1})(),s=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=getComputedStyle(e).textDecorationLine;if(t&&t.includes("underline"))return!0;if("u"===e.tagName.toLowerCase())return!0}e=e.parentNode}return!1})(),r=!!M.closest("a"),a=N.style.textAlign||getComputedStyle(N).textAlign||"start",l="start"===a?"left":a,D=!!M.closest("li")&&M.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",n),this.setBtnActive("underline",s),this.setBtnActive("link",r),this.setBtnActive("left","left"===l&&!["center","right","justify"].includes(l)),this.setBtnActive("center","center"===l),this.setBtnActive("right","right"===l),this.setBtnActive("justify","justify"===l),this.setBtnActive("ul","ul"===D),this.setBtnActive("ol","ol"===D),this.headingSelect){const e=N.tagName.toLowerCase(),t=["h1","h2","h3"].includes(e)?e:"p";this.headingSelect.value!==t&&(this.headingSelect.value=t)}if(this.fontSelect){const e=(i.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(e)for(const t of Array.from(this.fontSelect.options))if(t.value.toLowerCase()===e){this.fontSelect.value=t.value;break}}if(this.colorInput){const e=Jp(i.color);e&&this.colorInput.value.toLowerCase()!==e.toLowerCase()&&(this.colorInput.value=e),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const e=getComputedStyle(M).backgroundColor;if(e&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(e)){const t=Jp(e);t&&this.bgColorInput.value.toLowerCase()!==t.toLowerCase()&&(this.bgColorInput.value=t)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const e=this.editorEl.cloneNode(!0),t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),M=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT),i=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align"];for(;t.nextNode()&&M.nextNode();){const e=t.currentNode,N=M.currentNode,o=window.getComputedStyle(e),n=i.map((e=>`${e}:${o.getPropertyValue(e)}`)).join(";");n.trim()&&N.setAttribute("style",n)}this.content=e.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content},bubbles:!0,composed:!0}))}};e([ge({type:String})],oS.prototype,"value",void 0),e([ge({attribute:"mentions",converter:{fromAttribute:e=>{try{const t=JSON.parse(e),M={};for(const e of Object.keys(t)){const i=t[e];Array.isArray(i)&&(M[e]=i.filter((e=>e&&"string"==typeof e.key&&"string"==typeof e.label)).map((e=>({key:e.key,label:e.label}))))}return M}catch{return{}}},toAttribute:e=>JSON.stringify(e)}})],oS.prototype,"mentions",void 0),e([ce()],oS.prototype,"content",void 0),oS=e([le("nile-rich-text-editor")],oS);
13142
+ `,NS={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"};let oS=class extends re{constructor(){super(...arguments),this.value="",this.mentions={},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.mentionsEl=null,this.onEditorKeydown=e=>{if("Tab"!==e.key)return;e.preventDefault(),this.focusAndRestore();const t=window.getSelection();if(!t||0===t.rangeCount)return;const M=t.getRangeAt(0);if(e.shiftKey){if(M.collapsed&&M.startContainer.nodeType===Node.TEXT_NODE){const e=M.startContainer,i=M.startOffset,N=e.data.slice(0,i),o=N.replace(/(\t|[ \u00a0]{2})$/,"");if(o.length!==N.length){e.data=o+e.data.slice(i);const M=document.createRange();M.setStart(e,o.length),M.collapse(!0),t.removeAllRanges(),t.addRange(M),this.updateContent(),this.updateToolbarState()}}return}M.deleteContents();const i=document.createTextNode("\t");M.insertNode(i);const N=document.createRange();N.setStartAfter(i),N.collapse(!0),t.removeAllRanges(),t.addRange(N),this.updateContent(),this.updateToolbarState()},this.onSelectionChange=()=>{if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);this.editorEl.contains(t.commonAncestorContainer)&&(this.lastRange=t.cloneRange(),this.updateToolbarState())}}createRenderRoot(){return this}shouldUpdate(){return!1}injectCss(e){if(this.querySelector("style[data-rte-style]"))return;const t=document.createElement("style");t.setAttribute("data-rte-style","true"),t.textContent=e,this.insertBefore(t,this.firstChild)}connectedCallback(){super.connectedCallback(),this.injectCss(iS.cssText),this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.ensureEditor(),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(),this.updateToolbarState(),this.syncPreview(),document.addEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.addEventListener("mention-selected",(e=>{this.updateContentWithMention(e.detail)}))}updateContentWithMention(e){this.updateContent(),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content,mention:e},bubbles:!0,composed:!0}))}disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),super.disconnectedCallback()}ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){const e=document.createElement("article");e.className="editor",e.setAttribute("contenteditable","true"),this.toolbarEl?.nextSibling?this.insertBefore(e,this.toolbarEl.nextSibling):this.previewEl?this.insertBefore(e,this.previewEl):this.appendChild(e),this.editorEl=e}this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>"),this.ensureAtLeastOneParagraph()}unwrapMention(e,t=!0){const M=e.parentNode;if(!M)return;const i=t?(e.textContent??"").replace(/\u200B/g,""):"",N=document.createTextNode(i);M.insertBefore(N,e),M.removeChild(e);const o=document.createRange();o.setStartAfter(N),o.collapse(!0);const n=window.getSelection();n?.removeAllRanges(),n?.addRange(o)}scrubBrokenMentions(){if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach((e=>{const t=e,M=t.getAttribute("data-mention-key"),i=t.getAttribute("data-mention-label"),N=t.getAttribute("data-mention-trigger")||"",o=(t.textContent??"").replace(/\u200B/g,"").trim(),n=!!M&&!!i&&o.length>0&&o.startsWith(N)&&o.includes(i);o&&n||this.unwrapMention(t,!0)}))}wireEditor(){this.editorEl.addEventListener("input",(()=>{this.ensureAtLeastOneParagraph(),this.scrubBrokenMentions(),this.updateContent()})),this.editorEl.addEventListener("mouseup",(()=>this.saveSelection())),this.editorEl.addEventListener("keyup",(()=>this.saveSelection())),this.editorEl.addEventListener("keydown",this.onEditorKeydown)}wireAuthoredToolbar(e){this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(e.children).forEach((e=>{const t=e.tagName.toLowerCase();if("nile-rte-select"!==t||"align"!==e.getAttribute("type")){if("nile-rte-link"===t)return e.editorEl=this.editorEl,void e.addEventListener("link-changed",(()=>{this.updateContent(),this.updateToolbarState()}));if("nile-rte-toolbar-item"===t){let t=e.querySelector(":scope > nile-button");const M=e.getAttribute("name")||"",i=e.getAttribute("label")||M,N=e.getAttribute("icon"),o=e.innerHTML.trim().length>0;if(t||(t=document.createElement("nile-button"),t.variant="tertiary",t.size="small"),N)t.innerHTML=`<nile-icon name="${N}" aria-label="${i}"></nile-icon>`,e.innerHTML="";else if(o)t.innerHTML=e.innerHTML,e.innerHTML="";else{const N=NS[M];N?t.innerHTML=`<nile-icon name="${N}" size="20" color="black" aria-label="${i}"></nile-icon>`:t.textContent=i||M,e.innerHTML=""}t.isConnected||e.appendChild(t),t.setAttribute("aria-label",i),t.addEventListener("mousedown",(e=>e.preventDefault())),t.addEventListener("click",(()=>this.onToolbarCommand(M)));const n=this.buttonMap.get(M)??[];return n.push(t),void this.buttonMap.set(M,n)}if("nile-rte-select"!==t)"nile-rte-color"!==t||e.addEventListener("change",(e=>{this.focusAndRestore();const{mode:t,value:M}=e.detail;"backColor"===t?eS(this.editorEl,"backgroundColor",M,"data-rte-bg"):function(e,t){eS(e,"color",t,"data-rte-color")}(this.editorEl,M),this.updateContent(),this.updateToolbarState()}));else{const t=e.getAttribute("type")||"";e.addEventListener("change",(e=>{this.focusAndRestore();const M=e.detail;"heading"===t?function(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=$p(M.getRangeAt(0).startContainer,e);if(!i)return;if(i.tagName.toLowerCase()===t)return;const N=document.createElement(t);for(;i.firstChild;)N.appendChild(i.firstChild);i.replaceWith(N);const o=document.createRange();o.selectNodeContents(N),o.collapse(!0),M.removeAllRanges(),M.addRange(o)}(this.editorEl,M):"font"===t&&function(e,t){const M=document.getSelection();if(!M||0===M.rangeCount)return;const i=M.getRangeAt(0);if(i.collapsed){const e=document.createElement("span");e.style.fontFamily=t,e.appendChild(document.createTextNode("​")),i.insertNode(e);const N=document.createRange();return N.setStart(e.firstChild,1),N.collapse(!0),M.removeAllRanges(),void M.addRange(N)}Hp(i,"span",{style:`font-family:${t}`})}(this.editorEl,M),this.updateContent(),this.updateToolbarState()}))}}else e.addEventListener("change",(e=>{this.focusAndRestore();const t=e.detail;qp(this.editorEl,t),this.updateContent(),this.updateToolbarState()}))}))}saveSelection(){const e=window.getSelection();e&&e.rangeCount&&(this.lastRange=e.getRangeAt(0).cloneRange())}restoreSelection(){if(!this.lastRange)return;const e=document.getSelection();e&&(e.removeAllRanges(),e.addRange(this.lastRange))}focusAndRestore(){this.editorEl?.focus(),this.restoreSelection()}insertList(e){if(this.restoreSelection(),!this.lastRange)return;const t=document.createElement(e),M=this.lastRange.extractContents(),i=document.createElement("div");i.appendChild(M),Array.from(i.childNodes).forEach((e=>{if(e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim())return;const M=document.createElement("li");M.appendChild(e),t.appendChild(M)})),this.lastRange.insertNode(t),this.afterListEdit(t)}afterListEdit(e){const t=document.createRange();t.setStartAfter(e),t.collapse(!0);const M=window.getSelection();M?.removeAllRanges(),M?.addRange(t),this.saveSelection(),this.updateContent(),this.updateToolbarState()}ensureAtLeastOneParagraph(){const e=this.editorEl;if(!e)return;const t=""===(e.textContent??"").replace(/\u200B/g,"").trim();if(0===e.childNodes.length||t)return void(e.innerHTML="<p><br></p>");if(!e.querySelector("p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre")){const t=document.createElement("p");for(;e.firstChild;)t.appendChild(e.firstChild);return t.hasChildNodes()||t.appendChild(document.createElement("br")),void e.appendChild(t)}e.querySelectorAll("p").forEach((e=>{""===(e.textContent??"").replace(/\u200B/g,"")&&(e.innerHTML.toLowerCase().includes("<br")||(e.innerHTML="<br>"))}))}onToolbarCommand(e){switch(this.focusAndRestore(),e){case"bold":Xp(this.editorEl,"strong");break;case"italic":Xp(this.editorEl,"em");break;case"underline":Xp(this.editorEl,"u");break;case"left":qp(this.editorEl,"left");break;case"center":qp(this.editorEl,"center");break;case"right":qp(this.editorEl,"right");break;case"justify":qp(this.editorEl,"justify");break;case"ul":this.insertList("ul");break;case"ol":this.insertList("ol");break;case"link":break;case"clear":const e=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),t=[];for(;e.nextNode();){const M=e.currentNode;M.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(M.tagName)&&t.push(M)}for(const e of t){for(;e.firstChild;)e.parentNode?.insertBefore(e.firstChild,e);e.remove()}this.ensureAtLeastOneParagraph()}this.updateContent(),this.updateToolbarState()}setBtnActive(e,t){const M=this.buttonMap.get(e);if(M)for(const e of M)e.toggleAttribute("data-active",!!t)}updateToolbarState(){if(!this.editorEl)return;const e=document.getSelection();if(!e||0===e.rangeCount)return;const t=e.getRangeAt(0);if(!this.editorEl.contains(t.commonAncestorContainer))return;const M=function(e){for(;e&&!(e instanceof HTMLElement);)e=e.parentNode;return e}(t.startContainer)||this.editorEl,i=getComputedStyle(M),N=$p(t.startContainer,this.editorEl)||this.editorEl,o=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("strong"===t||"b"===t)return!0;const M=getComputedStyle(e).fontWeight;if(parseInt(M,10)>=600)return!0}e=e.parentNode}return!1})(),n=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=e.tagName.toLowerCase();if("em"===t||"i"===t)return!0;if("italic"===getComputedStyle(e).fontStyle)return!0}e=e.parentNode}return!1})(),s=(()=>{let e=M;for(;e&&e!==this.editorEl;){if(e instanceof HTMLElement){const t=getComputedStyle(e).textDecorationLine;if(t&&t.includes("underline"))return!0;if("u"===e.tagName.toLowerCase())return!0}e=e.parentNode}return!1})(),r=!!M.closest("a"),a=N.style.textAlign||getComputedStyle(N).textAlign||"start",l="start"===a?"left":a,D=!!M.closest("li")&&M.closest("ul,ol")?.tagName.toLowerCase()||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",n),this.setBtnActive("underline",s),this.setBtnActive("link",r),this.setBtnActive("left","left"===l&&!["center","right","justify"].includes(l)),this.setBtnActive("center","center"===l),this.setBtnActive("right","right"===l),this.setBtnActive("justify","justify"===l),this.setBtnActive("ul","ul"===D),this.setBtnActive("ol","ol"===D),this.headingSelect){const e=N.tagName.toLowerCase(),t=["h1","h2","h3"].includes(e)?e:"p";this.headingSelect.value!==t&&(this.headingSelect.value=t)}if(this.fontSelect){const e=(i.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(e)for(const t of Array.from(this.fontSelect.options))if(t.value.toLowerCase()===e){this.fontSelect.value=t.value;break}}if(this.colorInput){const e=Jp(i.color);e&&this.colorInput.value.toLowerCase()!==e.toLowerCase()&&(this.colorInput.value=e),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value)}if(this.bgColorInput){const e=getComputedStyle(M).backgroundColor;if(e&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(e)){const t=Jp(e);t&&this.bgColorInput.value.toLowerCase()!==t.toLowerCase()&&(this.bgColorInput.value=t)}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value)}}syncPreview(){this.updateContent()}updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();const e=this.editorEl.cloneNode(!0),t=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),M=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT),i=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align"];for(;t.nextNode()&&M.nextNode();){const e=t.currentNode,N=M.currentNode,o=window.getComputedStyle(e),n=i.map((e=>`${e}:${o.getPropertyValue(e)}`)).join(";");n.trim()&&N.setAttribute("style",n)}this.content=e.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content},bubbles:!0,composed:!0}))}};e([ge({type:String})],oS.prototype,"value",void 0),e([ge({attribute:"mentions",converter:{fromAttribute:e=>{try{const t=JSON.parse(e),M={};for(const e of Object.keys(t)){const i=t[e];Array.isArray(i)&&(M[e]=i.filter((e=>e&&"string"==typeof e.key&&"string"==typeof e.label)).map((e=>({key:e.key,label:e.label}))))}return M}catch{return{}}},toAttribute:e=>JSON.stringify(e)}})],oS.prototype,"mentions",void 0),e([ce()],oS.prototype,"content",void 0),oS=e([le("nile-rich-text-editor")],oS);
13137
13143
  /**
13138
13144
  * @license
13139
13145
  * Copyright 2021 Google LLC
@@ -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","./nile-rte-toolbar.cjs.js","./nile-rte-toolbar-item.cjs.js","./nile-rte-select.cjs.js","./nile-rte-color.cjs.js","./nile-rte-divider.cjs.js","./nile-rte-preview.cjs.js","./nile-rte-mentions.cjs.js","./nile-rte-link.cjs.js","./utils.cjs.js","./nile-rich-text-editor.css.cjs.js"],function(_export,_context){"use strict";var t,i,s,e,n,o,r,h,l,c,a,u,f,d,m,b,p;function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,F=function F(){};return{s:F,n:function(_n4){function n(){return _n4.apply(this,arguments);}n.toString=function(){return _n4.toString();};return n;}(function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]};}),e:function e(r){throw r;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var o,a=!0,u=!1;return{s:function s(){t=t.call(r);},n:function n(){var r=t.next();return a=r.done,r;},e:function e(r){u=!0,o=r;},f:function f(){try{a||null==t["return"]||t["return"]();}finally{if(u)throw o;}}};}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}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;},function(_litDecoratorsJs){s=_litDecoratorsJs.property;e=_litDecoratorsJs.state;n=_litDecoratorsJs.customElement;},function(_nileRteToolbarCjsJs){},function(_nileRteToolbarItemCjsJs){},function(_nileRteSelectCjsJs){},function(_nileRteColorCjsJs){},function(_nileRteDividerCjsJs){},function(_nileRtePreviewCjsJs){},function(_nileRteMentionsCjsJs){},function(_nileRteLinkCjsJs){},function(_utilsCjsJs){o=_utilsCjsJs.s;r=_utilsCjsJs.a;h=_utilsCjsJs.b;l=_utilsCjsJs.c;c=_utilsCjsJs.d;a=_utilsCjsJs.t;u=_utilsCjsJs.n;f=_utilsCjsJs.e;d=_utilsCjsJs.r;},function(_nileRichTextEditorCssCjsJs){m=_nileRichTextEditorCssCjsJs.s;}],execute:function execute(){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"};_export("N",p=/*#__PURE__*/function(_i){function p(){var _this;_classCallCheck(this,p);_this=_callSuper(this,p,arguments),_this.value="",_this.mentions={},_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.mentionsEl=null,_this.onEditorKeydown=function(t){if("Tab"!==t.key)return;t.preventDefault(),_this.focusAndRestore();var i=window.getSelection();if(!i||0===i.rangeCount)return;var s=i.getRangeAt(0);if(t.shiftKey){if(s.collapsed&&s.startContainer.nodeType===Node.TEXT_NODE){var _t=s.startContainer,_e=s.startOffset,_n=_t.data.slice(0,_e),_o=_n.replace(/(\t|[ \u00a0]{2})$/,"");if(_o.length!==_n.length){_t.data=_o+_t.data.slice(_e);var _s=document.createRange();_s.setStart(_t,_o.length),_s.collapse(!0),i.removeAllRanges(),i.addRange(_s),_this.updateContent(),_this.updateToolbarState();}}return;}s.deleteContents();var e=document.createTextNode("\t");s.insertNode(e);var n=document.createRange();n.setStartAfter(e),n.collapse(!0),i.removeAllRanges(),i.addRange(n),_this.updateContent(),_this.updateToolbarState();},_this.onSelectionChange=function(){if(!_this.editorEl)return;var t=document.getSelection();if(!t||0===t.rangeCount)return;var i=t.getRangeAt(0);_this.editorEl.contains(i.commonAncestorContainer)&&(_this.lastRange=i.cloneRange(),_this.updateToolbarState());};return _this;}_inherits(p,_i);return _createClass(p,[{key:"createRenderRoot",value:function createRenderRoot(){return this;}},{key:"shouldUpdate",value:function shouldUpdate(){return!1;}},{key:"injectCss",value:function injectCss(t){if(this.querySelector("style[data-rte-style]"))return;var i=document.createElement("style");i.setAttribute("data-rte-style","true"),i.textContent=t,this.insertBefore(i,this.firstChild);}},{key:"connectedCallback",value:function connectedCallback(){var _this$mentionsEl$atta,_this$mentionsEl,_this$mentionsEl$setE,_this$mentionsEl2,_this2=this;_superPropGet(p,"connectedCallback",this,3)([]),this.injectCss(m.cssText),this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.ensureEditor(),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$atta=(_this$mentionsEl=this.mentionsEl).attach)!==null&&_this$mentionsEl$atta!==void 0&&_this$mentionsEl$atta.call(_this$mentionsEl,this.editorEl,this),(_this$mentionsEl$setE=(_this$mentionsEl2=this.mentionsEl).setExternalConfig)!==null&&_this$mentionsEl$setE!==void 0&&_this$mentionsEl$setE.call(_this$mentionsEl2,this.mentions)),this.wireEditor(),this.updateToolbarState(),this.syncPreview(),document.addEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.addEventListener("mention-selected",function(t){_this2.updateContentWithMention(t.detail);});}},{key:"updateContentWithMention",value:function updateContentWithMention(t){this.updateContent(),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content,mention:t},bubbles:!0,composed:!0}));}},{key:"disconnectedCallback",value:function disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),_superPropGet(p,"disconnectedCallback",this,3)([]);}},{key:"ensureEditor",value:function ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){var _this$toolbarEl;var _t2=document.createElement("article");_t2.className="editor",_t2.setAttribute("contenteditable","true"),(_this$toolbarEl=this.toolbarEl)!==null&&_this$toolbarEl!==void 0&&_this$toolbarEl.nextSibling?this.insertBefore(_t2,this.toolbarEl.nextSibling):this.previewEl?this.insertBefore(_t2,this.previewEl):this.appendChild(_t2),this.editorEl=_t2;}this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>"),this.ensureAtLeastOneParagraph();}},{key:"wireEditor",value:function wireEditor(){var _this3=this;this.editorEl.addEventListener("input",function(){_this3.ensureAtLeastOneParagraph(),_this3.updateContent();}),this.editorEl.addEventListener("mouseup",function(){return _this3.saveSelection();}),this.editorEl.addEventListener("keyup",function(){return _this3.saveSelection();}),this.editorEl.addEventListener("keydown",this.onEditorKeydown);}},{key:"wireAuthoredToolbar",value:function wireAuthoredToolbar(t){var _this4=this;this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(t.children).forEach(function(t){var i=t.tagName.toLowerCase();if("nile-rte-select"!==i||"align"!==t.getAttribute("type")){if("nile-rte-link"===i)return t.editorEl=_this4.editorEl,void t.addEventListener("link-changed",function(){_this4.updateContent(),_this4.updateToolbarState();});if("nile-rte-toolbar-item"===i){var _this4$buttonMap$get;var _i2=t.querySelector(":scope > nile-button");var _s2=t.getAttribute("name")||"",_e2=t.getAttribute("label")||_s2,_n2=t.getAttribute("icon"),_o2=t.innerHTML.trim().length>0;if(_i2||(_i2=document.createElement("nile-button"),_i2.variant="tertiary",_i2.size="small"),_n2)_i2.innerHTML="<nile-icon name=\"".concat(_n2,"\" aria-label=\"").concat(_e2,"\"></nile-icon>"),t.innerHTML="";else if(_o2)_i2.innerHTML=t.innerHTML,t.innerHTML="";else{var _n3=b[_s2];_n3?_i2.innerHTML="<nile-icon name=\"".concat(_n3,"\" size=\"20\" color=\"black\" aria-label=\"").concat(_e2,"\"></nile-icon>"):_i2.textContent=_e2||_s2,t.innerHTML="";}_i2.isConnected||t.appendChild(_i2),_i2.setAttribute("aria-label",_e2),_i2.addEventListener("mousedown",function(t){return t.preventDefault();}),_i2.addEventListener("click",function(){return _this4.onToolbarCommand(_s2);});var _r=(_this4$buttonMap$get=_this4.buttonMap.get(_s2))!==null&&_this4$buttonMap$get!==void 0?_this4$buttonMap$get:[];return _r.push(_i2),void _this4.buttonMap.set(_s2,_r);}if("nile-rte-select"!==i)"nile-rte-color"!==i||t.addEventListener("change",function(t){_this4.focusAndRestore();var _t$detail=t.detail,i=_t$detail.mode,s=_t$detail.value;"backColor"===i?l(_this4.editorEl,s):c(_this4.editorEl,s),_this4.updateContent(),_this4.updateToolbarState();});else{var _i3=t.getAttribute("type")||"";t.addEventListener("change",function(t){_this4.focusAndRestore();var s=t.detail;"heading"===_i3?r(_this4.editorEl,s):"font"===_i3&&h(_this4.editorEl,s),_this4.updateContent(),_this4.updateToolbarState();});}}else t.addEventListener("change",function(t){_this4.focusAndRestore();var i=t.detail;o(_this4.editorEl,i),_this4.updateContent(),_this4.updateToolbarState();});});}},{key:"saveSelection",value:function saveSelection(){var t=window.getSelection();t&&t.rangeCount&&(this.lastRange=t.getRangeAt(0).cloneRange());}},{key:"restoreSelection",value:function restoreSelection(){if(!this.lastRange)return;var t=document.getSelection();t&&(t.removeAllRanges(),t.addRange(this.lastRange));}},{key:"focusAndRestore",value:function focusAndRestore(){var _this$editorEl;(_this$editorEl=this.editorEl)!==null&&_this$editorEl!==void 0&&_this$editorEl.focus(),this.restoreSelection();}},{key:"insertList",value:function insertList(t){if(this.restoreSelection(),!this.lastRange)return;var i=document.createElement(t),s=this.lastRange.extractContents(),e=document.createElement("div");e.appendChild(s),Array.from(e.childNodes).forEach(function(t){var _t$textContent;if(t.nodeType===Node.TEXT_NODE&&!((_t$textContent=t.textContent)!==null&&_t$textContent!==void 0&&_t$textContent.trim()))return;var s=document.createElement("li");s.appendChild(t),i.appendChild(s);}),this.lastRange.insertNode(i),this.afterListEdit(i);}},{key:"afterListEdit",value:function afterListEdit(t){var i=document.createRange();i.setStartAfter(t),i.collapse(!0);var s=window.getSelection();s!==null&&s!==void 0&&s.removeAllRanges(),s!==null&&s!==void 0&&s.addRange(i),this.saveSelection(),this.updateContent(),this.updateToolbarState();}},{key:"ensureAtLeastOneParagraph",value:function ensureAtLeastOneParagraph(){var _t$textContent2;var t=this.editorEl;if(!t)return;var i=""===((_t$textContent2=t.textContent)!==null&&_t$textContent2!==void 0?_t$textContent2:"").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")){var _i4=document.createElement("p");for(;t.firstChild;)_i4.appendChild(t.firstChild);return _i4.hasChildNodes()||_i4.appendChild(document.createElement("br")),void t.appendChild(_i4);}t.querySelectorAll("p").forEach(function(t){var _t$textContent3;""===((_t$textContent3=t.textContent)!==null&&_t$textContent3!==void 0?_t$textContent3:"").replace(/\u200B/g,"")&&(t.innerHTML.toLowerCase().includes("<br")||(t.innerHTML="<br>"));});}},{key:"onToolbarCommand",value:function onToolbarCommand(t){switch(this.focusAndRestore(),t){case"bold":a(this.editorEl,"strong");break;case"italic":a(this.editorEl,"em");break;case"underline":a(this.editorEl,"u");break;case"left":o(this.editorEl,"left");break;case"center":o(this.editorEl,"center");break;case"right":o(this.editorEl,"right");break;case"justify":o(this.editorEl,"justify");break;case"ul":this.insertList("ul");break;case"ol":this.insertList("ol");break;case"link":break;case"clear":var _t3=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),_i5=[];for(;_t3.nextNode();){var _s3=_t3.currentNode;_s3.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(_s3.tagName)&&_i5.push(_s3);}for(var _i7=0,_i6=_i5;_i7<_i6.length;_i7++){var _t4=_i6[_i7];for(;_t4.firstChild;){var _t4$parentNode;(_t4$parentNode=_t4.parentNode)===null||_t4$parentNode===void 0||_t4$parentNode.insertBefore(_t4.firstChild,_t4);}_t4.remove();}this.ensureAtLeastOneParagraph();}this.updateContent(),this.updateToolbarState();}},{key:"setBtnActive",value:function setBtnActive(t,i){var s=this.buttonMap.get(t);if(s){var _iterator=_createForOfIteratorHelper(s),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var _t5=_step.value;_t5.toggleAttribute("data-active",!!i);}}catch(err){_iterator.e(err);}finally{_iterator.f();}}}},{key:"updateToolbarState",value:function updateToolbarState(){var _this5=this,_s$closest;if(!this.editorEl)return;var t=document.getSelection();if(!t||0===t.rangeCount)return;var i=t.getRangeAt(0);if(!this.editorEl.contains(i.commonAncestorContainer))return;var s=u(i.startContainer)||this.editorEl,e=getComputedStyle(s),n=f(i.startContainer,this.editorEl)||this.editorEl,o=function(){var t=s;for(;t&&t!==_this5.editorEl;){if(t instanceof HTMLElement){var _i8=t.tagName.toLowerCase();if("strong"===_i8||"b"===_i8)return!0;var _s4=getComputedStyle(t).fontWeight;if(parseInt(_s4,10)>=600)return!0;}t=t.parentNode;}return!1;}(),r=function(){var t=s;for(;t&&t!==_this5.editorEl;){if(t instanceof HTMLElement){var _i9=t.tagName.toLowerCase();if("em"===_i9||"i"===_i9)return!0;if("italic"===getComputedStyle(t).fontStyle)return!0;}t=t.parentNode;}return!1;}(),h=function(){var t=s;for(;t&&t!==_this5.editorEl;){if(t instanceof HTMLElement){var _i10=getComputedStyle(t).textDecorationLine;if(_i10&&_i10.includes("underline"))return!0;if("u"===t.tagName.toLowerCase())return!0;}t=t.parentNode;}return!1;}(),l=!!s.closest("a"),c=n.style.textAlign||getComputedStyle(n).textAlign||"start",a="start"===c?"left":c,m=!!s.closest("li")&&((_s$closest=s.closest("ul,ol"))===null||_s$closest===void 0?void 0:_s$closest.tagName.toLowerCase())||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",r),this.setBtnActive("underline",h),this.setBtnActive("link",l),this.setBtnActive("left","left"===a&&!["center","right","justify"].includes(a)),this.setBtnActive("center","center"===a),this.setBtnActive("right","right"===a),this.setBtnActive("justify","justify"===a),this.setBtnActive("ul","ul"===m),this.setBtnActive("ol","ol"===m),this.headingSelect){var _t6=n.tagName.toLowerCase(),_i11=["h1","h2","h3"].includes(_t6)?_t6:"p";this.headingSelect.value!==_i11&&(this.headingSelect.value=_i11);}if(this.fontSelect){var _t7=(e.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(_t7)for(var _i12=0,_Array$from=Array.from(this.fontSelect.options);_i12<_Array$from.length;_i12++){var _i13=_Array$from[_i12];if(_i13.value.toLowerCase()===_t7){this.fontSelect.value=_i13.value;break;}}}if(this.colorInput){var _t8=d(e.color);_t8&&this.colorInput.value.toLowerCase()!==_t8.toLowerCase()&&(this.colorInput.value=_t8),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value);}if(this.bgColorInput){var _t9=getComputedStyle(s).backgroundColor;if(_t9&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(_t9)){var _i14=d(_t9);_i14&&this.bgColorInput.value.toLowerCase()!==_i14.toLowerCase()&&(this.bgColorInput.value=_i14);}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value);}}},{key:"syncPreview",value:function syncPreview(){this.updateContent();}},{key:"updateContent",value:function updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();var t=this.editorEl.cloneNode(!0),i=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT),e=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align"];var _loop=function _loop(){var t=i.currentNode,n=s.currentNode,o=window.getComputedStyle(t),r=e.map(function(t){return"".concat(t,":").concat(o.getPropertyValue(t));}).join(";");r.trim()&&n.setAttribute("style",r);};for(;i.nextNode()&&s.nextNode();){_loop();}this.content=t.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content},bubbles:!0,composed:!0}));}}]);}(i));t([s({type:String})],p.prototype,"value",void 0),t([s({attribute:"mentions",converter:{fromAttribute:function fromAttribute(t){try{var _i15=JSON.parse(t),_s5={};for(var _i16=0,_Object$keys=Object.keys(_i15);_i16<_Object$keys.length;_i16++){var _t10=_Object$keys[_i16];var _e3=_i15[_t10];Array.isArray(_e3)&&(_s5[_t10]=_e3.filter(function(t){return t&&"string"==typeof t.key&&"string"==typeof t.label;}).map(function(t){return{key:t.key,label:t.label};}));}return _s5;}catch(_unused){return{};}},toAttribute:function toAttribute(t){return JSON.stringify(t);}}})],p.prototype,"mentions",void 0),t([e()],p.prototype,"content",void 0),_export("N",p=t([n("nile-rich-text-editor")],p));}};});
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","./nile-rte-toolbar.cjs.js","./nile-rte-toolbar-item.cjs.js","./nile-rte-select.cjs.js","./nile-rte-color.cjs.js","./nile-rte-divider.cjs.js","./nile-rte-preview.cjs.js","./nile-rte-mentions.cjs.js","./nile-rte-link.cjs.js","./utils.cjs.js","./nile-rich-text-editor.css.cjs.js"],function(_export,_context){"use strict";var t,i,s,e,n,o,r,h,l,c,a,u,d,f,m,b,p;function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,F=function F(){};return{s:F,n:function(_n4){function n(){return _n4.apply(this,arguments);}n.toString=function(){return _n4.toString();};return n;}(function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]};}),e:function e(r){throw r;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var o,a=!0,u=!1;return{s:function s(){t=t.call(r);},n:function n(){var r=t.next();return a=r.done,r;},e:function e(r){u=!0,o=r;},f:function f(){try{a||null==t["return"]||t["return"]();}finally{if(u)throw o;}}};}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}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;},function(_litDecoratorsJs){s=_litDecoratorsJs.property;e=_litDecoratorsJs.state;n=_litDecoratorsJs.customElement;},function(_nileRteToolbarCjsJs){},function(_nileRteToolbarItemCjsJs){},function(_nileRteSelectCjsJs){},function(_nileRteColorCjsJs){},function(_nileRteDividerCjsJs){},function(_nileRtePreviewCjsJs){},function(_nileRteMentionsCjsJs){},function(_nileRteLinkCjsJs){},function(_utilsCjsJs){o=_utilsCjsJs.s;r=_utilsCjsJs.a;h=_utilsCjsJs.b;l=_utilsCjsJs.c;c=_utilsCjsJs.d;a=_utilsCjsJs.t;u=_utilsCjsJs.n;d=_utilsCjsJs.e;f=_utilsCjsJs.r;},function(_nileRichTextEditorCssCjsJs){m=_nileRichTextEditorCssCjsJs.s;}],execute:function execute(){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"};_export("N",p=/*#__PURE__*/function(_i){function p(){var _this;_classCallCheck(this,p);_this=_callSuper(this,p,arguments),_this.value="",_this.mentions={},_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.mentionsEl=null,_this.onEditorKeydown=function(t){if("Tab"!==t.key)return;t.preventDefault(),_this.focusAndRestore();var i=window.getSelection();if(!i||0===i.rangeCount)return;var s=i.getRangeAt(0);if(t.shiftKey){if(s.collapsed&&s.startContainer.nodeType===Node.TEXT_NODE){var _t=s.startContainer,_e=s.startOffset,_n=_t.data.slice(0,_e),_o=_n.replace(/(\t|[ \u00a0]{2})$/,"");if(_o.length!==_n.length){_t.data=_o+_t.data.slice(_e);var _s=document.createRange();_s.setStart(_t,_o.length),_s.collapse(!0),i.removeAllRanges(),i.addRange(_s),_this.updateContent(),_this.updateToolbarState();}}return;}s.deleteContents();var e=document.createTextNode("\t");s.insertNode(e);var n=document.createRange();n.setStartAfter(e),n.collapse(!0),i.removeAllRanges(),i.addRange(n),_this.updateContent(),_this.updateToolbarState();},_this.onSelectionChange=function(){if(!_this.editorEl)return;var t=document.getSelection();if(!t||0===t.rangeCount)return;var i=t.getRangeAt(0);_this.editorEl.contains(i.commonAncestorContainer)&&(_this.lastRange=i.cloneRange(),_this.updateToolbarState());};return _this;}_inherits(p,_i);return _createClass(p,[{key:"createRenderRoot",value:function createRenderRoot(){return this;}},{key:"shouldUpdate",value:function shouldUpdate(){return!1;}},{key:"injectCss",value:function injectCss(t){if(this.querySelector("style[data-rte-style]"))return;var i=document.createElement("style");i.setAttribute("data-rte-style","true"),i.textContent=t,this.insertBefore(i,this.firstChild);}},{key:"connectedCallback",value:function connectedCallback(){var _this$mentionsEl$atta,_this$mentionsEl,_this$mentionsEl$setE,_this$mentionsEl2,_this2=this;_superPropGet(p,"connectedCallback",this,3)([]),this.injectCss(m.cssText),this.toolbarEl=this.querySelector("nile-rte-toolbar"),this.previewEl=this.querySelector("nile-rte-preview"),this.ensureEditor(),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$atta=(_this$mentionsEl=this.mentionsEl).attach)!==null&&_this$mentionsEl$atta!==void 0&&_this$mentionsEl$atta.call(_this$mentionsEl,this.editorEl,this),(_this$mentionsEl$setE=(_this$mentionsEl2=this.mentionsEl).setExternalConfig)!==null&&_this$mentionsEl$setE!==void 0&&_this$mentionsEl$setE.call(_this$mentionsEl2,this.mentions)),this.wireEditor(),this.updateToolbarState(),this.syncPreview(),document.addEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.addEventListener("mention-selected",function(t){_this2.updateContentWithMention(t.detail);});}},{key:"updateContentWithMention",value:function updateContentWithMention(t){this.updateContent(),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content,mention:t},bubbles:!0,composed:!0}));}},{key:"disconnectedCallback",value:function disconnectedCallback(){document.removeEventListener("selectionchange",this.onSelectionChange,!0),this.mentionsEl&&this.mentionsEl.detach&&this.mentionsEl.detach(),_superPropGet(p,"disconnectedCallback",this,3)([]);}},{key:"ensureEditor",value:function ensureEditor(){if(this.editorEl=this.querySelector(".editor"),!this.editorEl){var _this$toolbarEl;var _t2=document.createElement("article");_t2.className="editor",_t2.setAttribute("contenteditable","true"),(_this$toolbarEl=this.toolbarEl)!==null&&_this$toolbarEl!==void 0&&_this$toolbarEl.nextSibling?this.insertBefore(_t2,this.toolbarEl.nextSibling):this.previewEl?this.insertBefore(_t2,this.previewEl):this.appendChild(_t2),this.editorEl=_t2;}this.editorEl.innerHTML.trim()||(this.editorEl.innerHTML="<p><br></p>"),this.ensureAtLeastOneParagraph();}},{key:"unwrapMention",value:function unwrapMention(t){var _t$textContent;var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!0;var s=t.parentNode;if(!s)return;var e=i?((_t$textContent=t.textContent)!==null&&_t$textContent!==void 0?_t$textContent:"").replace(/\u200B/g,""):"",n=document.createTextNode(e);s.insertBefore(n,t),s.removeChild(t);var o=document.createRange();o.setStartAfter(n),o.collapse(!0);var r=window.getSelection();r!==null&&r!==void 0&&r.removeAllRanges(),r===null||r===void 0?void 0:r.addRange(o);}},{key:"scrubBrokenMentions",value:function scrubBrokenMentions(){var _this3=this;if(!this.editorEl)return;this.editorEl.querySelectorAll("span.mention").forEach(function(t){var _i$textContent;var i=t,s=i.getAttribute("data-mention-key"),e=i.getAttribute("data-mention-label"),n=i.getAttribute("data-mention-trigger")||"",o=((_i$textContent=i.textContent)!==null&&_i$textContent!==void 0?_i$textContent:"").replace(/\u200B/g,"").trim(),r=!!s&&!!e&&o.length>0&&o.startsWith(n)&&o.includes(e);o&&r||_this3.unwrapMention(i,!0);});}},{key:"wireEditor",value:function wireEditor(){var _this4=this;this.editorEl.addEventListener("input",function(){_this4.ensureAtLeastOneParagraph(),_this4.scrubBrokenMentions(),_this4.updateContent();}),this.editorEl.addEventListener("mouseup",function(){return _this4.saveSelection();}),this.editorEl.addEventListener("keyup",function(){return _this4.saveSelection();}),this.editorEl.addEventListener("keydown",this.onEditorKeydown);}},{key:"wireAuthoredToolbar",value:function wireAuthoredToolbar(t){var _this5=this;this.buttonMap.clear(),this.headingSelect=null,this.fontSelect=null,this.colorInput=null,Array.from(t.children).forEach(function(t){var i=t.tagName.toLowerCase();if("nile-rte-select"!==i||"align"!==t.getAttribute("type")){if("nile-rte-link"===i)return t.editorEl=_this5.editorEl,void t.addEventListener("link-changed",function(){_this5.updateContent(),_this5.updateToolbarState();});if("nile-rte-toolbar-item"===i){var _this5$buttonMap$get;var _i2=t.querySelector(":scope > nile-button");var _s2=t.getAttribute("name")||"",_e2=t.getAttribute("label")||_s2,_n2=t.getAttribute("icon"),_o2=t.innerHTML.trim().length>0;if(_i2||(_i2=document.createElement("nile-button"),_i2.variant="tertiary",_i2.size="small"),_n2)_i2.innerHTML="<nile-icon name=\"".concat(_n2,"\" aria-label=\"").concat(_e2,"\"></nile-icon>"),t.innerHTML="";else if(_o2)_i2.innerHTML=t.innerHTML,t.innerHTML="";else{var _n3=b[_s2];_n3?_i2.innerHTML="<nile-icon name=\"".concat(_n3,"\" size=\"20\" color=\"black\" aria-label=\"").concat(_e2,"\"></nile-icon>"):_i2.textContent=_e2||_s2,t.innerHTML="";}_i2.isConnected||t.appendChild(_i2),_i2.setAttribute("aria-label",_e2),_i2.addEventListener("mousedown",function(t){return t.preventDefault();}),_i2.addEventListener("click",function(){return _this5.onToolbarCommand(_s2);});var _r=(_this5$buttonMap$get=_this5.buttonMap.get(_s2))!==null&&_this5$buttonMap$get!==void 0?_this5$buttonMap$get:[];return _r.push(_i2),void _this5.buttonMap.set(_s2,_r);}if("nile-rte-select"!==i)"nile-rte-color"!==i||t.addEventListener("change",function(t){_this5.focusAndRestore();var _t$detail=t.detail,i=_t$detail.mode,s=_t$detail.value;"backColor"===i?l(_this5.editorEl,s):c(_this5.editorEl,s),_this5.updateContent(),_this5.updateToolbarState();});else{var _i3=t.getAttribute("type")||"";t.addEventListener("change",function(t){_this5.focusAndRestore();var s=t.detail;"heading"===_i3?r(_this5.editorEl,s):"font"===_i3&&h(_this5.editorEl,s),_this5.updateContent(),_this5.updateToolbarState();});}}else t.addEventListener("change",function(t){_this5.focusAndRestore();var i=t.detail;o(_this5.editorEl,i),_this5.updateContent(),_this5.updateToolbarState();});});}},{key:"saveSelection",value:function saveSelection(){var t=window.getSelection();t&&t.rangeCount&&(this.lastRange=t.getRangeAt(0).cloneRange());}},{key:"restoreSelection",value:function restoreSelection(){if(!this.lastRange)return;var t=document.getSelection();t&&(t.removeAllRanges(),t.addRange(this.lastRange));}},{key:"focusAndRestore",value:function focusAndRestore(){var _this$editorEl;(_this$editorEl=this.editorEl)!==null&&_this$editorEl!==void 0&&_this$editorEl.focus(),this.restoreSelection();}},{key:"insertList",value:function insertList(t){if(this.restoreSelection(),!this.lastRange)return;var i=document.createElement(t),s=this.lastRange.extractContents(),e=document.createElement("div");e.appendChild(s),Array.from(e.childNodes).forEach(function(t){var _t$textContent2;if(t.nodeType===Node.TEXT_NODE&&!((_t$textContent2=t.textContent)!==null&&_t$textContent2!==void 0&&_t$textContent2.trim()))return;var s=document.createElement("li");s.appendChild(t),i.appendChild(s);}),this.lastRange.insertNode(i),this.afterListEdit(i);}},{key:"afterListEdit",value:function afterListEdit(t){var i=document.createRange();i.setStartAfter(t),i.collapse(!0);var s=window.getSelection();s!==null&&s!==void 0&&s.removeAllRanges(),s!==null&&s!==void 0&&s.addRange(i),this.saveSelection(),this.updateContent(),this.updateToolbarState();}},{key:"ensureAtLeastOneParagraph",value:function ensureAtLeastOneParagraph(){var _t$textContent3;var t=this.editorEl;if(!t)return;var i=""===((_t$textContent3=t.textContent)!==null&&_t$textContent3!==void 0?_t$textContent3:"").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")){var _i4=document.createElement("p");for(;t.firstChild;)_i4.appendChild(t.firstChild);return _i4.hasChildNodes()||_i4.appendChild(document.createElement("br")),void t.appendChild(_i4);}t.querySelectorAll("p").forEach(function(t){var _t$textContent4;""===((_t$textContent4=t.textContent)!==null&&_t$textContent4!==void 0?_t$textContent4:"").replace(/\u200B/g,"")&&(t.innerHTML.toLowerCase().includes("<br")||(t.innerHTML="<br>"));});}},{key:"onToolbarCommand",value:function onToolbarCommand(t){switch(this.focusAndRestore(),t){case"bold":a(this.editorEl,"strong");break;case"italic":a(this.editorEl,"em");break;case"underline":a(this.editorEl,"u");break;case"left":o(this.editorEl,"left");break;case"center":o(this.editorEl,"center");break;case"right":o(this.editorEl,"right");break;case"justify":o(this.editorEl,"justify");break;case"ul":this.insertList("ul");break;case"ol":this.insertList("ol");break;case"link":break;case"clear":var _t3=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),_i5=[];for(;_t3.nextNode();){var _s3=_t3.currentNode;_s3.removeAttribute("style"),["B","STRONG","I","EM","U","SPAN","FONT"].includes(_s3.tagName)&&_i5.push(_s3);}for(var _i7=0,_i6=_i5;_i7<_i6.length;_i7++){var _t4=_i6[_i7];for(;_t4.firstChild;){var _t4$parentNode;(_t4$parentNode=_t4.parentNode)===null||_t4$parentNode===void 0||_t4$parentNode.insertBefore(_t4.firstChild,_t4);}_t4.remove();}this.ensureAtLeastOneParagraph();}this.updateContent(),this.updateToolbarState();}},{key:"setBtnActive",value:function setBtnActive(t,i){var s=this.buttonMap.get(t);if(s){var _iterator=_createForOfIteratorHelper(s),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var _t5=_step.value;_t5.toggleAttribute("data-active",!!i);}}catch(err){_iterator.e(err);}finally{_iterator.f();}}}},{key:"updateToolbarState",value:function updateToolbarState(){var _this6=this,_s$closest;if(!this.editorEl)return;var t=document.getSelection();if(!t||0===t.rangeCount)return;var i=t.getRangeAt(0);if(!this.editorEl.contains(i.commonAncestorContainer))return;var s=u(i.startContainer)||this.editorEl,e=getComputedStyle(s),n=d(i.startContainer,this.editorEl)||this.editorEl,o=function(){var t=s;for(;t&&t!==_this6.editorEl;){if(t instanceof HTMLElement){var _i8=t.tagName.toLowerCase();if("strong"===_i8||"b"===_i8)return!0;var _s4=getComputedStyle(t).fontWeight;if(parseInt(_s4,10)>=600)return!0;}t=t.parentNode;}return!1;}(),r=function(){var t=s;for(;t&&t!==_this6.editorEl;){if(t instanceof HTMLElement){var _i9=t.tagName.toLowerCase();if("em"===_i9||"i"===_i9)return!0;if("italic"===getComputedStyle(t).fontStyle)return!0;}t=t.parentNode;}return!1;}(),h=function(){var t=s;for(;t&&t!==_this6.editorEl;){if(t instanceof HTMLElement){var _i10=getComputedStyle(t).textDecorationLine;if(_i10&&_i10.includes("underline"))return!0;if("u"===t.tagName.toLowerCase())return!0;}t=t.parentNode;}return!1;}(),l=!!s.closest("a"),c=n.style.textAlign||getComputedStyle(n).textAlign||"start",a="start"===c?"left":c,m=!!s.closest("li")&&((_s$closest=s.closest("ul,ol"))===null||_s$closest===void 0?void 0:_s$closest.tagName.toLowerCase())||"";if(this.setBtnActive("bold",o),this.setBtnActive("italic",r),this.setBtnActive("underline",h),this.setBtnActive("link",l),this.setBtnActive("left","left"===a&&!["center","right","justify"].includes(a)),this.setBtnActive("center","center"===a),this.setBtnActive("right","right"===a),this.setBtnActive("justify","justify"===a),this.setBtnActive("ul","ul"===m),this.setBtnActive("ol","ol"===m),this.headingSelect){var _t6=n.tagName.toLowerCase(),_i11=["h1","h2","h3"].includes(_t6)?_t6:"p";this.headingSelect.value!==_i11&&(this.headingSelect.value=_i11);}if(this.fontSelect){var _t7=(e.fontFamily||"").replace(/["']/g,"").split(",")[0].trim().toLowerCase();if(_t7)for(var _i12=0,_Array$from=Array.from(this.fontSelect.options);_i12<_Array$from.length;_i12++){var _i13=_Array$from[_i12];if(_i13.value.toLowerCase()===_t7){this.fontSelect.value=_i13.value;break;}}}if(this.colorInput){var _t8=f(e.color);_t8&&this.colorInput.value.toLowerCase()!==_t8.toLowerCase()&&(this.colorInput.value=_t8),this.colorSwatchEl&&(this.colorSwatchEl.style.backgroundColor=this.colorInput.value);}if(this.bgColorInput){var _t9=getComputedStyle(s).backgroundColor;if(_t9&&!/transparent|rgba\(\s*0\s*,\s*0\s*,\s*0\s*,\s*0\s*\)/i.test(_t9)){var _i14=f(_t9);_i14&&this.bgColorInput.value.toLowerCase()!==_i14.toLowerCase()&&(this.bgColorInput.value=_i14);}this.bgSwatchEl&&(this.bgSwatchEl.style.backgroundColor=this.bgColorInput.value);}}},{key:"syncPreview",value:function syncPreview(){this.updateContent();}},{key:"updateContent",value:function updateContent(){if(!this.editorEl)return;this.ensureAtLeastOneParagraph();var t=this.editorEl.cloneNode(!0),i=document.createTreeWalker(this.editorEl,NodeFilter.SHOW_ELEMENT),s=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT),e=["font-weight","font-style","text-decoration","color","background-color","font-size","font-family","text-align","line-height","letter-spacing","white-space","vertical-align"];var _loop=function _loop(){var t=i.currentNode,n=s.currentNode,o=window.getComputedStyle(t),r=e.map(function(t){return"".concat(t,":").concat(o.getPropertyValue(t));}).join(";");r.trim()&&n.setAttribute("style",r);};for(;i.nextNode()&&s.nextNode();){_loop();}this.content=t.innerHTML,this.previewEl&&(this.previewEl.innerHTML=this.content),this.dispatchEvent(new CustomEvent("content-changed",{detail:{content:this.content},bubbles:!0,composed:!0}));}}]);}(i));t([s({type:String})],p.prototype,"value",void 0),t([s({attribute:"mentions",converter:{fromAttribute:function fromAttribute(t){try{var _i15=JSON.parse(t),_s5={};for(var _i16=0,_Object$keys=Object.keys(_i15);_i16<_Object$keys.length;_i16++){var _t10=_Object$keys[_i16];var _e3=_i15[_t10];Array.isArray(_e3)&&(_s5[_t10]=_e3.filter(function(t){return t&&"string"==typeof t.key&&"string"==typeof t.label;}).map(function(t){return{key:t.key,label:t.label};}));}return _s5;}catch(_unused){return{};}},toAttribute:function toAttribute(t){return JSON.stringify(t);}}})],p.prototype,"mentions",void 0),t([e()],p.prototype,"content",void 0),_export("N",p=t([n("nile-rich-text-editor")],p));}};});
2
2
  //# sourceMappingURL=nile-rich-text-editor.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-rich-text-editor.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.ts"],"sourcesContent":["// nile-rich-text-editor.ts\nimport { LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport './nile-rte-toolbar';\nimport './nile-rte-toolbar-item';\nimport './nile-rte-select';\nimport './nile-rte-color';\nimport './nile-rte-divider';\nimport './nile-rte-preview';\nimport './nile-rte-mentions';\nimport './nile-rte-link';\n\nimport {\n closestBlock, nearestElement, rgbToHex,\n toggleInlineTag, setBlockTag, setAlignment,\n setFontFamily, setForeColor, setBackColor, \n} from './utils';\n\nimport {styles} from './nile-rich-text-editor.css'; \n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n/**\n * Map commands → default icon names from your <nile-icon> set.\n * Adjust values to match the real names you have.\n */\nconst DEFAULT_ICONS: Record<string, string> = {\n bold: 'format_bold',\n italic: 'format_italic',\n underline: 'format_underline',\n link: 'link_2',\n left: 'format_align_left',\n center: 'format_align_middle',\n right: 'format_align_right',\n justify: 'format_align_justify',\n ul: 'format_list_bulleted',\n ol: 'format_list_numbered',\n clear: 'format_clear',\n};\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() { return this; } \n protected shouldUpdate() { return false; } \n\n /** Initial HTML content */\n @property({ type: String }) value = '';\n\n /** Optional mentions config (can also be on <nile-rte-mentions mentions=\"...\">) */\n @property({\n attribute: 'mentions',\n converter: {\n fromAttribute: (value: string): MentionsConfig => {\n try {\n const parsed = JSON.parse(value);\n const out: MentionsConfig = {};\n for (const trig of Object.keys(parsed)) {\n const arr = parsed[trig];\n if (Array.isArray(arr)) {\n out[trig] = arr\n .filter(i => i && typeof i.key === 'string' && typeof i.label === 'string')\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch { return {}; }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n }\n })\n mentions: MentionsConfig = {};\n\n // ----- internal state (no Lit render) -----\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 // map for button active reflections\n private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\nprivate bgColorInput: HTMLInputElement | null = null; \nprivate colorSwatchEl: HTMLElement | null = null; \nprivate bgSwatchEl: HTMLElement | null = null; \n\n\n // Mentions controller (child)\n private mentionsEl: HTMLElement | null = null;\n\n \n\n private injectCss(cssText: string) {\n if (this.querySelector('style[data-rte-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-style', 'true');\n style.textContent = cssText;\n this.insertBefore(style, this.firstChild);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n \n this.injectCss(styles.cssText); \n \n\n \n this.toolbarEl = this.querySelector('nile-rte-toolbar');\n this.previewEl = this.querySelector('nile-rte-preview');\n\n \n this.ensureEditor();\n\n \n if (this.value && !this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = this.value;\n }\n this.content = this.editorEl.innerHTML;\n\n \n if (this.toolbarEl) this.wireAuthoredToolbar(this.toolbarEl);\n\n \n this.mentionsEl = this.querySelector('nile-rte-mentions');\n if (this.mentionsEl) {\n \n (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);\n \n (this.mentionsEl as any).setExternalConfig?.(this.mentions);\n }\n\n \n this.wireEditor();\n\n \n this.updateToolbarState();\n this.syncPreview();\n\n \n document.addEventListener('selectionchange', this.onSelectionChange, true);\n if (this.mentionsEl) {\n this.mentionsEl.addEventListener('mention-selected', (e: any) => {\n this.updateContentWithMention(e.detail);\n });\n }\n \n }\n\n private updateContentWithMention(mentionDetail: any) {\n this.updateContent(); \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { \n content: this.content,\n mention: mentionDetail \n },\n bubbles: true,\n composed: true\n }));\n }\n \n\n disconnectedCallback(): void {\n document.removeEventListener('selectionchange', this.onSelectionChange, true);\n \n if (this.mentionsEl && (this.mentionsEl as any).detach) {\n (this.mentionsEl as any).detach();\n }\n super.disconnectedCallback();\n }\n\n \n \n\n private ensureEditor() {\n this.editorEl = this.querySelector('.editor') as HTMLElement;\n if (!this.editorEl) {\n const editor = document.createElement('article');\n editor.className = 'editor';\n editor.setAttribute('contenteditable','true');\n if (this.toolbarEl?.nextSibling) {\n this.insertBefore(editor, this.toolbarEl.nextSibling);\n } else if (this.previewEl) {\n this.insertBefore(editor, this.previewEl);\n } else {\n this.appendChild(editor);\n }\n this.editorEl = editor;\n }\n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n this.ensureAtLeastOneParagraph();\n }\n\n private wireEditor() {\n this.editorEl.addEventListener('input', () => { \n this.ensureAtLeastOneParagraph();\n this.updateContent();\n });\n this.editorEl.addEventListener('mouseup', () => this.saveSelection());\n this.editorEl.addEventListener('keyup', () => this.saveSelection());\n this.editorEl.addEventListener('keydown', this.onEditorKeydown); \n }\n \n \n private onEditorKeydown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab') return;\n \n e.preventDefault();\n this.focusAndRestore();\n \n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n \n \n if (e.shiftKey) {\n if (range.collapsed && range.startContainer.nodeType === Node.TEXT_NODE) {\n const t = range.startContainer as Text;\n const off = range.startOffset;\n const before = t.data.slice(0, off);\n \n \n const removed = before.replace(/(\\t|[ \\u00a0]{2})$/, '');\n if (removed.length !== before.length) {\n t.data = removed + t.data.slice(off);\n const r = document.createRange();\n r.setStart(t, removed.length);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n this.updateContent();\n this.updateToolbarState();\n }\n }\n return;\n }\n \n \n range.deleteContents();\n const tabNode = document.createTextNode('\\t'); \n range.insertNode(tabNode);\n \n \n const r = document.createRange();\n r.setStartAfter(tabNode);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n \n this.updateContent();\n this.updateToolbarState();\n };\n \n\n private wireAuthoredToolbar(tb: HTMLElement) {\n \n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\n\n \n Array.from(tb.children).forEach(child => {\n const tag = child.tagName.toLowerCase();\n\n if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const alignment = e.detail as 'left'|'center'|'right'|'justify';\n setAlignment(this.editorEl, alignment);\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n if (tag === 'nile-rte-link') {\n (child as any).editorEl = this.editorEl;\n child.addEventListener('link-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n \n\n if (tag === 'nile-rte-toolbar-item') {\n \n let btn = child.querySelector(':scope > nile-button') as HTMLElement | null;\n \n const cmd = child.getAttribute('name') || '';\n const label = child.getAttribute('label') || cmd;\n const iconAttr = child.getAttribute('icon');\n const authoredHasContent = child.innerHTML.trim().length > 0;\n \n \n if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small'; // optional\n }\n \n \n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" aria-label=\"${label}\"></nile-icon>`;\n child.innerHTML = '';\n } else if (!authoredHasContent) {\n const defaultIcon = DEFAULT_ICONS[cmd];\n if (defaultIcon) {\n btn.innerHTML = `<nile-icon name=\"${defaultIcon}\" size=\"20\" color=\"black\" aria-label=\"${label}\"></nile-icon>`;\n } else {\n btn.textContent = label || cmd;\n }\n child.innerHTML = '';\n } else {\n btn.innerHTML = child.innerHTML;\n child.innerHTML = '';\n }\n \n // Mount it\n if (!btn.isConnected) child.appendChild(btn);\n \n // Interactions\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\n \n \n const arr = this.buttonMap.get(cmd) ?? [];\n arr.push(btn);\n this.buttonMap.set(cmd, arr);\n \n return; \n }\n if (tag === 'nile-rte-select') {\n const type = child.getAttribute('type') || '';\n\n // listen for our custom dropdown’s change event\n child.addEventListener('change', (e: any) => {\n // restore focus & selection\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n // apply block tag\n setBlockTag(this.editorEl, val as any);\n }\n else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n \n \n this.updateContent();\n this.updateToolbarState();\n });\n\n \n return;\n }\n \n\n if (tag === 'nile-rte-color') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const { mode, value } = e.detail;\n \n if (mode === 'backColor') {\n setBackColor(this.editorEl, value);\n } else {\n setForeColor(this.editorEl, value);\n }\n \n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n });\n }\n private onSelectionChange = () => {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (this.editorEl.contains(range.commonAncestorContainer)) {\n this.lastRange = range.cloneRange();\n this.updateToolbarState();\n }\n };\n private saveSelection() {\n const sel = window.getSelection();\n if (sel && sel.rangeCount) this.lastRange = sel.getRangeAt(0).cloneRange();\n }\n private restoreSelection() {\n if (!this.lastRange) return;\n const sel = document.getSelection(); if (!sel) return;\n sel.removeAllRanges(); sel.addRange(this.lastRange);\n }\n private focusAndRestore() { this.editorEl?.focus(); this.restoreSelection(); }\n\n \nprivate insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\n\n \n const list = document.createElement(type);\n\n // grab the selected fragment\n const frag = this.lastRange.extractContents();\n const temp = document.createElement('div');\n temp.appendChild(frag);\n\n // wrap each top-level node in an <li>\n Array.from(temp.childNodes).forEach(n => {\n // skip empty whitespace text nodes\n if (n.nodeType === Node.TEXT_NODE && !n.textContent?.trim()) return;\n const li = document.createElement('li');\n li.appendChild(n); // moves the node!\n list.appendChild(li);\n });\n\n // insert list where the selection was\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n}\n\nprivate afterListEdit(node: Node) {\n const range = document.createRange();\n range.setStartAfter(node);\n range.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n\n this.saveSelection();\n this.updateContent();\n this.updateToolbarState();\n}\n // Keep at least one <p><br></p> and wrap stray inline/text into a <p>\nprivate ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n // 1) If completely empty → seed a paragraph\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n return;\n }\n\n // 2) If no block elements exist, wrap whatever is there into a <p>\n const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');\n if (!hasBlock) {\n const p = document.createElement('p');\n while (el.firstChild) p.appendChild(el.firstChild);\n if (!p.hasChildNodes()) p.appendChild(document.createElement('br'));\n el.appendChild(p);\n return;\n }\n\n // 3) Make sure the first/only empty <p> still has a <br>\n el.querySelectorAll('p').forEach(p => {\n if ((p.textContent ?? '').replace(/\\u200B/g, '') === '') {\n if (!p.innerHTML.toLowerCase().includes('<br')) p.innerHTML = '<br>';\n }\n });\n}\n\n\n\n // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n this.focusAndRestore();\n switch (cmd) {\n case 'bold': toggleInlineTag(this.editorEl, 'strong'); break;\n case 'italic': toggleInlineTag(this.editorEl, 'em'); break;\n case 'underline': toggleInlineTag(this.editorEl, 'u'); break;\n case 'left': setAlignment(this.editorEl, 'left'); break;\n case 'center': setAlignment(this.editorEl, 'center'); break;\n case 'right': setAlignment(this.editorEl, 'right'); break;\n case 'justify': setAlignment(this.editorEl, 'justify'); break;\n case 'ul': this.insertList('ul'); break;\n case 'ol': this.insertList('ol'); break;\n case 'link': break;\n case 'clear':\n const walker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (['B','STRONG','I','EM','U','SPAN','FONT'].includes(el.tagName)) {\n toUnwrap.push(el);\n }\n }\n for (const el of toUnwrap) {\n while (el.firstChild) el.parentNode?.insertBefore(el.firstChild, el);\n el.remove();\n }\n this.ensureAtLeastOneParagraph();\n break;\n\n default: break;\n }\n this.updateContent(); this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd); if (!arr) return;\n for (const btn of arr) btn.toggleAttribute('data-active', !!active);\n }\n\n private updateToolbarState() {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return;\n\n const startElm = nearestElement(range.startContainer) || this.editorEl;\n const comp = getComputedStyle(startElm);\n const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n const isBold = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'strong' || t === 'b') return true;\n const w = getComputedStyle(n).fontWeight;\n if (parseInt(w, 10) >= 600) return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isItalic = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'em' || t === 'i') return true;\n if (getComputedStyle(n).fontStyle === 'italic') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isUnderline = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const tdl = getComputedStyle(n).textDecorationLine;\n if (tdl && tdl.includes('underline')) return true;\n if (n.tagName.toLowerCase() === 'u') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const inLink = !!startElm.closest('a');\n\n const align = (block.style.textAlign || getComputedStyle(block).textAlign || 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi ? (startElm.closest('ul,ol')?.tagName.toLowerCase() || '') : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n this.setBtnActive('left', alignNorm === 'left' && !['center','right','justify'].includes(alignNorm));\n this.setBtnActive('center', alignNorm === 'center');\n this.setBtnActive('right', alignNorm === 'right');\n this.setBtnActive('justify', alignNorm === 'justify');\n\n this.setBtnActive('ul', listType === 'ul');\n this.setBtnActive('ol', listType === 'ol');\n\n // Reflect heading\n if (this.headingSelect) {\n const tag = block.tagName.toLowerCase();\n const v = ['h1','h2','h3'].includes(tag) ? tag : 'p';\n if (this.headingSelect.value !== v) this.headingSelect.value = v;\n }\n\n // Reflect font family\n if (this.fontSelect) {\n const ff = (comp.fontFamily || '').replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) { this.fontSelect.value = opt.value; break; }\n }\n }\n }\n\n if (this.colorInput) {\n const hex = rgbToHex(comp.color);\n if (hex && this.colorInput.value.toLowerCase() !== hex.toLowerCase()) {\n this.colorInput.value = hex;\n }\n if (this.colorSwatchEl) this.colorSwatchEl.style.backgroundColor = this.colorInput.value;\n }\n \n\n if (this.bgColorInput) {\n const bg = getComputedStyle(startElm).backgroundColor;\n if (bg && !/transparent|rgba\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(bg)) {\n const bgHex = rgbToHex(bg);\n if (bgHex && this.bgColorInput.value.toLowerCase() !== bgHex.toLowerCase()) {\n this.bgColorInput.value = bgHex;\n }\n }\n if (this.bgSwatchEl) this.bgSwatchEl.style.backgroundColor = this.bgColorInput.value;\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n \n \n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n \n \n const origWalker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const cloneWalker = document.createTreeWalker(clone, NodeFilter.SHOW_ELEMENT);\n \n \n const importantProps = [\n 'font-weight',\n 'font-style',\n 'text-decoration',\n 'color',\n 'background-color',\n 'font-size',\n 'font-family',\n 'text-align',\n 'line-height',\n 'letter-spacing',\n 'white-space',\n 'vertical-align'\n ];\n \n while (origWalker.nextNode() && cloneWalker.nextNode()) {\n const origEl = origWalker.currentNode as HTMLElement;\n const cloneEl = cloneWalker.currentNode as HTMLElement;\n const computed = window.getComputedStyle(origEl);\n \n \n const cssText = importantProps\n .map(prop => `${prop}:${computed.getPropertyValue(prop)}`)\n .join(';');\n \n \n if (cssText.trim()) {\n cloneEl.setAttribute('style', cssText);\n }\n }\n \n \n this.content = clone.innerHTML;\n \n \n if (this.previewEl) this.previewEl.innerHTML = this.content;\n \n \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { content: this.content },\n bubbles: true,\n composed: true\n }));\n }\n \n \n \n \n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n\n"],"names":["DEFAULT_ICONS","bold","italic","underline","link","left","center","right","justify","ul","ol","clear","_export","NileRichTextEditor","_i","p","constructor","this","value","mentions","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","mentionsEl","onEditorKeydown","e","key","preventDefault","focusAndRestore","sel","window","getSelection","rangeCount","range","getRangeAt","shiftKey","collapsed","startContainer","nodeType","Node","TEXT_NODE","t","off","startOffset","before","data","slice","removed","replace","length","r","document","createRange","setStart","collapse","removeAllRanges","addRange","updateContent","updateToolbarState","deleteContents","tabNode","createTextNode","insertNode","setStartAfter","onSelectionChange","editorEl","contains","commonAncestorContainer","cloneRange","_this","_inherits","_createClass","createRenderRoot","shouldUpdate","injectCss","cssText","querySelector","style","createElement","setAttribute","textContent","insertBefore","firstChild","connectedCallback","super","styles","ensureEditor","innerHTML","trim","wireAuthoredToolbar","attach","setExternalConfig","wireEditor","syncPreview","addEventListener","updateContentWithMention","detail","mentionDetail","dispatchEvent","CustomEvent","mention","bubbles","composed","disconnectedCallback","removeEventListener","detach","_this$toolbarEl","editor","className","nextSibling","appendChild","ensureAtLeastOneParagraph","saveSelection","tb","Array","from","children","forEach","child","tag","tagName","toLowerCase","getAttribute","_this4$buttonMap$get","btn","cmd","label","iconAttr","authoredHasContent","variant","size","concat","defaultIcon","isConnected","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","alignment","setAlignment","restoreSelection","focus","insertList","list","frag","extractContents","temp","childNodes","n","li","afterListEdit","node","_t$textContent2","el","onlyWhitespace","hasChildNodes","querySelectorAll","includes","toggleInlineTag","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","removeAttribute","_i7","_i6","parentNode","remove","setBtnActive","active","_iterator","_createForOfIteratorHelper","s","_step","done","toggleAttribute","err","f","startElm","nearestElement","comp","getComputedStyle","block","closestBlock","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","closest","align","textAlign","alignNorm","listType","_s$closest","v","ff","fontFamily","split","_i12","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","test","bgHex","clone","cloneNode","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","getPropertyValue","join","LitElement","__decorate","property","String","prototype","attribute","converter","fromAttribute","parsed","JSON","parse","out","_i16","_Object$keys","Object","keys","trig","isArray","filter","i","_unused","toAttribute","stringify","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-rich-text-editor.cjs.js","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.ts"],"sourcesContent":["// nile-rich-text-editor.ts\nimport { LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport './nile-rte-toolbar';\nimport './nile-rte-toolbar-item';\nimport './nile-rte-select';\nimport './nile-rte-color';\nimport './nile-rte-divider';\nimport './nile-rte-preview';\nimport './nile-rte-mentions';\nimport './nile-rte-link';\n\nimport {\n closestBlock, nearestElement, rgbToHex,\n toggleInlineTag, setBlockTag, setAlignment,\n setFontFamily, setForeColor, setBackColor, \n} from './utils';\n\nimport {styles} from './nile-rich-text-editor.css'; \n\ntype MentionsConfig = Record<string, { key: string; label: string }[]>;\n\n/**\n * Map commands → default icon names from your <nile-icon> set.\n * Adjust values to match the real names you have.\n */\nconst DEFAULT_ICONS: Record<string, string> = {\n bold: 'format_bold',\n italic: 'format_italic',\n underline: 'format_underline',\n link: 'link_2',\n left: 'format_align_left',\n center: 'format_align_middle',\n right: 'format_align_right',\n justify: 'format_align_justify',\n ul: 'format_list_bulleted',\n ol: 'format_list_numbered',\n clear: 'format_clear',\n};\n\n@customElement('nile-rich-text-editor')\nexport class NileRichTextEditor extends LitElement {\n protected createRenderRoot() { return this; } \n protected shouldUpdate() { return false; } \n\n /** Initial HTML content */\n @property({ type: String }) value = '';\n\n /** Optional mentions config (can also be on <nile-rte-mentions mentions=\"...\">) */\n @property({\n attribute: 'mentions',\n converter: {\n fromAttribute: (value: string): MentionsConfig => {\n try {\n const parsed = JSON.parse(value);\n const out: MentionsConfig = {};\n for (const trig of Object.keys(parsed)) {\n const arr = parsed[trig];\n if (Array.isArray(arr)) {\n out[trig] = arr\n .filter(i => i && typeof i.key === 'string' && typeof i.label === 'string')\n .map(i => ({ key: i.key, label: i.label }));\n }\n }\n return out;\n } catch { return {}; }\n },\n toAttribute: (v: MentionsConfig) => JSON.stringify(v),\n }\n })\n mentions: MentionsConfig = {};\n\n // ----- internal state (no Lit render) -----\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 // map for button active reflections\n private buttonMap = new Map<string, HTMLElement[]>();\n private headingSelect: HTMLSelectElement | null = null;\n private fontSelect: HTMLSelectElement | null = null;\n private colorInput: HTMLInputElement | null = null;\nprivate bgColorInput: HTMLInputElement | null = null; \nprivate colorSwatchEl: HTMLElement | null = null; \nprivate bgSwatchEl: HTMLElement | null = null; \n\n\n // Mentions controller (child)\n private mentionsEl: HTMLElement | null = null;\n\n \n\n private injectCss(cssText: string) {\n if (this.querySelector('style[data-rte-style]')) return;\n const style = document.createElement('style');\n style.setAttribute('data-rte-style', 'true');\n style.textContent = cssText;\n this.insertBefore(style, this.firstChild);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n \n this.injectCss(styles.cssText); \n \n\n \n this.toolbarEl = this.querySelector('nile-rte-toolbar');\n this.previewEl = this.querySelector('nile-rte-preview');\n\n \n this.ensureEditor();\n\n \n if (this.value && !this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = this.value;\n }\n this.content = this.editorEl.innerHTML;\n\n \n if (this.toolbarEl) this.wireAuthoredToolbar(this.toolbarEl);\n\n \n this.mentionsEl = this.querySelector('nile-rte-mentions');\n if (this.mentionsEl) {\n \n (this.mentionsEl as any).attach?.(this.editorEl, this as HTMLElement);\n \n (this.mentionsEl as any).setExternalConfig?.(this.mentions);\n }\n\n \n this.wireEditor();\n\n \n this.updateToolbarState();\n this.syncPreview();\n\n \n document.addEventListener('selectionchange', this.onSelectionChange, true);\n if (this.mentionsEl) {\n this.mentionsEl.addEventListener('mention-selected', (e: any) => {\n this.updateContentWithMention(e.detail);\n });\n }\n \n }\n\n private updateContentWithMention(mentionDetail: any) {\n this.updateContent(); \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { \n content: this.content,\n mention: mentionDetail \n },\n bubbles: true,\n composed: true\n }));\n }\n \n\n disconnectedCallback(): void {\n document.removeEventListener('selectionchange', this.onSelectionChange, true);\n \n if (this.mentionsEl && (this.mentionsEl as any).detach) {\n (this.mentionsEl as any).detach();\n }\n super.disconnectedCallback();\n }\n\n \n \n\n private ensureEditor() {\n this.editorEl = this.querySelector('.editor') as HTMLElement;\n if (!this.editorEl) {\n const editor = document.createElement('article');\n editor.className = 'editor';\n editor.setAttribute('contenteditable','true');\n if (this.toolbarEl?.nextSibling) {\n this.insertBefore(editor, this.toolbarEl.nextSibling);\n } else if (this.previewEl) {\n this.insertBefore(editor, this.previewEl);\n } else {\n this.appendChild(editor);\n }\n this.editorEl = editor;\n }\n if (!this.editorEl.innerHTML.trim()) {\n this.editorEl.innerHTML = '<p><br></p>';\n }\n this.ensureAtLeastOneParagraph();\n }\n \n \n private unwrapMention(span: HTMLElement, preserveText = true) {\n const parent = span.parentNode;\n if (!parent) return;\n \n const txt = preserveText ? (span.textContent ?? '').replace(/\\u200B/g, '') : '';\n const textNode = document.createTextNode(txt);\n parent.insertBefore(textNode, span);\n parent.removeChild(span);\n const r = document.createRange();\n r.setStartAfter(textNode);\n r.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(r);\n }\n \n private scrubBrokenMentions() {\n if (!this.editorEl) return;\n const mentions = this.editorEl.querySelectorAll('span.mention');\n \n mentions.forEach((m) => {\n const span = m as HTMLElement;\n const key = span.getAttribute('data-mention-key');\n const label = span.getAttribute('data-mention-label');\n const trigger = span.getAttribute('data-mention-trigger') || '';\n const text = (span.textContent ?? '').replace(/\\u200B/g, '').trim();\n \n \n const looksValid = !!key && !!label && text.length > 0 &&\n text.startsWith(trigger) && text.includes(label);\n \n \n if (!text || !looksValid) {\n this.unwrapMention(span, true);\n return;\n }\n });\n }\n\n \n private wireEditor() {\n this.editorEl.addEventListener('input', () => { \n this.ensureAtLeastOneParagraph();\n this.scrubBrokenMentions();\n this.updateContent();\n });\n this.editorEl.addEventListener('mouseup', () => this.saveSelection());\n this.editorEl.addEventListener('keyup', () => this.saveSelection());\n this.editorEl.addEventListener('keydown', this.onEditorKeydown); \n }\n \n \n private onEditorKeydown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab') return;\n \n e.preventDefault();\n this.focusAndRestore();\n \n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n \n \n if (e.shiftKey) {\n if (range.collapsed && range.startContainer.nodeType === Node.TEXT_NODE) {\n const t = range.startContainer as Text;\n const off = range.startOffset;\n const before = t.data.slice(0, off);\n \n \n const removed = before.replace(/(\\t|[ \\u00a0]{2})$/, '');\n if (removed.length !== before.length) {\n t.data = removed + t.data.slice(off);\n const r = document.createRange();\n r.setStart(t, removed.length);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n this.updateContent();\n this.updateToolbarState();\n }\n }\n return;\n }\n \n \n range.deleteContents();\n const tabNode = document.createTextNode('\\t'); \n range.insertNode(tabNode);\n \n \n const r = document.createRange();\n r.setStartAfter(tabNode);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n \n this.updateContent();\n this.updateToolbarState();\n };\n \n\n private wireAuthoredToolbar(tb: HTMLElement) {\n \n this.buttonMap.clear();\n this.headingSelect = null;\n this.fontSelect = null;\n this.colorInput = null;\n\n \n Array.from(tb.children).forEach(child => {\n const tag = child.tagName.toLowerCase();\n\n if (tag === 'nile-rte-select' && child.getAttribute('type') === 'align') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const alignment = e.detail as 'left'|'center'|'right'|'justify';\n setAlignment(this.editorEl, alignment);\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n if (tag === 'nile-rte-link') {\n (child as any).editorEl = this.editorEl;\n child.addEventListener('link-changed', () => {\n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n \n\n if (tag === 'nile-rte-toolbar-item') {\n \n let btn = child.querySelector(':scope > nile-button') as HTMLElement | null;\n \n const cmd = child.getAttribute('name') || '';\n const label = child.getAttribute('label') || cmd;\n const iconAttr = child.getAttribute('icon');\n const authoredHasContent = child.innerHTML.trim().length > 0;\n \n \n if (!btn) {\n btn = document.createElement('nile-button');\n (btn as any).variant = 'tertiary';\n (btn as any).size = 'small'; // optional\n }\n \n \n if (iconAttr) {\n btn.innerHTML = `<nile-icon name=\"${iconAttr}\" aria-label=\"${label}\"></nile-icon>`;\n child.innerHTML = '';\n } else if (!authoredHasContent) {\n const defaultIcon = DEFAULT_ICONS[cmd];\n if (defaultIcon) {\n btn.innerHTML = `<nile-icon name=\"${defaultIcon}\" size=\"20\" color=\"black\" aria-label=\"${label}\"></nile-icon>`;\n } else {\n btn.textContent = label || cmd;\n }\n child.innerHTML = '';\n } else {\n btn.innerHTML = child.innerHTML;\n child.innerHTML = '';\n }\n \n // Mount it\n if (!btn.isConnected) child.appendChild(btn);\n \n // Interactions\n btn.setAttribute('aria-label', label);\n btn.addEventListener('mousedown', e => e.preventDefault());\n btn.addEventListener('click', () => this.onToolbarCommand(cmd));\n \n \n const arr = this.buttonMap.get(cmd) ?? [];\n arr.push(btn);\n this.buttonMap.set(cmd, arr);\n \n return; \n }\n if (tag === 'nile-rte-select') {\n const type = child.getAttribute('type') || '';\n\n // listen for our custom dropdown’s change event\n child.addEventListener('change', (e: any) => {\n // restore focus & selection\n this.focusAndRestore();\n\n const val = e.detail as string;\n\n if (type === 'heading') {\n // apply block tag\n setBlockTag(this.editorEl, val as any);\n }\n else if (type === 'font') {\n setFontFamily(this.editorEl, val);\n }\n \n \n this.updateContent();\n this.updateToolbarState();\n });\n\n \n return;\n }\n \n\n if (tag === 'nile-rte-color') {\n child.addEventListener('change', (e: any) => {\n this.focusAndRestore();\n const { mode, value } = e.detail;\n \n if (mode === 'backColor') {\n setBackColor(this.editorEl, value);\n } else {\n setForeColor(this.editorEl, value);\n }\n \n this.updateContent();\n this.updateToolbarState();\n });\n return;\n }\n \n });\n }\n private onSelectionChange = () => {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (this.editorEl.contains(range.commonAncestorContainer)) {\n this.lastRange = range.cloneRange();\n this.updateToolbarState();\n }\n };\n private saveSelection() {\n const sel = window.getSelection();\n if (sel && sel.rangeCount) this.lastRange = sel.getRangeAt(0).cloneRange();\n }\n private restoreSelection() {\n if (!this.lastRange) return;\n const sel = document.getSelection(); if (!sel) return;\n sel.removeAllRanges(); sel.addRange(this.lastRange);\n }\n private focusAndRestore() { this.editorEl?.focus(); this.restoreSelection(); }\n\n \nprivate insertList(type: 'ul' | 'ol') {\n this.restoreSelection();\n if (!this.lastRange) return;\n\n \n const list = document.createElement(type);\n\n // grab the selected fragment\n const frag = this.lastRange.extractContents();\n const temp = document.createElement('div');\n temp.appendChild(frag);\n\n // wrap each top-level node in an <li>\n Array.from(temp.childNodes).forEach(n => {\n // skip empty whitespace text nodes\n if (n.nodeType === Node.TEXT_NODE && !n.textContent?.trim()) return;\n const li = document.createElement('li');\n li.appendChild(n); // moves the node!\n list.appendChild(li);\n });\n\n // insert list where the selection was\n this.lastRange.insertNode(list);\n this.afterListEdit(list);\n}\n\nprivate afterListEdit(node: Node) {\n const range = document.createRange();\n range.setStartAfter(node);\n range.collapse(true);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n\n this.saveSelection();\n this.updateContent();\n this.updateToolbarState();\n}\n // Keep at least one <p><br></p> and wrap stray inline/text into a <p>\nprivate ensureAtLeastOneParagraph() {\n const el = this.editorEl;\n if (!el) return;\n\n // 1) If completely empty → seed a paragraph\n const onlyWhitespace =\n (el.textContent ?? '').replace(/\\u200B/g, '').trim() === '';\n if (el.childNodes.length === 0 || onlyWhitespace) {\n el.innerHTML = '<p><br></p>';\n return;\n }\n\n // 2) If no block elements exist, wrap whatever is there into a <p>\n const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');\n if (!hasBlock) {\n const p = document.createElement('p');\n while (el.firstChild) p.appendChild(el.firstChild);\n if (!p.hasChildNodes()) p.appendChild(document.createElement('br'));\n el.appendChild(p);\n return;\n }\n\n // 3) Make sure the first/only empty <p> still has a <br>\n el.querySelectorAll('p').forEach(p => {\n if ((p.textContent ?? '').replace(/\\u200B/g, '') === '') {\n if (!p.innerHTML.toLowerCase().includes('<br')) p.innerHTML = '<br>';\n }\n });\n}\n\n\n\n // ---------- Toolbar/commands ----------\n private onToolbarCommand(cmd: string) {\n this.focusAndRestore();\n switch (cmd) {\n case 'bold': toggleInlineTag(this.editorEl, 'strong'); break;\n case 'italic': toggleInlineTag(this.editorEl, 'em'); break;\n case 'underline': toggleInlineTag(this.editorEl, 'u'); break;\n case 'left': setAlignment(this.editorEl, 'left'); break;\n case 'center': setAlignment(this.editorEl, 'center'); break;\n case 'right': setAlignment(this.editorEl, 'right'); break;\n case 'justify': setAlignment(this.editorEl, 'justify'); break;\n case 'ul': this.insertList('ul'); break;\n case 'ol': this.insertList('ol'); break;\n case 'link': break;\n case 'clear':\n const walker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const toUnwrap: HTMLElement[] = [];\n while (walker.nextNode()) {\n const el = walker.currentNode as HTMLElement;\n el.removeAttribute('style');\n if (['B','STRONG','I','EM','U','SPAN','FONT'].includes(el.tagName)) {\n toUnwrap.push(el);\n }\n }\n for (const el of toUnwrap) {\n while (el.firstChild) el.parentNode?.insertBefore(el.firstChild, el);\n el.remove();\n }\n this.ensureAtLeastOneParagraph();\n break;\n\n default: break;\n }\n this.updateContent(); this.updateToolbarState();\n }\n\n private setBtnActive(cmd: string, active: boolean) {\n const arr = this.buttonMap.get(cmd); if (!arr) return;\n for (const btn of arr) btn.toggleAttribute('data-active', !!active);\n }\n\n private updateToolbarState() {\n if (!this.editorEl) return;\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (!this.editorEl.contains(range.commonAncestorContainer)) return;\n\n const startElm = nearestElement(range.startContainer) || this.editorEl;\n const comp = getComputedStyle(startElm);\n const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;\n\n const isBold = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'strong' || t === 'b') return true;\n const w = getComputedStyle(n).fontWeight;\n if (parseInt(w, 10) >= 600) return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isItalic = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const t = n.tagName.toLowerCase();\n if (t === 'em' || t === 'i') return true;\n if (getComputedStyle(n).fontStyle === 'italic') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const isUnderline = (() => {\n let n: Node | null = startElm;\n while (n && n !== this.editorEl) {\n if (n instanceof HTMLElement) {\n const tdl = getComputedStyle(n).textDecorationLine;\n if (tdl && tdl.includes('underline')) return true;\n if (n.tagName.toLowerCase() === 'u') return true;\n }\n n = n.parentNode;\n }\n return false;\n })();\n\n const inLink = !!startElm.closest('a');\n\n const align = (block.style.textAlign || getComputedStyle(block).textAlign || 'start') as string;\n const alignNorm = align === 'start' ? 'left' : align;\n\n const inLi = !!startElm.closest('li');\n const listType = inLi ? (startElm.closest('ul,ol')?.tagName.toLowerCase() || '') : '';\n\n this.setBtnActive('bold', isBold);\n this.setBtnActive('italic', isItalic);\n this.setBtnActive('underline', isUnderline);\n this.setBtnActive('link', inLink);\n\n this.setBtnActive('left', alignNorm === 'left' && !['center','right','justify'].includes(alignNorm));\n this.setBtnActive('center', alignNorm === 'center');\n this.setBtnActive('right', alignNorm === 'right');\n this.setBtnActive('justify', alignNorm === 'justify');\n\n this.setBtnActive('ul', listType === 'ul');\n this.setBtnActive('ol', listType === 'ol');\n\n // Reflect heading\n if (this.headingSelect) {\n const tag = block.tagName.toLowerCase();\n const v = ['h1','h2','h3'].includes(tag) ? tag : 'p';\n if (this.headingSelect.value !== v) this.headingSelect.value = v;\n }\n\n // Reflect font family\n if (this.fontSelect) {\n const ff = (comp.fontFamily || '').replace(/[\"']/g, '').split(',')[0].trim().toLowerCase();\n if (ff) {\n for (const opt of Array.from(this.fontSelect.options)) {\n if (opt.value.toLowerCase() === ff) { this.fontSelect.value = opt.value; break; }\n }\n }\n }\n\n if (this.colorInput) {\n const hex = rgbToHex(comp.color);\n if (hex && this.colorInput.value.toLowerCase() !== hex.toLowerCase()) {\n this.colorInput.value = hex;\n }\n if (this.colorSwatchEl) this.colorSwatchEl.style.backgroundColor = this.colorInput.value;\n }\n \n\n if (this.bgColorInput) {\n const bg = getComputedStyle(startElm).backgroundColor;\n if (bg && !/transparent|rgba\\(\\s*0\\s*,\\s*0\\s*,\\s*0\\s*,\\s*0\\s*\\)/i.test(bg)) {\n const bgHex = rgbToHex(bg);\n if (bgHex && this.bgColorInput.value.toLowerCase() !== bgHex.toLowerCase()) {\n this.bgColorInput.value = bgHex;\n }\n }\n if (this.bgSwatchEl) this.bgSwatchEl.style.backgroundColor = this.bgColorInput.value;\n }\n }\n\n private syncPreview() {\n this.updateContent();\n }\n\n private updateContent() {\n if (!this.editorEl) return;\n this.ensureAtLeastOneParagraph();\n \n \n const clone = this.editorEl.cloneNode(true) as HTMLElement;\n \n \n const origWalker = document.createTreeWalker(this.editorEl, NodeFilter.SHOW_ELEMENT);\n const cloneWalker = document.createTreeWalker(clone, NodeFilter.SHOW_ELEMENT);\n \n \n const importantProps = [\n 'font-weight',\n 'font-style',\n 'text-decoration',\n 'color',\n 'background-color',\n 'font-size',\n 'font-family',\n 'text-align',\n 'line-height',\n 'letter-spacing',\n 'white-space',\n 'vertical-align'\n ];\n \n while (origWalker.nextNode() && cloneWalker.nextNode()) {\n const origEl = origWalker.currentNode as HTMLElement;\n const cloneEl = cloneWalker.currentNode as HTMLElement;\n const computed = window.getComputedStyle(origEl);\n \n \n const cssText = importantProps\n .map(prop => `${prop}:${computed.getPropertyValue(prop)}`)\n .join(';');\n \n \n if (cssText.trim()) {\n cloneEl.setAttribute('style', cssText);\n }\n }\n \n \n this.content = clone.innerHTML;\n \n \n if (this.previewEl) this.previewEl.innerHTML = this.content;\n \n \n this.dispatchEvent(new CustomEvent('content-changed', {\n detail: { content: this.content },\n bubbles: true,\n composed: true\n }));\n }\n \n \n \n \n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-rich-text-editor': NileRichTextEditor;\n }\n}\n\n"],"names":["DEFAULT_ICONS","bold","italic","underline","link","left","center","right","justify","ul","ol","clear","_export","NileRichTextEditor","p","this","value","mentions","content","previewEl","toolbarEl","lastRange","buttonMap","Map","headingSelect","fontSelect","colorInput","bgColorInput","colorSwatchEl","bgSwatchEl","mentionsEl","onEditorKeydown","e","key","preventDefault","focusAndRestore","sel","window","getSelection","rangeCount","range","getRangeAt","shiftKey","collapsed","startContainer","nodeType","Node","TEXT_NODE","t","off","startOffset","before","data","slice","removed","replace","length","r","document","createRange","setStart","collapse","removeAllRanges","addRange","updateContent","updateToolbarState","deleteContents","tabNode","createTextNode","insertNode","setStartAfter","onSelectionChange","editorEl","contains","commonAncestorContainer","cloneRange","_this","_inherits","_i","_createClass","createRenderRoot","shouldUpdate","injectCss","cssText","querySelector","style","createElement","setAttribute","textContent","insertBefore","firstChild","connectedCallback","super","styles","ensureEditor","innerHTML","trim","wireAuthoredToolbar","attach","setExternalConfig","wireEditor","syncPreview","addEventListener","updateContentWithMention","detail","mentionDetail","dispatchEvent","CustomEvent","mention","bubbles","composed","disconnectedCallback","removeEventListener","detach","_this$toolbarEl","editor","className","nextSibling","appendChild","ensureAtLeastOneParagraph","unwrapMention","span","preserveText","_t$textContent","parent","parentNode","txt","textNode","removeChild","scrubBrokenMentions","_this3","querySelectorAll","forEach","m","getAttribute","label","trigger","text","_i$textContent","looksValid","startsWith","includes","saveSelection","tb","Array","from","children","child","tag","tagName","toLowerCase","_this5$buttonMap$get","btn","cmd","iconAttr","authoredHasContent","variant","size","concat","defaultIcon","isConnected","onToolbarCommand","arr","get","push","set","_t$detail","mode","setBackColor","setForeColor","type","val","setBlockTag","setFontFamily","alignment","setAlignment","restoreSelection","focus","insertList","list","frag","extractContents","temp","childNodes","n","li","afterListEdit","node","el","onlyWhitespace","_t$textContent3","hasChildNodes","_t$textContent4","toggleInlineTag","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","toUnwrap","nextNode","currentNode","removeAttribute","_i7","_i6","remove","setBtnActive","active","_iterator","s","_step","done","toggleAttribute","err","f","_this6","_s$closest","startElm","nearestElement","comp","getComputedStyle","block","closestBlock","isBold","HTMLElement","w","fontWeight","parseInt","isItalic","fontStyle","isUnderline","tdl","textDecorationLine","inLink","closest","align","textAlign","alignNorm","listType","v","ff","fontFamily","split","_i12","_Array$from","options","opt","hex","rgbToHex","color","backgroundColor","bg","test","bgHex","clone","cloneNode","origWalker","cloneWalker","importantProps","_loop","origEl","cloneEl","computed","map","prop","getPropertyValue","join","LitElement","__decorate","property","String","prototype","attribute","converter","fromAttribute","parsed","JSON","parse","out","_i16","_Object$keys","Object","keys","trig","isArray","filter","i","_unused","toAttribute","stringify","state","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,r;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",r=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n \n\n nile-rich-text-editor { position: relative; display: block; font-family: inherit; }\n\n \nnile-rte-toolbar-item > nile-button::part(base) {\n \n width:32px; height:32px; padding:0px 6px;\n border: none;\n}\n \nnile-rte-preview {\n white-space: normal;\n word-break: break-word;\n}\n\n\n\n .toolbar, nile-rte-toolbar {\n display:flex; align-items:center; gap:6px; padding:8px; \n border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;\n }\n\n nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {\n border:1px solid #e5e7eb; background:#fff; border-radius:6px;\n cursor:pointer;\n }\n\n \n /* Ensure clicks hit the button (not nested icon internals) */\n nile-rte-toolbar-item > button nile-icon { pointer-events:none; }\n\n nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }\n nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }\n nile-rte-color input[type=\"color\"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }\n nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }\n\n .editor p { margin:1em 0; }\n .editor h1, .preview h1 { font-size:2em, all: revert; display: block;\nfont-size: 2em;\nmargin-top: 0.67em;\nmargin-bottom: 0.67em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold; }\n .editor h2, .preview h2 { all: revert;\tdisplay: block;\nfont-size: 1.5em;\nmargin-top: 0.83em;\nmargin-bottom: 0.83em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold;}\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 .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; white-space: pre-wrap;\n tab-size: 4; \n -moz-tab-size: 4; }\n nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }\n\n .rte-color-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* border: 1px solid var(--nile-color-border, #d9d9d9); */\n border-radius: 6px;\n background: #fff;\n cursor: pointer;\n border:none;\n \n\n}\nnile-button.rte-color-trigger::part(base){\n width:32px; height:32px; padding:0px 6px;\n}\n.rte-color-trigger .glyph-stack {\n display: grid; /* stack vertically */\n grid-auto-rows: max-content; \n align-items: center;\n justify-items: center;\n line-height: 1;\n}\n\n.rte-color-trigger .glyph {\n font-size: 14px;\n line-height: 1;\n margin-bottom: 2px; \n}\n\n.rte-color-trigger .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n background: currentColor; \n}\n\n \n.rte-color-trigger .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0,0,0,0.35);\n background: currentColor; /* overridden via JS */\n}\n\n \n\n \nnile-rte-toolbar-item > nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400);\n}\n\nnile-rte-toolbar-item > nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500); \n}\n\n\n\n"]))));}};});
1
+ System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,r;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",r=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n \n \n .editor {all: revert;}\n\n nile-rich-text-editor { position: relative; display: block; font-family: inherit; }\n\n \nnile-rte-toolbar-item > nile-button::part(base) {\n \n width:32px; height:32px; padding:0px 6px;\n border: none;\n}\n \nnile-rte-preview {\n white-space: normal;\n word-break: break-word;\n}\n\n\n\n .toolbar, nile-rte-toolbar {\n \n width:486px; \n display:flex; align-items:center; gap:6px; padding:8px; \n border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;\n }\n\n nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {\n border:1px solid #e5e7eb; background:#fff; border-radius:6px;\n cursor:pointer;\n }\n\n \n /* Ensure clicks hit the button (not nested icon internals) */\n nile-rte-toolbar-item > button nile-icon { pointer-events:none; }\n\n nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }\n nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }\n nile-rte-color input[type=\"color\"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }\n nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }\n\n .editor p { margin:1em 0; }\n .editor h1, .preview h1 { all: revert; font-size:2em, display: block;\nfont-size: 2em;\nmargin-top: 0.67em;\nmargin-bottom: 0.67em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold; }\n .editor h2, .preview h2 { all: revert;\tdisplay: block;\nfont-size: 1.5em;\nmargin-top: 0.83em;\nmargin-bottom: 0.83em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold;}\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 .editor { min-height:160px; max-width:478px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; \n tab-size: 4; \n -moz-tab-size: 4; \n word-break: break-word; \n }\n nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; max-width:478px; }\n\n .rte-color-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* border: 1px solid var(--nile-color-border, #d9d9d9); */\n border-radius: 6px;\n background: #fff;\n cursor: pointer;\n border:none;\n \n\n}\nnile-button.rte-color-trigger::part(base){\n width:32px; height:32px; padding:0px 6px;\n}\n.rte-color-trigger .glyph-stack {\n display: grid; /* stack vertically */\n grid-auto-rows: max-content; \n align-items: center;\n justify-items: center;\n line-height: 1;\n}\n\n.rte-color-trigger .glyph {\n font-size: 14px;\n line-height: 1;\n margin-bottom: 2px; \n}\n\n.rte-color-trigger .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n background: currentColor; \n}\n\n \n.rte-color-trigger .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0,0,0,0.35);\n background: currentColor; /* overridden via JS */\n}\n\n \n\n \nnile-rte-toolbar-item > nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400);\n}\n\nnile-rte-toolbar-item > nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500); \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":["// rte-styles.ts\nimport { css } from 'lit';\n\nexport const styles = css`\n \n\n nile-rich-text-editor { position: relative; display: block; font-family: inherit; }\n\n \nnile-rte-toolbar-item > nile-button::part(base) {\n \n width:32px; height:32px; padding:0px 6px;\n border: none;\n}\n \nnile-rte-preview {\n white-space: normal;\n word-break: break-word;\n}\n\n\n\n .toolbar, nile-rte-toolbar {\n display:flex; align-items:center; gap:6px; padding:8px; \n border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;\n }\n\n nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {\n border:1px solid #e5e7eb; background:#fff; border-radius:6px;\n cursor:pointer;\n }\n\n \n /* Ensure clicks hit the button (not nested icon internals) */\n nile-rte-toolbar-item > button nile-icon { pointer-events:none; }\n\n nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }\n nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }\n nile-rte-color input[type=\"color\"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }\n nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }\n\n .editor p { margin:1em 0; }\n .editor h1, .preview h1 { font-size:2em, all: revert; display: block;\nfont-size: 2em;\nmargin-top: 0.67em;\nmargin-bottom: 0.67em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold; }\n .editor h2, .preview h2 { all: revert;\tdisplay: block;\nfont-size: 1.5em;\nmargin-top: 0.83em;\nmargin-bottom: 0.83em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold;}\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 .editor { min-height:160px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; white-space: pre-wrap;\n tab-size: 4; \n -moz-tab-size: 4; }\n nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; }\n\n .rte-color-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* border: 1px solid var(--nile-color-border, #d9d9d9); */\n border-radius: 6px;\n background: #fff;\n cursor: pointer;\n border:none;\n \n\n}\nnile-button.rte-color-trigger::part(base){\n width:32px; height:32px; padding:0px 6px;\n}\n.rte-color-trigger .glyph-stack {\n display: grid; /* stack vertically */\n grid-auto-rows: max-content; \n align-items: center;\n justify-items: center;\n line-height: 1;\n}\n\n.rte-color-trigger .glyph {\n font-size: 14px;\n line-height: 1;\n margin-bottom: 2px; \n}\n\n.rte-color-trigger .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n background: currentColor; \n}\n\n \n.rte-color-trigger .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0,0,0,0.35);\n background: currentColor; /* overridden via JS */\n}\n\n \n\n \nnile-rte-toolbar-item > nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400);\n}\n\nnile-rte-toolbar-item > nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500); \n}\n\n\n\n`;\n\nexport default [styles];"],"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":["// rte-styles.ts\nimport { css } from 'lit';\n\nexport const styles = css`\n \n \n .editor {all: revert;}\n\n nile-rich-text-editor { position: relative; display: block; font-family: inherit; }\n\n \nnile-rte-toolbar-item > nile-button::part(base) {\n \n width:32px; height:32px; padding:0px 6px;\n border: none;\n}\n \nnile-rte-preview {\n white-space: normal;\n word-break: break-word;\n}\n\n\n\n .toolbar, nile-rte-toolbar {\n \n width:486px; \n display:flex; align-items:center; gap:6px; padding:8px; \n border:1px solid #e5e7eb; border-bottom:none; border-radius:8px 8px 0 0; background:#fff;\n }\n\n nile-rte-toolbar-item > button, .toolbar button, nile-rte-toolbar button {\n border:1px solid #e5e7eb; background:#fff; border-radius:6px;\n cursor:pointer;\n }\n\n \n /* Ensure clicks hit the button (not nested icon internals) */\n nile-rte-toolbar-item > button nile-icon { pointer-events:none; }\n\n nile-rte-toolbar-item > button.active { border-color:#2563eb; background:#eff6ff; }\n nile-rte-select select { height:32px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; }\n nile-rte-color input[type=\"color\"] { height:32px; width:36px; border:1px solid #e5e7eb; padding:0; border-radius:6px; background:#fff; }\n nile-rte-divider { width:1px; height:20px; background:#e5e7eb; display:inline-block; margin:0 4px; }\n\n .editor p { margin:1em 0; }\n .editor h1, .preview h1 { all: revert; font-size:2em, display: block;\nfont-size: 2em;\nmargin-top: 0.67em;\nmargin-bottom: 0.67em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold; }\n .editor h2, .preview h2 { all: revert;\tdisplay: block;\nfont-size: 1.5em;\nmargin-top: 0.83em;\nmargin-bottom: 0.83em;\nmargin-left: 0;\nmargin-right: 0;\nfont-weight: bold;}\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 .editor { min-height:160px; max-width:478px; padding:12px; border:1px solid #e5e7eb; border-radius:0 0 8px 8px; background:#fff; outline:none; \n tab-size: 4; \n -moz-tab-size: 4; \n word-break: break-word; \n }\n nile-rte-preview { display:block; margin-top:10px; padding:10px; border:1px dashed #cbd5e1; border-radius:8px; background:#fafafa; max-width:478px; }\n\n .rte-color-trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /* border: 1px solid var(--nile-color-border, #d9d9d9); */\n border-radius: 6px;\n background: #fff;\n cursor: pointer;\n border:none;\n \n\n}\nnile-button.rte-color-trigger::part(base){\n width:32px; height:32px; padding:0px 6px;\n}\n.rte-color-trigger .glyph-stack {\n display: grid; /* stack vertically */\n grid-auto-rows: max-content; \n align-items: center;\n justify-items: center;\n line-height: 1;\n}\n\n.rte-color-trigger .glyph {\n font-size: 14px;\n line-height: 1;\n margin-bottom: 2px; \n}\n\n.rte-color-trigger .underline {\n width: 18px;\n height: 3px;\n border-radius: 2px;\n background: currentColor; \n}\n\n \n.rte-color-trigger .swatch-box {\n width: 18px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid rgba(0,0,0,0.35);\n background: currentColor; /* overridden via JS */\n}\n\n \n\n \nnile-rte-toolbar-item > nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400);\n}\n\nnile-rte-toolbar-item > nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500); \n}\n\n\n\n`;\n\nexport default [styles];"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAGaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}