srich-editor 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/srich-editor.esm.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* A lightweight, dependency-free rich text editor
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
const e={bold:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>',italic:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>',underline:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>',strikethrough:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"/></svg>',heading1:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H1</text></svg>',heading2:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H2</text></svg>',heading3:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H3</text></svg>',unorderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"/></svg>',orderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></svg>',justifyLeft:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"/></svg>',justifyCenter:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"/></svg>',justifyRight:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"/></svg>',link:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>',image:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>',code:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>',undo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>',redo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>',blockquote:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>',horizontalRule:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 11h20v2H2z"/></svg>',removeFormat:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"/></svg>',textColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M11 2L5.5 16h2.25l1.12-3h6.25l1.12 3h2.25L13 2h-2zm-1.38 9L12 4.67 14.38 11H9.62z"/></svg>',bgColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.59-.59 1.54 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5z"/><rect fill="currentColor" x="3" y="19" width="18" height="4"/></svg>'},t=[{type:"button",name:"undo",icon:"undo",tooltip:"Undo",command:"undo"},{type:"button",name:"redo",icon:"redo",tooltip:"Redo",command:"redo"},{type:"separator"},{type:"button",name:"bold",icon:"bold",tooltip:"Bold (Ctrl+B)",command:"bold"},{type:"button",name:"italic",icon:"italic",tooltip:"Italic (Ctrl+I)",command:"italic"},{type:"button",name:"underline",icon:"underline",tooltip:"Underline (Ctrl+U)",command:"underline"},{type:"button",name:"strikethrough",icon:"strikethrough",tooltip:"Strikethrough",command:"strikeThrough"},{type:"separator"},{type:"button",name:"heading1",icon:"heading1",tooltip:"Heading 1",command:"formatBlock",value:"H1"},{type:"button",name:"heading2",icon:"heading2",tooltip:"Heading 2",command:"formatBlock",value:"H2"},{type:"button",name:"heading3",icon:"heading3",tooltip:"Heading 3",command:"formatBlock",value:"H3"},{type:"separator"},{type:"button",name:"justifyLeft",icon:"justifyLeft",tooltip:"Align Left",command:"justifyLeft"},{type:"button",name:"justifyCenter",icon:"justifyCenter",tooltip:"Align Center",command:"justifyCenter"},{type:"button",name:"justifyRight",icon:"justifyRight",tooltip:"Align Right",command:"justifyRight"},{type:"separator"},{type:"button",name:"unorderedList",icon:"unorderedList",tooltip:"Bullet List",command:"insertUnorderedList"},{type:"button",name:"orderedList",icon:"orderedList",tooltip:"Numbered List",command:"insertOrderedList"},{type:"button",name:"blockquote",icon:"blockquote",tooltip:"Block Quote",command:"formatBlock",value:"BLOCKQUOTE"},{type:"separator"},{type:"button",name:"link",icon:"link",tooltip:"Insert Link",command:"createLink"},{type:"button",name:"image",icon:"image",tooltip:"Insert Image",command:"insertImage"},{type:"button",name:"horizontalRule",icon:"horizontalRule",tooltip:"Horizontal Line",command:"insertHorizontalRule"},{type:"separator"},{type:"button",name:"code",icon:"code",tooltip:"Code Block",command:"formatBlock",value:"PRE"},{type:"separator"},{type:"button",name:"removeFormat",icon:"removeFormat",tooltip:"Clear Formatting",command:"removeFormat"},{type:"button",name:"textColor",icon:"textColor",tooltip:"Text Color",command:"foreColor"},{type:"button",name:"bgColor",icon:"bgColor",tooltip:"Background Color",command:"hiliteColor"}],n={insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function o(e="",t="",o){const i={...n,...o};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const r=document.createElement("div");r.className="re-dialog",r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",t?i.editLink:i.insertLink);const a=document.createElement("div");a.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=t?i.editLink:i.insertLink;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",a.appendChild(l),a.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-link-text"),u.textContent=i.displayText;const m=document.createElement("input");m.className="re-dialog-input",m.type="text",m.id="re-link-text",m.placeholder="Text to display",m.value=e,d.appendChild(u),d.appendChild(m);const h=document.createElement("div");h.className="re-dialog-field";const p=document.createElement("label");p.className="re-dialog-label",p.setAttribute("for","re-link-url"),p.textContent=i.url;const v=document.createElement("input");v.className="re-dialog-input",v.type="url",v.id="re-link-url",v.placeholder="https://example.com",v.value=t,h.appendChild(p),h.appendChild(v),c.appendChild(d),c.appendChild(h);const g=document.createElement("div");if(g.className="re-dialog-footer",t){const e=document.createElement("button");e.className="re-dialog-btn re-dialog-btn-remove",e.type="button",e.textContent=i.removeLink,e.addEventListener("click",()=>{C(),n({action:"remove",text:"",url:""})}),g.appendChild(e)}const f=document.createElement("button");f.className="re-dialog-btn re-dialog-btn-cancel",f.type="button",f.textContent=i.cancel;const b=document.createElement("button");function C(){o.remove()}function y(){const e=m.value.trim(),t=v.value.trim();if(!t)return v.focus(),v.classList.add("re-dialog-input-error"),void setTimeout(()=>v.classList.remove("re-dialog-input-error"),1500);n({action:"insert",text:e||t,url:t}),C()}function L(){n(null),C()}b.className="re-dialog-btn re-dialog-btn-confirm",b.type="button",b.textContent=t?i.save:i.insert,g.appendChild(f),g.appendChild(b),r.appendChild(a),r.appendChild(c),r.appendChild(g),o.appendChild(r),document.body.appendChild(o),setTimeout(()=>{t?(v.focus(),v.select()):m.focus()},50),s.addEventListener("click",L),f.addEventListener("click",L),b.addEventListener("click",y),o.addEventListener("click",e=>{e.target===o&&L()}),r.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),L();else if("Enter"===e.key&&document.activeElement===v)e.preventDefault(),y();else if("Tab"===e.key){const t=r.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}function i(e="",t="",o){const i={...n,...o};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const r=document.createElement("div");r.className="re-dialog",r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",e?i.editImage:i.insertImage);const a=document.createElement("div");a.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=e?i.editImage:i.insertImage;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",a.appendChild(l),a.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-image-url"),u.textContent=i.imageUrl;const m=document.createElement("input");m.className="re-dialog-input",m.type="url",m.id="re-image-url",m.placeholder="https://example.com/image.jpg",m.value=e,d.appendChild(u),d.appendChild(m);const h=document.createElement("div");h.className="re-dialog-field";const p=document.createElement("label");p.className="re-dialog-label",p.setAttribute("for","re-image-alt"),p.textContent=i.altText;const v=document.createElement("input");v.className="re-dialog-input",v.type="text",v.id="re-image-alt",v.placeholder="Description of the image",v.value=t,h.appendChild(p),h.appendChild(v);const g=document.createElement("div");g.className="re-dialog-field";const f=document.createElement("span");f.className="re-dialog-label",f.textContent=i.preview;const b=document.createElement("div");b.className="re-dialog-image-preview",m.addEventListener("input",function(){const e=m.value.trim();if(b.innerHTML="",e){const t=document.createElement("img");t.src=e,t.alt=v.value,t.onerror=()=>{b.innerHTML=`<span class="re-dialog-image-error">${i.unableToLoadImage}</span>`},b.appendChild(t)}}),g.appendChild(f),g.appendChild(b),c.appendChild(d),c.appendChild(h),c.appendChild(g);const C=document.createElement("div");C.className="re-dialog-footer";const y=document.createElement("button");y.className="re-dialog-btn re-dialog-btn-cancel",y.type="button",y.textContent=i.cancel;const L=document.createElement("button");function x(){o.remove()}function E(){const e=m.value.trim(),t=v.value.trim();if(!e)return m.focus(),m.classList.add("re-dialog-input-error"),void setTimeout(()=>m.classList.remove("re-dialog-input-error"),1500);n({url:e,alt:t}),x()}function w(){n(null),x()}L.className="re-dialog-btn re-dialog-btn-confirm",L.type="button",L.textContent=e?i.save:i.insert,C.appendChild(y),C.appendChild(L),r.appendChild(a),r.appendChild(c),r.appendChild(C),o.appendChild(r),document.body.appendChild(o),setTimeout(()=>{m.focus(),m.select()},50),s.addEventListener("click",w),y.addEventListener("click",w),L.addEventListener("click",E),o.addEventListener("click",e=>{e.target===o&&w()}),r.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),w();else if("Enter"===e.key&&document.activeElement===m)e.preventDefault(),E();else if("Tab"===e.key){const t=r.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}const r=new Set(["script","iframe","object","embed","applet","form","input","textarea","select","button","link","meta","style","base","noscript","template","slot","shadow"]),a=new Set(["font","center"]),l=[/^on/i,/expression\(/i,/url\(/i,/javascript:/i,/vbscript:/i],s=new Set(["http:","https:","mailto:","tel:","ftp:","#",""]);function c(e){if(!e)return"";const t=(new DOMParser).parseFromString(e,"text/html").body;return d(t),t.innerHTML}function d(e){const t=Array.from(e.childNodes);for(const e of t)if(e.nodeType===Node.ELEMENT_NODE){const t=e,n=t.tagName.toLowerCase();if(r.has(n)){t.remove();continue}if(a.has(n)){const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}continue}const o=Array.from(t.attributes);for(const e of o){const n=e.name.toLowerCase(),o=e.value;if(l.some(e=>e.test(n)))t.removeAttribute(e.name);else if(["srcdoc","dynsrc","lowsrc","action","formaction","xlink:href"].includes(n))t.removeAttribute(e.name);else{if("style"===n){const e=m(o);e?t.setAttribute("style",e):t.removeAttribute("style");continue}["href","src","action","poster","background"].includes(n)&&(u(o)||t.removeAttribute(e.name))}}d(t)}}function u(e){if(!e)return!0;const t=e.trim().toLowerCase();if(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||!t.includes(":"))return!0;if(t.startsWith("#"))return!0;const n=t.match(/^([a-z][a-z0-9+.-]*):/);if(!n)return!0;const o=n[1]+":";return s.has(o)}function m(e){if(!e)return"";return[/expression\s*\(/i,/javascript\s*:/i,/vbscript\s*:/i,/url\s*\(\s*['"]?\s*javascript:/i,/-moz-binding/i,/behavior\s*:/i].some(t=>t.test(e))?"":e}function h(e){if(!e)return"";const t=e.trim();if(t.startsWith("#"))return t;if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t).protocol.toLowerCase();if(s.has(e))return t;return new URL("https://"+t).href}catch(e){return""}}function p(e){if(!e)return"";const t=e.trim();if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t),n=e.protocol.toLowerCase();if("http:"===n||"https:"===n)return t;if("data:"===n){return e.pathname.split(";")[0].split(",")[0].toLowerCase().startsWith("image/")?t:""}return""}catch(e){return""}}const v={content:"",placeholder:"Start typing...",height:"300px",readOnly:!1,maxLength:0,maxUndoLevels:100,autoFocus:!1},g={words:"words",characters:"characters",insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function f(n){const r={...v,...n},a={...g,...r.locale};let l;if("string"==typeof r.container){const e=document.querySelector(r.container);if(!e)throw new Error(`SRich Editor: Container element not found for selector "${r.container}"`);l=e}else l=r.container;const s=document.createElement("div");s.className="re-wrapper",s.setAttribute("dir","ltr");const d=document.createElement("div");d.className="re-toolbar",d.setAttribute("role","toolbar"),d.setAttribute("aria-label","Formatting toolbar");const u=document.createElement("div");u.className="re-content",u.setAttribute("contenteditable","true"),u.setAttribute("role","textbox"),u.setAttribute("aria-multiline","true"),u.setAttribute("aria-label","Rich text editor"),u.style.minHeight=r.height||"300px";const m=document.createElement("div");m.className="re-placeholder",m.textContent=r.placeholder||"Start typing...";const f=document.createElement("div");f.className="re-statusbar",f.setAttribute("aria-live","polite"),s.appendChild(d),s.appendChild(document.createElement("div")).className="re-content-wrapper";const b=s.querySelector(".re-content-wrapper");b.appendChild(m),b.appendChild(u),s.appendChild(f),l.appendChild(s);let C=!1;r.className;const y=[],L=[],x=r.maxUndoLevels||100;let E=!1,w="";function k(){if(E)return;const e=u.innerHTML;e!==w&&(y.push(w),y.length>x&&y.shift(),w=e,L.length=0,H())}function H(){const e=d.querySelector('[data-command="undo"]'),t=d.querySelector('[data-command="redo"]');e&&(e.classList.toggle("re-disabled",0===y.length),e.setAttribute("aria-disabled",String(0===y.length))),t&&(t.classList.toggle("re-disabled",0===L.length),t.setAttribute("aria-disabled",String(0===L.length)))}function z(){var e;const t=""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim();m.style.display=t?"block":"none"}function N(){d.querySelectorAll(".re-btn[data-command]").forEach(e=>{const t=e.dataset.command,n=e.dataset.value;if(t&&"undo"!==t&&"redo"!==t){let o=!1;try{o="formatBlock"===t&&n?document.queryCommandValue("formatBlock").toUpperCase()===n.toUpperCase():document.queryCommandState(t)}catch(e){}e.classList.toggle("re-active",o),e.setAttribute("aria-pressed",String(o))}}),H()}function A(){const e=u.textContent||"",t=e.length,n=""===e.trim()?0:e.trim().split(/\s+/).length;f.textContent=`${n} ${a.words} · ${t} ${a.characters}`}let T=null;function M(){T||(T=setTimeout(()=>{T=null,B()},0))}function B(){z(),A(),N(),r.onChange&&r.onChange(u.innerHTML)}function R(){if(!r.maxLength||r.maxLength<=0)return!0;return!((u.textContent||"").length>r.maxLength)||(u.innerHTML=w,!1)}function S(){const e=window.getSelection();return e&&e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function I(e){if(!e)return!1;const t=window.getSelection();return!!t&&(t.removeAllRanges(),t.addRange(e),!0)}async function D(){var e;const{selectedText:t,linkUrl:n,linkNode:i}=function(){const e=window.getSelection();let t="",n=null,o=null;if(e&&e.rangeCount>0){t=e.toString();let i=e.anchorNode;for(;i&&i!==u;){if(i.nodeType===Node.ELEMENT_NODE&&"A"===i.tagName){o=i,n=o.getAttribute("href")||"",t||(t=o.textContent||"");break}i=i.parentNode}}return{selectedText:t,linkUrl:n,linkNode:o}}(),r=S(),l=await o(t,n||"",a);if(l){if(k(),"remove"===l.action){if(i){const t=document.createTextNode(i.textContent||"");null===(e=i.parentNode)||void 0===e||e.replaceChild(t,i),B()}return}if(i)i.setAttribute("href",h(l.url)),l.text&&i.textContent!==l.text&&(i.textContent=l.text),B();else if(u.focus(),I(r),t){const e=window.getSelection();if(e&&e.rangeCount>0){const n=e.getRangeAt(0);if(u.contains(n.commonAncestorContainer)){const o=n.extractContents(),i=document.createElement("a");i.href=h(l.url),l.text&&l.text!==t?i.textContent=l.text:i.appendChild(o),n.insertNode(i),n.setStartAfter(i),n.collapse(!0),e.removeAllRanges(),e.addRange(n)}else{const e=document.createElement("a");e.href=h(l.url),e.textContent=l.text||t,u.appendChild(e)}B()}}else{const e=document.createElement("a");e.href=h(l.url),e.textContent=l.text||l.url;const t=window.getSelection();if(t&&t.rangeCount>0){const n=t.getRangeAt(0);n.insertNode(e),n.setStartAfter(e),n.collapse(!0),t.removeAllRanges(),t.addRange(n)}else u.appendChild(e);B()}}}function V(e,t){C||("undo"!==e?"redo"!==e?(u.focus(),"createLink"!==e?"insertImage"!==e?(k(),"formatBlock"===e&&t?document.execCommand("formatBlock",!1,t):(document.execCommand(e,!1,t||""),k(),N(),M())):async function(){const e=S(),t=await i("","",a);if(t){u.focus(),I(e),k();const n=document.createElement("img");n.src=p(t.url),n.alt=t.alt;const o=window.getSelection();if(o&&o.rangeCount>0){const e=o.getRangeAt(0);u.contains(e.commonAncestorContainer)?(e.deleteContents(),e.insertNode(n),e.setStartAfter(n),e.collapse(!0),o.removeAllRanges(),o.addRange(e)):u.appendChild(n)}else u.appendChild(n);B()}}():D()):j():U())}function U(){if(0===y.length)return;const e=u.innerHTML,t=y.pop();L.push(e),E=!0,u.innerHTML=t,w=t,E=!1,B(),H()}function j(){if(0===L.length)return;const e=u.innerHTML,t=L.pop();y.push(e),E=!0,u.innerHTML=t,w=t,E=!1,B(),H()}function q(e){if(!C){if(r.onKeyDown){if(!1===r.onKeyDown(e))return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey)switch(e.key.toLowerCase()){case"b":e.preventDefault(),V("bold");break;case"i":e.preventDefault(),V("italic");break;case"u":e.preventDefault(),V("underline");break;case"z":e.preventDefault(),U();break;case"y":e.preventDefault(),j()}(e.ctrlKey||e.metaKey)&&e.shiftKey&&"z"===e.key.toLowerCase()&&(e.preventDefault(),j()),"Tab"===e.key&&(e.preventDefault(),document.execCommand("insertHTML",!1," "),M())}}function K(e){if(r.onPaste){if(!1===r.onPaste(e))return}k(),setTimeout(()=>{R(),B()},0)}let F=0;function O(e){F=e.touches[0].clientY}function W(e){const t=e.changedTouches[0].clientY;Math.abs(t-F)<10&&N()}function P(){N(),r.onFocus&&r.onFocus()}function $(){N(),r.onBlur&&r.onBlur()}let Q=null;const Y=new MutationObserver(function(){Q&&clearTimeout(Q),Q=setTimeout(()=>{E||(z(),A(),N())},100)});u.addEventListener("input",()=>{R()&&(k(),M())}),u.addEventListener("keyup",N),u.addEventListener("mouseup",N),u.addEventListener("keydown",q),u.addEventListener("paste",K),u.addEventListener("focus",P),u.addEventListener("blur",$),u.addEventListener("touchstart",O,{passive:!0}),u.addEventListener("touchend",W,{passive:!0}),Y.observe(u,{childList:!0,subtree:!0,characterData:!0}),r.content&&(u.innerHTML=c(r.content)),r.readOnly&&(u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0),r.className&&(r.className,s.classList.add(...r.className.split(/\s+/).filter(Boolean))),!1===r.toolbarVisible&&(d.style.display="none"),!1===r.statusBarVisible&&(f.style.display="none"),(r.toolbar||t).forEach(t=>{if("separator"===t.type){const e=document.createElement("div");return e.className="re-separator",e.setAttribute("role","separator"),e.setAttribute("aria-orientation","vertical"),void d.appendChild(e)}if("button"===t.type&&t.command){const n=document.createElement("button");n.className="re-btn",n.type="button",n.setAttribute("aria-label",t.tooltip||t.name||""),n.setAttribute("aria-pressed","false"),n.setAttribute("title",t.tooltip||""),n.dataset.command=t.command,t.value&&(n.dataset.value=t.value);const o=t.icon||t.name||"";e[o]?n.innerHTML=e[o]:n.textContent=t.name||t.command,n.addEventListener("mousedown",e=>{e.preventDefault()}),n.addEventListener("click",e=>{e.preventDefault(),V(t.command,t.value)}),d.appendChild(n)}}),r.customButtons&&0!==r.customButtons.length&&r.customButtons.forEach(e=>{const t=document.createElement("button");t.className="re-btn",t.type="button",t.setAttribute("aria-label",e.tooltip),t.setAttribute("title",e.tooltip),t.dataset.command="custom",t.dataset.customName=e.name,e.icon?t.innerHTML=e.icon:t.textContent=e.name,t.addEventListener("mousedown",e=>{e.preventDefault()}),t.addEventListener("click",t=>{t.preventDefault(),C||e.command(_)}),void 0!==e.position&&e.position<d.children.length?d.insertBefore(t,d.children[e.position]):d.appendChild(t)}),z(),A(),w=u.innerHTML,y.length=0,L.length=0,H(),r.autoFocus&&u.focus(),r.onReady&&r.onReady();const _={getContent:()=>u.innerHTML,setContent(e){k(),u.innerHTML=c(e),w=u.innerHTML,B()},getText:()=>u.textContent||"",execCommand(e,t){V(e,t)},queryCommandState(e){try{return document.queryCommandState(e)}catch(e){return!1}},destroy(){u.removeEventListener("input",M),u.removeEventListener("keyup",N),u.removeEventListener("mouseup",N),u.removeEventListener("keydown",q),u.removeEventListener("paste",K),u.removeEventListener("focus",P),u.removeEventListener("blur",$),u.removeEventListener("touchstart",O),u.removeEventListener("touchend",W),Y.disconnect(),T&&clearTimeout(T),Q&&clearTimeout(Q),document.querySelectorAll(".re-dialog-overlay").forEach(e=>e.remove()),s.remove()},getElement:()=>s,enable(){u.setAttribute("contenteditable","true"),s.classList.remove("re-readonly"),C=!1,B()},disable(){u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0},focus(){u.focus()},isEmpty(){var e;return""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim()},canUndo:()=>y.length>0,canRedo:()=>L.length>0,undo(){U()},redo(){j()},getCharacterCount:()=>(u.textContent||"").length,getWordCount(){const e=(u.textContent||"").trim();return""===e?0:e.split(/\s+/).length}};return _}var b={createEditor:f};export{f as createEditor,b as default,t as defaultToolbar,e as icons,c as sanitizeHTML,p as sanitizeImageURL,h as sanitizeLinkURL,i as showImageDialog,o as showLinkDialog};
|
|
6
|
+
const e={bold:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>',italic:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>',underline:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>',strikethrough:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"/></svg>',heading1:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H1</text></svg>',heading2:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H2</text></svg>',heading3:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H3</text></svg>',unorderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"/></svg>',orderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></svg>',justifyLeft:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"/></svg>',justifyCenter:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"/></svg>',justifyRight:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"/></svg>',link:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>',image:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>',code:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>',undo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>',redo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>',blockquote:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>',horizontalRule:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 11h20v2H2z"/></svg>',removeFormat:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"/></svg>',textColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M11 2L5.5 16h2.25l1.12-3h6.25l1.12 3h2.25L13 2h-2zm-1.38 9L12 4.67 14.38 11H9.62z"/></svg>',bgColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.59-.59 1.54 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5z"/><rect fill="currentColor" x="3" y="19" width="18" height="4"/></svg>'},t=[{type:"button",name:"undo",icon:"undo",tooltip:"Undo",command:"undo"},{type:"button",name:"redo",icon:"redo",tooltip:"Redo",command:"redo"},{type:"separator"},{type:"button",name:"bold",icon:"bold",tooltip:"Bold (Ctrl+B)",command:"bold"},{type:"button",name:"italic",icon:"italic",tooltip:"Italic (Ctrl+I)",command:"italic"},{type:"button",name:"underline",icon:"underline",tooltip:"Underline (Ctrl+U)",command:"underline"},{type:"button",name:"strikethrough",icon:"strikethrough",tooltip:"Strikethrough",command:"strikeThrough"},{type:"separator"},{type:"button",name:"heading1",icon:"heading1",tooltip:"Heading 1",command:"formatBlock",value:"H1"},{type:"button",name:"heading2",icon:"heading2",tooltip:"Heading 2",command:"formatBlock",value:"H2"},{type:"button",name:"heading3",icon:"heading3",tooltip:"Heading 3",command:"formatBlock",value:"H3"},{type:"separator"},{type:"button",name:"justifyLeft",icon:"justifyLeft",tooltip:"Align Left",command:"justifyLeft"},{type:"button",name:"justifyCenter",icon:"justifyCenter",tooltip:"Align Center",command:"justifyCenter"},{type:"button",name:"justifyRight",icon:"justifyRight",tooltip:"Align Right",command:"justifyRight"},{type:"separator"},{type:"button",name:"unorderedList",icon:"unorderedList",tooltip:"Bullet List",command:"insertUnorderedList"},{type:"button",name:"orderedList",icon:"orderedList",tooltip:"Numbered List",command:"insertOrderedList"},{type:"button",name:"blockquote",icon:"blockquote",tooltip:"Block Quote",command:"formatBlock",value:"BLOCKQUOTE"},{type:"separator"},{type:"button",name:"link",icon:"link",tooltip:"Insert Link",command:"createLink"},{type:"button",name:"image",icon:"image",tooltip:"Insert Image",command:"insertImage"},{type:"button",name:"horizontalRule",icon:"horizontalRule",tooltip:"Horizontal Line",command:"insertHorizontalRule"},{type:"separator"},{type:"button",name:"code",icon:"code",tooltip:"Code Block",command:"formatBlock",value:"PRE"},{type:"separator"},{type:"button",name:"removeFormat",icon:"removeFormat",tooltip:"Clear Formatting",command:"removeFormat"},{type:"button",name:"textColor",icon:"textColor",tooltip:"Text Color",command:"foreColor"},{type:"button",name:"bgColor",icon:"bgColor",tooltip:"Background Color",command:"hiliteColor"}],n={insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function o(e="",t="",o){const i={...n,...o};return new Promise(n=>{document.querySelectorAll(".re-link-tooltip").forEach(e=>e.remove());const o=document.createElement("div");o.className="re-link-tooltip",o.setAttribute("role","dialog"),o.setAttribute("aria-label",t?i.editLink:i.insertLink);const r=document.createElement("div");r.className="re-link-tooltip-row";const a=document.createElement("span");a.className="re-link-tooltip-icon",a.innerHTML='<svg viewBox="0 0 24 24" width="14" height="14"><path fill="currentColor" d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>';const l=document.createElement("input");l.className="re-link-tooltip-input",l.type="url",l.placeholder="https://example.com",l.value=t,r.appendChild(a),r.appendChild(l);const s=document.createElement("div");s.className="re-link-tooltip-row";const c=document.createElement("span");c.className="re-link-tooltip-icon",c.innerHTML='<svg viewBox="0 0 24 24" width="14" height="14"><path fill="currentColor" d="M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z"/></svg>';const d=document.createElement("input");d.className="re-link-tooltip-input",d.type="text",d.placeholder=i.displayText,d.value=e,s.appendChild(c),s.appendChild(d);const u=document.createElement("div");if(u.className="re-link-tooltip-btn-row",t){const e=document.createElement("button");e.className="re-link-tooltip-btn re-link-tooltip-btn-remove",e.type="button",e.textContent=i.removeLink,e.addEventListener("mousedown",e=>e.preventDefault()),e.addEventListener("click",e=>{e.preventDefault(),v(),n({action:"remove",text:"",url:""})}),u.appendChild(e)}const m=document.createElement("span");m.className="re-link-tooltip-spacer";const p=document.createElement("button");p.className="re-link-tooltip-btn re-link-tooltip-btn-cancel",p.type="button",p.textContent=i.cancel;const h=document.createElement("button");function v(){o.remove()}function g(){const e=l.value.trim(),t=d.value.trim();if(!e)return l.focus(),l.classList.add("re-link-tooltip-input-error"),void setTimeout(()=>l.classList.remove("re-link-tooltip-input-error"),1500);n({action:"insert",text:t||e,url:e}),v()}function f(){n(null),v()}function b(e){o.contains(e.target)||(v(),n(null),document.removeEventListener("mousedown",b))}h.className="re-link-tooltip-btn re-link-tooltip-btn-confirm",h.type="button",h.textContent=t?i.save:i.insert,u.appendChild(m),u.appendChild(p),u.appendChild(h),o.appendChild(r),o.appendChild(s),o.appendChild(u),document.body.appendChild(o),function(e){const t=function(){var e;const t=window.getSelection();if(t&&t.rangeCount>0){const n=t.getRangeAt(0),o=n.getBoundingClientRect();if(0===o.width&&0===o.height){const t=n.cloneRange();t.collapse(!0);const o=t.getBoundingClientRect();if(0===o.width&&0===o.height){const o=document.createElement("span");o.textContent="",t.insertNode(o);const i=o.getBoundingClientRect();return null===(e=o.parentNode)||void 0===e||e.removeChild(o),n.startContainer.parentNode&&n.startContainer.parentNode.normalize(),i}return o}return o}return null}();if(!t)return e.style.position="fixed",e.style.left="50%",e.style.top="50%",void(e.style.transform="translate(-50%, -50%)");e.style.position="fixed";const n=e.getBoundingClientRect(),o=window.innerWidth,i=window.innerHeight;let r=t.bottom+8,a=t.left+t.width/2-n.width/2;r+n.height>i-8&&(r=t.top-8-n.height);r<8&&(r=8);a<8?a=8:a+n.width>o-8&&(a=o-8-n.width);e.style.left=`${a}px`,e.style.top=`${r}px`}(o),setTimeout(()=>{t?(l.focus(),l.select()):d.focus()},10),p.addEventListener("mousedown",e=>e.preventDefault()),p.addEventListener("click",e=>{e.preventDefault(),f()}),h.addEventListener("mousedown",e=>e.preventDefault()),h.addEventListener("click",e=>{e.preventDefault(),g()}),setTimeout(()=>{document.addEventListener("mousedown",b)},0),o.addEventListener("keydown",e=>{"Escape"===e.key?(e.preventDefault(),e.stopPropagation(),f()):"Enter"===e.key&&(e.preventDefault(),e.stopPropagation(),g())}),o.addEventListener("mousedown",e=>{e.stopPropagation()})})}function i(e="",t="",o){const i={...n,...o};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const r=document.createElement("div");r.className="re-dialog",r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",t?i.editLink:i.insertLink);const a=document.createElement("div");a.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=t?i.editLink:i.insertLink;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",a.appendChild(l),a.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-link-text"),u.textContent=i.displayText;const m=document.createElement("input");m.className="re-dialog-input",m.type="text",m.id="re-link-text",m.placeholder="Text to display",m.value=e,d.appendChild(u),d.appendChild(m);const p=document.createElement("div");p.className="re-dialog-field";const h=document.createElement("label");h.className="re-dialog-label",h.setAttribute("for","re-link-url"),h.textContent=i.url;const v=document.createElement("input");v.className="re-dialog-input",v.type="url",v.id="re-link-url",v.placeholder="https://example.com",v.value=t,p.appendChild(h),p.appendChild(v),c.appendChild(d),c.appendChild(p);const g=document.createElement("div");if(g.className="re-dialog-footer",t){const e=document.createElement("button");e.className="re-dialog-btn re-dialog-btn-remove",e.type="button",e.textContent=i.removeLink,e.addEventListener("click",()=>{C(),n({action:"remove",text:"",url:""})}),g.appendChild(e)}const f=document.createElement("button");f.className="re-dialog-btn re-dialog-btn-cancel",f.type="button",f.textContent=i.cancel;const b=document.createElement("button");function C(){o.remove()}function y(){const e=m.value.trim(),t=v.value.trim();if(!t)return v.focus(),v.classList.add("re-dialog-input-error"),void setTimeout(()=>v.classList.remove("re-dialog-input-error"),1500);n({action:"insert",text:e||t,url:t}),C()}function L(){n(null),C()}b.className="re-dialog-btn re-dialog-btn-confirm",b.type="button",b.textContent=t?i.save:i.insert,g.appendChild(f),g.appendChild(b),r.appendChild(a),r.appendChild(c),r.appendChild(g),o.appendChild(r),document.body.appendChild(o),setTimeout(()=>{t?(v.focus(),v.select()):m.focus()},50),s.addEventListener("click",L),f.addEventListener("click",L),b.addEventListener("click",y),o.addEventListener("click",e=>{e.target===o&&L()}),r.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),L();else if("Enter"===e.key&&document.activeElement===v)e.preventDefault(),y();else if("Tab"===e.key){const t=r.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}function r(e="",t="",o){const i={...n,...o};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const r=document.createElement("div");r.className="re-dialog",r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",e?i.editImage:i.insertImage);const a=document.createElement("div");a.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=e?i.editImage:i.insertImage;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",a.appendChild(l),a.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-image-url"),u.textContent=i.imageUrl;const m=document.createElement("input");m.className="re-dialog-input",m.type="url",m.id="re-image-url",m.placeholder="https://example.com/image.jpg",m.value=e,d.appendChild(u),d.appendChild(m);const p=document.createElement("div");p.className="re-dialog-field";const h=document.createElement("label");h.className="re-dialog-label",h.setAttribute("for","re-image-alt"),h.textContent=i.altText;const v=document.createElement("input");v.className="re-dialog-input",v.type="text",v.id="re-image-alt",v.placeholder="Description of the image",v.value=t,p.appendChild(h),p.appendChild(v);const g=document.createElement("div");g.className="re-dialog-field";const f=document.createElement("span");f.className="re-dialog-label",f.textContent=i.preview;const b=document.createElement("div");b.className="re-dialog-image-preview",m.addEventListener("input",function(){const e=m.value.trim();if(b.innerHTML="",e){const t=document.createElement("img");t.src=e,t.alt=v.value,t.onerror=()=>{b.innerHTML=`<span class="re-dialog-image-error">${i.unableToLoadImage}</span>`},b.appendChild(t)}}),g.appendChild(f),g.appendChild(b),c.appendChild(d),c.appendChild(p),c.appendChild(g);const C=document.createElement("div");C.className="re-dialog-footer";const y=document.createElement("button");y.className="re-dialog-btn re-dialog-btn-cancel",y.type="button",y.textContent=i.cancel;const L=document.createElement("button");function E(){o.remove()}function x(){const e=m.value.trim(),t=v.value.trim();if(!e)return m.focus(),m.classList.add("re-dialog-input-error"),void setTimeout(()=>m.classList.remove("re-dialog-input-error"),1500);n({url:e,alt:t}),E()}function w(){n(null),E()}L.className="re-dialog-btn re-dialog-btn-confirm",L.type="button",L.textContent=e?i.save:i.insert,C.appendChild(y),C.appendChild(L),r.appendChild(a),r.appendChild(c),r.appendChild(C),o.appendChild(r),document.body.appendChild(o),setTimeout(()=>{m.focus(),m.select()},50),s.addEventListener("click",w),y.addEventListener("click",w),L.addEventListener("click",x),o.addEventListener("click",e=>{e.target===o&&w()}),r.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),w();else if("Enter"===e.key&&document.activeElement===m)e.preventDefault(),x();else if("Tab"===e.key){const t=r.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}const a=new Set(["script","iframe","object","embed","applet","form","input","textarea","select","button","link","meta","style","base","noscript","template","slot","shadow"]),l=new Set(["font","center"]),s=[/^on/i,/expression\(/i,/url\(/i,/javascript:/i,/vbscript:/i],c=new Set(["http:","https:","mailto:","tel:","ftp:","#",""]);function d(e){if(!e)return"";const t=(new DOMParser).parseFromString(e,"text/html").body;return u(t),t.innerHTML}function u(e){const t=Array.from(e.childNodes);for(const e of t)if(e.nodeType===Node.ELEMENT_NODE){const t=e,n=t.tagName.toLowerCase();if(a.has(n)){t.remove();continue}if(l.has(n)){const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}continue}const o=Array.from(t.attributes);for(const e of o){const n=e.name.toLowerCase(),o=e.value;if(s.some(e=>e.test(n)))t.removeAttribute(e.name);else if(["srcdoc","dynsrc","lowsrc","action","formaction","xlink:href"].includes(n))t.removeAttribute(e.name);else{if("style"===n){const e=p(o);e?t.setAttribute("style",e):t.removeAttribute("style");continue}["href","src","action","poster","background"].includes(n)&&(m(o)||t.removeAttribute(e.name))}}u(t)}}function m(e){if(!e)return!0;const t=e.trim().toLowerCase();if(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||!t.includes(":"))return!0;if(t.startsWith("#"))return!0;const n=t.match(/^([a-z][a-z0-9+.-]*):/);if(!n)return!0;const o=n[1]+":";return c.has(o)}function p(e){if(!e)return"";return[/expression\s*\(/i,/javascript\s*:/i,/vbscript\s*:/i,/url\s*\(\s*['"]?\s*javascript:/i,/-moz-binding/i,/behavior\s*:/i].some(t=>t.test(e))?"":e}function h(e){if(!e)return"";const t=e.trim();if(t.startsWith("#"))return t;if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t).protocol.toLowerCase();if(c.has(e))return t;return new URL("https://"+t).href}catch(e){return""}}function v(e){if(!e)return"";const t=e.trim();if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t),n=e.protocol.toLowerCase();if("http:"===n||"https:"===n)return t;if("data:"===n){return e.pathname.split(";")[0].split(",")[0].toLowerCase().startsWith("image/")?t:""}return""}catch(e){return""}}const g={content:"",placeholder:"Start typing...",height:"300px",readOnly:!1,maxLength:0,maxUndoLevels:100,autoFocus:!1},f={words:"words",characters:"characters",insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function b(n){const i={...g,...n},a={...f,...i.locale};let l;if("string"==typeof i.container){const e=document.querySelector(i.container);if(!e)throw new Error(`SRich Editor: Container element not found for selector "${i.container}"`);l=e}else l=i.container;const s=document.createElement("div");s.className="re-wrapper",s.setAttribute("dir","ltr");const c=document.createElement("div");c.className="re-toolbar",c.setAttribute("role","toolbar"),c.setAttribute("aria-label","Formatting toolbar");const u=document.createElement("div");u.className="re-content",u.setAttribute("contenteditable","true"),u.setAttribute("role","textbox"),u.setAttribute("aria-multiline","true"),u.setAttribute("aria-label","Rich text editor"),u.style.minHeight=i.height||"300px";const m=document.createElement("div");m.className="re-placeholder",m.textContent=i.placeholder||"Start typing...";const p=document.createElement("div");p.className="re-statusbar",p.setAttribute("aria-live","polite"),s.appendChild(c),s.appendChild(document.createElement("div")).className="re-content-wrapper";const b=s.querySelector(".re-content-wrapper");b.appendChild(m),b.appendChild(u),s.appendChild(p),l.appendChild(s);let C=!1;i.className;const y=[],L=[],E=i.maxUndoLevels||100;let x=!1,w="";function k(){if(x)return;const e=u.innerHTML;e!==w&&(y.push(w),y.length>E&&y.shift(),w=e,L.length=0,H())}function H(){const e=c.querySelector('[data-command="undo"]'),t=c.querySelector('[data-command="redo"]');e&&(e.classList.toggle("re-disabled",0===y.length),e.setAttribute("aria-disabled",String(0===y.length))),t&&(t.classList.toggle("re-disabled",0===L.length),t.setAttribute("aria-disabled",String(0===L.length)))}function N(){var e;const t=""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim();m.style.display=t?"block":"none"}function z(){c.querySelectorAll(".re-btn[data-command]").forEach(e=>{const t=e.dataset.command,n=e.dataset.value;if(t&&"undo"!==t&&"redo"!==t){let o=!1;try{o="formatBlock"===t&&n?document.queryCommandValue("formatBlock").toUpperCase()===n.toUpperCase():document.queryCommandState(t)}catch(e){}e.classList.toggle("re-active",o),e.setAttribute("aria-pressed",String(o))}}),H()}function A(){const e=u.textContent||"",t=e.length,n=""===e.trim()?0:e.trim().split(/\s+/).length;p.textContent=`${n} ${a.words} · ${t} ${a.characters}`}let T=null;function M(){T||(T=setTimeout(()=>{T=null,B()},0))}function B(){N(),A(),z(),i.onChange&&i.onChange(u.innerHTML)}function R(){if(!i.maxLength||i.maxLength<=0)return!0;return!((u.textContent||"").length>i.maxLength)||(u.innerHTML=w,!1)}function S(){const e=window.getSelection();return e&&e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function D(e){if(!e)return!1;const t=window.getSelection();return!!t&&(t.removeAllRanges(),t.addRange(e),!0)}async function I(){var e;const{selectedText:t,linkUrl:n,linkNode:i}=function(){const e=window.getSelection();let t="",n=null,o=null;if(e&&e.rangeCount>0){t=e.toString();let i=e.anchorNode;for(;i&&i!==u;){if(i.nodeType===Node.ELEMENT_NODE&&"A"===i.tagName){o=i,n=o.getAttribute("href")||"",t||(t=o.textContent||"");break}i=i.parentNode}}return{selectedText:t,linkUrl:n,linkNode:o}}(),r=S(),l=await o(t,n||"",a);if(l){if(k(),"remove"===l.action){if(i){const t=document.createTextNode(i.textContent||"");null===(e=i.parentNode)||void 0===e||e.replaceChild(t,i),B()}return}if(i)i.setAttribute("href",h(l.url)),l.text&&i.textContent!==l.text&&(i.textContent=l.text),B();else if(u.focus(),D(r),t){const e=window.getSelection();if(e&&e.rangeCount>0){const n=e.getRangeAt(0);if(u.contains(n.commonAncestorContainer)){const o=n.extractContents(),i=document.createElement("a");i.href=h(l.url),l.text&&l.text!==t?i.textContent=l.text:i.appendChild(o),n.insertNode(i),n.setStartAfter(i),n.collapse(!0),e.removeAllRanges(),e.addRange(n)}else{const e=document.createElement("a");e.href=h(l.url),e.textContent=l.text||t,u.appendChild(e)}B()}}else{const e=document.createElement("a");e.href=h(l.url),e.textContent=l.text||l.url;const t=window.getSelection();if(t&&t.rangeCount>0){const n=t.getRangeAt(0);n.insertNode(e),n.setStartAfter(e),n.collapse(!0),t.removeAllRanges(),t.addRange(n)}else u.appendChild(e);B()}}}function V(e,t){C||("undo"!==e?"redo"!==e?(u.focus(),"createLink"!==e?"insertImage"!==e?(k(),"formatBlock"===e&&t?document.execCommand("formatBlock",!1,t):(document.execCommand(e,!1,t||""),k(),z(),M())):async function(){const e=S(),t=await r("","",a);if(t){u.focus(),D(e),k();const n=document.createElement("img");n.src=v(t.url),n.alt=t.alt;const o=window.getSelection();if(o&&o.rangeCount>0){const e=o.getRangeAt(0);u.contains(e.commonAncestorContainer)?(e.deleteContents(),e.insertNode(n),e.setStartAfter(n),e.collapse(!0),o.removeAllRanges(),o.addRange(e)):u.appendChild(n)}else u.appendChild(n);B()}}():I()):j():U())}function U(){if(0===y.length)return;const e=u.innerHTML,t=y.pop();L.push(e),x=!0,u.innerHTML=t,w=t,x=!1,B(),H()}function j(){if(0===L.length)return;const e=u.innerHTML,t=L.pop();y.push(e),x=!0,u.innerHTML=t,w=t,x=!1,B(),H()}function q(e){if(!C){if(i.onKeyDown){if(!1===i.onKeyDown(e))return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey)switch(e.key.toLowerCase()){case"b":e.preventDefault(),V("bold");break;case"i":e.preventDefault(),V("italic");break;case"u":e.preventDefault(),V("underline");break;case"z":e.preventDefault(),U();break;case"y":e.preventDefault(),j()}(e.ctrlKey||e.metaKey)&&e.shiftKey&&"z"===e.key.toLowerCase()&&(e.preventDefault(),j()),"Tab"===e.key&&(e.preventDefault(),document.execCommand("insertHTML",!1," "),M())}}function K(e){if(i.onPaste){if(!1===i.onPaste(e))return}k(),setTimeout(()=>{R(),B()},0)}let P=0;function F(e){P=e.touches[0].clientY}function W(e){const t=e.changedTouches[0].clientY;Math.abs(t-P)<10&&z()}function O(){z(),i.onFocus&&i.onFocus()}function $(){z(),i.onBlur&&i.onBlur()}let Q=null;const Y=new MutationObserver(function(){Q&&clearTimeout(Q),Q=setTimeout(()=>{x||(N(),A(),z())},100)});u.addEventListener("input",()=>{R()&&(k(),M())}),u.addEventListener("keyup",z),u.addEventListener("mouseup",z),u.addEventListener("keydown",q),u.addEventListener("paste",K),u.addEventListener("focus",O),u.addEventListener("blur",$),u.addEventListener("touchstart",F,{passive:!0}),u.addEventListener("touchend",W,{passive:!0}),Y.observe(u,{childList:!0,subtree:!0,characterData:!0}),i.content&&(u.innerHTML=d(i.content)),i.readOnly&&(u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0),i.className&&(i.className,s.classList.add(...i.className.split(/\s+/).filter(Boolean))),!1===i.toolbarVisible&&(c.style.display="none"),!1===i.statusBarVisible&&(p.style.display="none"),(i.toolbar||t).forEach(t=>{if("separator"===t.type){const e=document.createElement("div");return e.className="re-separator",e.setAttribute("role","separator"),e.setAttribute("aria-orientation","vertical"),void c.appendChild(e)}if("button"===t.type&&t.command){const n=document.createElement("button");n.className="re-btn",n.type="button",n.setAttribute("aria-label",t.tooltip||t.name||""),n.setAttribute("aria-pressed","false"),n.setAttribute("title",t.tooltip||""),n.dataset.command=t.command,t.value&&(n.dataset.value=t.value);const o=t.icon||t.name||"";e[o]?n.innerHTML=e[o]:n.textContent=t.name||t.command,n.addEventListener("mousedown",e=>{e.preventDefault()}),n.addEventListener("click",e=>{e.preventDefault(),V(t.command,t.value)}),c.appendChild(n)}}),i.customButtons&&0!==i.customButtons.length&&i.customButtons.forEach(e=>{const t=document.createElement("button");t.className="re-btn",t.type="button",t.setAttribute("aria-label",e.tooltip),t.setAttribute("title",e.tooltip),t.dataset.command="custom",t.dataset.customName=e.name,e.icon?t.innerHTML=e.icon:t.textContent=e.name,t.addEventListener("mousedown",e=>{e.preventDefault()}),t.addEventListener("click",t=>{t.preventDefault(),C||e.command(_)}),void 0!==e.position&&e.position<c.children.length?c.insertBefore(t,c.children[e.position]):c.appendChild(t)}),N(),A(),w=u.innerHTML,y.length=0,L.length=0,H(),i.autoFocus&&u.focus(),i.onReady&&i.onReady();const _={getContent:()=>u.innerHTML,setContent(e){k(),u.innerHTML=d(e),w=u.innerHTML,B()},getText:()=>u.textContent||"",execCommand(e,t){V(e,t)},queryCommandState(e){try{return document.queryCommandState(e)}catch(e){return!1}},destroy(){u.removeEventListener("input",M),u.removeEventListener("keyup",z),u.removeEventListener("mouseup",z),u.removeEventListener("keydown",q),u.removeEventListener("paste",K),u.removeEventListener("focus",O),u.removeEventListener("blur",$),u.removeEventListener("touchstart",F),u.removeEventListener("touchend",W),Y.disconnect(),T&&clearTimeout(T),Q&&clearTimeout(Q),document.querySelectorAll(".re-dialog-overlay").forEach(e=>e.remove()),document.querySelectorAll(".re-link-tooltip").forEach(e=>e.remove()),s.remove()},getElement:()=>s,enable(){u.setAttribute("contenteditable","true"),s.classList.remove("re-readonly"),C=!1,B()},disable(){u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0},focus(){u.focus()},isEmpty(){var e;return""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim()},canUndo:()=>y.length>0,canRedo:()=>L.length>0,undo(){U()},redo(){j()},getCharacterCount:()=>(u.textContent||"").length,getWordCount(){const e=(u.textContent||"").trim();return""===e?0:e.split(/\s+/).length}};return _}var C={createEditor:b};export{b as createEditor,C as default,t as defaultToolbar,e as icons,d as sanitizeHTML,v as sanitizeImageURL,h as sanitizeLinkURL,r as showImageDialog,i as showLinkDialog,o as showLinkTooltip};
|
|
7
7
|
//# sourceMappingURL=srich-editor.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"srich-editor.esm.js","sources":["../src/toolbar.ts","../src/dialog.ts","../src/sanitizer.ts","../src/editor.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["icons","bold","italic","underline","strikethrough","heading1","heading2","heading3","unorderedList","orderedList","justifyLeft","justifyCenter","justifyRight","link","image","code","undo","redo","blockquote","horizontalRule","removeFormat","textColor","bgColor","defaultToolbar","type","name","icon","tooltip","command","value","defaultDialogLocale","insertLink","editLink","insertImage","editImage","displayText","url","imageUrl","altText","preview","cancel","insert","save","removeLink","close","unableToLoadImage","showLinkDialog","currentText","currentUrl","locale","loc","Promise","resolve","overlay","document","createElement","className","dialog","setAttribute","header","title","textContent","closeBtn","innerHTML","appendChild","body","textField","textLabel","textInput","id","placeholder","urlField","urlLabel","urlInput","footer","removeBtn","addEventListener","cleanup","action","text","cancelBtn","confirmBtn","remove","confirm","trim","focus","classList","add","setTimeout","select","e","target","key","preventDefault","activeElement","focusable","querySelectorAll","firstEl","lastEl","length","shiftKey","showImageDialog","currentAlt","altField","altLabel","altInput","previewField","previewLabel","previewContainer","img","src","alt","onerror","DANGEROUS_ELEMENTS","Set","UNWRAP_ELEMENTS","DANGEROUS_ATTR_PATTERNS","SAFE_LINK_PROTOCOLS","sanitizeHTML","html","DOMParser","parseFromString","sanitizeNode","node","childNodes","Array","from","child","nodeType","Node","ELEMENT_NODE","el","tagName","toLowerCase","has","parent","parentNode","firstChild","insertBefore","attrs","attributes","attr","attrName","attrValue","some","pattern","test","removeAttribute","includes","safeStyle","sanitizeStyle","isSafeURL","trimmed","startsWith","protocolMatch","match","protocol","style","sanitizeLinkURL","URL","href","_a","sanitizeImageURL","parsed","pathname","split","defaultOptions","content","height","readOnly","maxLength","maxUndoLevels","autoFocus","defaultLocale","words","characters","createEditor","options","config","containerEl","container","querySelector","Error","wrapper","toolbar","contentArea","minHeight","statusBar","contentWrapper","isDisabled","undoStack","redoStack","isUndoRedoAction","lastSavedContent","saveToUndoStack","current","push","shift","updateUndoRedoButtons","undoBtn","redoBtn","toggle","String","updatePlaceholder","isEmpty","replace","display","updateToolbarState","forEach","btn","dataset","isActive","queryCommandValue","toUpperCase","queryCommandState","updateStatusBar","chars","throttleTimer","throttledHandleInput","handleInput","onChange","checkMaxLength","saveSelection","selection","window","getSelection","rangeCount","getRangeAt","cloneRange","restoreSelection","savedRange","removeAllRanges","addRange","async","handleCreateLink","selectedText","linkUrl","linkNode","toString","anchorNode","getAttribute","getSelectionInfo","result","textNode","createTextNode","replaceChild","range","contains","commonAncestorContainer","selectedContent","extractContents","anchor","insertNode","setStartAfter","collapse","handleToolbarAction","execCommand","deleteContents","handleInsertImage","performRedo","performUndo","prev","pop","next","handleKeydown","onKeyDown","ctrlKey","metaKey","handlePaste","onPaste","touchStartY","handleTouchStart","touches","clientY","handleTouchEnd","touchEndY","changedTouches","Math","abs","handleFocus","onFocus","handleBlur","onBlur","debounceTimer","observer","MutationObserver","clearTimeout","passive","observe","childList","subtree","characterData","filter","Boolean","toolbarVisible","statusBarVisible","item","sep","iconName","customButtons","customBtn","customName","instance","undefined","position","children","onReady","getContent","setContent","getText","destroy","removeEventListener","disconnect","getElement","enable","disable","canUndo","canRedo","getCharacterCount","getWordCount","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"srich-editor.esm.js","sources":["../src/toolbar.ts","../src/dialog.ts","../src/sanitizer.ts","../src/editor.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["icons","bold","italic","underline","strikethrough","heading1","heading2","heading3","unorderedList","orderedList","justifyLeft","justifyCenter","justifyRight","link","image","code","undo","redo","blockquote","horizontalRule","removeFormat","textColor","bgColor","defaultToolbar","type","name","icon","tooltip","command","value","defaultDialogLocale","insertLink","editLink","insertImage","editImage","displayText","url","imageUrl","altText","preview","cancel","insert","save","removeLink","close","unableToLoadImage","showLinkTooltip","currentText","currentUrl","locale","loc","Promise","resolve","document","querySelectorAll","forEach","el","remove","createElement","className","setAttribute","urlRow","urlIcon","innerHTML","urlInput","placeholder","appendChild","textRow","textIcon","textInput","btnRow","removeBtn","textContent","addEventListener","e","preventDefault","cleanup","action","text","spacer","cancelBtn","confirmBtn","confirm","trim","focus","classList","add","setTimeout","handleClickOutside","contains","target","removeEventListener","body","selRect","selection","window","getSelection","rangeCount","range","getRangeAt","rect","getBoundingClientRect","width","height","tempRange","cloneRange","collapse","tempRect","span","insertNode","spanRect","_a","parentNode","removeChild","startContainer","normalize","getSelectionRect","style","position","left","top","transform","elRect","viewportW","innerWidth","viewportH","innerHeight","bottom","positionTooltip","select","key","stopPropagation","showLinkDialog","overlay","dialog","header","title","closeBtn","textField","textLabel","id","urlField","urlLabel","footer","activeElement","focusable","firstEl","lastEl","length","shiftKey","showImageDialog","currentAlt","altField","altLabel","altInput","previewField","previewLabel","previewContainer","img","src","alt","onerror","DANGEROUS_ELEMENTS","Set","UNWRAP_ELEMENTS","DANGEROUS_ATTR_PATTERNS","SAFE_LINK_PROTOCOLS","sanitizeHTML","html","DOMParser","parseFromString","sanitizeNode","node","childNodes","Array","from","child","nodeType","Node","ELEMENT_NODE","tagName","toLowerCase","has","parent","firstChild","insertBefore","attrs","attributes","attr","attrName","attrValue","some","pattern","test","removeAttribute","includes","safeStyle","sanitizeStyle","isSafeURL","trimmed","startsWith","protocolMatch","match","protocol","sanitizeLinkURL","URL","href","sanitizeImageURL","parsed","pathname","split","defaultOptions","content","readOnly","maxLength","maxUndoLevels","autoFocus","defaultLocale","words","characters","createEditor","options","config","containerEl","container","querySelector","Error","wrapper","toolbar","contentArea","minHeight","statusBar","contentWrapper","isDisabled","undoStack","redoStack","isUndoRedoAction","lastSavedContent","saveToUndoStack","current","push","shift","updateUndoRedoButtons","undoBtn","redoBtn","toggle","String","updatePlaceholder","isEmpty","replace","display","updateToolbarState","btn","dataset","isActive","queryCommandValue","toUpperCase","queryCommandState","updateStatusBar","chars","throttleTimer","throttledHandleInput","handleInput","onChange","checkMaxLength","saveSelection","restoreSelection","savedRange","removeAllRanges","addRange","async","handleCreateLink","selectedText","linkUrl","linkNode","toString","anchorNode","getAttribute","getSelectionInfo","result","textNode","createTextNode","replaceChild","commonAncestorContainer","selectedContent","extractContents","anchor","setStartAfter","handleToolbarAction","execCommand","deleteContents","handleInsertImage","performRedo","performUndo","prev","pop","next","handleKeydown","onKeyDown","ctrlKey","metaKey","handlePaste","onPaste","touchStartY","handleTouchStart","touches","clientY","handleTouchEnd","touchEndY","changedTouches","Math","abs","handleFocus","onFocus","handleBlur","onBlur","debounceTimer","observer","MutationObserver","clearTimeout","passive","observe","childList","subtree","characterData","filter","Boolean","toolbarVisible","statusBarVisible","item","sep","iconName","customButtons","customBtn","customName","instance","undefined","children","onReady","getContent","setContent","getText","destroy","disconnect","getElement","enable","disable","canUndo","canRedo","getCharacterCount","getWordCount","index"],"mappings":"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"}
|
package/dist/srich-editor.umd.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* A lightweight, dependency-free rich text editor
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SRichEditor={})}(this,function(e){"use strict";const t={bold:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>',italic:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>',underline:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>',strikethrough:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"/></svg>',heading1:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H1</text></svg>',heading2:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H2</text></svg>',heading3:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H3</text></svg>',unorderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"/></svg>',orderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></svg>',justifyLeft:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"/></svg>',justifyCenter:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"/></svg>',justifyRight:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"/></svg>',link:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>',image:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>',code:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>',undo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>',redo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>',blockquote:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>',horizontalRule:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 11h20v2H2z"/></svg>',removeFormat:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"/></svg>',textColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M11 2L5.5 16h2.25l1.12-3h6.25l1.12 3h2.25L13 2h-2zm-1.38 9L12 4.67 14.38 11H9.62z"/></svg>',bgColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.59-.59 1.54 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5z"/><rect fill="currentColor" x="3" y="19" width="18" height="4"/></svg>'},n=[{type:"button",name:"undo",icon:"undo",tooltip:"Undo",command:"undo"},{type:"button",name:"redo",icon:"redo",tooltip:"Redo",command:"redo"},{type:"separator"},{type:"button",name:"bold",icon:"bold",tooltip:"Bold (Ctrl+B)",command:"bold"},{type:"button",name:"italic",icon:"italic",tooltip:"Italic (Ctrl+I)",command:"italic"},{type:"button",name:"underline",icon:"underline",tooltip:"Underline (Ctrl+U)",command:"underline"},{type:"button",name:"strikethrough",icon:"strikethrough",tooltip:"Strikethrough",command:"strikeThrough"},{type:"separator"},{type:"button",name:"heading1",icon:"heading1",tooltip:"Heading 1",command:"formatBlock",value:"H1"},{type:"button",name:"heading2",icon:"heading2",tooltip:"Heading 2",command:"formatBlock",value:"H2"},{type:"button",name:"heading3",icon:"heading3",tooltip:"Heading 3",command:"formatBlock",value:"H3"},{type:"separator"},{type:"button",name:"justifyLeft",icon:"justifyLeft",tooltip:"Align Left",command:"justifyLeft"},{type:"button",name:"justifyCenter",icon:"justifyCenter",tooltip:"Align Center",command:"justifyCenter"},{type:"button",name:"justifyRight",icon:"justifyRight",tooltip:"Align Right",command:"justifyRight"},{type:"separator"},{type:"button",name:"unorderedList",icon:"unorderedList",tooltip:"Bullet List",command:"insertUnorderedList"},{type:"button",name:"orderedList",icon:"orderedList",tooltip:"Numbered List",command:"insertOrderedList"},{type:"button",name:"blockquote",icon:"blockquote",tooltip:"Block Quote",command:"formatBlock",value:"BLOCKQUOTE"},{type:"separator"},{type:"button",name:"link",icon:"link",tooltip:"Insert Link",command:"createLink"},{type:"button",name:"image",icon:"image",tooltip:"Insert Image",command:"insertImage"},{type:"button",name:"horizontalRule",icon:"horizontalRule",tooltip:"Horizontal Line",command:"insertHorizontalRule"},{type:"separator"},{type:"button",name:"code",icon:"code",tooltip:"Code Block",command:"formatBlock",value:"PRE"},{type:"separator"},{type:"button",name:"removeFormat",icon:"removeFormat",tooltip:"Clear Formatting",command:"removeFormat"},{type:"button",name:"textColor",icon:"textColor",tooltip:"Text Color",command:"foreColor"},{type:"button",name:"bgColor",icon:"bgColor",tooltip:"Background Color",command:"hiliteColor"}],o={insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function i(e="",t="",n){const i={...o,...n};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const a=document.createElement("div");a.className="re-dialog",a.setAttribute("role","dialog"),a.setAttribute("aria-modal","true"),a.setAttribute("aria-label",t?i.editLink:i.insertLink);const r=document.createElement("div");r.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=t?i.editLink:i.insertLink;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",r.appendChild(l),r.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-link-text"),u.textContent=i.displayText;const m=document.createElement("input");m.className="re-dialog-input",m.type="text",m.id="re-link-text",m.placeholder="Text to display",m.value=e,d.appendChild(u),d.appendChild(m);const h=document.createElement("div");h.className="re-dialog-field";const p=document.createElement("label");p.className="re-dialog-label",p.setAttribute("for","re-link-url"),p.textContent=i.url;const v=document.createElement("input");v.className="re-dialog-input",v.type="url",v.id="re-link-url",v.placeholder="https://example.com",v.value=t,h.appendChild(p),h.appendChild(v),c.appendChild(d),c.appendChild(h);const g=document.createElement("div");if(g.className="re-dialog-footer",t){const e=document.createElement("button");e.className="re-dialog-btn re-dialog-btn-remove",e.type="button",e.textContent=i.removeLink,e.addEventListener("click",()=>{C(),n({action:"remove",text:"",url:""})}),g.appendChild(e)}const f=document.createElement("button");f.className="re-dialog-btn re-dialog-btn-cancel",f.type="button",f.textContent=i.cancel;const b=document.createElement("button");function C(){o.remove()}function y(){const e=m.value.trim(),t=v.value.trim();if(!t)return v.focus(),v.classList.add("re-dialog-input-error"),void setTimeout(()=>v.classList.remove("re-dialog-input-error"),1500);n({action:"insert",text:e||t,url:t}),C()}function L(){n(null),C()}b.className="re-dialog-btn re-dialog-btn-confirm",b.type="button",b.textContent=t?i.save:i.insert,g.appendChild(f),g.appendChild(b),a.appendChild(r),a.appendChild(c),a.appendChild(g),o.appendChild(a),document.body.appendChild(o),setTimeout(()=>{t?(v.focus(),v.select()):m.focus()},50),s.addEventListener("click",L),f.addEventListener("click",L),b.addEventListener("click",y),o.addEventListener("click",e=>{e.target===o&&L()}),a.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),L();else if("Enter"===e.key&&document.activeElement===v)e.preventDefault(),y();else if("Tab"===e.key){const t=a.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}function a(e="",t="",n){const i={...o,...n};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const a=document.createElement("div");a.className="re-dialog",a.setAttribute("role","dialog"),a.setAttribute("aria-modal","true"),a.setAttribute("aria-label",e?i.editImage:i.insertImage);const r=document.createElement("div");r.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=e?i.editImage:i.insertImage;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",r.appendChild(l),r.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-image-url"),u.textContent=i.imageUrl;const m=document.createElement("input");m.className="re-dialog-input",m.type="url",m.id="re-image-url",m.placeholder="https://example.com/image.jpg",m.value=e,d.appendChild(u),d.appendChild(m);const h=document.createElement("div");h.className="re-dialog-field";const p=document.createElement("label");p.className="re-dialog-label",p.setAttribute("for","re-image-alt"),p.textContent=i.altText;const v=document.createElement("input");v.className="re-dialog-input",v.type="text",v.id="re-image-alt",v.placeholder="Description of the image",v.value=t,h.appendChild(p),h.appendChild(v);const g=document.createElement("div");g.className="re-dialog-field";const f=document.createElement("span");f.className="re-dialog-label",f.textContent=i.preview;const b=document.createElement("div");b.className="re-dialog-image-preview",m.addEventListener("input",function(){const e=m.value.trim();if(b.innerHTML="",e){const t=document.createElement("img");t.src=e,t.alt=v.value,t.onerror=()=>{b.innerHTML=`<span class="re-dialog-image-error">${i.unableToLoadImage}</span>`},b.appendChild(t)}}),g.appendChild(f),g.appendChild(b),c.appendChild(d),c.appendChild(h),c.appendChild(g);const C=document.createElement("div");C.className="re-dialog-footer";const y=document.createElement("button");y.className="re-dialog-btn re-dialog-btn-cancel",y.type="button",y.textContent=i.cancel;const L=document.createElement("button");function x(){o.remove()}function E(){const e=m.value.trim(),t=v.value.trim();if(!e)return m.focus(),m.classList.add("re-dialog-input-error"),void setTimeout(()=>m.classList.remove("re-dialog-input-error"),1500);n({url:e,alt:t}),x()}function w(){n(null),x()}L.className="re-dialog-btn re-dialog-btn-confirm",L.type="button",L.textContent=e?i.save:i.insert,C.appendChild(y),C.appendChild(L),a.appendChild(r),a.appendChild(c),a.appendChild(C),o.appendChild(a),document.body.appendChild(o),setTimeout(()=>{m.focus(),m.select()},50),s.addEventListener("click",w),y.addEventListener("click",w),L.addEventListener("click",E),o.addEventListener("click",e=>{e.target===o&&w()}),a.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),w();else if("Enter"===e.key&&document.activeElement===m)e.preventDefault(),E();else if("Tab"===e.key){const t=a.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}const r=new Set(["script","iframe","object","embed","applet","form","input","textarea","select","button","link","meta","style","base","noscript","template","slot","shadow"]),l=new Set(["font","center"]),s=[/^on/i,/expression\(/i,/url\(/i,/javascript:/i,/vbscript:/i],c=new Set(["http:","https:","mailto:","tel:","ftp:","#",""]);function d(e){if(!e)return"";const t=(new DOMParser).parseFromString(e,"text/html").body;return u(t),t.innerHTML}function u(e){const t=Array.from(e.childNodes);for(const e of t)if(e.nodeType===Node.ELEMENT_NODE){const t=e,n=t.tagName.toLowerCase();if(r.has(n)){t.remove();continue}if(l.has(n)){const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}continue}const o=Array.from(t.attributes);for(const e of o){const n=e.name.toLowerCase(),o=e.value;if(s.some(e=>e.test(n)))t.removeAttribute(e.name);else if(["srcdoc","dynsrc","lowsrc","action","formaction","xlink:href"].includes(n))t.removeAttribute(e.name);else{if("style"===n){const e=h(o);e?t.setAttribute("style",e):t.removeAttribute("style");continue}["href","src","action","poster","background"].includes(n)&&(m(o)||t.removeAttribute(e.name))}}u(t)}}function m(e){if(!e)return!0;const t=e.trim().toLowerCase();if(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||!t.includes(":"))return!0;if(t.startsWith("#"))return!0;const n=t.match(/^([a-z][a-z0-9+.-]*):/);if(!n)return!0;const o=n[1]+":";return c.has(o)}function h(e){if(!e)return"";return[/expression\s*\(/i,/javascript\s*:/i,/vbscript\s*:/i,/url\s*\(\s*['"]?\s*javascript:/i,/-moz-binding/i,/behavior\s*:/i].some(t=>t.test(e))?"":e}function p(e){if(!e)return"";const t=e.trim();if(t.startsWith("#"))return t;if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t).protocol.toLowerCase();if(c.has(e))return t;return new URL("https://"+t).href}catch(e){return""}}function v(e){if(!e)return"";const t=e.trim();if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t),n=e.protocol.toLowerCase();if("http:"===n||"https:"===n)return t;if("data:"===n){return e.pathname.split(";")[0].split(",")[0].toLowerCase().startsWith("image/")?t:""}return""}catch(e){return""}}const g={content:"",placeholder:"Start typing...",height:"300px",readOnly:!1,maxLength:0,maxUndoLevels:100,autoFocus:!1},f={words:"words",characters:"characters",insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function b(e){const o={...g,...e},r={...f,...o.locale};let l;if("string"==typeof o.container){const e=document.querySelector(o.container);if(!e)throw new Error(`SRich Editor: Container element not found for selector "${o.container}"`);l=e}else l=o.container;const s=document.createElement("div");s.className="re-wrapper",s.setAttribute("dir","ltr");const c=document.createElement("div");c.className="re-toolbar",c.setAttribute("role","toolbar"),c.setAttribute("aria-label","Formatting toolbar");const u=document.createElement("div");u.className="re-content",u.setAttribute("contenteditable","true"),u.setAttribute("role","textbox"),u.setAttribute("aria-multiline","true"),u.setAttribute("aria-label","Rich text editor"),u.style.minHeight=o.height||"300px";const m=document.createElement("div");m.className="re-placeholder",m.textContent=o.placeholder||"Start typing...";const h=document.createElement("div");h.className="re-statusbar",h.setAttribute("aria-live","polite"),s.appendChild(c),s.appendChild(document.createElement("div")).className="re-content-wrapper";const b=s.querySelector(".re-content-wrapper");b.appendChild(m),b.appendChild(u),s.appendChild(h),l.appendChild(s);let C=!1;o.className;const y=[],L=[],x=o.maxUndoLevels||100;let E=!1,w="";function k(){if(E)return;const e=u.innerHTML;e!==w&&(y.push(w),y.length>x&&y.shift(),w=e,L.length=0,H())}function H(){const e=c.querySelector('[data-command="undo"]'),t=c.querySelector('[data-command="redo"]');e&&(e.classList.toggle("re-disabled",0===y.length),e.setAttribute("aria-disabled",String(0===y.length))),t&&(t.classList.toggle("re-disabled",0===L.length),t.setAttribute("aria-disabled",String(0===L.length)))}function z(){var e;const t=""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim();m.style.display=t?"block":"none"}function N(){c.querySelectorAll(".re-btn[data-command]").forEach(e=>{const t=e.dataset.command,n=e.dataset.value;if(t&&"undo"!==t&&"redo"!==t){let o=!1;try{o="formatBlock"===t&&n?document.queryCommandValue("formatBlock").toUpperCase()===n.toUpperCase():document.queryCommandState(t)}catch(e){}e.classList.toggle("re-active",o),e.setAttribute("aria-pressed",String(o))}}),H()}function A(){const e=u.textContent||"",t=e.length,n=""===e.trim()?0:e.trim().split(/\s+/).length;h.textContent=`${n} ${r.words} · ${t} ${r.characters}`}let T=null;function M(){T||(T=setTimeout(()=>{T=null,B()},0))}function B(){z(),A(),N(),o.onChange&&o.onChange(u.innerHTML)}function R(){if(!o.maxLength||o.maxLength<=0)return!0;return!((u.textContent||"").length>o.maxLength)||(u.innerHTML=w,!1)}function S(){const e=window.getSelection();return e&&e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function I(e){if(!e)return!1;const t=window.getSelection();return!!t&&(t.removeAllRanges(),t.addRange(e),!0)}async function D(){var e;const{selectedText:t,linkUrl:n,linkNode:o}=function(){const e=window.getSelection();let t="",n=null,o=null;if(e&&e.rangeCount>0){t=e.toString();let i=e.anchorNode;for(;i&&i!==u;){if(i.nodeType===Node.ELEMENT_NODE&&"A"===i.tagName){o=i,n=o.getAttribute("href")||"",t||(t=o.textContent||"");break}i=i.parentNode}}return{selectedText:t,linkUrl:n,linkNode:o}}(),a=S(),l=await i(t,n||"",r);if(l){if(k(),"remove"===l.action){if(o){const t=document.createTextNode(o.textContent||"");null===(e=o.parentNode)||void 0===e||e.replaceChild(t,o),B()}return}if(o)o.setAttribute("href",p(l.url)),l.text&&o.textContent!==l.text&&(o.textContent=l.text),B();else if(u.focus(),I(a),t){const e=window.getSelection();if(e&&e.rangeCount>0){const n=e.getRangeAt(0);if(u.contains(n.commonAncestorContainer)){const o=n.extractContents(),i=document.createElement("a");i.href=p(l.url),l.text&&l.text!==t?i.textContent=l.text:i.appendChild(o),n.insertNode(i),n.setStartAfter(i),n.collapse(!0),e.removeAllRanges(),e.addRange(n)}else{const e=document.createElement("a");e.href=p(l.url),e.textContent=l.text||t,u.appendChild(e)}B()}}else{const e=document.createElement("a");e.href=p(l.url),e.textContent=l.text||l.url;const t=window.getSelection();if(t&&t.rangeCount>0){const n=t.getRangeAt(0);n.insertNode(e),n.setStartAfter(e),n.collapse(!0),t.removeAllRanges(),t.addRange(n)}else u.appendChild(e);B()}}}function U(e,t){C||("undo"!==e?"redo"!==e?(u.focus(),"createLink"!==e?"insertImage"!==e?(k(),"formatBlock"===e&&t?document.execCommand("formatBlock",!1,t):(document.execCommand(e,!1,t||""),k(),N(),M())):async function(){const e=S(),t=await a("","",r);if(t){u.focus(),I(e),k();const n=document.createElement("img");n.src=v(t.url),n.alt=t.alt;const o=window.getSelection();if(o&&o.rangeCount>0){const e=o.getRangeAt(0);u.contains(e.commonAncestorContainer)?(e.deleteContents(),e.insertNode(n),e.setStartAfter(n),e.collapse(!0),o.removeAllRanges(),o.addRange(e)):u.appendChild(n)}else u.appendChild(n);B()}}():D()):j():V())}function V(){if(0===y.length)return;const e=u.innerHTML,t=y.pop();L.push(e),E=!0,u.innerHTML=t,w=t,E=!1,B(),H()}function j(){if(0===L.length)return;const e=u.innerHTML,t=L.pop();y.push(e),E=!0,u.innerHTML=t,w=t,E=!1,B(),H()}function q(e){if(!C){if(o.onKeyDown){if(!1===o.onKeyDown(e))return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey)switch(e.key.toLowerCase()){case"b":e.preventDefault(),U("bold");break;case"i":e.preventDefault(),U("italic");break;case"u":e.preventDefault(),U("underline");break;case"z":e.preventDefault(),V();break;case"y":e.preventDefault(),j()}(e.ctrlKey||e.metaKey)&&e.shiftKey&&"z"===e.key.toLowerCase()&&(e.preventDefault(),j()),"Tab"===e.key&&(e.preventDefault(),document.execCommand("insertHTML",!1," "),M())}}function K(e){if(o.onPaste){if(!1===o.onPaste(e))return}k(),setTimeout(()=>{R(),B()},0)}let F=0;function O(e){F=e.touches[0].clientY}function P(e){const t=e.changedTouches[0].clientY;Math.abs(t-F)<10&&N()}function W(){N(),o.onFocus&&o.onFocus()}function $(){N(),o.onBlur&&o.onBlur()}let _=null;const Q=new MutationObserver(function(){_&&clearTimeout(_),_=setTimeout(()=>{E||(z(),A(),N())},100)});u.addEventListener("input",()=>{R()&&(k(),M())}),u.addEventListener("keyup",N),u.addEventListener("mouseup",N),u.addEventListener("keydown",q),u.addEventListener("paste",K),u.addEventListener("focus",W),u.addEventListener("blur",$),u.addEventListener("touchstart",O,{passive:!0}),u.addEventListener("touchend",P,{passive:!0}),Q.observe(u,{childList:!0,subtree:!0,characterData:!0}),o.content&&(u.innerHTML=d(o.content)),o.readOnly&&(u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0),o.className&&(o.className,s.classList.add(...o.className.split(/\s+/).filter(Boolean))),!1===o.toolbarVisible&&(c.style.display="none"),!1===o.statusBarVisible&&(h.style.display="none"),(o.toolbar||n).forEach(e=>{if("separator"===e.type){const e=document.createElement("div");return e.className="re-separator",e.setAttribute("role","separator"),e.setAttribute("aria-orientation","vertical"),void c.appendChild(e)}if("button"===e.type&&e.command){const n=document.createElement("button");n.className="re-btn",n.type="button",n.setAttribute("aria-label",e.tooltip||e.name||""),n.setAttribute("aria-pressed","false"),n.setAttribute("title",e.tooltip||""),n.dataset.command=e.command,e.value&&(n.dataset.value=e.value);const o=e.icon||e.name||"";t[o]?n.innerHTML=t[o]:n.textContent=e.name||e.command,n.addEventListener("mousedown",e=>{e.preventDefault()}),n.addEventListener("click",t=>{t.preventDefault(),U(e.command,e.value)}),c.appendChild(n)}}),o.customButtons&&0!==o.customButtons.length&&o.customButtons.forEach(e=>{const t=document.createElement("button");t.className="re-btn",t.type="button",t.setAttribute("aria-label",e.tooltip),t.setAttribute("title",e.tooltip),t.dataset.command="custom",t.dataset.customName=e.name,e.icon?t.innerHTML=e.icon:t.textContent=e.name,t.addEventListener("mousedown",e=>{e.preventDefault()}),t.addEventListener("click",t=>{t.preventDefault(),C||e.command(Y)}),void 0!==e.position&&e.position<c.children.length?c.insertBefore(t,c.children[e.position]):c.appendChild(t)}),z(),A(),w=u.innerHTML,y.length=0,L.length=0,H(),o.autoFocus&&u.focus(),o.onReady&&o.onReady();const Y={getContent:()=>u.innerHTML,setContent(e){k(),u.innerHTML=d(e),w=u.innerHTML,B()},getText:()=>u.textContent||"",execCommand(e,t){U(e,t)},queryCommandState(e){try{return document.queryCommandState(e)}catch(e){return!1}},destroy(){u.removeEventListener("input",M),u.removeEventListener("keyup",N),u.removeEventListener("mouseup",N),u.removeEventListener("keydown",q),u.removeEventListener("paste",K),u.removeEventListener("focus",W),u.removeEventListener("blur",$),u.removeEventListener("touchstart",O),u.removeEventListener("touchend",P),Q.disconnect(),T&&clearTimeout(T),_&&clearTimeout(_),document.querySelectorAll(".re-dialog-overlay").forEach(e=>e.remove()),s.remove()},getElement:()=>s,enable(){u.setAttribute("contenteditable","true"),s.classList.remove("re-readonly"),C=!1,B()},disable(){u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0},focus(){u.focus()},isEmpty(){var e;return""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim()},canUndo:()=>y.length>0,canRedo:()=>L.length>0,undo(){V()},redo(){j()},getCharacterCount:()=>(u.textContent||"").length,getWordCount(){const e=(u.textContent||"").trim();return""===e?0:e.split(/\s+/).length}};return Y}var C={createEditor:b};e.createEditor=b,e.default=C,e.defaultToolbar=n,e.icons=t,e.sanitizeHTML=d,e.sanitizeImageURL=v,e.sanitizeLinkURL=p,e.showImageDialog=a,e.showLinkDialog=i,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
6
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SRichEditor={})}(this,function(e){"use strict";const t={bold:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>',italic:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>',underline:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>',strikethrough:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z"/></svg>',heading1:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H1</text></svg>',heading2:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H2</text></svg>',heading3:'<svg viewBox="0 0 24 24" width="18" height="18"><text x="3" y="18" font-size="16" font-weight="bold" fill="currentColor" font-family="sans-serif">H3</text></svg>',unorderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"/></svg>',orderedList:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></svg>',justifyLeft:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z"/></svg>',justifyCenter:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z"/></svg>',justifyRight:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z"/></svg>',link:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>',image:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>',code:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/></svg>',undo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></svg>',redo:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></svg>',blockquote:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"/></svg>',horizontalRule:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M2 11h20v2H2z"/></svg>',removeFormat:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z"/></svg>',textColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M11 2L5.5 16h2.25l1.12-3h6.25l1.12 3h2.25L13 2h-2zm-1.38 9L12 4.67 14.38 11H9.62z"/></svg>',bgColor:'<svg viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.59-.59 1.54 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5z"/><rect fill="currentColor" x="3" y="19" width="18" height="4"/></svg>'},n=[{type:"button",name:"undo",icon:"undo",tooltip:"Undo",command:"undo"},{type:"button",name:"redo",icon:"redo",tooltip:"Redo",command:"redo"},{type:"separator"},{type:"button",name:"bold",icon:"bold",tooltip:"Bold (Ctrl+B)",command:"bold"},{type:"button",name:"italic",icon:"italic",tooltip:"Italic (Ctrl+I)",command:"italic"},{type:"button",name:"underline",icon:"underline",tooltip:"Underline (Ctrl+U)",command:"underline"},{type:"button",name:"strikethrough",icon:"strikethrough",tooltip:"Strikethrough",command:"strikeThrough"},{type:"separator"},{type:"button",name:"heading1",icon:"heading1",tooltip:"Heading 1",command:"formatBlock",value:"H1"},{type:"button",name:"heading2",icon:"heading2",tooltip:"Heading 2",command:"formatBlock",value:"H2"},{type:"button",name:"heading3",icon:"heading3",tooltip:"Heading 3",command:"formatBlock",value:"H3"},{type:"separator"},{type:"button",name:"justifyLeft",icon:"justifyLeft",tooltip:"Align Left",command:"justifyLeft"},{type:"button",name:"justifyCenter",icon:"justifyCenter",tooltip:"Align Center",command:"justifyCenter"},{type:"button",name:"justifyRight",icon:"justifyRight",tooltip:"Align Right",command:"justifyRight"},{type:"separator"},{type:"button",name:"unorderedList",icon:"unorderedList",tooltip:"Bullet List",command:"insertUnorderedList"},{type:"button",name:"orderedList",icon:"orderedList",tooltip:"Numbered List",command:"insertOrderedList"},{type:"button",name:"blockquote",icon:"blockquote",tooltip:"Block Quote",command:"formatBlock",value:"BLOCKQUOTE"},{type:"separator"},{type:"button",name:"link",icon:"link",tooltip:"Insert Link",command:"createLink"},{type:"button",name:"image",icon:"image",tooltip:"Insert Image",command:"insertImage"},{type:"button",name:"horizontalRule",icon:"horizontalRule",tooltip:"Horizontal Line",command:"insertHorizontalRule"},{type:"separator"},{type:"button",name:"code",icon:"code",tooltip:"Code Block",command:"formatBlock",value:"PRE"},{type:"separator"},{type:"button",name:"removeFormat",icon:"removeFormat",tooltip:"Clear Formatting",command:"removeFormat"},{type:"button",name:"textColor",icon:"textColor",tooltip:"Text Color",command:"foreColor"},{type:"button",name:"bgColor",icon:"bgColor",tooltip:"Background Color",command:"hiliteColor"}],o={insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function i(e="",t="",n){const i={...o,...n};return new Promise(n=>{document.querySelectorAll(".re-link-tooltip").forEach(e=>e.remove());const o=document.createElement("div");o.className="re-link-tooltip",o.setAttribute("role","dialog"),o.setAttribute("aria-label",t?i.editLink:i.insertLink);const r=document.createElement("div");r.className="re-link-tooltip-row";const a=document.createElement("span");a.className="re-link-tooltip-icon",a.innerHTML='<svg viewBox="0 0 24 24" width="14" height="14"><path fill="currentColor" d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>';const l=document.createElement("input");l.className="re-link-tooltip-input",l.type="url",l.placeholder="https://example.com",l.value=t,r.appendChild(a),r.appendChild(l);const s=document.createElement("div");s.className="re-link-tooltip-row";const c=document.createElement("span");c.className="re-link-tooltip-icon",c.innerHTML='<svg viewBox="0 0 24 24" width="14" height="14"><path fill="currentColor" d="M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z"/></svg>';const d=document.createElement("input");d.className="re-link-tooltip-input",d.type="text",d.placeholder=i.displayText,d.value=e,s.appendChild(c),s.appendChild(d);const u=document.createElement("div");if(u.className="re-link-tooltip-btn-row",t){const e=document.createElement("button");e.className="re-link-tooltip-btn re-link-tooltip-btn-remove",e.type="button",e.textContent=i.removeLink,e.addEventListener("mousedown",e=>e.preventDefault()),e.addEventListener("click",e=>{e.preventDefault(),v(),n({action:"remove",text:"",url:""})}),u.appendChild(e)}const m=document.createElement("span");m.className="re-link-tooltip-spacer";const p=document.createElement("button");p.className="re-link-tooltip-btn re-link-tooltip-btn-cancel",p.type="button",p.textContent=i.cancel;const h=document.createElement("button");function v(){o.remove()}function f(){const e=l.value.trim(),t=d.value.trim();if(!e)return l.focus(),l.classList.add("re-link-tooltip-input-error"),void setTimeout(()=>l.classList.remove("re-link-tooltip-input-error"),1500);n({action:"insert",text:t||e,url:e}),v()}function g(){n(null),v()}function b(e){o.contains(e.target)||(v(),n(null),document.removeEventListener("mousedown",b))}h.className="re-link-tooltip-btn re-link-tooltip-btn-confirm",h.type="button",h.textContent=t?i.save:i.insert,u.appendChild(m),u.appendChild(p),u.appendChild(h),o.appendChild(r),o.appendChild(s),o.appendChild(u),document.body.appendChild(o),function(e){const t=function(){var e;const t=window.getSelection();if(t&&t.rangeCount>0){const n=t.getRangeAt(0),o=n.getBoundingClientRect();if(0===o.width&&0===o.height){const t=n.cloneRange();t.collapse(!0);const o=t.getBoundingClientRect();if(0===o.width&&0===o.height){const o=document.createElement("span");o.textContent="",t.insertNode(o);const i=o.getBoundingClientRect();return null===(e=o.parentNode)||void 0===e||e.removeChild(o),n.startContainer.parentNode&&n.startContainer.parentNode.normalize(),i}return o}return o}return null}();if(!t)return e.style.position="fixed",e.style.left="50%",e.style.top="50%",void(e.style.transform="translate(-50%, -50%)");e.style.position="fixed";const n=e.getBoundingClientRect(),o=window.innerWidth,i=window.innerHeight;let r=t.bottom+8,a=t.left+t.width/2-n.width/2;r+n.height>i-8&&(r=t.top-8-n.height);r<8&&(r=8);a<8?a=8:a+n.width>o-8&&(a=o-8-n.width);e.style.left=`${a}px`,e.style.top=`${r}px`}(o),setTimeout(()=>{t?(l.focus(),l.select()):d.focus()},10),p.addEventListener("mousedown",e=>e.preventDefault()),p.addEventListener("click",e=>{e.preventDefault(),g()}),h.addEventListener("mousedown",e=>e.preventDefault()),h.addEventListener("click",e=>{e.preventDefault(),f()}),setTimeout(()=>{document.addEventListener("mousedown",b)},0),o.addEventListener("keydown",e=>{"Escape"===e.key?(e.preventDefault(),e.stopPropagation(),g()):"Enter"===e.key&&(e.preventDefault(),e.stopPropagation(),f())}),o.addEventListener("mousedown",e=>{e.stopPropagation()})})}function r(e="",t="",n){const i={...o,...n};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const r=document.createElement("div");r.className="re-dialog",r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",e?i.editImage:i.insertImage);const a=document.createElement("div");a.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=e?i.editImage:i.insertImage;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",a.appendChild(l),a.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-image-url"),u.textContent=i.imageUrl;const m=document.createElement("input");m.className="re-dialog-input",m.type="url",m.id="re-image-url",m.placeholder="https://example.com/image.jpg",m.value=e,d.appendChild(u),d.appendChild(m);const p=document.createElement("div");p.className="re-dialog-field";const h=document.createElement("label");h.className="re-dialog-label",h.setAttribute("for","re-image-alt"),h.textContent=i.altText;const v=document.createElement("input");v.className="re-dialog-input",v.type="text",v.id="re-image-alt",v.placeholder="Description of the image",v.value=t,p.appendChild(h),p.appendChild(v);const f=document.createElement("div");f.className="re-dialog-field";const g=document.createElement("span");g.className="re-dialog-label",g.textContent=i.preview;const b=document.createElement("div");b.className="re-dialog-image-preview",m.addEventListener("input",function(){const e=m.value.trim();if(b.innerHTML="",e){const t=document.createElement("img");t.src=e,t.alt=v.value,t.onerror=()=>{b.innerHTML=`<span class="re-dialog-image-error">${i.unableToLoadImage}</span>`},b.appendChild(t)}}),f.appendChild(g),f.appendChild(b),c.appendChild(d),c.appendChild(p),c.appendChild(f);const C=document.createElement("div");C.className="re-dialog-footer";const y=document.createElement("button");y.className="re-dialog-btn re-dialog-btn-cancel",y.type="button",y.textContent=i.cancel;const L=document.createElement("button");function E(){o.remove()}function x(){const e=m.value.trim(),t=v.value.trim();if(!e)return m.focus(),m.classList.add("re-dialog-input-error"),void setTimeout(()=>m.classList.remove("re-dialog-input-error"),1500);n({url:e,alt:t}),E()}function w(){n(null),E()}L.className="re-dialog-btn re-dialog-btn-confirm",L.type="button",L.textContent=e?i.save:i.insert,C.appendChild(y),C.appendChild(L),r.appendChild(a),r.appendChild(c),r.appendChild(C),o.appendChild(r),document.body.appendChild(o),setTimeout(()=>{m.focus(),m.select()},50),s.addEventListener("click",w),y.addEventListener("click",w),L.addEventListener("click",x),o.addEventListener("click",e=>{e.target===o&&w()}),r.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),w();else if("Enter"===e.key&&document.activeElement===m)e.preventDefault(),x();else if("Tab"===e.key){const t=r.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})}const a=new Set(["script","iframe","object","embed","applet","form","input","textarea","select","button","link","meta","style","base","noscript","template","slot","shadow"]),l=new Set(["font","center"]),s=[/^on/i,/expression\(/i,/url\(/i,/javascript:/i,/vbscript:/i],c=new Set(["http:","https:","mailto:","tel:","ftp:","#",""]);function d(e){if(!e)return"";const t=(new DOMParser).parseFromString(e,"text/html").body;return u(t),t.innerHTML}function u(e){const t=Array.from(e.childNodes);for(const e of t)if(e.nodeType===Node.ELEMENT_NODE){const t=e,n=t.tagName.toLowerCase();if(a.has(n)){t.remove();continue}if(l.has(n)){const e=t.parentNode;if(e){for(;t.firstChild;)e.insertBefore(t.firstChild,t);t.remove()}continue}const o=Array.from(t.attributes);for(const e of o){const n=e.name.toLowerCase(),o=e.value;if(s.some(e=>e.test(n)))t.removeAttribute(e.name);else if(["srcdoc","dynsrc","lowsrc","action","formaction","xlink:href"].includes(n))t.removeAttribute(e.name);else{if("style"===n){const e=p(o);e?t.setAttribute("style",e):t.removeAttribute("style");continue}["href","src","action","poster","background"].includes(n)&&(m(o)||t.removeAttribute(e.name))}}u(t)}}function m(e){if(!e)return!0;const t=e.trim().toLowerCase();if(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||!t.includes(":"))return!0;if(t.startsWith("#"))return!0;const n=t.match(/^([a-z][a-z0-9+.-]*):/);if(!n)return!0;const o=n[1]+":";return c.has(o)}function p(e){if(!e)return"";return[/expression\s*\(/i,/javascript\s*:/i,/vbscript\s*:/i,/url\s*\(\s*['"]?\s*javascript:/i,/-moz-binding/i,/behavior\s*:/i].some(t=>t.test(e))?"":e}function h(e){if(!e)return"";const t=e.trim();if(t.startsWith("#"))return t;if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t).protocol.toLowerCase();if(c.has(e))return t;return new URL("https://"+t).href}catch(e){return""}}function v(e){if(!e)return"";const t=e.trim();if(!t.includes(":")||t.startsWith("/"))return t;try{const e=new URL(t),n=e.protocol.toLowerCase();if("http:"===n||"https:"===n)return t;if("data:"===n){return e.pathname.split(";")[0].split(",")[0].toLowerCase().startsWith("image/")?t:""}return""}catch(e){return""}}const f={content:"",placeholder:"Start typing...",height:"300px",readOnly:!1,maxLength:0,maxUndoLevels:100,autoFocus:!1},g={words:"words",characters:"characters",insertLink:"Insert Link",editLink:"Edit Link",insertImage:"Insert Image",editImage:"Edit Image",displayText:"Display Text",url:"URL",imageUrl:"Image URL",altText:"Alt Text",preview:"Preview",cancel:"Cancel",insert:"Insert",save:"Save",removeLink:"Remove Link",close:"Close",unableToLoadImage:"Unable to load image"};function b(e){const o={...f,...e},a={...g,...o.locale};let l;if("string"==typeof o.container){const e=document.querySelector(o.container);if(!e)throw new Error(`SRich Editor: Container element not found for selector "${o.container}"`);l=e}else l=o.container;const s=document.createElement("div");s.className="re-wrapper",s.setAttribute("dir","ltr");const c=document.createElement("div");c.className="re-toolbar",c.setAttribute("role","toolbar"),c.setAttribute("aria-label","Formatting toolbar");const u=document.createElement("div");u.className="re-content",u.setAttribute("contenteditable","true"),u.setAttribute("role","textbox"),u.setAttribute("aria-multiline","true"),u.setAttribute("aria-label","Rich text editor"),u.style.minHeight=o.height||"300px";const m=document.createElement("div");m.className="re-placeholder",m.textContent=o.placeholder||"Start typing...";const p=document.createElement("div");p.className="re-statusbar",p.setAttribute("aria-live","polite"),s.appendChild(c),s.appendChild(document.createElement("div")).className="re-content-wrapper";const b=s.querySelector(".re-content-wrapper");b.appendChild(m),b.appendChild(u),s.appendChild(p),l.appendChild(s);let C=!1;o.className;const y=[],L=[],E=o.maxUndoLevels||100;let x=!1,w="";function k(){if(x)return;const e=u.innerHTML;e!==w&&(y.push(w),y.length>E&&y.shift(),w=e,L.length=0,H())}function H(){const e=c.querySelector('[data-command="undo"]'),t=c.querySelector('[data-command="redo"]');e&&(e.classList.toggle("re-disabled",0===y.length),e.setAttribute("aria-disabled",String(0===y.length))),t&&(t.classList.toggle("re-disabled",0===L.length),t.setAttribute("aria-disabled",String(0===L.length)))}function N(){var e;const t=""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim();m.style.display=t?"block":"none"}function z(){c.querySelectorAll(".re-btn[data-command]").forEach(e=>{const t=e.dataset.command,n=e.dataset.value;if(t&&"undo"!==t&&"redo"!==t){let o=!1;try{o="formatBlock"===t&&n?document.queryCommandValue("formatBlock").toUpperCase()===n.toUpperCase():document.queryCommandState(t)}catch(e){}e.classList.toggle("re-active",o),e.setAttribute("aria-pressed",String(o))}}),H()}function T(){const e=u.textContent||"",t=e.length,n=""===e.trim()?0:e.trim().split(/\s+/).length;p.textContent=`${n} ${a.words} · ${t} ${a.characters}`}let A=null;function M(){A||(A=setTimeout(()=>{A=null,B()},0))}function B(){N(),T(),z(),o.onChange&&o.onChange(u.innerHTML)}function R(){if(!o.maxLength||o.maxLength<=0)return!0;return!((u.textContent||"").length>o.maxLength)||(u.innerHTML=w,!1)}function S(){const e=window.getSelection();return e&&e.rangeCount>0?e.getRangeAt(0).cloneRange():null}function D(e){if(!e)return!1;const t=window.getSelection();return!!t&&(t.removeAllRanges(),t.addRange(e),!0)}async function I(){var e;const{selectedText:t,linkUrl:n,linkNode:o}=function(){const e=window.getSelection();let t="",n=null,o=null;if(e&&e.rangeCount>0){t=e.toString();let i=e.anchorNode;for(;i&&i!==u;){if(i.nodeType===Node.ELEMENT_NODE&&"A"===i.tagName){o=i,n=o.getAttribute("href")||"",t||(t=o.textContent||"");break}i=i.parentNode}}return{selectedText:t,linkUrl:n,linkNode:o}}(),r=S(),l=await i(t,n||"",a);if(l){if(k(),"remove"===l.action){if(o){const t=document.createTextNode(o.textContent||"");null===(e=o.parentNode)||void 0===e||e.replaceChild(t,o),B()}return}if(o)o.setAttribute("href",h(l.url)),l.text&&o.textContent!==l.text&&(o.textContent=l.text),B();else if(u.focus(),D(r),t){const e=window.getSelection();if(e&&e.rangeCount>0){const n=e.getRangeAt(0);if(u.contains(n.commonAncestorContainer)){const o=n.extractContents(),i=document.createElement("a");i.href=h(l.url),l.text&&l.text!==t?i.textContent=l.text:i.appendChild(o),n.insertNode(i),n.setStartAfter(i),n.collapse(!0),e.removeAllRanges(),e.addRange(n)}else{const e=document.createElement("a");e.href=h(l.url),e.textContent=l.text||t,u.appendChild(e)}B()}}else{const e=document.createElement("a");e.href=h(l.url),e.textContent=l.text||l.url;const t=window.getSelection();if(t&&t.rangeCount>0){const n=t.getRangeAt(0);n.insertNode(e),n.setStartAfter(e),n.collapse(!0),t.removeAllRanges(),t.addRange(n)}else u.appendChild(e);B()}}}function V(e,t){C||("undo"!==e?"redo"!==e?(u.focus(),"createLink"!==e?"insertImage"!==e?(k(),"formatBlock"===e&&t?document.execCommand("formatBlock",!1,t):(document.execCommand(e,!1,t||""),k(),z(),M())):async function(){const e=S(),t=await r("","",a);if(t){u.focus(),D(e),k();const n=document.createElement("img");n.src=v(t.url),n.alt=t.alt;const o=window.getSelection();if(o&&o.rangeCount>0){const e=o.getRangeAt(0);u.contains(e.commonAncestorContainer)?(e.deleteContents(),e.insertNode(n),e.setStartAfter(n),e.collapse(!0),o.removeAllRanges(),o.addRange(e)):u.appendChild(n)}else u.appendChild(n);B()}}():I()):j():U())}function U(){if(0===y.length)return;const e=u.innerHTML,t=y.pop();L.push(e),x=!0,u.innerHTML=t,w=t,x=!1,B(),H()}function j(){if(0===L.length)return;const e=u.innerHTML,t=L.pop();y.push(e),x=!0,u.innerHTML=t,w=t,x=!1,B(),H()}function q(e){if(!C){if(o.onKeyDown){if(!1===o.onKeyDown(e))return}if((e.ctrlKey||e.metaKey)&&!e.shiftKey)switch(e.key.toLowerCase()){case"b":e.preventDefault(),V("bold");break;case"i":e.preventDefault(),V("italic");break;case"u":e.preventDefault(),V("underline");break;case"z":e.preventDefault(),U();break;case"y":e.preventDefault(),j()}(e.ctrlKey||e.metaKey)&&e.shiftKey&&"z"===e.key.toLowerCase()&&(e.preventDefault(),j()),"Tab"===e.key&&(e.preventDefault(),document.execCommand("insertHTML",!1," "),M())}}function K(e){if(o.onPaste){if(!1===o.onPaste(e))return}k(),setTimeout(()=>{R(),B()},0)}let P=0;function F(e){P=e.touches[0].clientY}function O(e){const t=e.changedTouches[0].clientY;Math.abs(t-P)<10&&z()}function W(){z(),o.onFocus&&o.onFocus()}function $(){z(),o.onBlur&&o.onBlur()}let _=null;const Q=new MutationObserver(function(){_&&clearTimeout(_),_=setTimeout(()=>{x||(N(),T(),z())},100)});u.addEventListener("input",()=>{R()&&(k(),M())}),u.addEventListener("keyup",z),u.addEventListener("mouseup",z),u.addEventListener("keydown",q),u.addEventListener("paste",K),u.addEventListener("focus",W),u.addEventListener("blur",$),u.addEventListener("touchstart",F,{passive:!0}),u.addEventListener("touchend",O,{passive:!0}),Q.observe(u,{childList:!0,subtree:!0,characterData:!0}),o.content&&(u.innerHTML=d(o.content)),o.readOnly&&(u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0),o.className&&(o.className,s.classList.add(...o.className.split(/\s+/).filter(Boolean))),!1===o.toolbarVisible&&(c.style.display="none"),!1===o.statusBarVisible&&(p.style.display="none"),(o.toolbar||n).forEach(e=>{if("separator"===e.type){const e=document.createElement("div");return e.className="re-separator",e.setAttribute("role","separator"),e.setAttribute("aria-orientation","vertical"),void c.appendChild(e)}if("button"===e.type&&e.command){const n=document.createElement("button");n.className="re-btn",n.type="button",n.setAttribute("aria-label",e.tooltip||e.name||""),n.setAttribute("aria-pressed","false"),n.setAttribute("title",e.tooltip||""),n.dataset.command=e.command,e.value&&(n.dataset.value=e.value);const o=e.icon||e.name||"";t[o]?n.innerHTML=t[o]:n.textContent=e.name||e.command,n.addEventListener("mousedown",e=>{e.preventDefault()}),n.addEventListener("click",t=>{t.preventDefault(),V(e.command,e.value)}),c.appendChild(n)}}),o.customButtons&&0!==o.customButtons.length&&o.customButtons.forEach(e=>{const t=document.createElement("button");t.className="re-btn",t.type="button",t.setAttribute("aria-label",e.tooltip),t.setAttribute("title",e.tooltip),t.dataset.command="custom",t.dataset.customName=e.name,e.icon?t.innerHTML=e.icon:t.textContent=e.name,t.addEventListener("mousedown",e=>{e.preventDefault()}),t.addEventListener("click",t=>{t.preventDefault(),C||e.command(Y)}),void 0!==e.position&&e.position<c.children.length?c.insertBefore(t,c.children[e.position]):c.appendChild(t)}),N(),T(),w=u.innerHTML,y.length=0,L.length=0,H(),o.autoFocus&&u.focus(),o.onReady&&o.onReady();const Y={getContent:()=>u.innerHTML,setContent(e){k(),u.innerHTML=d(e),w=u.innerHTML,B()},getText:()=>u.textContent||"",execCommand(e,t){V(e,t)},queryCommandState(e){try{return document.queryCommandState(e)}catch(e){return!1}},destroy(){u.removeEventListener("input",M),u.removeEventListener("keyup",z),u.removeEventListener("mouseup",z),u.removeEventListener("keydown",q),u.removeEventListener("paste",K),u.removeEventListener("focus",W),u.removeEventListener("blur",$),u.removeEventListener("touchstart",F),u.removeEventListener("touchend",O),Q.disconnect(),A&&clearTimeout(A),_&&clearTimeout(_),document.querySelectorAll(".re-dialog-overlay").forEach(e=>e.remove()),document.querySelectorAll(".re-link-tooltip").forEach(e=>e.remove()),s.remove()},getElement:()=>s,enable(){u.setAttribute("contenteditable","true"),s.classList.remove("re-readonly"),C=!1,B()},disable(){u.setAttribute("contenteditable","false"),s.classList.add("re-readonly"),C=!0},focus(){u.focus()},isEmpty(){var e;return""===(null===(e=u.textContent)||void 0===e?void 0:e.trim())&&""===u.innerHTML.replace(/<br\s*\/?>/gi,"").trim()},canUndo:()=>y.length>0,canRedo:()=>L.length>0,undo(){U()},redo(){j()},getCharacterCount:()=>(u.textContent||"").length,getWordCount(){const e=(u.textContent||"").trim();return""===e?0:e.split(/\s+/).length}};return Y}var C={createEditor:b};e.createEditor=b,e.default=C,e.defaultToolbar=n,e.icons=t,e.sanitizeHTML=d,e.sanitizeImageURL=v,e.sanitizeLinkURL=h,e.showImageDialog=r,e.showLinkDialog=function(e="",t="",n){const i={...o,...n};return new Promise(n=>{const o=document.createElement("div");o.className="re-dialog-overlay";const r=document.createElement("div");r.className="re-dialog",r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("aria-label",t?i.editLink:i.insertLink);const a=document.createElement("div");a.className="re-dialog-header";const l=document.createElement("span");l.className="re-dialog-title",l.textContent=t?i.editLink:i.insertLink;const s=document.createElement("button");s.className="re-dialog-close",s.type="button",s.setAttribute("aria-label",i.close),s.innerHTML="×",a.appendChild(l),a.appendChild(s);const c=document.createElement("div");c.className="re-dialog-body";const d=document.createElement("div");d.className="re-dialog-field";const u=document.createElement("label");u.className="re-dialog-label",u.setAttribute("for","re-link-text"),u.textContent=i.displayText;const m=document.createElement("input");m.className="re-dialog-input",m.type="text",m.id="re-link-text",m.placeholder="Text to display",m.value=e,d.appendChild(u),d.appendChild(m);const p=document.createElement("div");p.className="re-dialog-field";const h=document.createElement("label");h.className="re-dialog-label",h.setAttribute("for","re-link-url"),h.textContent=i.url;const v=document.createElement("input");v.className="re-dialog-input",v.type="url",v.id="re-link-url",v.placeholder="https://example.com",v.value=t,p.appendChild(h),p.appendChild(v),c.appendChild(d),c.appendChild(p);const f=document.createElement("div");if(f.className="re-dialog-footer",t){const e=document.createElement("button");e.className="re-dialog-btn re-dialog-btn-remove",e.type="button",e.textContent=i.removeLink,e.addEventListener("click",()=>{C(),n({action:"remove",text:"",url:""})}),f.appendChild(e)}const g=document.createElement("button");g.className="re-dialog-btn re-dialog-btn-cancel",g.type="button",g.textContent=i.cancel;const b=document.createElement("button");function C(){o.remove()}function y(){const e=m.value.trim(),t=v.value.trim();if(!t)return v.focus(),v.classList.add("re-dialog-input-error"),void setTimeout(()=>v.classList.remove("re-dialog-input-error"),1500);n({action:"insert",text:e||t,url:t}),C()}function L(){n(null),C()}b.className="re-dialog-btn re-dialog-btn-confirm",b.type="button",b.textContent=t?i.save:i.insert,f.appendChild(g),f.appendChild(b),r.appendChild(a),r.appendChild(c),r.appendChild(f),o.appendChild(r),document.body.appendChild(o),setTimeout(()=>{t?(v.focus(),v.select()):m.focus()},50),s.addEventListener("click",L),g.addEventListener("click",L),b.addEventListener("click",y),o.addEventListener("click",e=>{e.target===o&&L()}),r.addEventListener("keydown",e=>{if("Escape"===e.key)e.preventDefault(),L();else if("Enter"===e.key&&document.activeElement===v)e.preventDefault(),y();else if("Tab"===e.key){const t=r.querySelectorAll('input, button, [tabindex]:not([tabindex="-1"])'),n=t[0],o=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),o.focus()):e.shiftKey||document.activeElement!==o||(e.preventDefault(),n.focus())}})})},e.showLinkTooltip=i,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
7
7
|
//# sourceMappingURL=srich-editor.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"srich-editor.umd.js","sources":["../src/toolbar.ts","../src/dialog.ts","../src/sanitizer.ts","../src/editor.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["icons","bold","italic","underline","strikethrough","heading1","heading2","heading3","unorderedList","orderedList","justifyLeft","justifyCenter","justifyRight","link","image","code","undo","redo","blockquote","horizontalRule","removeFormat","textColor","bgColor","defaultToolbar","type","name","icon","tooltip","command","value","defaultDialogLocale","insertLink","editLink","insertImage","editImage","displayText","url","imageUrl","altText","preview","cancel","insert","save","removeLink","close","unableToLoadImage","showLinkDialog","currentText","currentUrl","locale","loc","Promise","resolve","overlay","document","createElement","className","dialog","setAttribute","header","title","textContent","closeBtn","innerHTML","appendChild","body","textField","textLabel","textInput","id","placeholder","urlField","urlLabel","urlInput","footer","removeBtn","addEventListener","cleanup","action","text","cancelBtn","confirmBtn","remove","confirm","trim","focus","classList","add","setTimeout","select","e","target","key","preventDefault","activeElement","focusable","querySelectorAll","firstEl","lastEl","length","shiftKey","showImageDialog","currentAlt","altField","altLabel","altInput","previewField","previewLabel","previewContainer","img","src","alt","onerror","DANGEROUS_ELEMENTS","Set","UNWRAP_ELEMENTS","DANGEROUS_ATTR_PATTERNS","SAFE_LINK_PROTOCOLS","sanitizeHTML","html","DOMParser","parseFromString","sanitizeNode","node","childNodes","Array","from","child","nodeType","Node","ELEMENT_NODE","el","tagName","toLowerCase","has","parent","parentNode","firstChild","insertBefore","attrs","attributes","attr","attrName","attrValue","some","pattern","test","removeAttribute","includes","safeStyle","sanitizeStyle","isSafeURL","trimmed","startsWith","protocolMatch","match","protocol","style","sanitizeLinkURL","URL","href","_a","sanitizeImageURL","parsed","pathname","split","defaultOptions","content","height","readOnly","maxLength","maxUndoLevels","autoFocus","defaultLocale","words","characters","createEditor","options","config","containerEl","container","querySelector","Error","wrapper","toolbar","contentArea","minHeight","statusBar","contentWrapper","isDisabled","undoStack","redoStack","isUndoRedoAction","lastSavedContent","saveToUndoStack","current","push","shift","updateUndoRedoButtons","undoBtn","redoBtn","toggle","String","updatePlaceholder","isEmpty","replace","display","updateToolbarState","forEach","btn","dataset","isActive","queryCommandValue","toUpperCase","queryCommandState","updateStatusBar","chars","throttleTimer","throttledHandleInput","handleInput","onChange","checkMaxLength","saveSelection","selection","window","getSelection","rangeCount","getRangeAt","cloneRange","restoreSelection","savedRange","removeAllRanges","addRange","async","handleCreateLink","selectedText","linkUrl","linkNode","toString","anchorNode","getAttribute","getSelectionInfo","result","textNode","createTextNode","replaceChild","range","contains","commonAncestorContainer","selectedContent","extractContents","anchor","insertNode","setStartAfter","collapse","handleToolbarAction","execCommand","deleteContents","handleInsertImage","performRedo","performUndo","prev","pop","next","handleKeydown","onKeyDown","ctrlKey","metaKey","handlePaste","onPaste","touchStartY","handleTouchStart","touches","clientY","handleTouchEnd","touchEndY","changedTouches","Math","abs","handleFocus","onFocus","handleBlur","onBlur","debounceTimer","observer","MutationObserver","clearTimeout","passive","observe","childList","subtree","characterData","filter","Boolean","toolbarVisible","statusBarVisible","item","sep","iconName","customButtons","customBtn","customName","instance","undefined","position","children","onReady","getContent","setContent","getText","destroy","removeEventListener","disconnect","getElement","enable","disable","canUndo","canRedo","getCharacterCount","getWordCount","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"srich-editor.umd.js","sources":["../src/toolbar.ts","../src/dialog.ts","../src/sanitizer.ts","../src/editor.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["icons","bold","italic","underline","strikethrough","heading1","heading2","heading3","unorderedList","orderedList","justifyLeft","justifyCenter","justifyRight","link","image","code","undo","redo","blockquote","horizontalRule","removeFormat","textColor","bgColor","defaultToolbar","type","name","icon","tooltip","command","value","defaultDialogLocale","insertLink","editLink","insertImage","editImage","displayText","url","imageUrl","altText","preview","cancel","insert","save","removeLink","close","unableToLoadImage","showLinkTooltip","currentText","currentUrl","locale","loc","Promise","resolve","document","querySelectorAll","forEach","el","remove","createElement","className","setAttribute","urlRow","urlIcon","innerHTML","urlInput","placeholder","appendChild","textRow","textIcon","textInput","btnRow","removeBtn","textContent","addEventListener","e","preventDefault","cleanup","action","text","spacer","cancelBtn","confirmBtn","confirm","trim","focus","classList","add","setTimeout","handleClickOutside","contains","target","removeEventListener","body","selRect","selection","window","getSelection","rangeCount","range","getRangeAt","rect","getBoundingClientRect","width","height","tempRange","cloneRange","collapse","tempRect","span","insertNode","spanRect","_a","parentNode","removeChild","startContainer","normalize","getSelectionRect","style","position","left","top","transform","elRect","viewportW","innerWidth","viewportH","innerHeight","bottom","positionTooltip","select","key","stopPropagation","showImageDialog","currentAlt","overlay","dialog","header","title","closeBtn","urlField","urlLabel","id","altField","altLabel","altInput","previewField","previewLabel","previewContainer","img","src","alt","onerror","footer","activeElement","focusable","firstEl","lastEl","length","shiftKey","DANGEROUS_ELEMENTS","Set","UNWRAP_ELEMENTS","DANGEROUS_ATTR_PATTERNS","SAFE_LINK_PROTOCOLS","sanitizeHTML","html","DOMParser","parseFromString","sanitizeNode","node","childNodes","Array","from","child","nodeType","Node","ELEMENT_NODE","tagName","toLowerCase","has","parent","firstChild","insertBefore","attrs","attributes","attr","attrName","attrValue","some","pattern","test","removeAttribute","includes","safeStyle","sanitizeStyle","isSafeURL","trimmed","startsWith","protocolMatch","match","protocol","sanitizeLinkURL","URL","href","sanitizeImageURL","parsed","pathname","split","defaultOptions","content","readOnly","maxLength","maxUndoLevels","autoFocus","defaultLocale","words","characters","createEditor","options","config","containerEl","container","querySelector","Error","wrapper","toolbar","contentArea","minHeight","statusBar","contentWrapper","isDisabled","undoStack","redoStack","isUndoRedoAction","lastSavedContent","saveToUndoStack","current","push","shift","updateUndoRedoButtons","undoBtn","redoBtn","toggle","String","updatePlaceholder","isEmpty","replace","display","updateToolbarState","btn","dataset","isActive","queryCommandValue","toUpperCase","queryCommandState","updateStatusBar","chars","throttleTimer","throttledHandleInput","handleInput","onChange","checkMaxLength","saveSelection","restoreSelection","savedRange","removeAllRanges","addRange","async","handleCreateLink","selectedText","linkUrl","linkNode","toString","anchorNode","getAttribute","getSelectionInfo","result","textNode","createTextNode","replaceChild","commonAncestorContainer","selectedContent","extractContents","anchor","setStartAfter","handleToolbarAction","execCommand","deleteContents","handleInsertImage","performRedo","performUndo","prev","pop","next","handleKeydown","onKeyDown","ctrlKey","metaKey","handlePaste","onPaste","touchStartY","handleTouchStart","touches","clientY","handleTouchEnd","touchEndY","changedTouches","Math","abs","handleFocus","onFocus","handleBlur","onBlur","debounceTimer","observer","MutationObserver","clearTimeout","passive","observe","childList","subtree","characterData","filter","Boolean","toolbarVisible","statusBarVisible","item","sep","iconName","customButtons","customBtn","customName","instance","undefined","children","onReady","getContent","setContent","getText","destroy","disconnect","getElement","enable","disable","canUndo","canRedo","getCharacterCount","getWordCount","index","textField","textLabel"],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--re-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--re-font-size:15px;--re-line-height:1.6;--re-border-color:#d1d5db;--re-border-radius:8px;--re-bg-primary:#fff;--re-bg-secondary:#f8f9fa;--re-bg-tertiary:#f9fafb;--re-text-primary:#212529;--re-text-secondary:#495057;--re-text-muted:#868e96;--re-text-placeholder:#adb5bd;--re-accent-color:#3b82f6;--re-accent-hover:#2563eb;--re-accent-bg:#cce5ff;--re-accent-bg-hover:#b6d4fe;--re-accent-border:#9ec5fe;--re-accent-text:#084298;--re-focus-ring-color:rgba(59,130,246,.3);--re-shadow:0 1px 3px rgba(0,0,0,.08);--re-shadow-focus:0 0 0 2px var(--re-focus-ring-color);--re-separator-color:#dee2e6;--re-btn-hover-bg:#e9ecef;--re-btn-active-bg:#dee2e6;--re-dialog-overlay-bg:rgba(0,0,0,.5);--re-dialog-shadow:0 20px 60px rgba(0,0,0,.3);--re-danger-color:#dc2626;--re-danger-border:#fca5a5;--re-danger-bg:#fef2f2;--re-code-bg:#212529;--re-code-text:#e9ecef;--re-code-inline-bg:#f1f3f5;--re-code-inline-text:#e83e8c}.re-wrapper{background:var(--re-bg-primary);border:1px solid var(--re-border-color);border-radius:var(--re-border-radius);box-shadow:var(--re-shadow);font-family:var(--re-font-family);overflow:hidden;transition:box-shadow .2s ease}.re-wrapper:focus-within{border-color:var(--re-accent-color);box-shadow:var(--re-shadow-focus)}.re-toolbar{align-items:center;background:var(--re-bg-secondary);border-bottom:1px solid var(--re-separator-color);display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;user-select:none}.re-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--re-text-secondary);cursor:pointer;display:inline-flex;height:32px;justify-content:center;padding:0;transition:all .15s ease;width:32px}.re-btn:hover{background:var(--re-btn-hover-bg);border-color:var(--re-separator-color);color:var(--re-text-primary)}.re-btn:active{background:var(--re-btn-active-bg)}.re-btn.re-active{background:var(--re-accent-bg);border-color:var(--re-accent-border);color:var(--re-accent-text)}.re-btn.re-active:hover{background:var(--re-accent-bg-hover)}.re-btn.re-disabled,.re-btn[aria-disabled=true]{cursor:not-allowed;opacity:.35;pointer-events:none}.re-separator{background:var(--re-separator-color);flex-shrink:0;height:20px;margin:0 4px;width:1px}.re-content-wrapper{position:relative}.re-placeholder{color:var(--re-text-placeholder);left:16px;pointer-events:none;position:absolute;right:16px;top:12px;user-select:none}.re-content,.re-placeholder{font-size:var(--re-font-size);line-height:var(--re-line-height)}.re-content{word-wrap:break-word;background:var(--re-bg-primary);color:var(--re-text-primary);outline:none;overflow-wrap:break-word;overflow-y:auto;padding:12px 16px}.re-content:empty:before{color:var(--re-text-placeholder);content:attr(data-placeholder);pointer-events:none}.re-content h1{font-size:2em;font-weight:700;line-height:1.3;margin:.5em 0}.re-content h2{font-size:1.5em;font-weight:600;line-height:1.3;margin:.5em 0}.re-content h3{font-size:1.17em;font-weight:600;line-height:1.4;margin:.5em 0}.re-content p{margin:.5em 0}.re-content ol,.re-content ul{margin:.5em 0;padding-left:1.5em}.re-content li{margin:.25em 0}.re-content blockquote{background:var(--re-bg-secondary);border-left:4px solid var(--re-accent-color);color:var(--re-text-secondary);font-style:italic;margin:.5em 0;padding:.5em 1em}.re-content pre{word-wrap:break-word;background:var(--re-code-bg);border-radius:var(--re-border-radius);color:var(--re-code-text);font-size:13px;line-height:1.5;margin:.5em 0;overflow-x:auto;padding:12px 16px;white-space:pre-wrap}.re-content code,.re-content pre{font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace}.re-content code{background:var(--re-code-inline-bg);border-radius:4px;color:var(--re-code-inline-text);font-size:.9em;padding:2px 6px}.re-content pre code{background:none;border-radius:0;color:inherit;font-size:inherit;padding:0}.re-content a{color:var(--re-accent-color);text-decoration:underline}.re-content a:hover{color:var(--re-accent-hover)}.re-content img{border-radius:4px;height:auto;margin:.5em 0;max-width:100%}.re-content hr{border:none;border-top:2px solid var(--re-separator-color);margin:1em 0}.re-content table{border-collapse:collapse;margin:.5em 0;width:100%}.re-content table td,.re-content table th{border:1px solid var(--re-separator-color);padding:8px 12px;text-align:left}.re-content table th{background:var(--re-bg-secondary);font-weight:600}.re-statusbar{align-items:center;background:var(--re-bg-secondary);border-top:1px solid var(--re-separator-color);color:var(--re-text-muted);display:flex;font-size:12px;padding:4px 12px}.re-dialog-overlay{align-items:center;animation:re-dialog-fade-in .15s ease;background:var(--re-dialog-overlay-bg);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10000}@keyframes re-dialog-fade-in{0%{opacity:0}to{opacity:1}}.re-dialog{animation:re-dialog-slide-in .2s ease;background:var(--re-bg-primary);border-radius:12px;box-shadow:var(--re-dialog-shadow);max-width:90vw;overflow:hidden;width:400px}@keyframes re-dialog-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.re-dialog-header{align-items:center;border-bottom:1px solid var(--re-separator-color);display:flex;justify-content:space-between;padding:16px 20px}.re-dialog-title{color:var(--re-text-primary);font-size:16px;font-weight:600}.re-dialog-close{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--re-text-muted);cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;transition:all .15s;width:28px}.re-dialog-close:hover{background:var(--re-btn-hover-bg);color:var(--re-text-primary)}.re-dialog-body{padding:20px}.re-dialog-field{margin-bottom:16px}.re-dialog-field:last-child{margin-bottom:0}.re-dialog-label{color:var(--re-text-secondary);display:block;font-size:13px;font-weight:500;margin-bottom:6px}.re-dialog-input{background:var(--re-bg-primary);border:1px solid var(--re-border-color);border-radius:var(--re-border-radius);color:var(--re-text-primary);font-size:14px;padding:8px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.re-dialog-input:focus{border-color:var(--re-accent-color);box-shadow:0 0 0 3px rgba(59,130,246,.15);outline:none}.re-dialog-input::placeholder{color:var(--re-text-placeholder)}.re-dialog-input-error{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.15)}.re-dialog-footer{align-items:center;background:var(--re-bg-tertiary);border-top:1px solid var(--re-separator-color);display:flex;gap:8px;justify-content:flex-end;padding:16px 20px}.re-dialog-btn{border:1px solid var(--re-border-color);border-radius:var(--re-border-radius);cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .15s}.re-dialog-btn-cancel{background:var(--re-bg-primary);color:var(--re-text-secondary)}.re-dialog-btn-cancel:hover{background:var(--re-btn-hover-bg);border-color:var(--re-text-muted)}.re-dialog-btn-confirm{background:var(--re-accent-color);border-color:var(--re-accent-color);color:#fff}.re-dialog-btn-confirm:hover{background:var(--re-accent-hover);border-color:var(--re-accent-hover)}.re-dialog-btn-confirm:active{background:#1d4ed8}.re-dialog-btn-remove{background:var(--re-bg-primary);border-color:var(--re-danger-border);color:var(--re-danger-color);margin-right:auto}.re-dialog-btn-remove:hover{background:var(--re-danger-bg);border-color:var(--re-danger-color)}.re-dialog-image-preview{align-items:center;background:var(--re-bg-tertiary);border:1px solid var(--re-separator-color);border-radius:var(--re-border-radius);display:flex;justify-content:center;max-height:200px;min-height:60px;overflow:hidden}.re-dialog-image-preview img{max-height:180px;max-width:100%;object-fit:contain}.re-dialog-image-error{color:var(--re-text-muted);font-size:13px;padding:12px;text-align:center}.re-readonly .re-content{cursor:default}.re-readonly .re-toolbar{opacity:.5;pointer-events:none}@media screen and (max-width:600px){.re-wrapper{--re-font-size:14px;--re-border-radius:6px}.re-toolbar{gap:1px;padding:4px}.re-btn{height:36px;width:36px}.re-separator{height:16px;margin:0 2px}.re-content{padding:10px 12px}.re-placeholder{left:12px;right:12px;top:10px}.re-dialog{max-width:400px;width:calc(100vw - 32px)}.re-dialog-body,.re-dialog-footer,.re-dialog-header{padding:12px 16px}}@media print{.re-statusbar,.re-toolbar{display:none!important}.re-wrapper{border:none;box-shadow:none}.re-content{overflow:visible;padding:0}}
|
|
1
|
+
:root{--re-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--re-font-size:15px;--re-line-height:1.6;--re-border-color:#d1d5db;--re-border-radius:8px;--re-bg-primary:#fff;--re-bg-secondary:#f8f9fa;--re-bg-tertiary:#f9fafb;--re-text-primary:#212529;--re-text-secondary:#495057;--re-text-muted:#868e96;--re-text-placeholder:#adb5bd;--re-accent-color:#3b82f6;--re-accent-hover:#2563eb;--re-accent-bg:#cce5ff;--re-accent-bg-hover:#b6d4fe;--re-accent-border:#9ec5fe;--re-accent-text:#084298;--re-focus-ring-color:rgba(59,130,246,.3);--re-shadow:0 1px 3px rgba(0,0,0,.08);--re-shadow-focus:0 0 0 2px var(--re-focus-ring-color);--re-separator-color:#dee2e6;--re-btn-hover-bg:#e9ecef;--re-btn-active-bg:#dee2e6;--re-dialog-overlay-bg:rgba(0,0,0,.5);--re-dialog-shadow:0 20px 60px rgba(0,0,0,.3);--re-danger-color:#dc2626;--re-danger-border:#fca5a5;--re-danger-bg:#fef2f2;--re-code-bg:#212529;--re-code-text:#e9ecef;--re-code-inline-bg:#f1f3f5;--re-code-inline-text:#e83e8c}.re-wrapper{background:var(--re-bg-primary);border:1px solid var(--re-border-color);border-radius:var(--re-border-radius);box-shadow:var(--re-shadow);font-family:var(--re-font-family);overflow:hidden;transition:box-shadow .2s ease}.re-wrapper:focus-within{border-color:var(--re-accent-color);box-shadow:var(--re-shadow-focus)}.re-toolbar{align-items:center;background:var(--re-bg-secondary);border-bottom:1px solid var(--re-separator-color);display:flex;flex-wrap:wrap;gap:2px;padding:6px 8px;user-select:none}.re-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--re-text-secondary);cursor:pointer;display:inline-flex;height:32px;justify-content:center;padding:0;transition:all .15s ease;width:32px}.re-btn:hover{background:var(--re-btn-hover-bg);border-color:var(--re-separator-color);color:var(--re-text-primary)}.re-btn:active{background:var(--re-btn-active-bg)}.re-btn.re-active{background:var(--re-accent-bg);border-color:var(--re-accent-border);color:var(--re-accent-text)}.re-btn.re-active:hover{background:var(--re-accent-bg-hover)}.re-btn.re-disabled,.re-btn[aria-disabled=true]{cursor:not-allowed;opacity:.35;pointer-events:none}.re-separator{background:var(--re-separator-color);flex-shrink:0;height:20px;margin:0 4px;width:1px}.re-content-wrapper{position:relative}.re-placeholder{color:var(--re-text-placeholder);left:16px;pointer-events:none;position:absolute;right:16px;top:12px;user-select:none}.re-content,.re-placeholder{font-size:var(--re-font-size);line-height:var(--re-line-height)}.re-content{word-wrap:break-word;background:var(--re-bg-primary);color:var(--re-text-primary);outline:none;overflow-wrap:break-word;overflow-y:auto;padding:12px 16px}.re-content:empty:before{color:var(--re-text-placeholder);content:attr(data-placeholder);pointer-events:none}.re-content h1{font-size:2em;font-weight:700;line-height:1.3;margin:.5em 0}.re-content h2{font-size:1.5em;font-weight:600;line-height:1.3;margin:.5em 0}.re-content h3{font-size:1.17em;font-weight:600;line-height:1.4;margin:.5em 0}.re-content p{margin:.5em 0}.re-content ol,.re-content ul{margin:.5em 0;padding-left:1.5em}.re-content li{margin:.25em 0}.re-content blockquote{background:var(--re-bg-secondary);border-left:4px solid var(--re-accent-color);color:var(--re-text-secondary);font-style:italic;margin:.5em 0;padding:.5em 1em}.re-content pre{word-wrap:break-word;background:var(--re-code-bg);border-radius:var(--re-border-radius);color:var(--re-code-text);font-size:13px;line-height:1.5;margin:.5em 0;overflow-x:auto;padding:12px 16px;white-space:pre-wrap}.re-content code,.re-content pre{font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace}.re-content code{background:var(--re-code-inline-bg);border-radius:4px;color:var(--re-code-inline-text);font-size:.9em;padding:2px 6px}.re-content pre code{background:none;border-radius:0;color:inherit;font-size:inherit;padding:0}.re-content a{color:var(--re-accent-color);text-decoration:underline}.re-content a:hover{color:var(--re-accent-hover)}.re-content img{border-radius:4px;height:auto;margin:.5em 0;max-width:100%}.re-content hr{border:none;border-top:2px solid var(--re-separator-color);margin:1em 0}.re-content table{border-collapse:collapse;margin:.5em 0;width:100%}.re-content table td,.re-content table th{border:1px solid var(--re-separator-color);padding:8px 12px;text-align:left}.re-content table th{background:var(--re-bg-secondary);font-weight:600}.re-statusbar{align-items:center;background:var(--re-bg-secondary);border-top:1px solid var(--re-separator-color);color:var(--re-text-muted);display:flex;font-size:12px;padding:4px 12px}.re-dialog-overlay{align-items:center;animation:re-dialog-fade-in .15s ease;background:var(--re-dialog-overlay-bg);display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:10000}@keyframes re-dialog-fade-in{0%{opacity:0}to{opacity:1}}.re-dialog{animation:re-dialog-slide-in .2s ease;background:var(--re-bg-primary);border-radius:12px;box-shadow:var(--re-dialog-shadow);max-width:90vw;overflow:hidden;width:400px}@keyframes re-dialog-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.re-dialog-header{align-items:center;border-bottom:1px solid var(--re-separator-color);display:flex;justify-content:space-between;padding:16px 20px}.re-dialog-title{color:var(--re-text-primary);font-size:16px;font-weight:600}.re-dialog-close{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--re-text-muted);cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;transition:all .15s;width:28px}.re-dialog-close:hover{background:var(--re-btn-hover-bg);color:var(--re-text-primary)}.re-dialog-body{padding:20px}.re-dialog-field{margin-bottom:16px}.re-dialog-field:last-child{margin-bottom:0}.re-dialog-label{color:var(--re-text-secondary);display:block;font-size:13px;font-weight:500;margin-bottom:6px}.re-dialog-input{background:var(--re-bg-primary);border:1px solid var(--re-border-color);border-radius:var(--re-border-radius);color:var(--re-text-primary);font-size:14px;padding:8px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.re-dialog-input:focus{border-color:var(--re-accent-color);box-shadow:0 0 0 3px rgba(59,130,246,.15);outline:none}.re-dialog-input::placeholder{color:var(--re-text-placeholder)}.re-dialog-input-error{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.15)}.re-dialog-footer{align-items:center;background:var(--re-bg-tertiary);border-top:1px solid var(--re-separator-color);display:flex;gap:8px;justify-content:flex-end;padding:16px 20px}.re-dialog-btn{border:1px solid var(--re-border-color);border-radius:var(--re-border-radius);cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .15s}.re-dialog-btn-cancel{background:var(--re-bg-primary);color:var(--re-text-secondary)}.re-dialog-btn-cancel:hover{background:var(--re-btn-hover-bg);border-color:var(--re-text-muted)}.re-dialog-btn-confirm{background:var(--re-accent-color);border-color:var(--re-accent-color);color:#fff}.re-dialog-btn-confirm:hover{background:var(--re-accent-hover);border-color:var(--re-accent-hover)}.re-dialog-btn-confirm:active{background:#1d4ed8}.re-dialog-btn-remove{background:var(--re-bg-primary);border-color:var(--re-danger-border);color:var(--re-danger-color);margin-right:auto}.re-dialog-btn-remove:hover{background:var(--re-danger-bg);border-color:var(--re-danger-color)}.re-dialog-image-preview{align-items:center;background:var(--re-bg-tertiary);border:1px solid var(--re-separator-color);border-radius:var(--re-border-radius);display:flex;justify-content:center;max-height:200px;min-height:60px;overflow:hidden}.re-dialog-image-preview img{max-height:180px;max-width:100%;object-fit:contain}.re-dialog-image-error{color:var(--re-text-muted);font-size:13px;padding:12px;text-align:center}.re-link-tooltip{animation:re-tooltip-slide-in .15s ease;background:var(--re-bg-primary);border:1px solid var(--re-border-color);border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.08);font-family:var(--re-font-family);max-width:420px;min-width:320px;padding:10px;pointer-events:auto;position:fixed;z-index:10001}@keyframes re-tooltip-slide-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.re-link-tooltip-row{align-items:center;display:flex;gap:8px;margin-bottom:8px}.re-link-tooltip-row:last-of-type{margin-bottom:0}.re-link-tooltip-icon{align-items:center;background:var(--re-bg-secondary);border-radius:6px;color:var(--re-text-muted);display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.re-link-tooltip-input{background:var(--re-bg-primary);border:1px solid var(--re-border-color);border-radius:6px;color:var(--re-text-primary);flex:1;font-size:13px;min-width:0;outline:none;padding:6px 10px;transition:border-color .15s,box-shadow .15s}.re-link-tooltip-input:focus{border-color:var(--re-accent-color);box-shadow:0 0 0 2px rgba(59,130,246,.15)}.re-link-tooltip-input::placeholder{color:var(--re-text-placeholder)}.re-link-tooltip-input-error{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.15)}.re-link-tooltip-btn-row{align-items:center;border-top:1px solid var(--re-separator-color);display:flex;gap:6px;margin-top:10px;padding-top:8px}.re-link-tooltip-spacer{flex:1}.re-link-tooltip-btn{border:1px solid var(--re-border-color);border-radius:6px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;padding:5px 12px;transition:all .15s}.re-link-tooltip-btn-cancel{background:var(--re-bg-primary);color:var(--re-text-secondary)}.re-link-tooltip-btn-cancel:hover{background:var(--re-btn-hover-bg);border-color:var(--re-text-muted)}.re-link-tooltip-btn-confirm{background:var(--re-accent-color);border-color:var(--re-accent-color);color:#fff}.re-link-tooltip-btn-confirm:hover{background:var(--re-accent-hover);border-color:var(--re-accent-hover)}.re-link-tooltip-btn-confirm:active{background:#1d4ed8}.re-link-tooltip-btn-remove{background:var(--re-bg-primary);border-color:var(--re-danger-border);color:var(--re-danger-color)}.re-link-tooltip-btn-remove:hover{background:var(--re-danger-bg);border-color:var(--re-danger-color)}.re-readonly .re-content{cursor:default}.re-readonly .re-toolbar{opacity:.5;pointer-events:none}@media screen and (max-width:600px){.re-wrapper{--re-font-size:14px;--re-border-radius:6px}.re-toolbar{gap:1px;padding:4px}.re-btn{height:36px;width:36px}.re-separator{height:16px;margin:0 2px}.re-content{padding:10px 12px}.re-placeholder{left:12px;right:12px;top:10px}.re-dialog{max-width:400px;width:calc(100vw - 32px)}.re-dialog-body,.re-dialog-footer,.re-dialog-header{padding:12px 16px}}@media print{.re-statusbar,.re-toolbar{display:none!important}.re-wrapper{border:none;box-shadow:none}.re-content{overflow:visible;padding:0}}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -201,7 +201,11 @@ declare const defaultDialogLocale: {
|
|
|
201
201
|
};
|
|
202
202
|
type DialogLocale = typeof defaultDialogLocale;
|
|
203
203
|
/**
|
|
204
|
-
* Show
|
|
204
|
+
* Show an inline link tooltip/popover near the cursor or selected text
|
|
205
|
+
*/
|
|
206
|
+
declare function showLinkTooltip(currentText?: string, currentUrl?: string, locale?: Partial<DialogLocale>): Promise<LinkDialogResult | null>;
|
|
207
|
+
/**
|
|
208
|
+
* Show a custom link dialog (modal) - kept for backward compatibility
|
|
205
209
|
* @param currentText - The currently selected text (if any)
|
|
206
210
|
* @param currentUrl - The current URL (if editing an existing link)
|
|
207
211
|
* @param locale - Optional locale strings
|
|
@@ -280,5 +284,5 @@ declare const _default: {
|
|
|
280
284
|
createEditor: typeof createEditor;
|
|
281
285
|
};
|
|
282
286
|
|
|
283
|
-
export { createEditor, _default as default, defaultToolbar, icons, sanitizeHTML, sanitizeImageURL, sanitizeLinkURL, showImageDialog, showLinkDialog };
|
|
287
|
+
export { createEditor, _default as default, defaultToolbar, icons, sanitizeHTML, sanitizeImageURL, sanitizeLinkURL, showImageDialog, showLinkDialog, showLinkTooltip };
|
|
284
288
|
export type { CustomButton, LocaleStrings, RichEditorInstance, RichEditorOptions, ToolbarItem };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "srich-editor",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "A lightweight, dependency-free rich text editor built with Vanilla JavaScript",
|
|
5
5
|
"main": "dist/srich-editor.umd.js",
|
|
6
6
|
"module": "dist/srich-editor.esm.js",
|
|
@@ -61,4 +61,4 @@
|
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=16.0.0"
|
|
63
63
|
}
|
|
64
|
-
}
|
|
64
|
+
}
|