@richscripts/richtexteditor 2.13.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/package.json +1 -1
  2. package/richtexteditor/all_plugins.js +43 -6
  3. package/richtexteditor/all_plugins.min.js +34 -34
  4. package/richtexteditor/plugins/a11yenhance.min.js +1 -0
  5. package/richtexteditor/plugins/accessibilitychecker.min.js +1 -0
  6. package/richtexteditor/plugins/aitoolkit.min.js +14 -0
  7. package/richtexteditor/plugins/all_plugins.js +43 -6
  8. package/richtexteditor/plugins/all_plugins.min.js +34 -34
  9. package/richtexteditor/plugins/autocorrect.min.js +1 -0
  10. package/richtexteditor/plugins/autoembed.min.js +1 -0
  11. package/richtexteditor/plugins/blocktypes.min.js +2 -0
  12. package/richtexteditor/plugins/bookmarkcard.min.js +2 -0
  13. package/richtexteditor/plugins/changecase.min.js +1 -0
  14. package/richtexteditor/plugins/charlimit.min.js +2 -0
  15. package/richtexteditor/plugins/comments.min.js +3 -0
  16. package/richtexteditor/plugins/contentminimap.min.js +1 -0
  17. package/richtexteditor/plugins/crossreference.min.js +1 -0
  18. package/richtexteditor/plugins/dialoga11y.min.js +1 -0
  19. package/richtexteditor/plugins/dictation.min.js +1 -0
  20. package/richtexteditor/plugins/documentimport.min.js +4 -0
  21. package/richtexteditor/plugins/documentoutline.js +43 -6
  22. package/richtexteditor/plugins/documentoutline.min.js +1 -0
  23. package/richtexteditor/plugins/docxexport.min.js +2 -0
  24. package/richtexteditor/plugins/draghandle.min.js +1 -0
  25. package/richtexteditor/plugins/emailtoolkit.min.js +1 -0
  26. package/richtexteditor/plugins/emojiautocomplete.min.js +1 -0
  27. package/richtexteditor/plugins/foldheadings.min.js +1 -0
  28. package/richtexteditor/plugins/footnotes.min.js +1 -0
  29. package/richtexteditor/plugins/formatpainter.min.js +1 -0
  30. package/richtexteditor/plugins/formattingmarks.min.js +1 -0
  31. package/richtexteditor/plugins/gapcursor.min.js +1 -0
  32. package/richtexteditor/plugins/ghostcomplete.min.js +1 -0
  33. package/richtexteditor/plugins/html2pdf.min.js +1 -0
  34. package/richtexteditor/plugins/imageeditor.min.js +1 -0
  35. package/richtexteditor/plugins/importstyles.min.js +1 -0
  36. package/richtexteditor/plugins/inlinecode.min.js +1 -0
  37. package/richtexteditor/plugins/insertcode.min.js +8 -0
  38. package/richtexteditor/plugins/insertemoji.min.js +1 -0
  39. package/richtexteditor/plugins/insertgallery.min.js +1 -0
  40. package/richtexteditor/plugins/inserttemplate.min.js +1 -0
  41. package/richtexteditor/plugins/keyboarda11y.min.js +1 -0
  42. package/richtexteditor/plugins/layouttable.min.js +1 -0
  43. package/richtexteditor/plugins/linenumbers.min.js +1 -0
  44. package/richtexteditor/plugins/linkchecker.min.js +1 -0
  45. package/richtexteditor/plugins/localdraft.min.js +1 -0
  46. package/richtexteditor/plugins/markdownexport.min.js +2 -0
  47. package/richtexteditor/plugins/mathdialog.min.js +1 -0
  48. package/richtexteditor/plugins/mentionplugin.min.js +3 -0
  49. package/richtexteditor/plugins/mergefields.min.js +1 -0
  50. package/richtexteditor/plugins/mermaiddiagram.min.js +16 -0
  51. package/richtexteditor/plugins/multilevellist.min.js +1 -0
  52. package/richtexteditor/plugins/multiroot.min.js +1 -0
  53. package/richtexteditor/plugins/nodetypes.min.js +1 -0
  54. package/richtexteditor/plugins/pagination.min.js +1 -0
  55. package/richtexteditor/plugins/pdfexport.min.js +19 -0
  56. package/richtexteditor/plugins/permanentpen.min.js +1 -0
  57. package/richtexteditor/plugins/readabilitystats.min.js +1 -0
  58. package/richtexteditor/plugins/readaloud.min.js +1 -0
  59. package/richtexteditor/plugins/restrictedediting.min.js +2 -0
  60. package/richtexteditor/plugins/revisionhistory.min.js +3 -0
  61. package/richtexteditor/plugins/rtlui.min.js +2 -0
  62. package/richtexteditor/plugins/rubyannotation.min.js +1 -0
  63. package/richtexteditor/plugins/sanitizer.min.js +1 -0
  64. package/richtexteditor/plugins/shadowdom.min.js +1 -0
  65. package/richtexteditor/plugins/slashcommand.min.js +2 -0
  66. package/richtexteditor/plugins/smartchips.min.js +2 -0
  67. package/richtexteditor/plugins/spellcheck.min.js +2 -0
  68. package/richtexteditor/plugins/stateinspector.min.js +2 -0
  69. package/richtexteditor/plugins/structured-content-bridge.js +5178 -0
  70. package/richtexteditor/plugins/structured-content-bridge.min.js +19 -0
  71. package/richtexteditor/plugins/tableofcontents.min.js +1 -0
  72. package/richtexteditor/plugins/tabletools.min.js +1 -0
  73. package/richtexteditor/plugins/textdirection.min.js +1 -0
  74. package/richtexteditor/plugins/textpartlanguage.min.js +1 -0
  75. package/richtexteditor/plugins/todolist.min.js +1 -0
  76. package/richtexteditor/plugins/trackedchanges.min.js +3 -0
  77. package/richtexteditor/plugins/typewriter.min.js +1 -0
  78. package/richtexteditor/plugins/watermark.min.js +1 -0
  79. package/richtexteditor/plugins/wordexport.min.js +23 -0
  80. package/richtexteditor/plugins/yjscollab.min.js +2 -0
  81. package/richtexteditor/plugins/zz_richtextbox_dialog_style.min.js +1 -0
  82. package/richtexteditor/rte-config.js +2 -0
  83. package/richtexteditor/rte.js +4 -2
@@ -0,0 +1,2 @@
1
+ window.RTE_DefaultConfig||(window.RTE_DefaultConfig={}),RTE_DefaultConfig.plugin_stateinspector=RTE_Plugin_StateInspector;function RTE_Plugin_StateInspector(){var T=this,o,c,p=null,g=null,u=null,b=null,y=null,R=0,v="issues",C=[],h=[],I=60,M=[{id:"issues",label:"Issues"},{id:"tree",label:"Tree"},{id:"selection",label:"Selection"},{id:"plugins",label:"Plugins"},{id:"log",label:"Log"}],A={A:1,ABBR:1,B:1,BDI:1,BDO:1,CITE:1,CODE:1,DEL:1,DFN:1,EM:1,I:1,INS:1,KBD:1,MARK:1,Q:1,S:1,SAMP:1,SMALL:1,SPAN:1,STRONG:1,SUB:1,SUP:1,U:1,VAR:1,FONT:1},q={AREA:1,BASE:1,BR:1,COL:1,EMBED:1,HR:1,IMG:1,INPUT:1,LINK:1,META:1,PARAM:1,SOURCE:1,TRACK:1,WBR:1},Z={ADDRESS:1,ARTICLE:1,ASIDE:1,BLOCKQUOTE:1,DIV:1,DL:1,DT:1,DD:1,FIELDSET:1,FIGCAPTION:1,FIGURE:1,FOOTER:1,FORM:1,H1:1,H2:1,H3:1,H4:1,H5:1,H6:1,HEADER:1,HR:1,LI:1,MAIN:1,NAV:1,OL:1,P:1,PRE:1,SECTION:1,TABLE:1,UL:1},X=/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/;T.PluginName="StateInspector",T.InitConfig=function(e){o=e,o.stateInspectorEnabled!==!1&&(o.stateInspectorTitle=o.stateInspectorTitle||"State inspector",o.stateInspectorHint=o.stateInspectorHint||"Derived document model, structural checks, and a copyable snapshot for bug reports.",o.stateInspectorEmptyText=o.stateInspectorEmptyText||"No content to inspect yet.",typeof o.stateInspectorAutoOpen!="boolean"&&(o.stateInspectorAutoOpen=!1),typeof o.stateInspectorToolbarButton!="boolean"&&(o.stateInspectorToolbarButton=!1),typeof o.stateInspectorMaxDepth!="number"&&(o.stateInspectorMaxDepth=24),typeof o.stateInspectorLogLimit=="number"&&(I=Math.max(10,Math.min(500,o.stateInspectorLogLimit))),C=Y(o),o.stateInspectorToolbarButton&&(D("toolbar_default","#{stateinspector}"),D("toolbar_full","#{stateinspector}")))},T.InitEditor=function(e){c=e,o.stateInspectorEnabled!==!1&&(c.stateInspector={close:function(){k()},isOpen:function(){return!!(p&&p.classList.contains("is-open"))},issues:function(){return S(L()).issues},log:function(){return h.slice(0)},open:function(){E()},plugins:function(){return C.slice(0)},refresh:function(){N()},snapshot:function(){return _()},toggle:function(){G()}},ie(),c.toolbarFactoryMap=c.toolbarFactoryMap||{},c.toolbarFactoryMap.stateinspector=function(t){return c.createToolbarButton(t)},c.attachEvent("exec_command_stateinspector",function(t){t.returnValue=!0,t.stopBubble=!0,G()}),c.attachEvent("change",function(){z("change"),K()}),c.attachEvent("selectionchange",function(){z("selectionchange"),K()}),c.slashCommands&&c.slashCommands.register&&c.slashCommands.register({id:"stateinspector",section:"Tools",title:o.stateInspectorTitle,description:"Inspect document structure, selection, and structural issues",keywords:["inspect","debug","devtools","state","structure"],run:function(){E()}}),U(),o.stateInspectorAutoOpen&&E())};function D(e,t){o[e]&&o[e].indexOf(t)===-1&&(o[e]=o[e]+t)}function Y(e){var t=[];for(var r in e)r[0]!=="p"||r.substr(0,7)!=="plugin_"||!e[r]||!(e[r]instanceof Function)||t.push({index:t.length,key:r,name:r.substring(7)});return t}function z(e){h.push({at:Date.now(),event:e}),h.length>I&&h.splice(0,h.length-I)}function $(e){var t={},r=e.attributes;if(!r)return t;for(var n=0;n<r.length;n++){var a=r[n].value;t[r[n].name]=a.length>220?a.substring(0,220)+"\u2026":a}return t}function H(e,t,r,n){if(e.nodeType===3){var a=e.nodeValue||"";return n.textNodes++,n.characters+=a.length,{type:"text",length:a.length,text:a.length>80?a.substring(0,80)+"\u2026":a}}if(e.nodeType===8)return n.comments++,{type:"comment",length:(e.nodeValue||"").length};if(e.nodeType!==1)return null;n.elements++;var i=e.nodeName;n.tags[i]=(n.tags[i]||0)+1;var s={type:"element",name:i.toLowerCase(),attrs:$(e),children:[]};if(t>=r)return s.truncated=!0,s.childCount=e.childNodes.length,s;for(var l=0;l<e.childNodes.length;l++){var d=H(e.childNodes[l],t+1,r,n);d&&s.children.push(d)}return s}function L(){var e=c&&c.getEditable?c.getEditable():null,t={elements:0,textNodes:0,comments:0,characters:0,tags:{}};if(!e)return{root:null,counters:t,editable:null};for(var r=Math.max(2,o.stateInspectorMaxDepth||24),n={type:"element",name:"root",attrs:{},children:[]},a=0;a<e.childNodes.length;a++){var i=H(e.childNodes[a],1,r,t);i&&n.children.push(i)}return{root:n,counters:t,editable:e}}function P(){var e=c&&c.getDocument?c.getDocument():null,t=c&&c.getEditable?c.getEditable():null,r={available:!1};if(!e||!e.getSelection)return r;var n;try{n=e.getSelection()}catch{return r}if(!n||n.rangeCount===0)return r;var a;try{a=n.getRangeAt(0)}catch{return r}if(!a)return r;r.available=!0,r.collapsed=!!a.collapsed,r.anchor=F(a.startContainer,a.startOffset),r.focus=F(a.endContainer,a.endOffset),r.insideEditable=!!(t&&t.contains(a.startContainer)&&t.contains(a.endContainer));try{var i=String(a.toString()||"");r.textLength=i.length,r.text=i.length>120?i.substring(0,120)+"\u2026":i}catch{r.textLength=0}return r.block=ee(a.startContainer,t),r}function F(e,t){if(!e)return{node:"(none)",offset:t};if(e.nodeType===3){var r=e.nodeValue||"";return{node:"#text",offset:t,length:r.length,zeroLength:r.length===0}}return{node:e.nodeName?e.nodeName.toLowerCase():"(unknown)",offset:t,childCount:e.childNodes?e.childNodes.length:0}}function ee(e,t){for(var r=[],n=e;n&&n!==t;)n.nodeType===1&&r.unshift(n.nodeName.toLowerCase()),n=n.parentNode;return r.join(" > ")}function _(){var e=L(),t=S(e);return{snapshotVersion:1,generatedAt:new Date().toISOString(),counters:e.counters,issues:t.issues,plugins:C.slice(0),recentEvents:h.slice(-20),selection:P(),tree:e.root}}function f(e,t,r,n,a){e.push({id:t,severity:r,message:n,detail:a||""})}function w(e,t){for(var r=[],n=e;n&&n!==t&&n.nodeType===1;){var a=n.nodeName.toLowerCase();n.id&&(a+="#"+n.id),r.unshift(a),n=n.parentNode}return r.join(" > ")}function te(e){if((e.textContent||"").replace(/[\s\u200B\uFEFF]/g,"")!=="")return!0;for(var t=0;t<e.childNodes.length;t++){var r=e.childNodes[t];if(r.nodeType===1&&q[r.nodeName])return!0}return!1}function S(e){var t=[],r=e.editable;if(!r)return{issues:t};for(var n=r.ownerDocument.createTreeWalker(r,5,null,!1),a=0,i;i=n.nextNode();){if(i.nodeType===3){ne(i,r,t);continue}ae(i,r,t);var s=re(i);s&&(a&&s>a+1&&f(t,"heading-skip","warn","Heading level jumps from h"+a+" to h"+s,w(i,r)),a=s)}for(var l=0;l<r.childNodes.length;l++){var d=r.childNodes[l];d.nodeType===1&&d.nodeName==="IMG"&&j(d,r,t)}return{issues:t}}function re(e){var t=e.nodeName;return t.length===2&&t[0]==="H"&&t[1]>="1"&&t[1]<="6"?parseInt(t[1],10):0}function ne(e,t,r){var n=e.nodeValue||"";if(n.length===0){f(r,"zero-length-text","warn","Zero-length text node",w(e.parentNode,t));return}X.test(n)&&f(r,"control-characters","error","Text contains control characters - Word will reject an exported .docx",w(e.parentNode,t))}function ae(e,t,r){for(var n=e.nodeName,a=w(e,t),i=e.attributes,s=0;i&&s<i.length;s++){var l=i[s].name.toLowerCase(),d=i[s].value||"";if(l.indexOf("on")===0&&l.length>2&&f(r,"event-handler-attribute","error","Inline event handler "+l+" present in document content",a),l==="href"||l==="src"||l==="xlink:href"){var x=d.replace(/[\u0000-\u0020]/g,"").toLowerCase();x.indexOf("javascript:")===0?f(r,"unsafe-url-scheme","error","javascript: URL in "+l,a):(x.indexOf("data:text/html")===0||x.indexOf("data:image/svg+xml")===0)&&f(r,"unsafe-url-scheme","error","Scriptable data: URL in "+l,a)}}if(n==="IFRAME"&&e.hasAttribute("srcdoc")&&f(r,"iframe-srcdoc","error","iframe[srcdoc] executes when the saved content is rendered downstream",a),A[n]&&!te(e)&&f(r,"empty-inline","warn","Empty inline <"+n.toLowerCase()+"> - a caret entering it cannot leave by typing",a),A[n]&&e.parentNode&&e.parentNode.nodeName===n&&f(r,"nested-duplicate-inline","warn","<"+n.toLowerCase()+"> nested directly inside another <"+n.toLowerCase()+">",a),A[n])for(var O=0;O<e.childNodes.length;O++){var B=e.childNodes[O];if(B.nodeType===1&&Z[B.nodeName]){f(r,"block-inside-inline","warn","Block <"+B.nodeName.toLowerCase()+"> inside inline <"+n.toLowerCase()+">",a);break}}if(n==="LI"){var Q=e.parentNode?e.parentNode.nodeName:"";Q!=="UL"&&Q!=="OL"&&f(r,"orphan-list-item","warn","<li> outside a <ul> or <ol>",a)}n==="IMG"&&j(e,t,r),e.hasAttribute&&e.hasAttribute("data-rte-atomic")&&e.getAttribute("contenteditable")!=="false"&&f(r,"atomic-not-protected","error",'Atomic element without contenteditable="false"',a)}function j(e,t,r){if(!(e.getAttribute("role")==="presentation"||e.getAttribute("aria-hidden")==="true")){var n=e.getAttribute("alt");n===null&&f(r,"image-missing-alt","warn","Image has no alt attribute",w(e,t))}}function ie(){var e=o.container.ownerDocument;if(!e.getElementById("rte-state-inspector-style")){var t=e.createElement("style");t.id="rte-state-inspector-style",t.innerHTML=[".rte-state-inspector-shell{display:flex;align-items:stretch;gap:10px;}",".rte-state-inspector-shell>.rte-state-inspector-host{flex:1 1 auto;min-width:0;}",".rte-state-inspector-panel{display:none;flex:0 0 340px;min-width:290px;max-width:min(400px,36vw);border:1px solid rgba(148,163,184,.22);border-radius:8px;background:#fff;box-shadow:0 14px 32px rgba(29,78,216,.1),0 2px 8px rgba(15,23,42,.06);overflow:hidden;color:#172033;font-family:Aptos,'Segoe UI',sans-serif;}",".rte-state-inspector-shell.is-open>.rte-state-inspector-panel{display:flex;flex-direction:column;}",".rte-state-inspector-header{padding:12px 12px 9px 14px;border-bottom:1px solid rgba(148,163,184,.16);background:rgba(248,251,255,.72);}",".rte-state-inspector-kicker{font-size:10px;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:#52657e;font-weight:850;}",".rte-state-inspector-title{margin-top:3px;font-size:15px;line-height:1.2;font-weight:850;color:#172033;}",".rte-state-inspector-copy{margin-top:5px;font-size:12px;line-height:1.42;color:#52657e;}",".rte-state-inspector-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 14px;border-bottom:1px solid rgba(148,163,184,.16);}",".rte-state-inspector-summary{min-width:0;font-size:12px;font-weight:750;color:#52657e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}",".rte-state-inspector-actions{display:flex;gap:6px;flex:0 0 auto;}",".rte-state-inspector-btn{appearance:none;border:1px solid rgba(100,116,139,.18);background:#fff;color:#315277;cursor:pointer;font-size:12px;font-weight:750;padding:6px 9px;border-radius:7px;line-height:1;}",".rte-state-inspector-btn:hover,.rte-state-inspector-btn:focus-visible{background:#eef4ff;color:#0f3f9f;border-color:rgba(37,99,235,.28);}",".rte-state-inspector-tabs{display:flex;gap:2px;padding:8px 10px 0 10px;border-bottom:1px solid rgba(148,163,184,.16);}",".rte-state-inspector-tab{appearance:none;border:1px solid transparent;border-bottom:none;background:transparent;color:#52657e;cursor:pointer;font-size:12px;font-weight:800;padding:7px 10px;border-radius:7px 7px 0 0;line-height:1;}",".rte-state-inspector-tab:hover,.rte-state-inspector-tab:focus-visible{background:#f8fbff;color:#0f3f9f;}",".rte-state-inspector-tab[aria-selected='true']{background:#eef4ff;border-color:rgba(37,99,235,.26);color:#0f3f9f;}",".rte-state-inspector-body{padding:10px;overflow:auto;min-height:160px;max-height:540px;scrollbar-width:thin;font-size:12px;line-height:1.5;}",".rte-state-inspector-issue{display:block;padding:8px 10px;margin-bottom:6px;border:1px solid rgba(148,163,184,.24);border-left-width:3px;border-radius:7px;background:#fff;}",".rte-state-inspector-issue.is-error{border-left-color:#dc2626;background:#fef4f4;}",".rte-state-inspector-issue.is-warn{border-left-color:#d97706;background:#fffaf1;}",".rte-state-inspector-issue-msg{font-weight:750;color:#172033;}",".rte-state-inspector-issue-meta{margin-top:3px;font-size:11px;color:#52657e;font-family:Consolas,'Cascadia Mono',monospace;word-break:break-all;}",".rte-state-inspector-ok{padding:14px;color:#166534;font-weight:750;background:#f0fdf4;border:1px dashed rgba(22,101,52,.3);border-radius:8px;}",".rte-state-inspector-empty{padding:14px;color:#52657e;font-weight:700;background:#fff;border:1px dashed rgba(148,163,184,.34);border-radius:8px;}",".rte-state-inspector-pre{margin:0;font-family:Consolas,'Cascadia Mono',monospace;font-size:11px;line-height:1.55;color:#172033;white-space:pre;}",".rte-state-inspector-row{display:flex;gap:8px;padding:4px 0;border-bottom:1px solid rgba(148,163,184,.14);}",".rte-state-inspector-row-key{flex:0 0 116px;color:#52657e;font-weight:750;}",".rte-state-inspector-row-val{flex:1 1 auto;min-width:0;font-family:Consolas,'Cascadia Mono',monospace;word-break:break-all;}",".rte-state-inspector-row.is-flagged .rte-state-inspector-row-val{color:#b91c1c;font-weight:750;}","@media (max-width: 1100px){.rte-state-inspector-shell{display:block;}.rte-state-inspector-panel{margin-top:12px;max-width:none;width:100%;}.rte-state-inspector-body{max-height:340px;}}"].join(""),e.head.appendChild(t),c&&typeof c.ensureStyleSheetLive=="function"&&c.ensureStyleSheetLive(e,t,"rte-state-inspector-style",t.textContent)}}function U(){if(p)return p;var e=o.container,t=e.ownerDocument;p=t.createElement("div"),p.className="rte-state-inspector-shell";var r=t.createElement("div");r.className="rte-state-inspector-host",e.parentNode.insertBefore(p,e),p.appendChild(r),r.appendChild(e),g=t.createElement("aside"),g.className="rte-state-inspector-panel",g.setAttribute("role","complementary"),g.setAttribute("aria-label",o.stateInspectorTitle);var n=t.createElement("div");n.className="rte-state-inspector-header";var a=t.createElement("div");a.className="rte-state-inspector-kicker",a.innerText="Developer";var i=t.createElement("div");i.className="rte-state-inspector-title",i.innerText=o.stateInspectorTitle;var s=t.createElement("div");s.className="rte-state-inspector-copy",s.innerText=o.stateInspectorHint,n.appendChild(a),n.appendChild(i),n.appendChild(s);var l=t.createElement("div");l.className="rte-state-inspector-toolbar",y=t.createElement("div"),y.className="rte-state-inspector-summary",y.setAttribute("data-rte-inspector-summary","1");var d=t.createElement("div");d.className="rte-state-inspector-actions",d.appendChild(V(t,"Copy","Copy the state snapshot as JSON",le)),d.appendChild(V(t,"Hide","Hide the state inspector",k)),l.appendChild(y),l.appendChild(d),b=t.createElement("div"),b.className="rte-state-inspector-tabs",b.setAttribute("role","tablist");for(var x=0;x<M.length;x++)b.appendChild(oe(t,M[x]));return u=t.createElement("div"),u.className="rte-state-inspector-body",g.appendChild(n),g.appendChild(l),g.appendChild(b),g.appendChild(u),p.appendChild(g),p}function V(e,t,r,n){var a=e.createElement("button");return a.type="button",a.className="rte-state-inspector-btn",a.innerText=t,a.setAttribute("aria-label",r),a.onclick=n,a}function oe(e,t){var r=e.createElement("button");return r.type="button",r.className="rte-state-inspector-tab",r.innerText=t.label,r.setAttribute("role","tab"),r.setAttribute("data-rte-inspector-tab",t.id),r.setAttribute("aria-selected",t.id===v?"true":"false"),r.onclick=function(){v=t.id,se(),N()},r}function se(){if(b)for(var e=b.querySelectorAll("[data-rte-inspector-tab]"),t=0;t<e.length;t++){var r=e[t].getAttribute("data-rte-inspector-tab");e[t].setAttribute("aria-selected",r===v?"true":"false")}}function G(){p&&p.classList.contains("is-open")?k():E()}function E(){U(),p.classList.add("is-open"),N()}function k(){p&&p.classList.remove("is-open")}function K(){!p||!p.classList.contains("is-open")||(clearTimeout(R),R=setTimeout(function(){N()},120))}function le(){var e=JSON.stringify(_(),null,2);if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(e);return}var t=o.container.ownerDocument,r=t.createElement("textarea");r.value=e,r.style.position="fixed",r.style.opacity="0",t.body.appendChild(r),r.select();try{t.execCommand("copy")}catch{}t.body.removeChild(r)}function ce(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function N(){if(!(!p||!u)){for(var e=L(),t=S(e),r=o.container.ownerDocument,n=0,a=0;a<t.issues.length;a++)t.issues[a].severity==="error"&&n++;y&&(y.innerText=e.counters.elements+" el \xB7 "+t.issues.length+" issue"+(t.issues.length===1?"":"s")+(n?" \xB7 "+n+" error"+(n===1?"":"s"):"")),ce(u),v==="issues"?pe(r,t.issues):v==="tree"?de(r,e):v==="selection"?ue(r):v==="plugins"?fe(r):v==="log"&&he(r)}}function pe(e,t){if(!t.length){var r=e.createElement("div");r.className="rte-state-inspector-ok",r.innerText="No structural issues found.",u.appendChild(r);return}for(var n=0;n<t.length;n++){var a=t[n],i=e.createElement("div");i.className="rte-state-inspector-issue is-"+(a.severity==="error"?"error":"warn"),i.setAttribute("data-rte-issue-id",a.id);var s=e.createElement("div");s.className="rte-state-inspector-issue-msg",s.innerText=a.message;var l=e.createElement("div");l.className="rte-state-inspector-issue-meta",l.innerText=(a.detail||"(document root)")+" \xB7 "+a.id,i.appendChild(s),i.appendChild(l),u.appendChild(i)}}function de(e,t){if(!t.root||!t.root.children.length){var r=e.createElement("div");r.className="rte-state-inspector-empty",r.innerText=o.stateInspectorEmptyText,u.appendChild(r);return}var n=e.createElement("pre");n.className="rte-state-inspector-pre",n.innerText=J(t.root,0).join(`
2
+ `),u.appendChild(n)}function J(e,t){var r=[],n=new Array(t+1).join(" ");if(e.type==="text")return r.push(n+"#text("+e.length+") "+JSON.stringify(e.text)),r;if(e.type==="comment")return r.push(n+"#comment("+e.length+")"),r;var a=n+"<"+e.name,i=[];for(var s in e.attrs)i.push(s);if(i.length){i.sort();for(var l=0;l<i.length&&l<4;l++)a+=" "+i[l]+"="+JSON.stringify(e.attrs[i[l]]);i.length>4&&(a+=" \u2026+"+(i.length-4))}a+=">",e.truncated&&(a+=" \u2026 "+e.childCount+" children (depth limit)"),r.push(a);for(var d=0;d<(e.children||[]).length;d++)r=r.concat(J(e.children[d],t+1));return r}function ue(e){var t=P();if(!t.available){var r=e.createElement("div");r.className="rte-state-inspector-empty",r.innerText="No selection in the document.",u.appendChild(r);return}m(e,"Collapsed",String(t.collapsed)),m(e,"In editable",String(t.insideEditable),!t.insideEditable),m(e,"Block path",t.block||"(root)"),m(e,"Anchor",W(t.anchor),!!(t.anchor&&t.anchor.zeroLength)),m(e,"Focus",W(t.focus),!!(t.focus&&t.focus.zeroLength)),m(e,"Selected",t.textLength+" chars"),t.text&&m(e,"Text",t.text)}function W(e){if(!e)return"(none)";var t=e.node+" @ "+e.offset;return typeof e.length=="number"&&(t+=" (len "+e.length+")"),typeof e.childCount=="number"&&(t+=" ("+e.childCount+" children)"),e.zeroLength&&(t+=" \u2190 zero-length text node"),t}function m(e,t,r,n){var a=e.createElement("div");a.className="rte-state-inspector-row"+(n?" is-flagged":"");var i=e.createElement("div");i.className="rte-state-inspector-row-key",i.innerText=t;var s=e.createElement("div");s.className="rte-state-inspector-row-val",s.innerText=r,a.appendChild(i),a.appendChild(s),u.appendChild(a)}function fe(e){if(!C.length){var t=e.createElement("div");t.className="rte-state-inspector-empty",t.innerText="No plugins registered.",u.appendChild(t);return}var r=e.createElement("div");r.className="rte-state-inspector-copy",r.innerText="Initialization order. A plugin can only register into another plugin's API if it appears below it.",u.appendChild(r);for(var n=0;n<C.length;n++)m(e,String(n+1).padStart?String(n+1).padStart(3,"0"):String(n+1),C[n].name)}function he(e){if(!h.length){var t=e.createElement("div");t.className="rte-state-inspector-empty",t.innerText="No editor events recorded yet.",u.appendChild(t);return}for(var r=h[0].at,n=h.length-1;n>=0;n--)m(e,"+"+(h[n].at-r)+"ms",h[n].event)}}