@qarakash/blockwriteai 1.0.19 → 1.0.20

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/README.md CHANGED
@@ -9,13 +9,13 @@ Use the free core editor for normal documents. Serve premium tools such as AI, M
9
9
  Add the stylesheet, editor script, and free plugin bundle:
10
10
 
11
11
  ```html
12
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/blockwriteai.min.css">
12
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/blockwriteai.min.css">
13
13
 
14
14
  <div id="editor"></div>
15
15
 
16
- <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/blockwriteai.min.js"></script>
17
- <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/plugins/blockwriteai-code-assist.min.js"></script>
18
- <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/plugins/blockwriteai-advanced-blocks.min.js"></script>
16
+ <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/blockwriteai.min.js"></script>
17
+ <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/plugins/blockwriteai-code-assist.min.js"></script>
18
+ <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/plugins/blockwriteai-advanced-blocks.min.js"></script>
19
19
  <script>
20
20
  const editor = new BlockWriteAI({
21
21
  holder: "#editor",
@@ -34,16 +34,16 @@ Add the stylesheet, editor script, and free plugin bundle:
34
34
  Use these CDN URLs for production:
35
35
 
36
36
  ```text
37
- https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/blockwriteai.min.css
38
- https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/blockwriteai.min.js
39
- https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/plugins/blockwriteai-code-assist.min.js
40
- https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/plugins/blockwriteai-advanced-blocks.min.js
37
+ https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/blockwriteai.min.css
38
+ https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/blockwriteai.min.js
39
+ https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/plugins/blockwriteai-code-assist.min.js
40
+ https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/plugins/blockwriteai-advanced-blocks.min.js
41
41
  ```
42
42
 
43
43
  Optional history plugin:
44
44
 
45
45
  ```html
46
- <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.19/dist/plugins/blockwriteai-history.min.js"></script>
46
+ <script src="https://cdn.jsdelivr.net/npm/@qarakash/blockwriteai@1.0.20/dist/plugins/blockwriteai-history.min.js"></script>
47
47
  ```
48
48
 
49
49
  Premium CDN integrations should load licensed plugins and verify usage through the production BlockWriteAI Platform:
@@ -189,7 +189,7 @@ The JSON endpoint can return a document directly:
189
189
  ```json
190
190
  {
191
191
  "time": 1779540000000,
192
- "version": "1.0.19",
192
+ "version": "1.0.20",
193
193
  "blocks": []
194
194
  }
195
195
  ```
@@ -201,7 +201,7 @@ It can also return a wrapper:
201
201
  "ok": true,
202
202
  "data": {
203
203
  "time": 1779540000000,
204
- "version": "1.0.19",
204
+ "version": "1.0.20",
205
205
  "blocks": []
206
206
  }
207
207
  }
@@ -1 +1 @@
1
- !function(e,t){if("object"==typeof module&&module.exports)module.exports=t();else{var i=t();e.BlockWriteAI=i,e.RichBlockEditor=i}}("undefined"!=typeof window?window:this,function(){"use strict";var e="1.0.19",t={premiumPlugins:"https://blockwriteai.in/api/premium_plugins.php",licenseVerify:"https://blockwriteai.in/api/license_verify.php",aiUsage:"https://blockwriteai.in/api/ai_usage.php",aiGenerate:"https://blockwriteai.in/api/ai_generate.php",premiumUsage:"https://blockwriteai.in/api/premium_usage.php",premiumEvent:"https://blockwriteai.in/api/premium_event.php",signatureEvent:"https://blockwriteai.in/api/signature_event.php"},i=["paragraph","heading","quote","list","checklist","code","image","table","embed","callout","delimiter","button","toggle","linkPreview","raw","attaches","drawing","mermaid","signature","signatureFlow"],r={paragraph:{label:"Text",hint:"Plain text block",icon:"font"},heading:{label:"Heading",hint:"Section heading",icon:"heading"},quote:{label:"Quote",hint:"Quote with caption",icon:"quote-left"},list:{label:"List",hint:"Ordered or unordered list",icon:"list-ul"},checklist:{label:"Checklist",hint:"Tasks with checkboxes",icon:"square-check"},code:{label:"Code",hint:"Code block",icon:"code"},image:{label:"Image",hint:"Upload or paste an image",icon:"image"},table:{label:"Table",hint:"Editable table",icon:"table"},embed:{label:"Embed",hint:"YouTube, Vimeo, X, maps, or any iframe URL",icon:"play"},callout:{label:"Callout",hint:"Highlighted note",icon:"circle-info"},delimiter:{label:"Divider",hint:"Horizontal divider",icon:"minus"},button:{label:"Button",hint:"Linked CTA button",icon:"rectangle-ad"},toggle:{label:"Toggle",hint:"Collapsible content",icon:"chevron-down"},linkPreview:{label:"Link Preview",hint:"Rich link card",icon:"link"},raw:{label:"Raw HTML",hint:"Trusted HTML block",icon:"file-code"},attaches:{label:"Attachment",hint:"Upload or link a file",icon:"paperclip"},drawing:{label:"Drawing",hint:"Premium drawing canvas",icon:"pen-ruler"},mermaid:{label:"Mermaid",hint:"Premium drawing and diagram block",icon:"diagram-project"},signature:{label:"Signature",hint:"Premium signature field",icon:"signature"},signatureFlow:{label:"Signature Flow",hint:"Premium multi-signer workflow",icon:"file-signature"}},n={},a={},o={drawing:"Drawing",mermaid:"Mermaid",signature:"Signature",signature_flow:"Signature Flow",ai:"AI"},l={drawing:"drawing",mermaid:"mermaid",signature:"signature",signatureFlow:"signature_flow"},s={},d=[{command:"bold",label:"B",title:"Bold"},{command:"italic",label:"I",title:"Italic"},{command:"underline",label:"U",title:"Underline"},{command:"strikeThrough",label:"S",title:"Strike"},{command:"formatBlock",value:"blockquote",icon:"quote-left",label:"Q",title:"Quote selection"},{command:"createLink",icon:"link",label:"Link",title:"Add link"},{command:"justifyLeft",icon:"align-left",label:"L",title:"Align left"},{command:"justifyCenter",icon:"align-center",label:"C",title:"Align center"},{command:"justifyRight",icon:"align-right",label:"R",title:"Align right"},{command:"insertComment",icon:"comment-dots",label:"Comment",title:"Insert comment"},{command:"removeComment",icon:"comment-slash",label:"Remove comment",title:"Remove comment"},{command:"removeFormat",icon:"eraser",label:"Clear",title:"Clear formatting"}],c=[["plaintext","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["html","HTML"],["css","CSS"],["json","JSON"],["php","PHP"],["python","Python"],["java","Java"],["csharp","C#"],["cpp","C++"],["sql","SQL"],["bash","Bash"],["markdown","Markdown"]],u=["video/*",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".csv",".txt",".rtf",".odt",".ods",".odp"].join(","),p=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","csv","txt","rtf","odt","ods","odp"]),h=new Set(["a","abbr","b","blockquote","br","code","del","em","figcaption","h1","h2","h3","h4","i","img","li","mark","ol","p","pre","s","span","strike","strong","sub","sup","u","ul"]),m=new Set(["href","src"]),b=new Set(["title","alt","target","rel","style"]),f={a:new Set(["href","target","rel","title"]),img:new Set(["src","alt","title","width","height"]),code:new Set(["data-language"]),span:new Set(["style","class","data-rbe-comment","data-rbe-comment-id"]),mark:new Set(["style"])},g=new Set(["color","background-color","font-family","font-size","font-weight","font-style","text-decoration","text-decoration-line","text-align"]);function y(e){return(e||"block")+"-"+Math.random().toString(36).slice(2,9)+Date.now().toString(36)}function v(e,t,i){var r=document.createElement(e);return t&&(r.className=t),i&&Object.keys(i).forEach(function(e){!1!==i[e]&&null!==i[e]&&void 0!==i[e]&&("text"===e?r.textContent=i[e]:"html"===e?r.innerHTML=i[e]:"dataset"===e?Object.keys(i[e]).forEach(function(t){r.dataset[t]=i[e][t]}):e in r?r[e]=i[e]:r.setAttribute(e,i[e]))}),r}function w(e){return String(null==e?"":e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function k(e,t){if(e){var i=e.querySelector(".rbe-raw-frame");i||(e.innerHTML="",(i=v("iframe","rbe-raw-frame",{title:"Raw HTML preview",loading:"lazy",sandbox:"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin"})).onload=function(){try{var e=i.contentDocument||i.contentWindow.document,t=e.documentElement,r=e.body,n=Math.max(t?t.scrollHeight:0,r?r.scrollHeight:0,220);i.style.height=Math.min(n+4,900)+"px"}catch(e){i.style.height="360px"}},e.appendChild(i)),i.srcdoc=function(e){var t=String(e||"");return t.trim()?/(<!doctype|<html[\s>]|<body[\s>])/i.test(t)?t:["<!doctype html>",'<html><head><meta charset="utf-8"><base target="_blank">',"<style>","body{margin:0;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#172033;background:#fff;}","img,video,iframe{max-width:100%;height:auto;}table{border-collapse:collapse;max-width:100%;}td,th{border:1px solid #d7dee8;padding:8px;}","</style></head><body>",t,"</body></html>"].join(""):""}(t)}}function x(e){if(!(e=String(e||"")).trim())return"";if(/(<!doctype|<html[\s>]|<body[\s>])/i.test(e)&&"undefined"!=typeof DOMParser)try{var t=(new DOMParser).parseFromString(e,"text/html");return'<div class="rbe-output-raw-html">'+(t.head?Array.prototype.slice.call(t.head.querySelectorAll("style,link[rel='stylesheet']")):[]).map(function(e){return e.outerHTML||""}).join("")+(t.body?t.body.innerHTML:"")+"</div>"}catch(t){return'<div class="rbe-output-raw-html">'+e+"</div>"}return'<div class="rbe-output-raw-html">'+e+"</div>"}function S(e,t){return'<i class="rbe-fa-icon fa-solid fa-'+w(e=String(e||"circle").trim())+'" aria-hidden="true"></i><span class="rbe-sr-only">'+w(t||e)+"</span>"}function C(e,t){"undefined"!=typeof document&&document.head&&(document.querySelector("link[data-rbe-lib='"+t+"'], link[href='"+e+"']")||document.head.appendChild(v("link","",{rel:"stylesheet",href:e,dataset:{rbeLib:t}})))}function E(e,t,i){if("undefined"!=typeof document&&document.head){var r=document.querySelector("script[data-rbe-lib='"+t+"'], script[src='"+e+"']");if(r)"true"===r.dataset.loaded?i():r.addEventListener("load",i,{once:!0});else{var n=v("script","",{src:e,dataset:{rbeLib:t}});n.addEventListener("load",function(){n.dataset.loaded="true",i()}),document.head.appendChild(n)}}}function T(e){if(!e)return!0;var t=String(e).trim().toLowerCase();return 0===t.indexOf("http://")||0===t.indexOf("https://")||0===t.indexOf("mailto:")||0===t.indexOf("tel:")||0===t.indexOf("data:image/")||0===t.indexOf("/")||0===t.indexOf("#")||0===t.indexOf("./")||0===t.indexOf("../")}function L(e){var t=String(e||"").trim();return t&&(/^#[0-9a-f]{3,8}$/i.test(t)||/^rgba?\(\s*(\d{1,3}\s*,\s*){2}\d{1,3}(\s*,\s*(0|1|0?\.\d+))?\s*\)$/i.test(t)||/^[a-z]+$/i.test(t))?t:""}function A(e){var t=document.createElement("template");return t.innerHTML=String(e||""),function e(t){Array.prototype.slice.call(t.childNodes).forEach(function(i){if(i.nodeType!==Node.TEXT_NODE)if(i.nodeType===Node.ELEMENT_NODE){var r=i.tagName.toLowerCase();if("font"!==r){if(!h.has(r)){for(var n=document.createDocumentFragment();i.firstChild;)n.appendChild(i.firstChild);return i.replaceWith(n),void e(t)}Array.prototype.slice.call(i.attributes).forEach(function(e){var t,n=e.name.toLowerCase(),a=f[r]&&f[r].has(n);if(b.has(n)||a)if(!m.has(n)||T(e.value)){if("style"===n){var o=(t=e.value,String(t||"").split(";").map(function(e){var t=e.split(":");if(t.length<2)return"";var i=t.shift().trim().toLowerCase(),r=t.join(":").trim();return g.has(i)?/url\s*\(|expression\s*\(/i.test(r)?"":i+": "+r:""}).filter(Boolean).join("; "));o?i.setAttribute("style",o):i.removeAttribute("style")}}else i.removeAttribute(e.name);else i.removeAttribute(e.name)}),"a"===r&&(i.setAttribute("rel","noopener noreferrer"),i.getAttribute("target")||i.setAttribute("target","_blank")),e(i)}else{var a=L(i.getAttribute("color"));if(a){var o=document.createElement("span");for(o.style.color=a;i.firstChild;)o.appendChild(i.firstChild);i.replaceWith(o),e(o)}else{for(var l=document.createDocumentFragment();i.firstChild;)l.appendChild(i.firstChild);i.replaceWith(l),e(t)}}}else i.remove()})}(t.content),t.innerHTML}function M(e){return String(e||"").split(/\n{2,}/).map(function(e){return e.trim()}).filter(Boolean).map(function(e){return{id:y("block"),type:"paragraph",data:{text:w(e).replace(/\n/g,"<br>")}}})}function O(e,t){var i=null;return function(){var r=arguments,n=this;clearTimeout(i),i=setTimeout(function(){e.apply(n,r)},t)}}function q(e){return e?(e.nodeType===Node.TEXT_NODE&&(e=e.parentElement),e&&e.closest?e.closest(".rbe-block"):null):null}function N(){return"undefined"!=typeof window&&window.location&&window.location.origin&&/^https?:\/\//i.test(window.location.origin)?window.location.origin:""}function P(e){var t,i,r,n=String(e||"").trim(),a=function(e){var t=String(e||"").trim(),i=t.match(/<iframe[^>]+src=["']([^"']+)["']/i);i&&(t=i[1]);try{var r=new URL(t,N()||void 0),n=r.hostname.replace(/^www\./,"").toLowerCase(),a=r.pathname.split("/").filter(Boolean);if("youtu.be"===n)return a[0]||"";if("youtube.com"===n||n.endsWith(".youtube.com")){if("/watch"===r.pathname)return r.searchParams.get("v")||"";if(("embed"===a[0]||"shorts"===a[0])&&a[1])return a[1]}if(("youtube-nocookie.com"===n||n.endsWith(".youtube-nocookie.com"))&&"embed"===a[0])return a[1]||""}catch(e){}var o=t.match(/(?:youtube(?:-nocookie)?\.com\/(?:watch\?[^#\s]*v=|embed\/|shorts\/)|youtu\.be\/)([A-Za-z0-9_-]{6,})/);return o?o[1]:""}(n);if(a)return{service:"youtube",source:n,embed:(t=a,i="rel=0&modestbranding=1&playsinline=1",r=N(),r&&(i+="&origin="+encodeURIComponent(r)),"https://www.youtube.com/embed/"+t+"?"+i)};var o=function(e){var t=String(e).match(/vimeo\.com\/(?:video\/)?([0-9]+)/);return t?t[1]:""}(n);return o?{service:"vimeo",source:n,embed:"https://player.vimeo.com/video/"+o}:/google\.[^/]+\/maps|goo\.gl\/maps|maps\.app\.goo\.gl/.test(n)?{service:"map",source:n,embed:n}:{service:"link",source:n,embed:n}}function B(e){if(!e||"object"!=typeof e)return e||null;try{return JSON.parse(JSON.stringify(e))}catch(t){return e}}function H(e){var t={};return Object.keys(o).forEach(function(i){t[i]=!!e}),t}function _(e){return"signatureFlow"===(e=String(e||"").trim())?"signature_flow":e}function I(e){return e=_(e),o[e]||e||"Premium feature"}function D(e){"string"==typeof e&&(e=e.split(",")),Array.isArray(e)||(e=Object.keys(o));var t={};return e.map(_).filter(function(e){return!(!e||t[e])&&(t[e]=!0,!0)})}function R(e){var t=(e=e||{}).upgradeUrl||e.upgrade_url||e.billingUrl||e.billing_url||"";if(t)return String(t);var i=String(e.verifyEndpoint||e.verify||e.endpoint||e.usageEndpoint||e.pluginEndpoint||"").trim();return i?i.replace(/\/api\/[^\/?#]+(?:[?#].*)?$/i,"/dashboard.php#billing"):""}function j(){return(new Date).toISOString().slice(0,10)}function F(e){e=e||{};var i=String(e.pluginEndpoint||e.pluginsEndpoint||e.bundleEndpoint||e.endpoint||t.premiumPlugins).trim(),r=String(e.licenseKey||e.license_key||e.license||"").trim(),n=String(e.sessionToken||e.session_token||"").trim(),a=D(e.features||e.pluginFeatures);if(!i)return Promise.reject(new Error("Missing premium plugin endpoint."));if(!r)return Promise.reject(new Error("Missing premium license key."));if("function"!=typeof fetch)return Promise.reject(new Error("This browser does not support fetch()."));if("undefined"==typeof document)return Promise.reject(new Error("Premium plugins can only be loaded in a browser."));var o=i+"|"+r.slice(0,18)+"|"+a.slice().sort().join(",");return s[o]||(s[o]=fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/javascript, application/json;q=0.9, */*;q=0.8"},body:JSON.stringify({license_key:r,session_token:n,features:a,domain:"undefined"!=typeof window&&window.location?window.location.origin:""})}).then(function(e){return e.text().then(function(t){if(!e.ok)throw new Error(function(e,t){try{var i=JSON.parse(e||"{}");return i.error||i.message||t}catch(i){return e||t}}(t,"Premium plugin license verification failed."));return{text:t,response:e}})}).then(function(e){var t=document.createElement("script");return t.type="text/javascript",t.setAttribute("data-blockwriteai-premium-bundle","true"),t.text=e.text+"\n//# sourceURL=blockwriteai-premium-plugins.js",document.head.appendChild(t),{ok:!0,features:a}}).catch(function(e){throw delete s[o],e})),s[o]}function W(e){var i=(e=e||{}).premium||e.Premium||{};!1===i&&(i={disabled:!0});var r=e.licenseKey||e.license_key||e.license||i.licenseKey||i.license_key||i.key||"";return{disabled:!!i.disabled,licenseKey:String(r||"").trim(),sessionToken:String(i.sessionToken||i.session_token||e.sessionToken||e.session_token||"").trim(),verifyEndpoint:String(i.verifyEndpoint||i.verify||i.endpoint||e.licenseVerifyEndpoint||t.licenseVerify).trim(),usageEndpoint:String(i.usageEndpoint||i.usage||e.aiUsageEndpoint||t.aiUsage).trim(),featureUsageEndpoint:String(i.featureUsageEndpoint||i.premiumUsageEndpoint||e.featureUsageEndpoint||e.premiumUsageEndpoint||t.premiumUsage).trim(),usageDetailEndpoint:String(i.usageDetailEndpoint||i.usageDetail||e.aiUsageDetailEndpoint||"").trim(),pluginEndpoint:String(i.pluginEndpoint||i.pluginsEndpoint||i.bundleEndpoint||e.premiumPluginEndpoint||t.premiumPlugins).trim(),eventEndpoint:String(i.eventEndpoint||i.premiumEventEndpoint||e.eventEndpoint||e.premiumEventEndpoint||t.premiumEvent).trim(),signatureEventEndpoint:String(i.signatureEventEndpoint||i.signatureEvent||e.signatureEventEndpoint||t.signatureEvent).trim(),upgradeUrl:R(Object.assign({},e,i)),pluginFeatures:D(i.features||i.pluginFeatures||e.premiumPluginFeatures),autoLoadPlugins:!!(i.autoLoadPlugins||i.loadPlugins||e.autoLoadPremiumPlugins)}}function U(e){return e.disabled?{status:"disabled",valid:!0,message:"Premium checks are disabled.",features:H(!0),limits:{},usage:{}}:{status:e.licenseKey&&e.verifyEndpoint?"pending":"missing",valid:!1,message:e.licenseKey?"License verification is pending.":"License key is required for premium features.",features:H(!1),limits:{},usage:{}}}function z(e){var t={};return e&&"object"==typeof e?(Object.keys(e).forEach(function(i){"time"!==i&&"version"!==i&&"blocks"!==i&&(t[i]=B(e[i]))}),t):t}function J(e){var t=(e&&e.name?e.name:"").split(".");return t.length>1?t.pop().toLowerCase():""}function X(e){return!(!e||!e.type||0!==e.type.indexOf("image/"))}function K(e){return!(!e||X(e))&&(!(!e.type||0!==e.type.indexOf("video/"))||(!!p.has(J(e))||/^(application\/pdf|application\/msword|application\/vnd\.ms-|application\/vnd\.openxmlformats|text\/plain|text\/csv|application\/rtf)/i.test(e.type||"")))}function Q(e,t){var i=J({name:t||""});return e&&0===e.indexOf("video/")?"file-video":"pdf"===i?"file-pdf":"xls"===i||"xlsx"===i||"csv"===i||"ods"===i?"file-excel":"ppt"===i||"pptx"===i||"odp"===i?"file-powerpoint":"doc"===i||"docx"===i||"odt"===i?"file-word":"file-lines"}function $(e,t){var i=J({name:t||""});return e&&0===e.indexOf("video/")?"VIDEO":i?i.toUpperCase():"FILE"}function Y(e,t){var i=J({name:t||""});return e&&0===e.indexOf("video/")?"video":"pdf"===i?"pdf":"xls"===i||"xlsx"===i||"csv"===i||"ods"===i?"excel":"ppt"===i||"pptx"===i||"odp"===i?"powerpoint":"doc"===i||"docx"===i||"odt"===i?"word":"txt"===i||"rtf"===i?"text":"file"}function V(e){e=e||{};var t=Array.isArray(e.items)?e.items:Array.isArray(e.images)?e.images:null;return t||!e.url&&!e.src||(t=[e]),(t||[]).map(function(t){return{url:(t=t||{}).url||t.src||t.base64||"",base64:t.base64||e.base64||"",upload:B(t.upload||e.upload||null),alt:t.alt||t.caption||"",caption:t.caption||"",alignment:le(t.alignment||e.alignment),width:Number(t.width||e.width||100),displayWidth:Number(t.displayWidth||e.displayWidth||0),minWidth:Number(t.minWidth||e.minWidth||0),naturalWidth:Number(t.naturalWidth||e.naturalWidth||0),naturalHeight:Number(t.naturalHeight||e.naturalHeight||0),rotation:Number(t.rotation||e.rotation||0),crop:t.crop||e.crop||"free",cropRatio:Number(t.cropRatio||e.cropRatio||0),cropX:Number(t.cropX||e.cropX||50),cropY:Number(t.cropY||e.cropY||50),cropZoom:Number(t.cropZoom||e.cropZoom||1)}}).filter(function(e){return!!e.url})}function Z(e,t,i,r){return e=Number(e),Number.isFinite(e)||(e=r),Math.min(i,Math.max(t,e))}function G(e){return Z(e&&e.cropRatio,.35,3.5,0)}function ee(e){return Z(e,0,100,50)}function te(e){return Z(e,1,3,1)}function ie(e){var t=Math.min(100,Math.max(50,Number(e.width||100))),i=Number(e.rotation||0),r="custom"===e.crop?"custom":"free",n=G(e),a="custom"===r&&n?"aspect-ratio:"+n.toFixed(3)+" / 1;":"",o=Number(e.displayWidth||0),l=Number(e.minWidth||0),s=Number(e.naturalWidth||0);o>0&&l>0&&(o=Math.max(o,l)),o>0&&s>0&&(o=Math.min(o,Math.max(l||0,s)));var d="width:min(100%,"+(o>0?Math.round(o):Math.round(t/100*180))+"px);"+a,c=ee(e.cropX),u=ee(e.cropY),p="max-width:100%;"+("free"===r?"max-height:360px;":"max-height:none;")+"width:100%;"+("free"===r?"height:auto;":"height:100%;")+"object-fit:"+("free"===r?"contain":"cover")+";object-position:"+c+"% "+u+"%;transform-origin:"+c+"% "+u+"%;--rbe-image-zoom:"+te(e.cropZoom)+";transform:rotate("+i+"deg) scale(var(--rbe-image-zoom,1));";return'<div class="rbe-image-stage" style="'+w(d)+'"><img class="rbe-output-image rbe-image-preview" src="'+w(e.url)+'" alt="'+w(e.alt||e.caption||"")+'" loading="lazy" style="'+w(p)+'"></div>'}function re(e){e=e||{};var t=Array.isArray(e.items)?e.items:Array.isArray(e.attachments)?e.attachments:null;return t||!e.url&&!e.name||(t=[e]),(t||[]).map(function(t){return{name:(t=t||{}).name||t.url||"Attachment",url:t.url||t.base64||"",base64:t.base64||e.base64||"",upload:B(t.upload||e.upload||null),type:t.type||"",size:Number(t.size||0),alignment:le(t.alignment||e.alignment)}}).filter(function(e){return!!e.url})}function ne(e){if(e&&window.getSelection&&(e.focus(),e.isContentEditable)){var t=document.createRange();t.selectNodeContents(e),t.collapse(!1);var i=window.getSelection();i.removeAllRanges(),i.addRange(t)}}function ae(){return{time:Date.now(),version:e,blocks:[{id:y("block"),type:"paragraph",data:{text:"",alignment:"left"}}]}}function oe(e){var t=[];document.currentScript&&t.push(document.currentScript);var i=(t=t.concat(Array.prototype.slice.call(document.scripts))).find(function(e){return e.src&&/\/blockwriteai(?:\.min)?\.js(?:[?#].*)?$/i.test(e.src)});if(i&&i.src)try{return new URL(e,i.src).href}catch(e){}return""}function le(e){return"center"===e||"right"===e?e:"left"}function se(e){return"dashed"===e||"dotted"===e||"double"===e?e:"solid"}function de(e){return e=Number(e||1),Number.isFinite(e)||(e=1),Math.min(6,Math.max(1,Math.round(e)))}function ce(e){return de((e=e||{}).borderWidth)+"px "+se(e.borderStyle)+" #d7dee8"}function ue(e){return"success"===e||"warning"===e||"danger"===e?e:"info"}function pe(e,t){var i={info:["#2563eb","#f6faff"],success:["#07845f","#f2fbf7"],warning:["#b76b00","#fff9ef"],danger:["#cf2f2f","#fff5f5"]}[e=ue(e)];return"border-left:5px solid "+i[0]+";background:"+i[1]+";padding:12px 14px;border-radius:8px;margin:0 0 16px;color:#172033;text-align:"+le(t)+";"}function he(e){return e=String(e||"plaintext").toLowerCase(),c.some(function(t){return t[0]===e})?e:"plaintext"}function me(e){return Array(Math.max(0,e)+1).join(" ")}function be(e){return e.map(function(e){return e.replace(/\s+$/g,"")}).filter(function(e,t,i){return e.trim()||t>0&&t<i.length-1&&i[t-1].trim()&&i[t+1].trim()}).join("\n").trim()}function fe(e,t){if(e=String(e||"").trim(),t=he(t),!e)return"";if("json"===t)try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}return"html"===t?function(e){var t=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),i=String(e||"").replace(/>\s+</g,"><").match(/<!--[\s\S]*?-->|<!doctype[^>]*>|<\/?[\w:-]+(?:\s+[\w:-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*\/?>|[^<]+/gi);if(!i)return String(e||"").trim();var r=0,n=[];return i.forEach(function(e){var i=e.trim();if(i){var a=/^<\//.test(i),o=i.match(/^<\/?([\w:-]+)/),l=o?o[1].toLowerCase():"",s=/\/>$/.test(i)||/^<!/i.test(i)||t.has(l);a&&(r=Math.max(0,r-1)),/^</.test(i)?(n.push(me(r)+i),a||s||(r+=1)):i.split(/\s*\n+\s*/).forEach(function(e){e.trim()&&n.push(me(r)+e.trim())})}}),be(n)}(e):"css"===t?function(e){var t=String(e||"").trim(),i=[],r="",n=0,a="",o=!1;function l(e){var t=r.trim();t&&i.push(me(n+(e||0))+t),r=""}for(var s=0;s<t.length;s+=1){var d=t[s],c=t[s+1];o?(r+=d,"*"===d&&"/"===c&&(r+=c,s+=1,o=!1,l())):a?(r+=d,"\\"===d&&c?(r+=c,s+=1):d===a&&(a="")):"/"!==d||"*"!==c?'"'!==d&&"'"!==d?"{"!==d?"}"!==d?";"!==d?"\n"!==d&&"\r"!==d?r+=d:r.trim()&&l():(r+=";",l()):(l(),n=Math.max(0,n-1),i.push(me(n)+"}")):(r=r.trim()+" {",l(),n+=1):(a=d,r+=d):(r.trim()&&l(),r="/*",s+=1,o=!0)}return l(),be(i)}(e):"javascript"===t||"typescript"===t||"java"===t||"csharp"===t||"cpp"===t||"php"===t?function(e){var t=String(e||"").trim(),i=[],r="",n=0,a="",o=!1,l=!1;function s(e){var t=r.trim();t&&i.push(me(n+(e||0))+t),r=""}for(var d=0;d<t.length;d+=1){var c=t[d],u=t[d+1];o?"\n"===c||"\r"===c?(s(),o=!1):r+=c:l?(r+=c,"*"===c&&"/"===u&&(r+=u,d+=1,l=!1,s())):a?(r+=c,"\\"===c&&u?(r+=u,d+=1):(c===a&&"`"!==a||"`"===c&&"`"===a)&&(a="")):"/"!==c||"/"!==u?"/"!==c||"*"!==u?'"'!==c&&"'"!==c&&"`"!==c?"{"!==c?"}"!==c?";"!==c?"\n"!==c&&"\r"!==c?r+=c:r.trim()&&s():(r+=";",s()):(s(),n=Math.max(0,n-1),r="}",";"!==u&&","!==u||(r+=u,d+=1),s()):(r=r.trim()+" {",s(),n+=1):(a=c,r+=c):(r.trim()&&s(),r="/*",d+=1,l=!0):(r+="//",d+=1,o=!0)}return s(),be(i)}(e):e}function ge(e,t){return e=String(e||"").trim(),/^#[0-9a-f]{3}$/i.test(e)?("#"+e.slice(1).split("").map(function(e){return e+e}).join("")).toLowerCase():/^#[0-9a-f]{6}$/i.test(e)?e.toLowerCase():t}function ye(e){return e=ge(e,"#f3f4f6").slice(1),(.299*parseInt(e.slice(0,2),16)+.587*parseInt(e.slice(2,4),16)+.114*parseInt(e.slice(4,6),16))/255>.56?"#172033":"#f8fafc"}function ve(e){return ge(e&&e.headerColor,"#e5e7eb")}function we(e){return ge(e&&e.backgroundColor,"#f3f4f6")}function ke(e,t){if(e){var i=ve(t),r=we(t);e.style.setProperty("--rbe-code-header-bg",i),e.style.setProperty("--rbe-code-header-text",ye(i)),e.style.setProperty("--rbe-code-bg",r),e.style.setProperty("--rbe-code-text",ye(r))}}function xe(e,t){return'<span class="rbe-token '+e+'">'+w(t)+"</span>"}function Se(e,t){if(e=String(e||""),t=he(t),!e)return"";if("html"===t)return e.replace(/(<!--[\s\S]*?-->)|(<\/?[\w:-]+(?:\s+[\w:-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*\/?>)|([^<]+)/g,function(e,t,i,r){return t?xe("rbe-token-comment",t):i?w(i).replace(/(&quot;.*?&quot;|&#39;.*?&#39;)/g,'<span class="rbe-token rbe-token-string">$1</span>').replace(/(&lt;\/?)([\w:-]+)/,'$1<span class="rbe-token rbe-token-keyword">$2</span>'):w(r||"")});if("css"===t)return e.replace(/(\/\*[\s\S]*?\*\/)|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')|(#[0-9a-f]{3,8}\b)|([a-z-]+)(?=\s*:)|([{}:;])|([^"'#{}:;\/]+)/gi,function(e,t,i,r,n,a,o){return t?xe("rbe-token-comment",t):i?xe("rbe-token-string",i):r?xe("rbe-token-number",r):n?xe("rbe-token-keyword",n):a?xe("rbe-token-punctuation",a):w(o||"")});var i=({javascript:"async await break case catch class const continue default delete do else export extends finally for function if import in instanceof let new return static switch this throw try typeof var void while yield true false null undefined",typescript:"abstract any as async await boolean break case catch class const continue default delete do else enum export extends false finally for function if implements import in interface instanceof let module namespace never new null number private protected public readonly return static string super switch this throw true try type typeof undefined var void while yield",php:"abstract and array as break callable case catch class clone const continue declare default do echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends final finally fn for foreach function global goto if implements include include_once instanceof insteadof interface isset list namespace new or print private protected public require require_once return static switch throw trait try unset use var while xor true false null",python:"and as assert async await break class continue def del elif else except False finally for from global if import in is lambda None nonlocal not or pass raise return True try while with yield",java:"abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while true false",csharp:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while",cpp:"alignas alignof and and_eq asm auto bitand bitor bool break case catch char class compl const constexpr const_cast continue decltype default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new noexcept not not_eq nullptr operator or or_eq private protected public register reinterpret_cast return short signed sizeof static static_assert static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq",sql:"select from where insert update delete create alter drop table view join inner left right full outer on as and or not null is in exists between like group by order having limit offset values set distinct union all case when then else end",bash:"if then else elif fi for while do done case esac function in select until true false export local readonly return shift"}[t]||"").split(/\s+/).filter(Boolean),r=i.length?new RegExp("\\b("+i.map(function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("|")+")\\b","g"):null,n=new RegExp("\\/\\*[\\s\\S]*?\\*\\/|"+("python"===t||"bash"===t?"#[^\\n]*":"\\/\\/[^\\n]*")+"|`(?:\\\\.|[^`\\\\])*`|\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\b\\d+(?:\\.\\d+)?\\b"+(r?"|\\b(?:"+i.join("|")+")\\b":""),"g"),a="",o=0;return e.replace(n,function(t,i){return a+=w(e.slice(o,i)),/^(\/\*|\/\/|#)/.test(t)?a+=xe("rbe-token-comment",t):/^["'`]/.test(t)?a+=xe("rbe-token-string",t):/^\d/.test(t)?a+=xe("rbe-token-number",t):a+=xe("rbe-token-keyword",t),o=i+t.length,t}),a+=w(e.slice(o))}function Ce(e){var t=he((e=e||{}).language);return'<div class="rbe-output-code" style="'+w(function(e){var t=ve(e),i=we(e);return"--rbe-code-header-bg:"+t+";--rbe-code-header-text:"+ye(t)+";--rbe-code-bg:"+i+";--rbe-code-text:"+ye(i)+";"}(e))+'"><div class="rbe-output-code-title">'+w(function(e){e=e||"plaintext";var t=c.find(function(t){return t[0]===e});return t?t[1]:e}(t))+'</div><pre><code class="language-'+w(t)+'">'+Se(e.code||"",t)+"</code></pre></div>"}function Ee(e){return"object"==typeof e&&e?e.text||"":e||""}function Te(e){var t="object"==typeof e&&e?Number(e.level||0):0;return Number.isFinite(t)||(t=0),Math.min(4,Math.max(0,Math.round(t)))}function Le(e){return{text:A(Ee(e)),level:Te(e),alignment:le("object"==typeof e&&e?e.alignment:"left"),style:"object"==typeof e&&e&&"ordered"===e.style?"ordered":"object"==typeof e&&e&&"unordered"===e.style?"unordered":""}}function Ae(e){return{text:A((e="object"==typeof e&&e?e:{text:e||""}).text||""),checked:!!e.checked,level:Te(e)}}function Me(e){return""===Ee(e).replace(/<br\s*\/?>/gi,"").trim()}function Oe(e,t,i){var r="ordered"===t?"ol":"ul",n=[],a=[n],o=0;return(e||[]).map(Le).filter(function(e){return!Me(e)}).forEach(function(e){for(e.level>o+1&&(e.level=o+1);a.length>e.level+1;)a.pop();var r={text:e.text,alignment:le(e.alignment||i),style:e.style||t,children:[]};a[a.length-1].push(r),a[e.level+1]=r.children,o=e.level}),"<"+r+' class="rbe-output-outline-list" style="text-align:'+le(i)+'">'+function e(r,n){var a=n.slice();return r.map(function(r){if("ordered"===(r.style||t)){var o=a.slice();o[o.length-1]+=1,a=o.slice();var l=o.join(".")+".";return'<li style="text-align:'+le(r.alignment||i)+'"><span class="rbe-output-list-marker">'+l+'</span><span class="rbe-output-list-text">'+Ne(r.text)+"</span>"+(r.children.length?'<ol class="rbe-output-outline-list">'+e(r.children,o.concat(0))+"</ol>":"")+"</li>"}return'<li style="text-align:'+le(r.alignment||i)+'"><span class="rbe-output-list-marker">&bull;</span><span class="rbe-output-list-text">'+Ne(r.text)+"</span>"+(r.children.length?'<ul class="rbe-output-outline-list">'+e(r.children,n.concat(0))+"</ul>":"")+"</li>"}).join("")}(n,[0])+"</"+r+">"}function qe(e){var t=[],i=[t],r=0;return(e||[]).map(Ae).filter(function(e){return!Me(e)}).forEach(function(e){for(e.level>r+1&&(e.level=r+1);i.length>e.level+1;)i.pop();var t={text:e.text,checked:e.checked,level:e.level,children:[]};i[i.length-1].push(t),i[e.level+1]=t.children,r=e.level}),'<ul class="rbe-output-checklist">'+function e(t){return t.map(function(t){return'<li class="rbe-output-checklist-item" data-level="'+t.level+'">'+function(e){var t=e.level>0;return'<span class="rbe-output-check'+(e.checked?" is-checked":"")+(t?" is-nested":"")+'" aria-hidden="true">'+S(t?e.checked?"circle-check":"circle":e.checked?"square-check":"square",e.checked?"Checked":"Unchecked")+"</span>"}(t)+'<span class="rbe-output-checklist-text">'+Ne(t.text)+"</span>"+(t.children.length?'<ul class="rbe-output-checklist rbe-output-checklist-nested">'+e(t.children)+"</ul>":"")+"</li>"}).join("")}(t)+"</ul>"}function Ne(e){var t=document.createElement("template");return t.innerHTML=A(e||""),Array.prototype.slice.call(t.content.querySelectorAll(".rbe-comment-mark")).forEach(function(e){var t=e.getAttribute("data-rbe-comment")||e.getAttribute("title")||"",i=e.getAttribute("data-rbe-comment-id")||y("comment"),r=document.createElement("span");r.className="rbe-output-annotation",r.setAttribute("data-comment-id",i),r.setAttribute("data-comment",t),r.innerHTML='<span class="rbe-output-annotation-text">'+e.innerHTML+'</span><span class="rbe-output-annotation-card"><strong>Comment</strong><span class="rbe-output-annotation-note">'+w(t)+'</span><span class="rbe-output-annotation-history" aria-live="polite"></span><span class="rbe-output-annotation-actions"><button type="button" class="rbe-output-annotation-resolve" title="Resolve comment">'+S("check","Resolve comment")+'</button><button type="button" class="rbe-output-annotation-decline" title="Decline comment">'+S("xmark","Decline comment")+'</button></span><span class="rbe-output-annotation-decline-form" hidden><textarea class="rbe-output-annotation-reply" placeholder="Write decline reason"></textarea><button type="button" class="rbe-output-annotation-save-decline">Save</button></span></span>',e.replaceWith(r)}),t.innerHTML}function Pe(){return{el:v,uid:y,faIcon:S,escapeHTML:w,sanitizeHTML:A,renderOutputInline:Ne,cleanAlignment:le,isSafeUrl:T}}function Be(e){return"object"==typeof e&&e?e.text||"":e||""}function He(e){return le("object"==typeof e&&e?e.alignment:"left")}function _e(e,t){if(e){e.value=t;var i=Array.prototype.slice.call(e.options||[]).find(function(e){return e.value===t}),r=e.nextElementSibling&&e.nextElementSibling.classList&&e.nextElementSibling.classList.contains("select2-container")?e.nextElementSibling:null;if(r&&i){var n=r.querySelector(".select2-selection__rendered");n&&(n.textContent=i.textContent||i.text||t,n.setAttribute("title",n.textContent))}window.jQuery&&window.jQuery(e).data("select2")&&window.jQuery(e).val(t).trigger("change.select2")}}function Ie(e){this.options=Object.assign({holder:null,data:null,placeholder:"Type / for blocks",minHeight:"320px",autofocus:!1,readOnly:!1,tools:null,upload:null,uploadOutput:["base64"],mentions:[],autosave:null,userName:"Current user",fontAwesome:!0,select2:!0,shell:!0,maxWidth:null,historyPanel:!1,saveButton:!1,exportButton:!1,exportHtmlButton:!1,exportFilename:"blockwriteai-document",onReady:null,onChange:null,onSave:null},a,e||{});var i=this.options.export||this.options.Export||null;if(i&&"object"==typeof i){var r="buttons"in i?i.buttons:"Export Buttons"in i?i["Export Buttons"]:i.exportButtons,n="html"in i?i.html:"Export To HTML"in i?i["Export To HTML"]:i.exportToHTML;void 0!==r&&(this.options.exportButton=!!r),void 0!==n&&(this.options.exportHtmlButton=!!n)}if(this.holder="string"==typeof this.options.holder?document.querySelector(this.options.holder):this.options.holder,!this.holder)throw new Error("BlockWriteAI: holder was not found.");if(!1!==this.options.fontAwesome&&C("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css","fontawesome-css"),this.readOnly=!!this.options.readOnly,this.premiumOptions=W(this.options),this.licenseState=U(this.premiumOptions),this.shellOptions=function(e){if(!e||!1===e.shell)return null;var t,i=e.shell&&"object"==typeof e.shell?e.shell:{},r=i.branding&&"object"==typeof i.branding?i.branding:e.branding&&"object"==typeof e.branding?e.branding:{},n=void 0!==i.maxWidth?i.maxWidth:void 0!==e.maxWidth?e.maxWidth:e.editorMaxWidth,a=void 0!==i.logo?i.logo:void 0!==i.logoUrl?i.logoUrl:void 0!==r.logo?r.logo:void 0!==e.logoUrl?e.logoUrl:void 0!==e.shellLogo?e.shellLogo:oe("blockwriteai-logo.svg")||!1;return{showHeader:!1!==(void 0!==i.showHeader?i.showHeader:e.showHeader),title:i.title||e.shellTitle||"BlockWriteAI",subtitle:i.subtitle||e.shellSubtitle||"Block-first writing editor with AI, slash commands, inline toolbar, uploads, tables, embeds, autosave, and JSON responses.",heading:i.heading||e.shellHeading||"Editor",status:i.status||e.shellStatus||"Ready",logo:a,maxWidth:(t=n,null==t||!1===t||""===t?"":"number"==typeof t&&Number.isFinite(t)?Math.max(0,t)+"px":String(t)),className:i.className||e.shellClassName||""}}(this.options),"undefined"!=typeof window&&(window.BlockWriteAISignatureEventUrl=this.premiumOptions.signatureEventEndpoint||t.signatureEvent,window.BlockWriteAIPremiumEventUrl=this.premiumOptions.eventEndpoint||t.premiumEvent,window.BlockWriteAILogoUrl=this.shellOptions&&this.shellOptions.logo?this.shellOptions.logo:oe("blockwriteai-logo.svg")),this.shell=null,this.shellStatus=null,this.shellProgress=null,this.shellProgressText=null,this.editorMount=null,this.availableTools=this.resolveTools(this.options.tools),this.history=[],this.actionHistory=[],this.historyIndex=-1,this.currentMenuBlock=null,this.slashBlock=null,this.draggingBlock=null,this.silent=!1,this.savedRange=null,this.selectEnhanceTimer=null,this.inlineToolbarStickyUntil=0,this.pendingHistoryAction=null,this.renderingData=!1,this.documentMeta=z(this.options.data),this.hasExplicitSave=!1,this.savedExportData=null,this.boundDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.root=v("div","rbe",{dataset:{readonly:this.readOnly?"true":"false",premiumStatus:this.licenseState.status}}),this.root.__blockwriteaiInstance=this,this.root.style.setProperty("--rbe-min-height",this.options.minHeight),this.topToolbar=this.createTopToolbar(),this.canvas=v("div","rbe-canvas",{role:"textbox","aria-label":"Rich text editor"}),this.inlineToolbar=this.createInlineToolbar(),this.commentModal=this.createCommentModal(),this.linkModal=this.createLinkModal(),this.menu=v("div","rbe-menu",{hidden:!0}),this.root.appendChild(this.topToolbar),this.root.appendChild(this.canvas),this.root.appendChild(this.inlineToolbar),this.root.appendChild(this.commentModal),this.root.appendChild(this.linkModal),this.root.appendChild(this.menu),this.holder.innerHTML="",this.shellOptions?(this.shell=this.createShell(),this.editorMount.appendChild(this.root),this.holder.appendChild(this.shell),this.bindShellEvents()):this.holder.appendChild(this.root),this.queueChange=O(this.emitChange.bind(this),250),this.queueHistory=O(this.recordHistory.bind(this),450),this.boundSelectionChange=this.handleSelectionChange.bind(this),this.bindEvents(),this.setupAutosave(),this.canvas.children.length||this.render(this.options.data||ae(),{silent:!0}),this.recordHistory(!0),this.scheduleSelectEnhance(),this.options.autofocus){var o=this.canvas.querySelector("[contenteditable='true'], textarea, input");setTimeout(function(){o&&ne(o)},0)}"function"==typeof this.options.onReady&&this.options.onReady(this),this.verifyPremiumLicense()}return Ie.version=e,Ie.platformEndpoints=Object.assign({},t),Ie.sanitizeHTML=A,Ie.toEmbed=P,Ie.registerTool=function(e,t){(e=String(e||"").trim())&&t&&(i.indexOf(e)<0&&i.push(e),n[e]=t,r[e]=Object.assign({label:t.label||e,hint:t.hint||"Plugin block",icon:t.icon||"puzzle-piece",premiumFeature:_(t.premiumFeature||t.premium||l[e]||"")},r[e]||{},t.menu||{}))},Ie.getTool=function(e){return n[e]||null},Ie.configure=function(e){return Object.assign(a,e||{}),Ie},Ie.loadPremiumPlugins=function(e){return F(e||{})},Ie.helpers=Pe(),Ie.prototype.resolveTools=function(e){return e?Array.isArray(e)?e.filter(function(e){return i.indexOf(e)>=0}):i.filter(function(t){return!1!==e[t]}):i.slice()},Ie.prototype.setPremiumState=function(e){return e=e||{},this?(this.licenseState=Object.assign({},this.licenseState||U(this.premiumOptions||{}),e),this.licenseState.features=Object.assign(H(!1),this.licenseState.features||{}),this.root&&(this.root.dataset.premiumStatus=this.licenseState.status||"missing",this.root.dispatchEvent(new CustomEvent("rbe:premium-change",{bubbles:!0,detail:this.getPremiumState()}))),this.refreshPremiumUI(),this.licenseState):U({})},Ie.prototype.getPremiumState=function(){var e=this||{};return B(e.licenseState||U(e.premiumOptions||{}))},Ie.prototype.getPremiumFeatureForTool=function(e){return function(e){var t=n[e]||{};return _(t.premiumFeature||t.premium||l[e]||"")}(e)},Ie.prototype.loadPremiumPlugins=function(e){var t=this.premiumOptions||W(this.options);return F({licenseKey:t.licenseKey,pluginEndpoint:t.pluginEndpoint,sessionToken:t.sessionToken,features:e||t.pluginFeatures}).then(function(e){return this.availableTools=this.resolveTools(this.options.tools),this.refreshPremiumUI(),e}.bind(this))},Ie.prototype.isPremiumFeatureEnabled=function(e){if(!(e=_(e)))return!0;if(!this)return!1;if(this.premiumOptions&&this.premiumOptions.disabled)return!0;var t=this.licenseState||{};if(!(t.valid&&t.features&&t.features[e]))return!1;if(!(t.subscription||{}).trial)return!0;var i=t.usage||{};if(i._trial_usage_date&&i._trial_usage_date!==j())return!0;if("ai"===e){var r=i.ai_actions_remaining_today;return void 0===r&&(r=i.ai_prompts_remaining_today),void 0===r||Number(r)>0}var n=i.premium_features_remaining_today||{};return void 0===n[e]||Number(n[e])>0},Ie.prototype.canUseTool=function(e){if(!this)return!1;var t=this.getPremiumFeatureForTool(e);return!t||this.isPremiumFeatureEnabled(t)},Ie.prototype.premiumMessage=function(e){e=_(e);var t=this&&this.licenseState?this.licenseState:{};return"pending"===t.status?I(e)+" is checking your license. Please try again in a moment.":t.subscription&&"expired"===t.subscription.status?I(e)+" is locked due to trial is expired.":t.message&&!/license verified/i.test(t.message)?I(e)+" is locked. "+t.message:I(e)+" is locked. Please add an active BlockWriteAI premium license."},Ie.prototype.premiumStorageKey=function(e){var t=this&&this.licenseState?this.licenseState:{},i=this&&this.premiumOptions?this.premiumOptions:{},r=t.license&&t.license.prefix||(i.licenseKey?i.licenseKey.slice(0,18):"no-license");return"blockwriteai:"+(t.organization&&t.organization.id?"org-"+t.organization.id:"org-unknown")+":"+r+":"+e},Ie.prototype.premiumUpgradeTitle=function(e,t){return"Unlock Premium Blocks"},Ie.prototype.premiumUpgradeMessage=function(e,t){return"Get Drawing, Mermaid, Signature, Signature Flow, and AI Credits with a premium plan."},Ie.prototype.showPremiumUpgradeModal=function(e,t){if("undefined"!=typeof document){var i=this||{};e=_(e||"ai"),t=String(t||"").toLowerCase();var r=document.querySelector(".rbe-premium-modal-backdrop");r&&r.parentNode&&r.parentNode.removeChild(r);var n=y("premium-title"),a=v("div","rbe-premium-modal-backdrop",{}),o=v("section","rbe-premium-modal-card",{role:"dialog","aria-modal":"true","aria-labelledby":n}),l=v("button","rbe-premium-modal-close",{type:"button",title:"Close",html:S("xmark","Close")}),s="limit"===t?"gauge-high":"trial"===t?"clock":"lock",d="function"==typeof i.premiumUpgradeTitle?i.premiumUpgradeTitle(e,t):I(e),c="function"==typeof i.premiumUpgradeMessage?i.premiumUpgradeMessage(e,t):I(e)+" is locked. Please add an active BlockWriteAI premium license.",u=v("h2","",{id:n,text:d}),p=v("p","",{text:c}),h=v("div","rbe-premium-modal-actions",{}),m=i.premiumOptions&&i.premiumOptions.upgradeUrl?i.premiumOptions.upgradeUrl:"",b=v("button","rbe-premium-primary",{type:"button",text:"Upgrade Now"}),f=v("button","rbe-premium-secondary",{type:"button",text:"Compare Plans"});l.addEventListener("click",w),f.addEventListener("click",function(){g(!0)||w()}),b.addEventListener("click",function(){g(!1),w()}.bind(i)),a.addEventListener("mousedown",function(e){e.target===a&&w()}),document.addEventListener("keydown",function e(t){"Escape"===t.key&&(document.removeEventListener("keydown",e),w())},{once:!0}),h.appendChild(f),h.appendChild(b),o.appendChild(l),o.appendChild(v("div","rbe-premium-modal-icon",{html:S(s,"Premium")})),o.appendChild(u),o.appendChild(p),o.appendChild(h),a.appendChild(o),document.body.appendChild(a),requestAnimationFrame(function(){a.classList.add("is-visible"),b.focus()})}function g(e){if(!m||"undefined"==typeof window)return!1;var t=m;return e&&-1===t.indexOf("#")&&(t+="#pricing"),window.open(t,"_blank","noopener"),!0}function w(){a.classList.remove("is-visible"),a.classList.add("is-closing"),setTimeout(function(){a.parentNode&&a.parentNode.removeChild(a)},180)}},Ie.prototype.maybeShowTrialUpgradeModal=function(){if(this){var e=this.licenseState||{},t=e.subscription||{};if(e.valid&&t.trial&&"trialing"===t.status){var i=this.premiumStorageKey("trial-nudge:"+j());"1"!==function(e){try{return"undefined"!=typeof localStorage?localStorage.getItem(e):null}catch(e){return null}}(i)&&(!function(e,t){try{"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}catch(e){}}(i,"1"),setTimeout(function(){this.showPremiumUpgradeModal("ai","trial")}.bind(this),650))}}},Ie.prototype.showToast=function(e,t){if(e&&"undefined"!=typeof document){var i=document.querySelector(".rbe-toast-stack");i||(i=v("div","rbe-toast-stack",{role:"status","aria-live":"polite"}),document.body.appendChild(i));var r="error"===t?"error":"success"===t?"success":"warning",n="error"===r?"circle-exclamation":"success"===r?"circle-check":"lock",a=v("div","rbe-toast is-"+r,{});a.innerHTML=S(n,r)+"<div><strong>"+w("error"===r?"BlockWriteAI error":"success"===r?"BlockWriteAI":"Premium feature")+"</strong><span>"+w(e)+"</span></div>",i.appendChild(a),requestAnimationFrame(function(){a.classList.add("is-show")}),setTimeout(function(){a.classList.remove("is-show"),a.classList.add("is-hiding"),setTimeout(function(){a.parentNode&&a.parentNode.removeChild(a),i&&!i.children.length&&i.parentNode&&i.parentNode.removeChild(i)},260)},5e3)}},Ie.prototype.showPremiumLocked=function(e){this&&(this.showToast(this.premiumMessage(e),"warning"),this.showPremiumUpgradeModal(e,"locked"))},Ie.prototype.refreshPremiumUI=function(){this&&this.root&&(Array.prototype.slice.call(this.root.querySelectorAll(".rbe-menu-item[data-type]")).forEach(function(e){var t=this.getPremiumFeatureForTool(e.dataset.type),i=!!t&&!this.isPremiumFeatureEnabled(t);e.classList.toggle("is-premium-locked",i),i?e.setAttribute("data-premium-locked","true"):e.removeAttribute("data-premium-locked"),i&&(e.title=this.premiumMessage(t))}.bind(this)),Array.prototype.slice.call(this.root.querySelectorAll("[data-premium-feature]")).forEach(function(e){var t=_(e.dataset.premiumFeature),i=!!t&&!this.isPremiumFeatureEnabled(t);e.classList.toggle("is-premium-locked",i),i?e.setAttribute("data-premium-locked","true"):e.removeAttribute("data-premium-locked"),i?e.title=this.premiumMessage(t):e.dataset.unlockedTitle&&(e.title=e.dataset.unlockedTitle)}.bind(this)))},Ie.prototype.verifyPremiumLicense=function(){if(!this)return Promise.resolve(U({}));var e=this.premiumOptions||W(this.options);return e.disabled?(this.setPremiumState({status:"disabled",valid:!0,message:"Premium checks are disabled.",features:H(!0)}),Promise.resolve(this.getPremiumState())):e.licenseKey&&e.verifyEndpoint&&"function"==typeof fetch?(this.setPremiumState({status:"pending",valid:!1,message:"License verification is pending.",features:H(!1)}),fetch(e.verifyEndpoint,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({license_key:e.licenseKey,session_token:e.sessionToken,domain:"undefined"!=typeof window&&window.location?window.location.origin:""})}).then(function(e){return e.json().catch(function(){return{}}).then(function(t){if(!e.ok||!1===t.ok)throw new Error(t.message||t.error||"License verification failed.");return t})}).then(function(t){return this.setPremiumState({status:t.valid?"valid":"invalid",valid:!!t.valid,message:t.message||(t.valid?"License verified.":"License is not active."),features:Object.assign(H(!1),t.features||{}),limits:t.limits||{},usage:t.usage||{},organization:t.organization||null,subscription:t.subscription||null,license:t.license||null}),this.maybeShowTrialUpgradeModal(),t.valid&&e.pluginEndpoint&&e.autoLoadPlugins?this.loadPremiumPlugins(e.pluginFeatures).then(function(){return this.getPremiumState()}.bind(this)).catch(function(e){return this.showToast(e&&e.message?e.message:"Premium plugins could not be loaded.","error"),this.getPremiumState()}.bind(this)):this.getPremiumState()}.bind(this)).catch(function(e){return this.setPremiumState({status:"invalid",valid:!1,message:e&&e.message?e.message:"License verification failed.",features:H(!1)}),this.getPremiumState()}.bind(this))):(this.setPremiumState(U(e)),Promise.resolve(this.getPremiumState()))},Ie.prototype.consumePremiumUsage=function(e,t){if(e=_(e),!this||"function"!=typeof this.isPremiumFeatureEnabled){var i=new Error(I(e)+" is locked. Please add an active BlockWriteAI premium license.");return i.status=402,Promise.reject(i)}if(!e||this.premiumOptions&&this.premiumOptions.disabled)return Promise.resolve(this.getPremiumState());if(!this.isPremiumFeatureEnabled(e))return this.showPremiumUpgradeModal(e,"locked"),Promise.reject(new Error(this.premiumMessage(e)));if(!this.premiumOptions||"function"!=typeof fetch)return Promise.resolve(this.getPremiumState());var r="ai"===e?this.premiumOptions.usageEndpoint:this.premiumOptions.featureUsageEndpoint;if(!r)return Promise.resolve(this.getPremiumState());var n=Object.assign({},t||{},{license_key:this.premiumOptions.licenseKey});return n.feature=e,this.premiumOptions.sessionToken&&(n.session_token=this.premiumOptions.sessionToken),fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(n)}).then(function(t){return t.json().catch(function(){return{}}).then(function(i){if(!t.ok||!1===i.ok){var r=i.error||i.message||"AI usage limit check failed.";if(void 0!==i.limit||void 0!==i.used||void 0!==i.remaining){var n=Object.assign({},this.licenseState.usage||{}),a=Object.assign({},this.licenseState.limits||{});n._trial_usage_date=j(),"ai_credits"===i.limit_type?(void 0!==i.used&&(n.ai_credits_used_month=i.used),void 0!==i.remaining&&(n.ai_credits_remaining_month=i.remaining),void 0!==i.limit&&(a.ai_credits_per_month=i.limit)):"ai"===e?(void 0!==i.used&&(n.ai_actions_today=i.used,n.ai_prompts_today=i.used),void 0!==i.remaining&&(n.ai_actions_remaining_today=i.remaining,n.ai_prompts_remaining_today=i.remaining),void 0!==i.limit&&(a.ai_trial_actions_per_day=i.limit,a.ai_prompts_per_day=i.limit)):(n.premium_features_today=Object.assign({},n.premium_features_today||{}),n.premium_features_remaining_today=Object.assign({},n.premium_features_remaining_today||{}),a.premium_features_per_day=Object.assign({},a.premium_features_per_day||{}),void 0!==i.used&&(n.premium_features_today[e]=i.used),void 0!==i.remaining&&(n.premium_features_remaining_today[e]=i.remaining),void 0!==i.limit&&(a.premium_features_per_day[e]=i.limit)),this.setPremiumState({usage:n,limits:a})}429===t.status||/daily (ai|premium)/i.test(r)?this.showPremiumUpgradeModal(e,"limit"):(402===t.status||/not available|expired|subscription|enough ai credits/i.test(r))&&this.showPremiumUpgradeModal(e,"locked");var o=new Error(r);throw o.status=t.status,o.details=i,o}return i}.bind(this))}.bind(this)).then(function(t){var i=Object.assign({},this.licenseState.usage||{}),r=Object.assign({},this.licenseState.limits||{});return i._trial_usage_date=j(),"ai_credits"===t.limit_type?(i.ai_credits_used_month=t.used,i.ai_credits_remaining_month=t.remaining,r.ai_credits_per_month=t.limit):"ai"===e?(i.ai_actions_today=t.used,i.ai_actions_remaining_today=t.remaining,i.ai_prompts_today=t.used,i.ai_prompts_remaining_today=t.remaining,r.ai_trial_actions_per_day=t.limit,r.ai_prompts_per_day=t.limit):(i.premium_features_today=Object.assign({},i.premium_features_today||{}),i.premium_features_remaining_today=Object.assign({},i.premium_features_remaining_today||{}),r.premium_features_per_day=Object.assign({},r.premium_features_per_day||{}),i.premium_features_today[e]=t.used,i.premium_features_remaining_today[e]=t.remaining,r.premium_features_per_day[e]=t.limit),this.setPremiumState({usage:i,limits:r}),this.lastPremiumUsageResult=t,Object.assign({},this.getPremiumState(),{usage_event_id:t.event_id||null,usage_result:t})}.bind(this))},Ie.prototype.createShell=function(){var e=this.shellOptions||{},t=v("div","rbe-shell"+(e.className?" "+e.className:""));e.maxWidth&&t.style.setProperty("--rbe-shell-max-width",e.maxWidth);var i=null;if(!1!==e.showHeader){if(i=v("header","rbe-shell-brand"),!1!==e.logo){var r=v("img","rbe-shell-logo",{src:e.logo||oe("blockwriteai-logo.svg"),alt:e.title||"BlockWriteAI",decoding:"async"});i.appendChild(r)}else i.appendChild(v("strong","rbe-shell-title",{text:e.title||"BlockWriteAI"}));!1!==e.subtitle&&i.appendChild(v("p","rbe-shell-subtitle",{text:e.subtitle||""}))}var n=v("section","rbe-shell-panel"),a=v("div","rbe-shell-panel-title");return a.appendChild(v("span","rbe-shell-heading",{text:e.heading||"Editor"})),this.shellProgress=v("span","rbe-shell-progress",{hidden:!0}),this.shellProgressText=v("span","rbe-shell-progress-text",{text:"Working with BlockWriteAI..."}),this.shellProgress.appendChild(this.shellProgressText),this.shellProgress.appendChild(v("span","rbe-shell-progress-track",{html:"<span></span>","aria-hidden":"true"})),a.appendChild(this.shellProgress),this.shellStatus=v("span","rbe-shell-status",{text:e.status||"Ready"}),a.appendChild(this.shellStatus),this.editorMount=v("div","rbe-shell-editor-wrap"),n.appendChild(a),n.appendChild(this.editorMount),i&&t.appendChild(i),t.appendChild(n),t},Ie.prototype.bindShellEvents=function(){if(this.shell&&this.root){var e=this;this.root.addEventListener("rbe:ai-progress",function(t){var i=t&&t.detail||{};e.setShellProgress(!!i.active,i.message||"Working with BlockWriteAI...")}),this.root.addEventListener("rbe:save",function(){e.setShellStatus("Saved "+(new Date).toLocaleTimeString())}),this.root.addEventListener("rbe:save-error",function(t){var i=t.detail&&t.detail.message||t.detail||"Save failed";e.setShellStatus(String(i))})}},Ie.prototype.setShellStatus=function(e){this.shellStatus&&(this.shellStatus.textContent=e||"")},Ie.prototype.setShellProgress=function(e,t){this.shellProgress&&(this.shellProgressText&&t&&(this.shellProgressText.textContent=t),this.shellProgress.hidden=!e)},Ie.prototype.bindEvents=function(){var e=this;document.addEventListener("selectionchange",this.boundSelectionChange),this.canvas.addEventListener("input",function(t){e.handleInput(t)}),this.canvas.addEventListener("beforeinput",function(t){e.handleBeforeInput(t)}),this.canvas.addEventListener("focusin",function(t){e.handleEditableActivation(t)}),this.canvas.addEventListener("keydown",function(t){e.handleKeydown(t)}),this.canvas.addEventListener("paste",function(t){e.handlePaste(t)}),this.canvas.addEventListener("drop",function(t){e.handleDrop(t)}),this.canvas.addEventListener("dragover",function(t){if(!e.readOnly){t.preventDefault();var i=e.getDragAfterElement(t.clientY),r=e.draggingBlock;r&&(null==i?e.canvas.appendChild(r):e.canvas.insertBefore(r,i))}}),this.root.addEventListener("click",function(t){e.handleRootClick(t)}),this.root.addEventListener("mousedown",function(e){e.target.closest(".rbe-list-action, .rbe-list-add, .rbe-list-remove, .rbe-table-action")&&e.preventDefault()}),this.root.addEventListener("change",function(t){e.handleRootChange(t)}),this.root.addEventListener("dragstart",function(t){var i=t.target.closest(".rbe-drag-handle");if(i&&!e.readOnly){var r=q(i);r&&r.classList.contains("rbe-nested-block")||(e.draggingBlock=r,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",r.dataset.id),setTimeout(function(){r.classList.add("rbe-is-dragging")},0))}}),this.root.addEventListener("dragend",function(){e.draggingBlock&&(e.draggingBlock.classList.remove("rbe-is-dragging"),e.draggingBlock=null,e.changed())}),document.addEventListener("mousedown",this.boundDocumentMouseDown),window.addEventListener("resize",O(function(){this.updateMediaActionAvailability(this.root)}.bind(this),160))},Ie.prototype.createTopToolbar=function(){var e=v("div","rbe-editor-toolbar",{role:"toolbar","aria-label":"Editor history"});e.appendChild(v("button","rbe-history-btn",{type:"button",html:S("rotate-left","Undo"),title:"Undo","aria-label":"Undo",dataset:{history:"undo"}})),e.appendChild(v("button","rbe-history-btn",{type:"button",html:S("rotate-right","Redo"),title:"Redo","aria-label":"Redo",dataset:{history:"redo"}})),e.appendChild(v("button","rbe-history-btn rbe-clear-editor-btn",{type:"button",html:S("trash-can","Clear editor"),title:"Clear editor","aria-label":"Clear editor",dataset:{rbeClear:"true"}})),!1!==this.options.saveButton&&e.appendChild(v("button","rbe-history-btn rbe-save-btn",{type:"button",html:S("floppy-disk","Save"),title:"Save","aria-label":"Save",dataset:{rbeSave:"true"}}));var t=!1!==this.options.exportButton,i=!1!==this.options.exportHtmlButton;if(t||i){var r=this;if(t){var n=v("div","rbe-export-menu-wrap"),a=v("button","rbe-history-btn rbe-export-btn",{type:"button",html:S("file-export","Export"),title:"Export saved preview","aria-label":"Export saved preview",disabled:!0,dataset:{rbeExportToggle:"true"}});a.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),r.toggleExportMenu(a)}),n.appendChild(a);var o=v("div","rbe-export-menu",{hidden:!0,role:"menu","aria-label":"Export options"});[["json","file-code","Export to JSON File"]].forEach(function(e){var t=v("button","rbe-export-option",{type:"button",html:S(e[1],e[2]),title:e[2],"aria-label":e[2],role:"menuitem",dataset:{rbeExport:e[0]}});t.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),r.handleExport(e[0])}),o.appendChild(t)}),n.appendChild(o),e.appendChild(n)}i&&e.appendChild(v("button","rbe-history-btn rbe-export-html-btn",{type:"button",html:S("file-lines","Export HTML"),title:"Export HTML preview","aria-label":"Export HTML preview",disabled:!0,dataset:{rbeExportHtml:"true"}}))}return this.options.historyPanel&&(e.appendChild(v("button","rbe-history-btn rbe-history-toggle",{type:"button",html:S("clock-rotate-left","History"),title:"Show history","aria-label":"Show history",dataset:{historyPanel:"toggle"}})),e.appendChild(v("div","rbe-history-panel",{hidden:!0}))),e},Ie.prototype.handleDocumentMouseDown=function(e){if(this.root&&(e.target.closest(".rbe-image-stage, .rbe-attachment-card")||this.closeMediaMenus(),e.target.closest(".rbe-export-menu-wrap")||this.hideExportMenu(),!e.target.closest(".rbe-menu, .rbe-block-add, .rbe-inline-toolbar, .rbe-history-panel, .rbe-history-toggle, .rbe-export-menu-wrap, .select2-container, .select2-dropdown, .rbe-comment-modal, .rbe-link-modal"))){var t=this.topToolbar&&this.topToolbar.querySelector(".rbe-history-panel");t&&(t.hidden=!0),this.hideMenus()}},Ie.prototype.closeMediaMenus=function(e){this.root&&Array.prototype.slice.call(this.root.querySelectorAll(".is-media-menu-open")).forEach(function(t){e&&t===e||t.classList.remove("is-media-menu-open")})},Ie.prototype.toggleMediaMenu=function(e){if(e){var t=e.closest(".rbe-image-stage, .rbe-attachment-card");if(t){var i=t.classList.contains("is-media-menu-open");this.closeMediaMenus(t),t.classList.toggle("is-media-menu-open",!i),this.updateMediaActionAvailability(t.closest(".rbe-image-gallery, .rbe-attachment-grid")||t.parentElement||this.root)}}},Ie.prototype.createCommentModal=function(){var e=v("div","modal rbe-comment-modal",{hidden:!0,role:"dialog","aria-modal":"true","aria-label":"Add comment"});return e.innerHTML='<div class="modal-dialog rbe-comment-dialog"><div class="modal-content rbe-comment-content"><div class="modal-header rbe-comment-header"><strong>Add comment</strong><button type="button" class="rbe-comment-close" aria-label="Close">'+S("xmark","Close")+'</button></div><div class="modal-body rbe-comment-body"><textarea class="rbe-comment-input" placeholder="Write comment..."></textarea></div><div class="modal-footer rbe-comment-footer"><button type="button" class="rbe-small-btn rbe-comment-cancel">Cancel</button><button type="button" class="rbe-small-btn rbe-comment-save">Save comment</button></div></div></div>',e},Ie.prototype.createLinkModal=function(){var e=v("div","modal rbe-comment-modal rbe-link-modal",{hidden:!0,role:"dialog","aria-modal":"true","aria-label":"Add link"});return e.innerHTML='<div class="modal-dialog rbe-comment-dialog"><div class="modal-content rbe-comment-content"><div class="modal-header rbe-comment-header"><strong>Add link</strong><button type="button" class="rbe-comment-close rbe-link-close" aria-label="Close">'+S("xmark","Close")+'</button></div><div class="modal-body rbe-comment-body"><label class="rbe-link-modal-label">URL</label><input class="rbe-link-input" type="url" placeholder="https://example.com"></div><div class="modal-footer rbe-comment-footer"><button type="button" class="rbe-small-btn rbe-link-cancel">Cancel</button><button type="button" class="rbe-small-btn rbe-link-save">Save link</button></div></div></div>',e},Ie.prototype.createInlineToolbar=function(){var e=v("div","rbe-inline-toolbar",{hidden:!0,role:"toolbar"}),t=v("select","rbe-inline-select rbe-font-family-select",{title:"Font family",dataset:{command:"fontFamily"}});[["Arial, sans-serif","Arial"],["Inter, sans-serif","Inter"],["Georgia, serif","Georgia"],['"Times New Roman", serif',"Times"],['"Courier New", monospace',"Courier"],["Verdana, sans-serif","Verdana"]].forEach(function(e){t.appendChild(v("option","",{value:e[0],text:e[1]}))}),t.value="Arial, sans-serif",t.style.width="112px";var i=v("select","rbe-inline-select rbe-font-size-select",{title:"Font size",dataset:{command:"fontSize"}});["10","12","14","16","18","20","24","28","32","36","48"].forEach(function(e){i.appendChild(v("option","",{value:e,text:e}))}),i.value="16",i.style.width="66px",e.appendChild(t),e.appendChild(i),d.forEach(function(t){e.appendChild(v("button","rbe-inline-btn",{type:"button",title:t.title,html:t.icon?S(t.icon,t.title):w(t.label),dataset:{command:t.command,value:t.value||""}}))});var r=v("input","rbe-color-input",{type:"color",title:"Text color",value:"#1d4ed8",dataset:{command:"foreColor"}}),n=v("input","rbe-color-input",{type:"color",title:"Highlight",value:"#fff2a8",dataset:{command:"hiliteColor"}}),a=v("label","rbe-color-control",{title:"Text color"});a.appendChild(v("span","rbe-color-icon",{text:"A"})),a.appendChild(r),a.appendChild(v("button","rbe-color-reset",{type:"button",title:"Reset text color",html:S("rotate-left","Reset text color"),dataset:{command:"foreColorReset"}}));var o=v("label","rbe-color-control",{title:"Highlight"});o.appendChild(v("span","rbe-color-icon",{html:S("highlighter","Highlight")})),o.appendChild(n),o.appendChild(v("button","rbe-color-reset",{type:"button",title:"Reset highlight",html:S("rotate-left","Reset highlight"),dataset:{command:"hiliteColorReset"}})),e.appendChild(a),e.appendChild(o);var l=this;return e.addEventListener("mousedown",function(e){l.keepInlineToolbarOpen(),e.target.matches("input, select, option")||e.target.closest(".select2-container")||e.preventDefault()}),e},Ie.prototype.createBlock=function(e,t,i){var r=v("article","rbe-block",{dataset:{id:i||y("block"),type:e}}),n=v("div","rbe-block-controls"),a=v("button","rbe-control-btn rbe-block-add",{type:"button",title:"Insert block",html:S("circle-plus","Insert block")}),o=v("button","rbe-control-btn rbe-drag-handle",{type:"button",title:"Drag block",html:S("grip-vertical","Drag block"),draggable:!0});n.appendChild(a),n.appendChild(o);var l=this.createBlockActions(),s=v("div","rbe-block-body");return this.renderBlockBody(s,e,t||{}),r.appendChild(n),r.appendChild(s),r.appendChild(l),this.readOnly&&this.makeBlockReadonly(r),r},Ie.prototype.createBlockActions=function(){var e=v("div","rbe-block-actions",{"aria-label":"Block actions"});return[["move-up","arrow-up","Move up"],["move-down","arrow-down","Move down"],["duplicate","copy","Duplicate"],["delete","trash-can","Delete block"]].forEach(function(t){e.appendChild(v("button","rbe-block-action",{type:"button",title:t[2],html:S(t[1],t[2]),dataset:{action:t[0]},"aria-label":t[2]}))}),e},Ie.prototype.renderBlockBody=function(e,t,i){e.innerHTML="","paragraph"===t?this.renderParagraph(e,i):"heading"===t?this.renderHeading(e,i):"quote"===t?this.renderQuote(e,i):"list"===t?this.renderList(e,i):"checklist"===t?this.renderChecklist(e,i):"code"===t?this.renderCode(e,i):"image"===t?this.renderImage(e,i):"table"===t?this.renderTable(e,i):"embed"===t?this.renderEmbed(e,i):"callout"===t?this.renderCallout(e,i):"delimiter"===t?this.renderDelimiter(e,i):"button"===t?this.renderButton(e,i):"toggle"===t?this.renderToggle(e,i):"linkPreview"===t?this.renderLinkPreview(e,i):"raw"===t?this.renderRaw(e,i):"attaches"===t?this.renderAttachment(e,i):n[t]&&"function"==typeof n[t].render?n[t].render.call(this,e,i||{},Pe()):this.renderParagraph(e,i)},Ie.prototype.editable=function(e,t,i){return v("div","rbe-editable "+(e||""),{contentEditable:!this.readOnly,html:A(t||""),dataset:{placeholder:i||this.options.placeholder}})},Ie.prototype.renderParagraph=function(e,t){var i=this.editable("rbe-paragraph",t.text,this.options.placeholder);i.style.textAlign=le(t.alignment),e.appendChild(i)},Ie.prototype.renderHeading=function(e,t){var i=Math.min(4,Math.max(1,Number(t.level||2))),r=v("div","rbe-heading-wrap"),n=v("select","rbe-heading-level",{title:"Heading level",dataset:{role:"heading-level"}});[1,2,3,4].forEach(function(e){n.appendChild(v("option","",{value:String(e),text:"H"+e,selected:e===i}))});var a=v("div","rbe-editable rbe-heading rbe-h"+i,{contentEditable:!this.readOnly,html:A(t.text||""),dataset:{placeholder:"Heading",level:i}});a.style.textAlign=le(t.alignment),r.appendChild(n),r.appendChild(a),e.appendChild(r)},Ie.prototype.renderQuote=function(e,t){var i=v("div","rbe-quote"),r=this.editable("rbe-quote-text",t.text,"Quote");r.style.textAlign=le(t.alignment),i.appendChild(r),i.appendChild(v("input","rbe-quote-caption",{type:"text",value:t.caption||"",placeholder:"Caption",disabled:this.readOnly})),e.appendChild(i)},Ie.prototype.renderList=function(e,t){var i="ordered"===t.style?"ordered":"unordered",r=v("div","rbe-list-wrap",{dataset:{style:i}}),n=v("div","rbe-list-tools"),a=v("select","rbe-list-style",{title:"List style",dataset:{role:"list-style"}});a.appendChild(v("option","",{value:"unordered",text:"Bulleted",selected:"unordered"===i})),a.appendChild(v("option","",{value:"ordered",text:"Numbered",selected:"ordered"===i})),n.appendChild(a),n.appendChild(v("button","rbe-mini-btn rbe-list-action rbe-list-nest-action",{type:"button",html:S("indent","Indent list item"),title:"Indent list item",dataset:{action:"indent-list"},disabled:this.readOnly})),n.appendChild(v("button","rbe-mini-btn rbe-list-action rbe-list-nest-action",{type:"button",html:S("outdent","Outdent list item"),title:"Outdent list item",dataset:{action:"outdent-list"},disabled:this.readOnly})),n.appendChild(v("button","rbe-mini-btn rbe-list-action rbe-list-style-action",{type:"button",html:S("list-check","Switch selected item bullet/number"),title:"Switch selected item bullet/number",dataset:{action:"toggle-list-style"},disabled:this.readOnly}));var o=v("div","rbe-list",{dataset:{alignment:le(t.alignment)}});o.style.textAlign=le(t.alignment),(Array.isArray(t.items)&&t.items.length?t.items:[""]).forEach(function(e){o.appendChild(this.createListItem(e))}.bind(this)),r.appendChild(n),r.appendChild(o),r.appendChild(v("button","rbe-icon-btn rbe-row-add rbe-list-add",{type:"button",html:S("circle-plus","Add list item"),title:"Add list item","aria-label":"Add list item",disabled:this.readOnly})),this.updateListMarkers(r),e.appendChild(r)},Ie.prototype.createListItem=function(e){var t=v("div","rbe-list-item",{dataset:{level:(e=Le(e)).level,style:e.style||""}});return t.appendChild(v("span","rbe-list-marker",{"aria-hidden":"true"})),t.appendChild(v("span","rbe-list-text rbe-editable",{contentEditable:!this.readOnly,html:e.text,dataset:{placeholder:"List item"}})),t.querySelector(".rbe-list-text").style.textAlign=le(e.alignment),t.appendChild(v("button","rbe-icon-btn rbe-row-remove rbe-list-remove",{type:"button",html:S("trash-can","Remove list item"),title:"Remove list item","aria-label":"Remove list item",disabled:this.readOnly})),t},Ie.prototype.renderChecklist=function(e,t){var i=v("div","rbe-checklist-wrap"),r=v("div","rbe-checklist-tools");r.appendChild(v("button","rbe-small-btn rbe-list-nest-action rbe-checklist-action",{type:"button",html:S("indent","Indent checklist item"),title:"Indent checklist item",dataset:{action:"indent-checklist"},disabled:this.readOnly})),r.appendChild(v("button","rbe-small-btn rbe-list-nest-action rbe-checklist-action",{type:"button",html:S("outdent","Outdent checklist item"),title:"Outdent checklist item",dataset:{action:"outdent-checklist"},disabled:this.readOnly}));var n=v("div","rbe-checklist"),a=Array.isArray(t.items)&&t.items.length?t.items:[{text:"",checked:!1}],o=this;a.forEach(function(e){n.appendChild(o.createChecklistItem(e))}),n.appendChild(v("button","rbe-icon-btn rbe-row-add rbe-checklist-add",{type:"button",html:S("circle-plus","Add checklist item"),title:"Add checklist item","aria-label":"Add checklist item",disabled:this.readOnly})),i.appendChild(r),i.appendChild(n),e.appendChild(i)},Ie.prototype.createChecklistItem=function(e){var t=v("div","rbe-check-item",{dataset:{level:(e=Ae(e)).level,checked:e.checked?"true":"false"}});return t.appendChild(v("button","rbe-check-toggle",{type:"button",disabled:this.readOnly,dataset:{checked:e.checked?"true":"false"},"aria-pressed":e.checked?"true":"false","aria-label":e.checked?"Mark item incomplete":"Mark item complete"})),t.appendChild(v("span","rbe-check-text rbe-editable",{contentEditable:!this.readOnly,html:e.text,dataset:{placeholder:"Task"}})),t.appendChild(v("button","rbe-icon-btn rbe-row-remove rbe-check-remove",{type:"button",html:S("trash-can","Remove item"),title:"Remove item","aria-label":"Remove item",disabled:this.readOnly})),this.updateChecklistItemIcon(t),t},Ie.prototype.renderCode=function(e,t){var i=he(t.language),r=ve(t),n=we(t),a=v("div","rbe-code-wrap");ke(a,{headerColor:r,backgroundColor:n});var o=v("div","rbe-code-header"),l=v("select","rbe-code-language",{title:"Code language",disabled:this.readOnly});l.style.width="176px",c.forEach(function(e){l.appendChild(v("option","",{value:e[0],text:e[1],selected:e[0]===i}))}),o.appendChild(l);var s=v("label","rbe-code-color-label",{title:"Header color"});s.appendChild(v("span","",{text:"Header"})),s.appendChild(v("input","rbe-code-header-color",{type:"color",value:r,disabled:this.readOnly})),o.appendChild(s);var d=v("label","rbe-code-color-label",{title:"Editor background"});d.appendChild(v("span","",{text:"Background"})),d.appendChild(v("input","rbe-code-bg-color",{type:"color",value:n,disabled:this.readOnly})),o.appendChild(d),o.appendChild(v("button","rbe-small-btn rbe-code-format",{type:"button",title:"Format code","aria-label":"Format code",html:S("wand-magic-sparkles","Format code"),disabled:this.readOnly})),o.appendChild(v("button","rbe-small-btn rbe-code-copy",{type:"button",title:"Copy code","aria-label":"Copy code",html:S("copy","Copy code"),disabled:!1})),a.appendChild(o);var u=v("div","rbe-code-editor"),p=v("pre","rbe-code-highlight",{html:Se(t.code||"",i)+"\n"}),h=v("textarea","rbe-code-input",{value:t.code||"",placeholder:"Write code...",spellcheck:!1,disabled:this.readOnly});u.appendChild(p),u.appendChild(h);var m=function(){p.innerHTML=Se(h.value,l.value)+"\n"};h.addEventListener("input",m),h.addEventListener("scroll",function(){p.scrollTop=h.scrollTop,p.scrollLeft=h.scrollLeft}),l.addEventListener("change",m),a.appendChild(u),e.appendChild(a)},Ie.prototype.renderImage=function(e,t){var i=v("figure","rbe-image",{dataset:{caption:t.caption||"",alt:t.alt||t.caption||""}}),r=V(t),n=!this.readOnly;if(r.length){var a=this,o=v("div","rbe-image-gallery",{title:this.readOnly?"":"Drop image files here to add more images"});r.forEach(function(e){var t=le(e.alignment),i=v("div","rbe-image-stage"+(n?" is-editable":""),{dataset:{url:e.url,alt:e.alt||"",caption:e.caption||"",alignment:t,displayWidth:e.displayWidth>0?Math.round(e.displayWidth):"",minWidth:e.minWidth>0?Math.round(e.minWidth):"",naturalWidth:e.naturalWidth>0?Math.round(e.naturalWidth):"",naturalHeight:e.naturalHeight>0?Math.round(e.naturalHeight):"",rotation:e.rotation||"",crop:e.crop||"free",cropRatio:e.cropRatio||"",cropX:ee(e.cropX),cropY:ee(e.cropY),cropZoom:te(e.cropZoom)}});i.__rbeMediaItem=B(e);var r=v("img","rbe-image-preview",{src:e.url,alt:e.alt||e.caption||""});function l(){r.naturalWidth&&(i.dataset.naturalWidth=String(r.naturalWidth),i.dataset.naturalHeight=String(r.naturalHeight||""),Number(i.dataset.displayWidth||0)>r.naturalWidth&&(i.dataset.displayWidth=String(r.naturalWidth)),a.applyImageStageState(i))}if(r.addEventListener("load",l),i.appendChild(r),n){var s=v("div","rbe-media-gear-menu");s.appendChild(v("button","rbe-media-gear",{type:"button",title:"Image settings",html:S("gear","Image settings"),"aria-label":"Image settings"})),s.appendChild(v("button","rbe-media-action rbe-media-action-top rbe-image-crop-toggle",{type:"button",title:"Crop image","aria-label":"Crop image","aria-pressed":"custom"===e.crop?"true":"false",html:S("crop-simple","Crop image")})),s.appendChild(v("button","rbe-media-action rbe-media-action-bottom rbe-media-delete rbe-image-delete",{type:"button",title:"Remove image","aria-label":"Remove image",html:S("trash-can","Remove image")})),i.appendChild(s),i.appendChild(v("span","rbe-image-resize-handle",{title:"Drag to resize image"})),["e","s","se"].forEach(function(e){i.appendChild(v("span","rbe-image-crop-handle rbe-image-crop-"+e,{dataset:{cropHandle:e},title:"Drag to crop image"}))})}a.applyImageStageState(i),r.complete&&setTimeout(l,0),o.appendChild(i),n&&a.bindImageStageMouseControls(i)}),this.readOnly||o.appendChild(v("span","rbe-image-replace-hint",{text:"Drop more image files to add"})),i.appendChild(o)}else{var l=v("label","rbe-upload-dropzone rbe-image-dropzone");l.appendChild(v("input","rbe-image-file rbe-upload-input",{type:"file",accept:"image/*",multiple:!0,disabled:this.readOnly})),l.appendChild(v("span","rbe-upload-icon",{html:S("cloud-arrow-up","Upload image")})),l.appendChild(v("strong","",{text:"Drag and drop or click here"})),l.appendChild(v("span","rbe-upload-main",{text:"to upload image"})),l.appendChild(v("small","",{text:"Upload any image from desktop"})),i.appendChild(l)}e.appendChild(i),n&&r.length&&setTimeout(function(){this.updateMediaActionAvailability(i)}.bind(this),0)},Ie.prototype.renderTable=function(e,t){var i="center"===t.align||"right"===t.align?t.align:"left",r=Math.min(100,Math.max(40,Number(t.width||100))),n=se(t.borderStyle),a=de(t.borderWidth),o=v("div","rbe-table-wrap",{dataset:{align:i}}),l=v("div","rbe-table-toolbar");[["add-row","table-list","Add row"],["add-col","table-columns","Add column"],["remove-row","trash-can|arrow-right|table-list","Remove row"],["remove-col","trash-can|arrow-right|table-columns","Remove column"],["cell-align-left","align-left","Align cell left"],["cell-align-center","align-center","Align cell center"],["cell-align-right","align-right","Align cell right"]].forEach(function(e){var t=e[1].indexOf("|")>=0?'<span class="rbe-combo-icon" aria-hidden="true">'+e[1].split("|").map(function(t){return S(t,e[2])}).join("")+'</span><span class="rbe-sr-only">'+w(e[2])+"</span>":S(e[1],e[2]);l.appendChild(v("button","rbe-small-btn rbe-table-action",{type:"button",title:e[2],html:t,"aria-label":e[2],dataset:{action:e[0]}}))}),o.appendChild(l);var s=v("div","rbe-table-layout"),d=v("label","rbe-table-width-label");d.appendChild(document.createTextNode("Width")),d.appendChild(v("input","rbe-table-width",{type:"range",min:"40",max:"100",step:"5",value:String(r),disabled:this.readOnly})),d.appendChild(v("span","rbe-table-width-value",{text:r+"%"})),s.appendChild(d);var c=v("label","rbe-table-align-label");c.appendChild(document.createTextNode("Align"));var u=v("select","rbe-table-align",{title:"Table alignment",disabled:this.readOnly});[["left","Left"],["center","Center"],["right","Right"]].forEach(function(e){u.appendChild(v("option","",{value:e[0],text:e[1],selected:e[0]===i}))}),c.appendChild(u),s.appendChild(c);var p=v("label","rbe-table-border-style-label");p.appendChild(document.createTextNode("Border"));var h=v("select","rbe-table-border-style",{title:"Table border style",disabled:this.readOnly});[["solid","Solid"],["dashed","Dashed"],["dotted","Dotted"],["double","Double"]].forEach(function(e){h.appendChild(v("option","",{value:e[0],text:e[1],selected:e[0]===n}))}),p.appendChild(h),s.appendChild(p);var m=v("label","rbe-table-border-width-label");m.appendChild(document.createTextNode("Weight")),m.appendChild(v("input","rbe-table-border-width",{type:"range",min:"1",max:"6",step:"1",value:String(a),disabled:this.readOnly})),m.appendChild(v("span","rbe-table-border-width-value",{text:a+"px"})),s.appendChild(m),o.appendChild(s);var b=v("table","rbe-table");b.style.width=r+"%",b.style.setProperty("--rbe-table-border-width",a+"px"),b.style.setProperty("--rbe-table-border-style",n),(Array.isArray(t.rows)&&t.rows.length?t.rows:[["",""],["",""]]).forEach(function(e,i){var r=v("tr");(e.length?e:[""]).forEach(function(e){var n=v(t.withHeadings&&0===i?"th":"td","",{contentEditable:!this.readOnly,html:A(Be(e))});n.style.textAlign=He(e),r.appendChild(n)}.bind(this)),b.appendChild(r)}.bind(this));var f=v("div","rbe-table-stage");f.appendChild(b),o.appendChild(f);var g=v("label","rbe-table-heading-toggle");g.appendChild(v("input","",{type:"checkbox",checked:!!t.withHeadings,dataset:{role:"table-heading"},disabled:this.readOnly})),g.appendChild(document.createTextNode(" First row is heading")),o.appendChild(g),e.appendChild(o)},Ie.prototype.renderEmbed=function(e,t){var i=v("div","rbe-embed"),r=v("div","rbe-media-tools");r.appendChild(v("input","rbe-embed-url",{type:"url",value:t.source||"",placeholder:"Paste YouTube, Vimeo, map, or iframe URL",disabled:this.readOnly})),r.appendChild(v("button","rbe-small-btn rbe-embed-apply",{type:"button",text:"Embed",disabled:this.readOnly})),i.appendChild(r),t.embed?i.appendChild(v("iframe","rbe-embed-frame",{src:t.embed,title:t.service?t.service+" embed":"Embedded content",referrerPolicy:"strict-origin-when-cross-origin",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullscreen:!0})):i.appendChild(v("div","rbe-dropzone",{text:"Paste a URL and press Embed"})),i.appendChild(v("input","rbe-embed-caption",{type:"text",value:t.caption||"",placeholder:"Caption",disabled:this.readOnly})),e.appendChild(i)},Ie.prototype.renderCallout=function(e,t){var i=v("div","rbe-callout",{dataset:{tone:t.tone||"info"}}),r=v("select","rbe-callout-tone",{title:"Callout tone",disabled:this.readOnly});["info","success","warning","danger"].forEach(function(e){r.appendChild(v("option","",{value:e,text:e,selected:(t.tone||"info")===e}))}),i.appendChild(r);var n=this.editable("rbe-callout-text",t.text,"Callout text");n.style.textAlign=le(t.alignment),i.appendChild(n),e.appendChild(i)},Ie.prototype.renderDelimiter=function(e,t){var i="dashed"===t.style||"dotted"===t.style||"thick"===t.style?t.style:"line",r=v("div","rbe-delimiter-wrap",{dataset:{style:i}});if(r.addEventListener("mouseleave",function(){r.classList.remove("rbe-divider-toolbar-dismissed")}),!this.readOnly){var n=v("div","rbe-divider-toolbar",{role:"toolbar","aria-label":"Divider style"});[["line","minus","Line"],["dashed","grip-lines","Dashed"],["dotted","ellipsis","Dotted"],["thick","bars-staggered","Bold line"]].forEach(function(e){n.appendChild(v("button","rbe-divider-style-btn"+(e[0]===i?" is-active":""),{type:"button",title:e[2],html:S(e[1],e[2]),dataset:{style:e[0]},"aria-pressed":e[0]===i?"true":"false"}))}),r.appendChild(n)}r.appendChild(v("hr","rbe-delimiter")),e.appendChild(r)},Ie.prototype.renderButton=function(e,t){var i={primary:["#2563eb","#ffffff"],secondary:["#ffffff","#172033"],success:["#07845f","#ffffff"],dark:["#111827","#ffffff"]},r=i[t.style]||i.primary,n=t.background||r[0],a=t.color||r[1],o=le(t.alignment),l=v("div","rbe-button-block",{dataset:{align:o}}),s=v("div","rbe-button-controls");s.appendChild(v("input","rbe-button-text",{type:"text",value:t.text||"",placeholder:"Button text",disabled:this.readOnly})),s.appendChild(v("input","rbe-button-url",{type:"url",value:t.url||"",placeholder:"https://example.com",disabled:this.readOnly}));var d=v("label","rbe-button-color-label",{title:"Button background"});d.appendChild(v("span","",{text:"Fill"})),d.appendChild(v("input","rbe-button-bg",{type:"color",value:n,disabled:this.readOnly}));var c=v("label","rbe-button-color-label",{title:"Button text color"});c.appendChild(v("span","",{text:"Text"})),c.appendChild(v("input","rbe-button-color",{type:"color",value:a,disabled:this.readOnly}));var u=v("select","rbe-button-align",{title:"Button alignment",disabled:this.readOnly});["left","center","right"].forEach(function(e){u.appendChild(v("option","",{value:e,text:e.charAt(0).toUpperCase()+e.slice(1),selected:e===o}))}),s.appendChild(d),s.appendChild(c),s.appendChild(u),l.appendChild(s);var p=v("div","rbe-button-preview");p.style.textAlign=o,p.appendChild(v("a","rbe-button-link",{href:T(t.url||"")?t.url:"#",target:"_blank",rel:"noopener noreferrer",text:t.text||"Button"})),p.querySelector(".rbe-button-link").style.backgroundColor=n,p.querySelector(".rbe-button-link").style.color=a,l.appendChild(p),e.appendChild(l)},Ie.prototype.renderToggle=function(e,t){var r=v("details","rbe-toggle",{open:!1!==t.open}),n=v("summary","rbe-toggle-summary"),a=v("button","rbe-toggle-arrow",{type:"button",title:"Toggle section",html:S("chevron-down","Toggle section"),"aria-expanded":!1!==t.open?"true":"false"}),o=v("input","rbe-toggle-title",{type:"text",value:t.title||"",placeholder:"Toggle title",disabled:this.readOnly});a.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),r.open=!r.open,a.setAttribute("aria-expanded",r.open?"true":"false"),this.changed(!0)}.bind(this)),o.addEventListener("click",function(e){e.stopPropagation()}),o.addEventListener("keydown",function(e){e.stopPropagation()}),n.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation()}),n.addEventListener("keydown",function(e){" "!==e.key&&"Enter"!==e.key||e.preventDefault()}),n.appendChild(a),n.appendChild(o),r.appendChild(n);var l=v("div","rbe-toggle-content"),s=v("div","rbe-toggle-nested-canvas");(Array.isArray(t.blocks)&&t.blocks.length?t.blocks:t.text?[{type:"paragraph",data:{text:t.text}}]:[{type:"paragraph",data:{text:""}}]).forEach(function(e){var t=i.indexOf(e.type)>=0&&"toggle"!==e.type?e.type:"paragraph",r=this.createBlock(t,e.data||this.defaultBlockData(t),e.id||y("block"));r.classList.add("rbe-nested-block"),s.appendChild(r)}.bind(this)),l.appendChild(s),r.appendChild(l),e.appendChild(r)},Ie.prototype.renderLinkPreview=function(e,t){var i=v("div","rbe-link-preview"),r=v("div","rbe-link-preview-fields");r.appendChild(v("input","rbe-link-preview-url",{type:"url",value:t.url||"",placeholder:"https://example.com",disabled:this.readOnly})),r.appendChild(v("input","rbe-link-preview-title",{type:"text",value:t.title||"",placeholder:"Link title",disabled:this.readOnly})),r.appendChild(v("input","rbe-link-preview-description",{type:"text",value:t.description||"",placeholder:"Short description",disabled:this.readOnly})),i.appendChild(r);var n=v("a","rbe-link-preview-card",{href:T(t.url||"")?t.url:"#",target:"_blank",rel:"noopener noreferrer"});n.appendChild(v("span","rbe-link-preview-icon",{html:S("arrow-up-right-from-square","Open link")})),n.appendChild(v("strong","rbe-link-preview-card-title",{text:t.title||t.url||"Link preview"})),n.appendChild(v("span","rbe-link-preview-card-description",{text:t.description||"Add a URL, title, and description for this link."})),i.appendChild(n),e.appendChild(i)},Ie.prototype.renderRaw=function(e,t){var i=v("div","rbe-raw-wrap");if(i.__rbeRawHtml=t.html||"",!this.readOnly){var r=v("div","rbe-raw-header");r.appendChild(v("strong","",{html:S("file-code","Raw HTML")+"<span>Raw HTML</span>"})),r.appendChild(v("button","rbe-small-btn rbe-raw-format",{type:"button",title:"Format HTML","aria-label":"Format HTML",html:S("wand-magic-sparkles","Format HTML")})),r.appendChild(v("button","rbe-small-btn rbe-raw-copy",{type:"button",title:"Copy HTML","aria-label":"Copy HTML",html:S("copy","Copy HTML")})),i.appendChild(r);var n=v("div","rbe-raw-editor"),a=v("pre","rbe-raw-highlight",{html:Se(t.html||"","html")+"\n"}),o=v("textarea","rbe-raw-input",{value:t.html||"",placeholder:"<div>Trusted HTML</div>",spellcheck:!1,disabled:this.readOnly});n.appendChild(a),n.appendChild(o),o.addEventListener("input",function(){i.__rbeRawHtml=o.value,a.innerHTML=Se(o.value,"html")+"\n"}),o.addEventListener("scroll",function(){a.scrollTop=o.scrollTop,a.scrollLeft=o.scrollLeft}),i.appendChild(n)}var l=v("div","rbe-raw-preview");k(l,t.html),i.appendChild(l),e.appendChild(i)},Ie.prototype.renderAttachment=function(e,t){var i=v("div","rbe-attachment"),r=re(t),n=!this.readOnly;if(r.length){var a=v("div","rbe-attachment-grid",{title:this.readOnly?"":"Drop files here to add more attachments"});r.forEach(function(e){var t=Y(e.type,e.name),i=le(e.alignment),r=v("div","rbe-attachment-card"+(n?" is-editable":""),{title:e.name||"Open attachment",dataset:{name:e.name,url:e.url,type:e.type,size:e.size,kind:t,alignment:i}});r.__rbeMediaItem=B(e);var o=v("a","rbe-attachment-card-link",{href:e.url,target:"_blank",rel:"noopener noreferrer",title:e.name||"Open attachment"});if(o.appendChild(v("span","rbe-attachment-card-icon",{html:S(Q(e.type,e.name),"Attachment")})),o.appendChild(v("strong","rbe-attachment-card-type",{text:$(e.type,e.name)})),o.appendChild(v("span","rbe-attachment-card-name",{text:e.name||"Open attachment"})),r.appendChild(o),n){var l=v("div","rbe-attachment-delete-menu");l.appendChild(v("button","rbe-media-action rbe-media-action-bottom rbe-media-delete rbe-attachment-delete",{type:"button",title:"Remove attachment","aria-label":"Remove attachment",html:S("trash-can","Remove attachment")})),r.appendChild(l)}a.appendChild(r)}),this.readOnly||a.appendChild(v("small","rbe-attachment-replace-hint",{text:"Drop more files to add"})),i.appendChild(a)}else{var o=v("label","rbe-upload-dropzone rbe-attachment-dropzone");o.appendChild(v("input","rbe-attachment-file rbe-upload-input",{type:"file",accept:u,multiple:!0,disabled:this.readOnly})),o.appendChild(v("span","rbe-upload-icon",{html:S("cloud-arrow-up","Upload attachment")})),o.appendChild(v("strong","",{text:"Drag and drop or click here"})),o.appendChild(v("span","rbe-upload-main",{text:"to upload attachment"})),o.appendChild(v("small","",{text:"Videos, PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF only"})),i.appendChild(o)}e.appendChild(i),n&&r.length&&setTimeout(function(){this.updateMediaActionAvailability(i)}.bind(this),0)},Ie.prototype.handleRootClick=function(e){var t=e.target;if(!(e.detail>1&&t.closest(".rbe-editable, [contenteditable='true'], textarea, input")))if(t.closest(".rbe-editable, [contenteditable='true']"))this.handleEditableActivation(e);else{var i=t.closest(".rbe-media-gear");if(i)return e.preventDefault(),e.stopPropagation(),void this.toggleMediaMenu(i);var r=t.closest(".rbe-media-align");if(r)return e.preventDefault(),e.stopPropagation(),void this.alignMediaItem(r,r.dataset.align);var n=t.closest(".rbe-image-crop-toggle");if(n){e.preventDefault(),e.stopPropagation();var a=n.closest(".rbe-image-stage");return this.setImageCropMode(a,!(a&&a.classList.contains("is-image-crop-mode"))),void this.changed(!0)}var o=t.closest(".rbe-media-delete");if(o)return e.preventDefault(),e.stopPropagation(),void this.removeMediaItem(o);if(t.closest("[data-history-panel='toggle']"))this.toggleHistoryPanel();else{var l=t.closest(".rbe-history-delete");if(l)return e.preventDefault(),e.stopPropagation(),void this.deleteHistoryEntry(Number(l.dataset.historyDelete||-1));if(t.closest(".rbe-history-clear"))return e.preventDefault(),e.stopPropagation(),void this.clearHistory();var s=t.closest(".rbe-history-restore");if(s)this.restoreHistoryEntry(Number(s.dataset.historyRestore||-1));else{var d=t.closest(".rbe-history-btn[data-history]");if(d)"undo"===d.dataset.history?this.undo():this.redo();else{var c=t.closest("[data-rbe-clear='true']");if(c)return e.preventDefault(),e.stopPropagation(),void this.handleClearButton(c);var u=t.closest("[data-rbe-save='true']");if(u)return e.preventDefault(),e.stopPropagation(),void this.handleSaveButton(u);var p=t.closest("[data-rbe-export-toggle='true']");if(p)return e.preventDefault(),e.stopPropagation(),void this.toggleExportMenu(p);var h=t.closest("[data-rbe-export]");if(h)return e.preventDefault(),e.stopPropagation(),void this.handleExport(h.dataset.rbeExport);if(t.closest("[data-rbe-export-html='true']"))return e.preventDefault(),e.stopPropagation(),void this.handleExportHTML();var m=t.closest(".rbe-inline-btn");if(m)this.formatInline(m.dataset.command,m.dataset.value);else{var b=t.closest(".rbe-color-reset");if(b)return e.preventDefault(),e.stopPropagation(),void this.formatInline(b.dataset.command);if(t.closest(".rbe-comment-save"))this.saveCommentFromModal();else if(!t.closest(".rbe-comment-cancel, .rbe-comment-close")||t.closest(".rbe-link-modal"))if(t.closest(".rbe-link-save"))this.saveLinkFromModal();else if(t.closest(".rbe-link-cancel, .rbe-link-close"))this.hideLinkModal();else{var f=t.closest(".rbe-divider-style-btn");if(f){var g=f.closest(".rbe-delimiter-wrap");g&&(g.dataset.style=f.dataset.style||"line",Array.prototype.slice.call(g.querySelectorAll(".rbe-divider-style-btn")).forEach(function(e){var t=e===f;e.classList.toggle("is-active",t),e.setAttribute("aria-pressed",t?"true":"false")}),g.classList.add("rbe-divider-toolbar-dismissed"),f.blur(),this.changed(!0))}else{var y=q(t);if(t.closest(".rbe-toggle-add-block"))this.addToggleNestedBlock(y);else{var v=t.closest(".rbe-block-action");if(v)this.handleBlockAction(y,v.dataset.action);else if(t.closest(".rbe-block-add"))this.showBlockMenu(y,t);else{var w=t.closest(".rbe-menu-item");if(w)this.handleMenuItem(w);else{var k=t.closest(".rbe-checklist-action");if(k)this.applyChecklistNestAction(y,k.dataset.action);else if(t.closest(".rbe-check-toggle"))this.toggleChecklistItem(y,t.closest(".rbe-check-item"));else if(t.closest(".rbe-checklist-add"))this.addChecklistItem(y);else if(t.closest(".rbe-check-remove"))this.removeChecklistItem(y,t.closest(".rbe-check-item"));else if(t.closest(".rbe-code-copy"))this.copyCode(t.closest(".rbe-code-wrap"));else if(t.closest(".rbe-raw-copy"))this.copyRaw(y);else if(t.closest(".rbe-code-format"))this.formatCodeBlock(y);else if(t.closest(".rbe-raw-format"))this.formatRawBlock(y);else if(t.closest(".rbe-image-apply"))this.applyImageUrl(y);else if(t.closest(".rbe-embed-apply"))this.applyEmbed(y);else{var x=t.closest(".rbe-list-action");if(x)this.applyListNestAction(y,x.dataset.action);else if(t.closest(".rbe-list-add"))this.addListItem(y);else if(t.closest(".rbe-list-remove"))this.removeListItem(y,t.closest(".rbe-list-item"));else{var S=t.closest(".rbe-table-action");S&&this.applyTableAction(y,S.dataset.action)}}}}}}}else this.hideCommentModal()}}}}}},Ie.prototype.handleRootChange=function(e){var t=e.target;if(!t.dataset||"foreColor"!==t.dataset.command&&"hiliteColor"!==t.dataset.command)if(!t.dataset||"fontFamily"!==t.dataset.command&&"fontSize"!==t.dataset.command){var i=q(t);if(i){if(t.matches(".rbe-heading-level")){var r=i.querySelector(".rbe-heading");r.dataset.level=t.value,r.className="rbe-editable rbe-heading rbe-h"+t.value}if(t.matches(".rbe-list-style")&&this.switchListStyle(i,t.value),t.matches(".rbe-callout-tone"))i.querySelector(".rbe-callout").dataset.tone=t.value;t.matches(".rbe-button-bg, .rbe-button-color, .rbe-button-align")&&this.refreshButtonPreview(i),t.matches(".rbe-code-language, .rbe-code-header-color, .rbe-code-bg-color")&&this.refreshCodeBlock(i),t.matches(".rbe-image-file")&&this.applyImageFiles(i,Array.prototype.slice.call(t.files||[])),t.matches(".rbe-attachment-file")&&this.applyAttachmentFiles(i,Array.prototype.slice.call(t.files||[])),"table-heading"===t.dataset.role&&this.refreshTableHeading(i),t.matches(".rbe-table-align, .rbe-table-width, .rbe-table-border-style, .rbe-table-border-width")&&this.updateTableLayout(i),this.changed()}}else this.formatInline(t.dataset.command,t.value);else this.formatInline(t.dataset.command,t.value)},Ie.prototype.handleInput=function(e){if(!this.silent)if("historyUndo"!==e.inputType&&"historyRedo"!==e.inputType){var t=q(e.target);if(t){if(this.handleMarkdownShortcut(t,e.target),this.handleSlashMenu(t,e.target),e.target.matches(".rbe-raw-input"))k(t.querySelector(".rbe-raw-preview"),e.target.value),this.refreshRawHighlight(t);e.target.matches(".rbe-code-input")&&this.refreshCodeBlock(t),e.target.matches(".rbe-code-header-color, .rbe-code-bg-color")&&this.refreshCodeBlock(t),e.target.matches(".rbe-table-width, .rbe-table-border-width")&&this.updateTableLayout(t),e.target.matches(".rbe-button-text, .rbe-button-url, .rbe-button-bg, .rbe-button-color")&&this.refreshButtonPreview(t),e.target.matches(".rbe-link-preview-url, .rbe-link-preview-title, .rbe-link-preview-description")&&this.refreshLinkPreview(t),this.changed()}}else this.restoreCurrentHistorySnapshot()},Ie.prototype.handleBeforeInput=function(e){this.silent||this.readOnly||"historyUndo"!==e.inputType&&"historyRedo"!==e.inputType||e.preventDefault()},Ie.prototype.restoreCurrentHistorySnapshot=function(){var e=this.history[this.historyIndex];e&&(this.render({blocks:JSON.parse(e)},{silent:!0}),this.updateHistoryButtons())},Ie.prototype.handleEditableActivation=function(e){if(!this.silent&&!this.readOnly&&e.target.closest(".rbe-editable, [contenteditable='true']")){var t=this.history[this.historyIndex];t&&setTimeout(function(){this.silent||this.readOnly||JSON.stringify(this.getData().blocks)!==t&&this.restoreCurrentHistorySnapshot()}.bind(this),0)}},Ie.prototype.handleKeydown=function(e){if(!this.readOnly){if((e.ctrlKey||e.metaKey)&&"z"===e.key.toLowerCase())return e.preventDefault(),void(e.shiftKey?this.redo():this.undo());if((e.ctrlKey||e.metaKey)&&"y"===e.key.toLowerCase())return e.preventDefault(),void this.redo();if((e.ctrlKey||e.metaKey)&&"k"===e.key.toLowerCase())return e.preventDefault(),void this.formatInline("createLink");if(!this.menu||this.menu.hidden||"ArrowDown"!==e.key&&"ArrowUp"!==e.key&&"Enter"!==e.key&&"Escape"!==e.key){var t=e.target,i=q(t);if(i){if("Enter"===e.key&&!e.shiftKey&&this.shouldCreateNewBlock(t,i)){e.preventDefault(),this.recordHistory(!1);var r=i.parentElement&&i.parentElement.classList.contains("rbe-toggle-nested-canvas")?i.parentElement:null,n=r?this.createBlock("paragraph",{text:""},y("block")):this.insertBlock("paragraph",{text:""},this.indexOfBlock(i)+1);return r&&(n.classList.add("rbe-nested-block"),r.insertBefore(n,i.nextElementSibling),this.scheduleSelectEnhance()),this.focusBlock(n),void this.changed(!0)}if("Backspace"===e.key&&!1!==e.isTrusted&&this.isEmptyEditable(t)&&!this.shouldKeepEmptyEditableBlock(i,t)&&this.canvas.children.length>1){e.preventDefault(),this.recordHistory(!1);var a=i.previousElementSibling||i.nextElementSibling;i.remove(),a&&this.focusBlock(a),this.changed(!0)}}}else this.handleMenuKeyboard(e)}},Ie.prototype.handlePaste=function(e){if(!this.readOnly){var t=q(e.target);if(t&&e.clipboardData){var i=Array.prototype.slice.call(e.clipboardData.files||[]).filter(X);if(i.length){e.preventDefault();var r="image"===t.dataset.type?t:this.insertBlock("image",{},this.indexOfBlock(t)+1);this.applyImageFiles(r,i)}else{var n=e.clipboardData.getData("text/plain");if(/^https?:\/\/\S+$/.test(n.trim())&&""===(t.textContent||"").trim())return e.preventDefault(),void this.transformBlock(t,"embed",P(n.trim()));if(n&&n.indexOf("\n\n")>-1&&"paragraph"===t.dataset.type&&""===(t.textContent||"").trim()){e.preventDefault();var a=M(n),o=this.indexOfBlock(t);t.remove(),a.forEach(function(e,t){this.insertBlock(e.type,e.data,o+t,e.id)}.bind(this)),this.changed()}}}}},Ie.prototype.handleDrop=function(e){if(!this.readOnly){var t=Array.prototype.slice.call(e.dataTransfer&&e.dataTransfer.files?e.dataTransfer.files:[]);if(t.length){var i=q(e.target)||this.getCurrentBlock(),r=t[0],n=t.filter(X),a=t.filter(K);if(e.preventDefault(),i&&"attaches"===i.dataset.type)return!a.length||X(r)?void alert("Attachments only allow videos and documents such as PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF. Please use the Image block for images."):void this.applyAttachmentFiles(i,a);if(i&&"image"===i.dataset.type)return n.length?void this.applyImageFiles(i,n):void alert("The Image block only accepts image files.");if(n.length){var o=this.insertBlock("image",{},i?this.indexOfBlock(i)+1:this.canvas.children.length);this.applyImageFiles(o,n)}else if(a.length){var l=this.insertBlock("attaches",{},i?this.indexOfBlock(i)+1:this.canvas.children.length);this.applyAttachmentFiles(l,a)}else alert("Attachments only allow videos and documents such as PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF. Please use the Image block for images.")}}},Ie.prototype.handleSelectionChange=function(){if(this.root&&!this.readOnly){var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){var t=e.anchorNode;if(this.root.contains(t)){var i=e.getRangeAt(0);this.savedRange=i.cloneRange();var r=i.getBoundingClientRect();if(r&&(r.width||r.height)){if(this.inlineToolbar.hidden=!1,this.inlineToolbar.style.transform="none",this.inlineToolbarPinnedUntil&&Date.now()<this.inlineToolbarPinnedUntil&&this.inlineToolbarPinnedPosition)return this.inlineToolbar.style.left=this.inlineToolbarPinnedPosition.left,this.inlineToolbar.style.top=this.inlineToolbarPinnedPosition.top,void this.updateInlineToolbarState();this.inlineToolbarPinnedPosition=null;var n=this.inlineToolbar.getBoundingClientRect(),a=r.left+r.width/2-n.width/2,o=q(t),l=o&&o.querySelector(".rbe-block-body")?o.querySelector(".rbe-block-body").getBoundingClientRect():null,s=this.canvas?this.canvas.getBoundingClientRect():null,d=l?Math.max(8,l.left):s?Math.max(8,s.left):8,c=s?Math.min(window.innerWidth-8,s.right):window.innerWidth-8;l&&(c=Math.min(c,l.right));var u=Math.max(d,c-n.width),p=Math.min(u,Math.max(d,a));this.inlineToolbar.style.left=p+"px",this.inlineToolbar.style.top=Math.max(8,r.top-n.height-8)+"px",this.updateInlineToolbarState()}}else this.inlineToolbar.hidden=!0}else{if(this.shouldKeepInlineToolbarOpen())return;this.inlineToolbar.hidden=!0}}},Ie.prototype.keepInlineToolbarOpen=function(){this.inlineToolbarStickyUntil=Date.now()+900},Ie.prototype.pinInlineToolbarPosition=function(){this.inlineToolbar&&!this.inlineToolbar.hidden&&(this.inlineToolbarPinnedPosition={left:this.inlineToolbar.style.left||this.inlineToolbar.getBoundingClientRect().left+"px",top:this.inlineToolbar.style.top||this.inlineToolbar.getBoundingClientRect().top+"px"},this.inlineToolbarPinnedUntil=Date.now()+700)},Ie.prototype.shouldKeepInlineToolbarOpen=function(){return this.inlineToolbar&&!this.inlineToolbar.hidden&&Date.now()<this.inlineToolbarStickyUntil},Ie.prototype.updateInlineToolbarState=function(){if(this.inlineToolbar&&!this.inlineToolbar.hidden){var e=this.getSelectionEditable(),t=window.getSelection&&window.getSelection(),i=t&&t.anchorNode?t.anchorNode:null;i=i&&i.nodeType===Node.TEXT_NODE?i.parentElement:i;var r=e&&e.style&&e.style.textAlign?le(e.style.textAlign):"left";Array.prototype.slice.call(this.inlineToolbar.querySelectorAll(".rbe-inline-btn")).forEach(function(e){var i=e.dataset.command,n=!1;if("bold"===i||"italic"===i||"underline"===i||"strikeThrough"===i)try{n=document.queryCommandState(i)}catch(e){n=!1}if("justifyLeft"===i&&(n="left"===r),"justifyCenter"===i&&(n="center"===r),"justifyRight"===i&&(n="right"===r),"formatBlock"===i&&"blockquote"===e.dataset.value){var a=t&&t.anchorNode?t.anchorNode:null;n=!!((a=a&&a.nodeType===Node.TEXT_NODE?a.parentElement:a)&&a.closest&&a.closest(".rbe-inline-quote"))}e.classList.toggle("is-active",!!n),e.setAttribute("aria-pressed",n?"true":"false")});for(var n=e,a=i;a&&e&&a!==e&&e.contains(a);){if(a.style&&(a.style.fontFamily||a.style.fontSize||a.style.color||a.style.backgroundColor)){n=a;break}a=a.parentElement}var o=n?window.getComputedStyle(n):null,l=this.inlineToolbar.querySelector(".rbe-font-family-select"),s=this.inlineToolbar.querySelector(".rbe-font-size-select");if(l&&o&&o.fontFamily){var d=o.fontFamily.toLowerCase(),c=Array.prototype.slice.call(l.options).find(function(e){var t=String(e.value||"").toLowerCase(),i=t.split(",")[0].replace(/"/g,"").trim();return d===t||i&&d.indexOf(i)>=0||d.indexOf(e.text.toLowerCase())>=0});_e(l,c?c.value:"Arial, sans-serif")}if(function(e,t){if(e){e.hidden=!t,e.style.display=t?"":"none";var i=e.nextElementSibling&&e.nextElementSibling.classList&&e.nextElementSibling.classList.contains("select2-container")?e.nextElementSibling:null;i&&(i.style.display=t?"":"none")}}(s,!!!(e&&e.classList&&e.classList.contains("rbe-heading"))),s&&o&&o.fontSize){var u=String(Math.round(parseFloat(o.fontSize)||16));_e(s,Array.prototype.slice.call(s.options).some(function(e){return e.value===u})?u:"16")}}},Ie.prototype.handleMenuKeyboard=function(e){var t=Array.prototype.slice.call(this.menu.querySelectorAll(".rbe-menu-item"));if(t.length){var i=this.menu.querySelector(".is-active"),r=Math.max(0,t.indexOf(i));return"Escape"===e.key?(e.preventDefault(),void this.hideMenus()):"ArrowDown"===e.key||"ArrowUp"===e.key?(e.preventDefault(),i&&i.classList.remove("is-active"),t[r="ArrowDown"===e.key?(r+1)%t.length:(r-1+t.length)%t.length].classList.add("is-active"),void t[r].scrollIntoView({block:"nearest"})):void("Enter"===e.key&&(e.preventDefault(),(i||t[0]).click()))}},Ie.prototype.handleMarkdownShortcut=function(e,t){if(t.isContentEditable&&"paragraph"===e.dataset.type)for(var i=t.textContent||"",r=[[/^#\s$/,"heading",{level:1,text:""}],[/^##\s$/,"heading",{level:2,text:""}],[/^###\s$/,"heading",{level:3,text:""}],[/^>\s$/,"quote",{text:"",caption:""}],[/^-\s$/,"list",{style:"unordered",items:[""]}],[/^1\.\s$/,"list",{style:"ordered",items:[""]}],[/^\[\]\s$/,"checklist",{items:[{text:"",checked:!1}]}],[/^```\s?$/,"code",{code:"",language:""}]],n=0;n<r.length;n+=1)if(r[n][0].test(i))return this.transformBlock(e,r[n][1],r[n][2]),void this.focusBlock(e)},Ie.prototype.handleSlashMenu=function(e,t){if(t.isContentEditable&&"paragraph"===e.dataset.type){var i=(t.textContent||"").trim();0===i.indexOf("/")?(this.slashBlock=e,this.showToolMenu(e,t,i.slice(1).toLowerCase(),!0)):this.slashBlock===e&&(this.hideMenus(),this.slashBlock=null)}},Ie.prototype.handleMenuItem=function(e){var t=e.dataset.action,i=e.dataset.type,r=this.currentMenuBlock||this.slashBlock||this.getCurrentBlock(),n=this.slashBlock;if(this.hideMenus(),r||"insert"===t)if("insert"!==t)if("convert"!==t)this.handleBlockAction(r,t);else{var a=this.getPremiumFeatureForTool(i);if(!this.canUseTool(i))return void this.showPremiumLocked(a);var o=function(){this.transformBlock(r,i,this.dataFromBlockForType(r,i)),this.focusBlock(r),this.changed(!0)}.bind(this);a&&"ai"!==a?this.consumePremiumUsage(a,{action:"convert",source:"editor_menu",tool:i}).then(o).catch(function(e){this.showToast(e&&e.message?e.message:"Premium usage limit check failed.","warning")}.bind(this)):o()}else{var l=this.getPremiumFeatureForTool(i);if(!this.canUseTool(i))return void this.showPremiumLocked(l);var s=function(){var e=r?this.indexOfBlock(r)+1:this.canvas.children.length,t=r&&r.parentElement&&r.parentElement.classList.contains("rbe-toggle-nested-canvas")?r.parentElement:null;this.recordHistory(!1),n&&(t=n.parentElement&&n.parentElement.classList.contains("rbe-toggle-nested-canvas")?n.parentElement:t,e=this.indexOfBlock(n)+1,this.clearSlashCommand(n));var a=t?this.createBlock(i,this.defaultBlockData(i),y("block")):this.insertBlock(i,this.defaultBlockData(i),e);t&&(a.classList.add("rbe-nested-block"),t.insertBefore(a,(n||r).nextElementSibling),this.scheduleSelectEnhance()),this.focusBlock(a),this.changed(!0)}.bind(this);l&&"ai"!==l?this.consumePremiumUsage(l,{action:"insert",source:"editor_menu",tool:i}).then(s).catch(function(e){this.showToast(e&&e.message?e.message:"Premium usage limit check failed.","warning")}.bind(this)):s()}},Ie.prototype.clearSlashCommand=function(e){var t=e&&e.querySelector(".rbe-paragraph");t&&(0===(t.textContent||"").trim().indexOf("/")&&(t.innerHTML=""))},Ie.prototype.handleBlockAction=function(e,t){if(e&&t){var i=e.parentElement&&e.parentElement.classList.contains("rbe-toggle-nested-canvas")?e.parentElement:null,r=i||this.canvas;if("duplicate"===t){this.recordHistory(!1);var n=this.serializeBlock(e);n.id=y("block");var a=i?this.createBlock(n.type,n.data,n.id):this.insertBlock(n.type,n.data,this.indexOfBlock(e)+1,n.id);return i&&(a.classList.add("rbe-nested-block"),i.insertBefore(a,e.nextElementSibling),this.scheduleSelectEnhance()),this.focusBlock(a),void this.changed(!0)}if("delete"===t){this.recordHistory(!1);var o=e.previousElementSibling||e.nextElementSibling;if(e.remove(),!r.children.length){var l=this.createBlock("paragraph",{},y("block"));i&&l.classList.add("rbe-nested-block"),r.appendChild(l)}return o&&this.focusBlock(o),void this.changed(!0)}if("move-up"===t||"move-down"===t){var s="attaches"===e.dataset.type;s||this.recordHistory(!1);var d="move-up"===t?e.previousElementSibling:e.nextElementSibling;d&&"move-up"===t&&r.insertBefore(e,d),d&&"move-down"===t&&r.insertBefore(d,e),s?(e.scrollIntoView({block:"nearest"}),this.changed()):(this.focusBlock(e),this.changed(!0))}}},Ie.prototype.addToggleNestedBlock=function(e){if(e&&"toggle"===e.dataset.type&&!this.readOnly){var t=e.querySelector(".rbe-toggle-nested-canvas"),r=e.querySelector(".rbe-toggle-block-type");if(t&&r){var n=i.indexOf(r.value)>=0&&"toggle"!==r.value?r.value:"paragraph";if(this.canUseTool(n)){this.recordHistory(!1);var a=this.createBlock(n,this.defaultBlockData(n),y("block"));a.classList.add("rbe-nested-block"),t.appendChild(a),this.scheduleSelectEnhance(),this.focusBlock(a),this.changed(!0)}else this.showPremiumLocked(this.getPremiumFeatureForTool(n))}}},Ie.prototype.showBlockMenu=function(e,t){this.currentMenuBlock=e,this.slashBlock=null,this.menu.innerHTML="";var i=v("div","rbe-menu-section");i.appendChild(v("div","rbe-menu-title",{text:"Insert block"})),this.availableTools.forEach(function(e){i.appendChild(this.createMenuButton(e,"insert"))}.bind(this)),this.menu.appendChild(i),this.positionMenu(t||e)},Ie.prototype.showToolMenu=function(e,t,i,n){this.currentMenuBlock=e,this.menu.innerHTML="";var a=v("div","rbe-menu-section"),o=this.availableTools.filter(function(e){var t=r[e];return!i||t.label.toLowerCase().indexOf(i)>=0||e.indexOf(i)>=0});o.length?o.forEach(function(e,t){var i=this.createMenuButton(e,"insert");0===t&&i.classList.add("is-active"),a.appendChild(i)}.bind(this)):a.appendChild(v("div","rbe-empty-menu",{text:"No blocks found"})),this.menu.appendChild(a),this.positionMenu(t||e),n&&(this.slashBlock=e)},Ie.prototype.createMenuButton=function(e,t){var i=r[e]||r.paragraph,n=this.getPremiumFeatureForTool(e),a=!!n&&!this.isPremiumFeatureEnabled(n);return v("button","rbe-menu-item"+(a?" is-premium-locked":""),{type:"button",title:a?this.premiumMessage(n):i.label,"data-premium-locked":a?"true":"false",dataset:{type:e,action:t,premiumFeature:n||""},html:'<span class="rbe-menu-icon">'+S(i.icon,i.label)+"</span><span><strong>"+w(i.label)+(a?'<em class="rbe-premium-badge">Premium</em>':"")+"</strong><small>"+w(a?this.premiumMessage(n):i.hint)+"</small></span>"})},Ie.prototype.positionMenu=function(e){var t=e.getBoundingClientRect?e.getBoundingClientRect():this.root.getBoundingClientRect();this.menu.hidden=!1;var i=Math.min(340,Math.max(260,window.innerWidth-24)),r=Math.max(12,Math.min(t.left,window.innerWidth-i-12));this.menu.style.width=i+"px",this.menu.style.maxHeight="min(440px, calc(100vh - 24px))";var n=Math.max(0,window.innerHeight-t.bottom-12),a=Math.max(0,t.top-12),o=n<260&&a>n,l=o?a:n,s=Math.max(180,Math.min(440,l-6,window.innerHeight-24));this.menu.style.maxHeight=s+"px";var d=Math.min(this.menu.scrollHeight||s,s),c=o?t.top-d-6:t.bottom+6;c=Math.max(12,Math.min(c,window.innerHeight-d-12)),this.menu.dataset.placement=o?"top":"bottom",this.menu.style.left=r+"px",this.menu.style.top=c+"px"},Ie.prototype.hideMenus=function(){this.menu.hidden=!0,this.currentMenuBlock=null,this.slashBlock=null},Ie.prototype.formatInline=function(e,t){this.pinInlineToolbarPosition(),this.restoreSelection();var i=window.getSelection();if(i&&0!==i.rangeCount){if("formatBlock"===e&&"blockquote"===t)return this.quoteSelection(),this.noteHistory("Text","Quoted"),this.changed(),void this.updateInlineToolbarState();if("removeFormat"===e)return this.clearFormattingPreserveTypography(),this.noteHistory("Text","Formatting cleared"),this.changed(),void this.updateInlineToolbarState();if("justifyLeft"===e||"justifyCenter"===e||"justifyRight"===e){var r=this.getSelectionEditable();if(!r)return;var n="justifyCenter"===e?"center":"justifyRight"===e?"right":"left";return r.style.textAlign=n,this.noteHistory("Text","Aligned "+n),this.changed(!0),void this.updateInlineToolbarState()}if("createLink"!==e){if("fontFamily"===e){if(!t)return;return this.wrapSelectionWithSpan({fontFamily:t}),this.noteHistory("Text","Font family changed"),this.changed(),void this.updateInlineToolbarState()}if("fontSize"===e){if(!t)return;var a=this.getSelectionEditable();if(a&&a.classList&&a.classList.contains("rbe-heading"))return;return this.applyFontSizeToSelection(t),this.noteHistory("Text","Font size changed"),this.changed(),void this.updateInlineToolbarState()}if("foreColorReset"===e||"hiliteColorReset"===e)return this.resetSelectionInlineStyle("foreColorReset"===e?"color":"highlight"),this.noteHistory("Text","foreColorReset"===e?"Text color reset":"Highlight reset"),this.changed(),void this.updateInlineToolbarState();if("foreColor"===e||"hiliteColor"===e){var o=L(t);if(!o)return;return this.wrapSelectionWithSpan("foreColor"===e?{color:o}:{backgroundColor:o}),this.noteHistory("Text","foreColor"===e?"Text color changed":"Highlight changed"),this.changed(),void this.updateInlineToolbarState()}if("insertComment"!==e){if("removeComment"===e)return this.removeSelectedComment(),this.noteHistory("Comment","Removed"),this.changed(),void this.updateInlineToolbarState();document.execCommand(e,!1,t||null),this.changed(),this.updateInlineToolbarState()}else this.openCommentModal()}else this.openLinkModal()}},Ie.prototype.quoteSelection=function(){var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){var t=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,i=t&&t.closest?t.closest(".rbe-inline-quote"):null;if(i&&this.root.contains(i))this.unwrapInlineQuote(i);else{var r=e.getRangeAt(0),n=document.createElement("span");n.className="rbe-inline-quote",n.style.fontStyle="italic",n.appendChild(document.createTextNode('"')),n.appendChild(r.extractContents()),n.appendChild(document.createTextNode('"')),r.insertNode(n),e.removeAllRanges();var a=document.createRange();a.selectNodeContents(n),e.addRange(a),this.savedRange=a.cloneRange()}}},Ie.prototype.openCommentModal=function(){if(this.commentModal){this.restoreSelection();var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){this.savedRange=e.getRangeAt(0).cloneRange(),this.commentModal.hidden=!1,this.commentModal.classList.add("show");var t=this.commentModal.querySelector(".rbe-comment-input");t&&(t.value="",setTimeout(function(){t.focus()},0))}}},Ie.prototype.hideCommentModal=function(){this.commentModal&&(this.commentModal.hidden=!0,this.commentModal.classList.remove("show"))},Ie.prototype.openLinkModal=function(){if(this.linkModal){this.restoreSelection();var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){this.savedRange=e.getRangeAt(0).cloneRange(),this.linkModal.hidden=!1,this.linkModal.classList.add("show");var t=this.linkModal.querySelector(".rbe-link-input");t&&(t.value="",t.classList.remove("is-invalid"),setTimeout(function(){t.focus()},0))}}},Ie.prototype.hideLinkModal=function(){this.linkModal&&(this.linkModal.hidden=!0,this.linkModal.classList.remove("show"))},Ie.prototype.saveLinkFromModal=function(){var e=this.linkModal&&this.linkModal.querySelector(".rbe-link-input"),t=e?e.value.trim():"";t&&T(t)?(this.applyLinkToSelection(t),this.noteHistory("Text","Link added"),this.hideLinkModal(),this.changed(),this.updateInlineToolbarState()):e&&e.classList.add("is-invalid")},Ie.prototype.applyLinkToSelection=function(e){this.restoreSelection();var t=window.getSelection();if(t&&0!==t.rangeCount&&!t.isCollapsed){var i=t.anchorNode&&t.anchorNode.nodeType===Node.TEXT_NODE?t.anchorNode.parentElement:t.anchorNode,r=i&&i.closest?i.closest("a"):null;if(r&&this.root.contains(r))return r.href=e,r.target="_blank",r.rel="noopener noreferrer",void(this.savedRange=t.getRangeAt(0).cloneRange());var n=t.getRangeAt(0),a=document.createElement("a");a.href=e,a.target="_blank",a.rel="noopener noreferrer",a.appendChild(n.extractContents()),n.insertNode(a),t.removeAllRanges();var o=document.createRange();o.selectNodeContents(a),t.addRange(o),this.savedRange=o.cloneRange()}},Ie.prototype.saveCommentFromModal=function(){var e=this.commentModal&&this.commentModal.querySelector(".rbe-comment-input"),t=e?e.value.trim():"";t&&(this.restoreSelection(),this.wrapSelectionWithSpan(null,{class:"rbe-comment-mark",title:t,"data-rbe-comment":t,"data-rbe-comment-id":y("comment")}),this.noteHistory("Comment","Added"),this.hideCommentModal(),this.changed(),this.updateInlineToolbarState())},Ie.prototype.removeSelectedComment=function(){this.restoreSelection();var e=window.getSelection();if(e&&0!==e.rangeCount){var t=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,i=t&&t.closest?t.closest(".rbe-comment-mark"):null;if(!i||!this.root.contains(i)){var r=e.getRangeAt(0);i=Array.prototype.slice.call(this.root.querySelectorAll(".rbe-comment-mark")).filter(function(e){return r.intersectsNode(e)})[0]}if(i){for(;i.firstChild;)i.parentNode.insertBefore(i.firstChild,i);i.remove()}}},Ie.prototype.clearFormattingPreserveTypography=function(){var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){var t=this.getSelectionEditable(),i=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,r=i&&i.nodeType===Node.ELEMENT_NODE?i:t,n=r?window.getComputedStyle(r):null,a=n&&n.fontFamily?n.fontFamily:"Arial, sans-serif",o=n&&n.fontSize?n.fontSize:"16px";this.removeInlineQuotesInSelection(),document.execCommand("removeFormat",!1,null),this.wrapSelectionWithSpan({fontFamily:a,fontSize:o})}},Ie.prototype.unwrapInlineQuote=function(e){if(e&&e.parentNode){for(e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(e.firstChild.textContent=e.firstChild.textContent.replace(/^"/,"")),e.lastChild&&e.lastChild.nodeType===Node.TEXT_NODE&&(e.lastChild.textContent=e.lastChild.textContent.replace(/"$/,""));e.firstChild;)e.parentNode.insertBefore(e.firstChild,e);e.remove()}},Ie.prototype.removeInlineQuotesInSelection=function(){var e=window.getSelection();if(e&&0!==e.rangeCount){var t=e.getRangeAt(0),i=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,r=[],n=i&&i.closest?i.closest(".rbe-inline-quote"):null;n&&this.root.contains(n)&&r.push(n),Array.prototype.slice.call(this.root.querySelectorAll(".rbe-inline-quote")).forEach(function(e){try{t.intersectsNode(e)&&r.indexOf(e)<0&&r.push(e)}catch(e){return}}),r.forEach(this.unwrapInlineQuote.bind(this))}},Ie.prototype.resetSelectionInlineStyle=function(e){var t=window.getSelection();if(t&&0!==t.rangeCount&&!t.isCollapsed){var i=this.getSelectionEditable();if(i){var r=t.getRangeAt(0),n="color"===e?["color"]:["backgroundColor","background"];Array.prototype.slice.call(i.querySelectorAll("[style], font")).forEach(function(e){(function(e){try{return r.intersectsNode(e)}catch(e){return!1}})(e)&&l(e)});for(var a=t.anchorNode&&t.anchorNode.nodeType===Node.TEXT_NODE?t.anchorNode.parentElement:t.anchorNode;a&&a!==i.parentElement&&(a.nodeType===Node.ELEMENT_NODE&&i.contains(a)&&l(a),a!==i);)a=a.parentElement;for(var o=t.focusNode&&t.focusNode.nodeType===Node.TEXT_NODE?t.focusNode.parentElement:t.focusNode;o&&o!==i.parentElement&&(o.nodeType===Node.ELEMENT_NODE&&i.contains(o)&&l(o),o!==i);)o=o.parentElement;this.savedRange=t.getRangeAt(0).cloneRange()}}function l(t){t&&t.style&&(n.forEach(function(e){t.style[e]=""}),t.getAttribute("style")||t.removeAttribute("style"),"color"===e&&t.tagName&&"font"===t.tagName.toLowerCase()&&t.removeAttribute("color"))}},Ie.prototype.applyFontSizeToSelection=function(e){var t=Number(e);if(t&&!(t<1)){var i=window.getSelection();if(i&&0!==i.rangeCount&&!i.isCollapsed){var r=this.getSelectionEditable();if(r){var n=i.getRangeAt(0),a=[];Array.prototype.slice.call(r.querySelectorAll("[style]")).forEach(function(e){(function(e){try{return n.intersectsNode(e)}catch(e){return!1}})(e)&&s(e)});for(var o=i.anchorNode&&i.anchorNode.nodeType===Node.TEXT_NODE?i.anchorNode.parentElement:i.anchorNode;o&&o!==r.parentElement&&(r.contains(o)&&s(o),o!==r);)o=o.parentElement;for(var l=i.focusNode&&i.focusNode.nodeType===Node.TEXT_NODE?i.focusNode.parentElement:i.focusNode;l&&l!==r.parentElement&&(r.contains(l)&&s(l),l!==r);)l=l.parentElement;a.forEach(function(e){e.style.fontSize="",e.getAttribute("style")||e.removeAttribute("style")}),16!==t?this.wrapSelectionWithSpan({fontSize:t+"px"}):this.savedRange=i.getRangeAt(0).cloneRange()}}}function s(e){e&&e.nodeType===Node.ELEMENT_NODE&&e.style&&e.style.fontSize&&a.indexOf(e)<0&&a.push(e)}},Ie.prototype.restoreSelection=function(){if(this.savedRange&&window.getSelection){var e=window.getSelection();e.removeAllRanges(),e.addRange(this.savedRange)}},Ie.prototype.wrapSelectionWithSpan=function(e,t){var i=window.getSelection();if(i&&0!==i.rangeCount&&!i.isCollapsed){var r=i.getRangeAt(0),n=document.createElement("span");Object.keys(e||{}).forEach(function(t){n.style[t]=e[t]}),Object.keys(t||{}).forEach(function(e){n.setAttribute(e,t[e])}),n.appendChild(r.extractContents()),r.insertNode(n),i.removeAllRanges();var a=document.createRange();a.selectNodeContents(n),i.addRange(a),this.savedRange=a.cloneRange()}},Ie.prototype.getSelectionEditable=function(){var e=window.getSelection();if(!e||!e.anchorNode||!this.root.contains(e.anchorNode))return null;var t=e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode;return t&&t.closest?t.closest(".rbe-editable, .rbe-table td, .rbe-table th"):null},Ie.prototype.shouldCreateNewBlock=function(e,t){return!!e.isContentEditable&&("paragraph"===t.dataset.type||"heading"===t.dataset.type||"quote"===t.dataset.type||"callout"===t.dataset.type)},Ie.prototype.isEmptyEditable=function(e){return!(!e||!e.isContentEditable)&&""===(e.textContent||"").trim()},Ie.prototype.shouldKeepEmptyEditableBlock=function(e,t){return!(!e||!t)&&(!("quote"!==e.dataset.type||!t.closest(".rbe-quote-text"))||!("callout"!==e.dataset.type||!t.closest(".rbe-callout .rbe-editable")))},Ie.prototype.defaultBlockData=function(e){return"heading"===e?{text:"",level:2}:"quote"===e?{text:"",caption:""}:"list"===e?{style:"unordered",items:[""]}:"checklist"===e?{items:[{text:"",checked:!1}]}:"code"===e?{code:"",language:"plaintext",headerColor:"#e5e7eb",backgroundColor:"#f3f4f6"}:"image"===e?{url:"",caption:""}:"table"===e?{rows:[["",""],["",""]],withHeadings:!1}:"embed"===e?{source:"",embed:"",caption:""}:"callout"===e?{text:"",tone:"info"}:"delimiter"===e?{style:"line"}:"button"===e?{text:"Button",url:"",background:"#2563eb",color:"#ffffff",alignment:"left"}:"toggle"===e?{title:"",blocks:[{type:"paragraph",data:{text:""}}],open:!0}:"linkPreview"===e?{url:"",title:"",description:""}:"raw"===e?{html:""}:"attaches"===e?{name:"",url:"",size:0}:n[e]&&"function"==typeof n[e].defaultData?n[e].defaultData.call(this,Pe()):n[e]&&n[e].defaultData?Object.assign({},n[e].defaultData):{text:""}},Ie.prototype.dataFromBlockForType=function(e,t){var i="",r=e.querySelector(".rbe-editable");return r&&(i=r.innerHTML),"heading"===t?{text:i,level:2}:"quote"===t?{text:i,caption:""}:"list"===t?{style:"unordered",items:[i||""]}:"checklist"===t?{items:[{text:i||"",checked:!1}]}:"code"===t?{code:(r?r.textContent:e.textContent||"").trim(),language:"plaintext",headerColor:"#e5e7eb",backgroundColor:"#f3f4f6"}:"callout"===t?{text:i,tone:"info"}:"button"===t?{text:i||"Button",url:"",background:"#2563eb",color:"#ffffff",alignment:"left"}:"toggle"===t?{title:i||"",blocks:[{type:"paragraph",data:{text:""}}],open:!0}:"linkPreview"===t?{url:"",title:i||"",description:""}:n[t]&&"function"==typeof n[t].fromBlock?n[t].fromBlock.call(this,e,i,Pe()):Object.assign(this.defaultBlockData(t),{text:i})},Ie.prototype.insertBlock=function(e,t,r,n){if(!(this.silent||this.renderingData||this.readOnly||this.canUseTool(e)))return this.showPremiumLocked(this.getPremiumFeatureForTool(e)),null;this.availableTools.indexOf(e)<0&&i.indexOf(e)>=0&&this.availableTools.push(e);var a=this.createBlock(e,t||this.defaultBlockData(e),n),o=Array.prototype.slice.call(this.canvas.children);return"number"!=typeof r||r<0||r>=o.length?this.canvas.appendChild(a):this.canvas.insertBefore(a,o[r]),this.scheduleSelectEnhance(),a},Ie.prototype.transformBlock=function(e,t,i){if(!this.silent&&!this.readOnly&&!this.canUseTool(t))return this.showPremiumLocked(this.getPremiumFeatureForTool(t)),e;e.dataset.id;e.dataset.type=t;var r=e.querySelector(".rbe-block-body");return this.renderBlockBody(r,t,i||this.defaultBlockData(t)),this.scheduleSelectEnhance(),e},Ie.prototype.refreshButtonPreview=function(e){if(e){var t=e.querySelector(".rbe-button-text"),i=e.querySelector(".rbe-button-url"),r=(e.querySelector(".rbe-button-bg")||{}).value||"#2563eb",n=(e.querySelector(".rbe-button-color")||{}).value||"#ffffff",a=le((e.querySelector(".rbe-button-align")||{}).value||"left"),o=e.querySelector(".rbe-button-block"),l=e.querySelector(".rbe-button-preview"),s=e.querySelector(".rbe-button-link");o&&(o.dataset.align=a),l&&(l.style.textAlign=a),s&&(s.className="rbe-button-link",s.style.backgroundColor=r,s.style.color=n,s.textContent=t&&t.value||"Button",s.href=T(i&&i.value||"")?i.value:"#")}},Ie.prototype.refreshLinkPreview=function(e){if(e){var t=(e.querySelector(".rbe-link-preview-url")||{}).value||"",i=(e.querySelector(".rbe-link-preview-title")||{}).value||"",r=(e.querySelector(".rbe-link-preview-description")||{}).value||"",n=e.querySelector(".rbe-link-preview-card"),a=e.querySelector(".rbe-link-preview-card-title"),o=e.querySelector(".rbe-link-preview-card-description");n&&(n.href=T(t)?t:"#"),a&&(a.textContent=i||t||"Link preview"),o&&(o.textContent=r||"Add a URL, title, and description for this link.")}},Ie.prototype.indexOfBlock=function(e){return Array.prototype.slice.call(this.canvas.children).indexOf(e)},Ie.prototype.focusBlock=function(e){if(e){var t=e.querySelector("[contenteditable='true'], textarea, input:not([type='hidden'])");t&&setTimeout(function(){ne(t)},0)}},Ie.prototype.getCurrentBlock=function(){var e=window.getSelection();return e&&e.anchorNode&&this.root.contains(e.anchorNode)?q(e.anchorNode):this.root.contains(document.activeElement)?q(document.activeElement):this.canvas.lastElementChild},Ie.prototype.getDragAfterElement=function(e){return Array.prototype.slice.call(this.canvas.children).filter(function(e){return e.classList&&e.classList.contains("rbe-block")&&!e.classList.contains("rbe-is-dragging")}).reduce(function(t,i){var r=i.getBoundingClientRect(),n=e-r.top-r.height/2;return n<0&&n>t.offset?{offset:n,element:i}:t},{offset:Number.NEGATIVE_INFINITY,element:null}).element},Ie.prototype.switchListStyle=function(e,t){var i=e.querySelector(".rbe-list-wrap");i&&(i.dataset.style=t),Array.prototype.slice.call(e.querySelectorAll(".rbe-list-item")).forEach(function(e){e.dataset.style=""}),this.updateListMarkers(i)},Ie.prototype.copyCode=function(e){if(e&&navigator.clipboard){var t=e.querySelector(".rbe-code-input");navigator.clipboard.writeText(t?t.value:"")}},Ie.prototype.copyRaw=function(e){if(e&&navigator.clipboard){var t=e.querySelector(".rbe-raw-input");navigator.clipboard.writeText(t?t.value:"")}},Ie.prototype.formatCodeBlock=function(e){if(e&&"code"===e.dataset.type){var t=e.querySelector(".rbe-code-input"),i=(e.querySelector(".rbe-code-language")||{}).value||"plaintext";t&&(this.recordHistory(!1),t.value=fe(t.value,i),this.refreshCodeBlock(e),this.noteHistory("Code","Formatted"),this.changed(!0))}},Ie.prototype.formatRawBlock=function(e){if(e&&"raw"===e.dataset.type){var t=e.querySelector(".rbe-raw-input");t&&(this.recordHistory(!1),t.value=fe(t.value,"html"),this.refreshRawHighlight(e),k(e.querySelector(".rbe-raw-preview"),t.value),this.noteHistory("Raw HTML","Formatted"),this.changed(!0))}},Ie.prototype.refreshCodeBlock=function(e){if(e){var t=e.querySelector(".rbe-code-wrap"),i=e.querySelector(".rbe-code-input"),r=e.querySelector(".rbe-code-highlight"),n=he((e.querySelector(".rbe-code-language")||{}).value);ke(t,{headerColor:ge((e.querySelector(".rbe-code-header-color")||{}).value,"#e5e7eb"),backgroundColor:ge((e.querySelector(".rbe-code-bg-color")||{}).value,"#f3f4f6")}),r&&i&&(r.innerHTML=Se(i.value,n)+"\n",r.scrollTop=i.scrollTop,r.scrollLeft=i.scrollLeft)}},Ie.prototype.refreshRawHighlight=function(e){if(e){var t=e.querySelector(".rbe-raw-input"),i=e.querySelector(".rbe-raw-highlight");i&&t&&(i.innerHTML=Se(t.value,"html")+"\n",i.scrollTop=t.scrollTop,i.scrollLeft=t.scrollLeft)}},Ie.prototype.applyImageStageState=function(e){if(e){var t=e.querySelector(".rbe-image-preview");t&&t.naturalWidth&&(e.dataset.naturalWidth=String(t.naturalWidth),e.dataset.naturalHeight=String(t.naturalHeight||""));var i=Number(e.dataset.displayWidth||0),r=Number(e.dataset.minWidth||0),n=Number(e.dataset.naturalWidth||0);i>0&&r>0&&i<r&&(i=r,e.dataset.displayWidth=String(Math.round(i))),i>0&&n>0&&i>Math.max(r||0,n)&&(i=Math.max(r||0,n),e.dataset.displayWidth=String(Math.round(i)));var a="custom"===e.dataset.crop,o=G(e.dataset),l=ee(e.dataset.cropX),s=ee(e.dataset.cropY),d=te(e.dataset.cropZoom);if(i>0?e.style.width=Math.round(i)+"px":e.style.removeProperty("width"),e.style.maxWidth=n>0?"min(100%, "+Math.round(n)+"px)":"100%",e.classList.toggle("is-custom-crop",a),a){if(!o){var c=e.getBoundingClientRect();o=c.width&&c.height?c.width/c.height:1,e.dataset.cropRatio=o.toFixed(3)}e.style.aspectRatio=o.toFixed(3)+" / 1"}else e.style.removeProperty("aspect-ratio");t&&(a?(t.style.height="100%",t.style.maxHeight="none",t.style.objectFit="cover",t.style.objectPosition=l+"% "+s+"%",t.style.transformOrigin=l+"% "+s+"%",t.style.setProperty("--rbe-image-zoom",d)):(t.style.removeProperty("height"),t.style.removeProperty("max-height"),t.style.removeProperty("object-fit"),t.style.removeProperty("object-position"),t.style.removeProperty("transform-origin"),t.style.removeProperty("--rbe-image-zoom")),t.style.transform="rotate("+(Number(e.dataset.rotation||0)||0)+"deg) scale(var(--rbe-image-zoom, 1))")}},Ie.prototype.setImageCropMode=function(e,t){if(e&&!this.readOnly){if(t&&"custom"!==e.dataset.crop){var i=e.getBoundingClientRect();e.dataset.crop="custom",e.dataset.cropRatio=(i.width&&i.height?i.width/i.height:1).toFixed(3),e.dataset.cropX=e.dataset.cropX||"50",e.dataset.cropY=e.dataset.cropY||"50",e.dataset.cropZoom=e.dataset.cropZoom||"1"}e.classList.toggle("is-image-crop-mode",!!t);var r=e.querySelector(".rbe-image-crop-toggle");r&&(r.classList.toggle("is-active",!!t),r.setAttribute("aria-pressed",t?"true":"false"),r.title=t?"Finish crop":"Crop image",r.setAttribute("aria-label",t?"Finish crop":"Crop image")),this.applyImageStageState(e)}},Ie.prototype.bindImageStageMouseControls=function(e){if(e&&!this.readOnly&&"true"!==e.dataset.imageMouseReady){e.dataset.imageMouseReady="true";var t=this,i=e.querySelector(".rbe-image-resize-handle");i&&i.addEventListener("pointerdown",function(i){i.preventDefault(),i.stopPropagation(),t.recordHistory(!1);var r=e.closest(".rbe-image-gallery")||e.parentElement||e,n=e.getBoundingClientRect(),a=r.getBoundingClientRect(),o=Number(e.dataset.minWidth||0);o||(o=Math.max(80,Math.round(n.width)),e.dataset.minWidth=String(o));var l=Number(e.dataset.naturalWidth||0),s=Math.round(a.width||n.width),d=Math.max(o,l?Math.min(l,s):s),c=i.clientX;function u(i){var a=Z(n.width+i.clientX-c,o,d,n.width);e.dataset.displayWidth=String(Math.round(a)),t.applyImageStageState(e),t.updateMediaActionAvailability(r)}document.addEventListener("pointermove",u),document.addEventListener("pointerup",function e(){document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",e),t.changed(!0)})}),Array.prototype.slice.call(e.querySelectorAll(".rbe-image-crop-handle")).forEach(function(i){i.addEventListener("pointerdown",function(r){r.preventDefault(),r.stopPropagation(),t.recordHistory(!1),t.setImageCropMode(e,!0);var n=e.closest(".rbe-image-gallery")||e.parentElement||e,a=e.getBoundingClientRect(),o=n.getBoundingClientRect(),l=Number(e.dataset.minWidth||0);l||(l=Math.max(80,Math.round(a.width)),e.dataset.minWidth=String(l));var s=Number(e.dataset.naturalWidth||0),d=Math.round(o.width||a.width),c=Math.max(l,s?Math.min(s,d):d),u=r.clientX,p=r.clientY,h=a.width,m=a.height||a.width,b=i.dataset.cropHandle||"se";function f(i){var r=h,a=m;b.indexOf("e")>=0&&(r=Z(h+i.clientX-u,l,c,h),e.dataset.displayWidth=String(Math.round(r))),b.indexOf("s")>=0&&(a=Z(m+i.clientY-p,70,900,m)),e.dataset.crop="custom",e.dataset.cropRatio=Z(r/a,.35,3.5,1).toFixed(3),t.applyImageStageState(e),t.updateMediaActionAvailability(n)}document.addEventListener("pointermove",f),document.addEventListener("pointerup",function e(){document.removeEventListener("pointermove",f),document.removeEventListener("pointerup",e),t.changed(!0)})})}),e.addEventListener("pointerdown",function(i){if(e.classList.contains("is-image-crop-mode")&&!i.target.closest("button, .rbe-image-resize-handle, .rbe-image-crop-handle")){i.preventDefault(),t.recordHistory(!1);var r=e.getBoundingClientRect(),n=i.clientX,a=i.clientY,o=ee(e.dataset.cropX),l=ee(e.dataset.cropY);document.addEventListener("pointermove",s),document.addEventListener("pointerup",function e(){document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",e),t.changed(!0)})}function s(i){var s=(i.clientX-n)/Math.max(1,r.width)*100,d=(i.clientY-a)/Math.max(1,r.height)*100;e.dataset.cropX=String(Math.round(ee(o-s))),e.dataset.cropY=String(Math.round(ee(l-d))),t.applyImageStageState(e)}}),e.addEventListener("wheel",function(i){if(e.classList.contains("is-image-crop-mode")){i.preventDefault();var r=te(e.dataset.cropZoom);r=te(r+(i.deltaY<0?.08:-.08)),e.dataset.cropZoom=r.toFixed(2),t.applyImageStageState(e),t.changed(!0)}},{passive:!1})}},Ie.prototype.applyImageUrl=function(e){var t=e&&e.querySelector(".rbe-image-url");if(t&&T(t.value)){var i=this.serializeBlock(e).data;i.url=t.value.trim(),this.transformBlock(e,"image",i),this.changed()}},Ie.prototype.applyImageFile=function(e,t){return this.applyImageFiles(e,t?[t]:[])},Ie.prototype.applyImageFiles=function(e,t){if(e&&t&&t.length){var i=t.filter(X);if(i.length){var r=this;Promise.all(i.map(function(e){return r.uploadFile(e,"image").then(function(t){return{url:t.url,base64:t.base64||"",upload:B(t.upload||null),alt:t.alt||e.name,caption:t.caption||e.name}})})).then(function(t){var i={items:t=V(r.serializeBlock(e).data).concat(t),url:t[0]?t[0].url:"",alt:t[0]?t[0].alt:"",caption:t[0]?t[0].caption:""};r.transformBlock(e,"image",i),r.changed()}).catch(function(){alert("Image upload failed.")})}else alert("The Image block only accepts image files.")}},Ie.prototype.applyAttachmentFile=function(e,t){return this.applyAttachmentFiles(e,t?[t]:[])},Ie.prototype.applyAttachmentFiles=function(e,t){if(e&&t&&t.length){var i=t.filter(K);if(i.length&&i.length===t.length){var r=this;Promise.all(i.map(function(e){return r.uploadFile(e,"file").then(function(t){return{name:t.name||e.name,url:t.url,base64:t.base64||"",upload:B(t.upload||null),size:t.size||e.size,type:t.type||e.type}})})).then(function(t){t=re(r.serializeBlock(e).data).concat(t),r.transformBlock(e,"attaches",{items:t,name:t[0]?t[0].name:"",url:t[0]?t[0].url:"",size:t[0]?t[0].size:0,type:t[0]?t[0].type:""}),r.changed()}).catch(function(){alert("File upload failed.")})}else alert("Attachments only allow videos and documents such as PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF. Please use the Image block for images.")}},Ie.prototype.removeMediaItem=function(e){if(!this.readOnly){var t=q(e);if(t){var i=e.closest(".rbe-image-stage"),r=e.closest(".rbe-attachment-card");if(i||r){if(this.recordHistory(!1),i){var n=i.closest(".rbe-image-gallery");return i.remove(),t.querySelector(".rbe-image-stage")?(this.closeMediaMenus(),this.updateMediaActionAvailability(n||t)):this.transformBlock(t,"image",{}),void this.changed(!0)}var a=r.closest(".rbe-attachment-grid");r.remove(),t.querySelector(".rbe-attachment-card")?(this.closeMediaMenus(),this.updateMediaActionAvailability(a||t)):this.transformBlock(t,"attaches",{}),this.changed(!0)}}}},Ie.prototype.alignMediaItem=function(e,t){if(!this.readOnly){var i=e.closest(".rbe-image-stage, .rbe-attachment-card");i&&(t=le(t),this.recordHistory(!1),i.dataset.alignment=t,i.classList.remove("rbe-media-align-left","rbe-media-align-center","rbe-media-align-right"),i.classList.add("rbe-media-align-"+t),this.updateMediaActionAvailability(i.closest(".rbe-image-gallery, .rbe-attachment-grid")||i.parentElement||this.root),this.changed(!0))}},Ie.prototype.updateMediaActionAvailability=function(e){(e=e||this.root)&&e.querySelectorAll&&[".rbe-image-gallery",".rbe-attachment-grid"].forEach(function(t){var i=e.matches&&e.matches(t)?[e]:[];(i=i.concat(Array.prototype.slice.call(e.querySelectorAll(t)))).forEach(function(e){var t=Array.prototype.slice.call(e.querySelectorAll(".rbe-image-stage, .rbe-attachment-card"));if(t.forEach(function(e){e.classList.remove("rbe-media-row-has-space","rbe-media-row-full")}),t.length){var i=window.getComputedStyle(e),r=parseFloat(i.columnGap||i.gap||"10")||10,n=(i.gridTemplateColumns||"").split(" ").filter(function(e){return!!e&&"none"!==e}),a=t[0],o=a&&(a.getBoundingClientRect().width||a.offsetWidth)||1,l=Math.max(1,n.length||Math.floor((e.clientWidth+r)/(o+r))),s={};t.forEach(function(e){var t=Math.round(e.offsetTop||0);s[t]=s[t]||[],s[t].push(e)}),Object.keys(s).forEach(function(e){var t=s[e].length<l;s[e].forEach(function(e){e.classList.toggle("rbe-media-row-has-space",t),e.classList.toggle("rbe-media-row-full",!t)})})}})})},Ie.prototype.uploadFile=function(e,t){var i=this.options.upload||{},r="image"===t&&"function"==typeof i.image?i.image:"image"!==t&&"function"==typeof i.file?i.file:null,n=function(e){var t=Array.isArray(e)?e:e?[e]:["base64"];return(t=t.map(function(e){return String(e||"").toLowerCase().trim()}).filter(function(e){return"base64"===e||"upload"===e})).length?Array.from(new Set(t)):["base64"]}(this.options.uploadOutput||this.options["upload output"]||i.output||i.uploadOutput||i["upload output"]),a=n.indexOf("upload")>=0,o=n.indexOf("base64")>=0||!r&&!a?function(e){return new Promise(function(t,i){var r=new FileReader;r.onload=function(){t(r.result)},r.onerror=i,r.readAsDataURL(e)})}(e):Promise.resolve(""),l=a&&r?Promise.resolve(r(e)):Promise.resolve(null);return Promise.all([o,l]).then(function(t){var i=t[0],r=t[1]||null,n=Object.assign({},r||{});return i&&(n.base64=i),r&&a&&(n.upload=B(r)),n.url||(n.url=i||r&&r.url||""),n.name||(n.name=e.name),n.size||(n.size=e.size),n.type||(n.type=e.type),n})},Ie.prototype.applyEmbed=function(e){var t=e&&e.querySelector(".rbe-embed-url");if(t&&t.value.trim()){var i=P(t.value.trim()),r=e.querySelector(".rbe-embed-caption");i.caption=r?r.value:"",this.transformBlock(e,"embed",i),this.changed()}},Ie.prototype.applyListNestAction=function(e,t){if(e&&"list"===e.dataset.type&&e.querySelector(".rbe-list")){var i=this.getActiveListItem(e);if(i){if(this.recordHistory(!1),"toggle-list-style"===t){var r=i.dataset.style||(e.querySelector(".rbe-list-wrap")||{}).dataset.style||"unordered";return i.dataset.style="ordered"===r?"unordered":"ordered",this.updateListMarkers(e.querySelector(".rbe-list-wrap")),ne(i.querySelector(".rbe-list-text")),void this.changed(!0)}if("indent-list"===t||"outdent-list"===t){var n=Number(i.dataset.level||0);if("indent-list"===t){if(!i.previousElementSibling)return;i.dataset.level=Math.min(4,n+1)}else i.dataset.level=Math.max(0,n-1);this.updateListMarkers(e.querySelector(".rbe-list-wrap")),ne(i.querySelector(".rbe-list-text")),this.changed(!0)}}}},Ie.prototype.getActiveListItem=function(e){var t=e&&e.querySelector(".rbe-list");if(!t)return null;var i=window.getSelection(),r=i&&i.anchorNode?i.anchorNode:document.activeElement,n=r&&r.nodeType===Node.TEXT_NODE?r.parentElement:r,a=n&&n.closest?n.closest(".rbe-list-item"):null;return a&&t.contains(a)||(a=t.querySelector(".rbe-list-item")),a},Ie.prototype.addListItem=function(e){if(e&&"list"===e.dataset.type){var t=e.querySelector(".rbe-list");if(t){this.recordHistory(!1);var i=this.getActiveListItem(e),r=this.createListItem({text:"",level:i?Number(i.dataset.level||0):0,style:i&&i.dataset.style||""});i&&i.parentNode===t?i.insertAdjacentElement("afterend",r):t.appendChild(r),this.updateListMarkers(e.querySelector(".rbe-list-wrap")),ne(r.querySelector(".rbe-list-text")),this.changed(!0)}}},Ie.prototype.removeListItem=function(e,t){if(e&&"list"===e.dataset.type&&t){var i=e.querySelector(".rbe-list");if(i&&i.contains(t)){this.recordHistory(!1);var r=t.previousElementSibling||t.nextElementSibling;if(i.querySelectorAll(".rbe-list-item").length>1)t.remove(),r&&ne(r.querySelector(".rbe-list-text"));else{var n=t.querySelector(".rbe-list-text");n&&(n.innerHTML=""),t.dataset.level="0",ne(n)}this.updateListMarkers(e.querySelector(".rbe-list-wrap")),this.changed(!0)}}},Ie.prototype.updateListMarkers=function(e){if(e){var t="ordered"===e.dataset.style,i=[0,0,0,0,0];Array.prototype.slice.call(e.querySelectorAll(".rbe-list-item")).forEach(function(e){var r=Math.min(4,Math.max(0,Number(e.dataset.level||0))),n="ordered"===(e.dataset.style||(t?"ordered":"unordered"));e.dataset.level=String(r),n&&(i[r]+=1);for(var a=r+1;a<i.length;a+=1)i[a]=0;var o=e.querySelector(".rbe-list-marker");o&&(o.textContent=n?i.slice(0,r+1).filter(function(e){return e>0}).join(".")+".":"•")})}},Ie.prototype.updateChecklistItemIcon=function(e){if(e){var t=e.querySelector(".rbe-check-toggle");if(t){var i=Te({level:e.dataset.level}),r="true"===e.dataset.checked;"true"!==e.dataset.checked&&"false"!==e.dataset.checked&&(r="true"===t.dataset.checked),e.dataset.level=String(i),e.dataset.checked=r?"true":"false",t.dataset.checked=r?"true":"false",t.setAttribute("aria-pressed",r?"true":"false"),t.setAttribute("aria-label",r?"Mark item incomplete":"Mark item complete"),t.title=r?"Mark incomplete":"Mark complete",t.classList.toggle("is-checked",r),t.classList.toggle("is-nested",i>0);var n=i>0?r?"circle-check":"circle":r?"square-check":"square";t.innerHTML=S(n,r?"Checked":"Unchecked")}}},Ie.prototype.updateChecklistIcons=function(e){e&&Array.prototype.slice.call(e.querySelectorAll(".rbe-check-item")).forEach(function(e){this.updateChecklistItemIcon(e)}.bind(this))},Ie.prototype.getActiveChecklistItem=function(e){var t=e&&e.querySelector(".rbe-checklist");if(!t)return null;var i=window.getSelection(),r=i&&i.anchorNode?i.anchorNode:document.activeElement,n=r&&r.nodeType===Node.TEXT_NODE?r.parentElement:r,a=n&&n.closest?n.closest(".rbe-check-item"):null;return a&&t.contains(a)||(a=t.querySelector(".rbe-check-item")),a},Ie.prototype.applyChecklistNestAction=function(e,t){if(e&&"checklist"===e.dataset.type){var i=this.getActiveChecklistItem(e);if(i&&("indent-checklist"===t||"outdent-checklist"===t)){this.recordHistory(!1);var r=Number(i.dataset.level||0);if("indent-checklist"===t){if(!i.previousElementSibling)return;i.dataset.level=Math.min(4,r+1)}else i.dataset.level=Math.max(0,r-1);this.updateChecklistItemIcon(i),ne(i.querySelector(".rbe-check-text")),this.changed(!0)}}},Ie.prototype.addChecklistItem=function(e){if(e&&"checklist"===e.dataset.type){var t=e.querySelector(".rbe-checklist");if(t){this.recordHistory(!1);var i=this.getActiveChecklistItem(e),r=this.createChecklistItem({text:"",checked:!1,level:i?Number(i.dataset.level||0):0});i&&i.parentNode===t?i.insertAdjacentElement("afterend",r):t.insertBefore(r,t.querySelector(".rbe-checklist-add")),ne(r.querySelector(".rbe-check-text")),this.changed(!0)}}},Ie.prototype.removeChecklistItem=function(e,t){if(e&&"checklist"===e.dataset.type&&t){var i=e.querySelector(".rbe-checklist");if(i&&i.contains(t)){this.recordHistory(!1);var r=t.previousElementSibling||t.nextElementSibling;if(i.querySelectorAll(".rbe-check-item").length>1)t.remove(),r&&r.classList.contains("rbe-check-item")&&ne(r.querySelector(".rbe-check-text"));else{var n=t.querySelector(".rbe-check-text");n&&(n.innerHTML=""),t.dataset.level="0",t.dataset.checked="false",this.updateChecklistItemIcon(t),ne(n)}this.changed(!0)}}},Ie.prototype.toggleChecklistItem=function(e,t){e&&"checklist"===e.dataset.type&&t&&!this.readOnly&&(this.recordHistory(!1),t.dataset.checked="true"===t.dataset.checked?"false":"true",this.updateChecklistItemIcon(t),this.changed(!0))},Ie.prototype.applyTableAction=function(e,t){if(e){var i=e.querySelector(".rbe-table");if(i){this.recordHistory(!1);var r=Array.prototype.slice.call(i.rows);if(r.length){var n=document.activeElement&&document.activeElement.closest("td, th"),a=n&&n.parentElement?n.parentElement.rowIndex:r.length-1,o=n?n.cellIndex:r[0].cells.length-1;if(0===t.indexOf("cell-align-")){var l=le(t.replace("cell-align-","")),s=n&&i.contains(n)?n:r[0].cells[0];return s&&(s.style.textAlign=l),void this.changed(!0)}if("add-row"===t)for(var d=i.insertRow(a+1),c=0;c<r[0].cells.length;c+=1){d.insertCell(c).contentEditable=!this.readOnly}"add-col"===t&&r.forEach(function(e){e.insertCell(o+1).contentEditable=!this.readOnly}.bind(this)),"remove-row"===t&&r.length>1&&i.deleteRow(Math.max(0,a)),"remove-col"===t&&r[0].cells.length>1&&r.forEach(function(e){e.deleteCell(Math.max(0,o))}),this.refreshTableHeading(e),this.updateTableLayout(e),this.changed(!0)}}}},Ie.prototype.updateTableLayout=function(e){var t=e&&e.querySelector(".rbe-table-wrap"),i=e&&e.querySelector(".rbe-table");if(t&&i){var r=e.querySelector(".rbe-table-width"),n=e.querySelector(".rbe-table-width-value"),a=e.querySelector(".rbe-table-align"),o=e.querySelector(".rbe-table-border-style"),l=e.querySelector(".rbe-table-border-width"),s=e.querySelector(".rbe-table-border-width-value"),d=Math.min(100,Math.max(40,Number(r&&r.value?r.value:100))),c=!a||"center"!==a.value&&"right"!==a.value?"left":a.value,u=se(o&&o.value),p=de(l&&l.value);t.dataset.align=c,i.style.width=d+"%",i.style.setProperty("--rbe-table-border-style",u),i.style.setProperty("--rbe-table-border-width",p+"px"),n&&(n.textContent=d+"%"),s&&(s.textContent=p+"px")}},Ie.prototype.refreshTableHeading=function(e){var t=e&&e.querySelector(".rbe-table"),i=e&&e.querySelector("[data-role='table-heading']");t&&i&&Array.prototype.slice.call(t.rows).forEach(function(e,t){Array.prototype.slice.call(e.cells).forEach(function(e){var r=i.checked&&0===t?"th":"td";if(e.tagName.toLowerCase()!==r){var n=v(r,"",{contentEditable:!this.readOnly,html:A(e.innerHTML)});n.style.textAlign=e.style&&e.style.textAlign||"left",e.replaceWith(n)}}.bind(this))}.bind(this))},Ie.prototype.serializeBlock=function(e){var t=e.dataset.type||"paragraph",i={};if("paragraph"===t){var r=e.querySelector(".rbe-paragraph");i.text=A((r||{}).innerHTML||""),i.alignment=le(r&&r.style?r.style.textAlign:"left")}else if("heading"===t){var a=e.querySelector(".rbe-heading");i.text=A(a?a.innerHTML:""),i.level=Number(a&&a.dataset.level||(e.querySelector(".rbe-heading-level")||{}).value||2),i.alignment=le(a&&a.style?a.style.textAlign:"left")}else if("quote"===t){var o=e.querySelector(".rbe-quote-text");i.text=A((o||{}).innerHTML||""),i.caption=(e.querySelector(".rbe-quote-caption")||{}).value||"",i.alignment=le(o&&o.style?o.style.textAlign:"left")}else if("list"===t){var l=e.querySelector(".rbe-list");i.style=(e.querySelector(".rbe-list-style")||{}).value||"unordered",i.alignment=le(l&&l.style?l.style.textAlign:"left"),i.items=l?Array.prototype.slice.call(l.querySelectorAll(".rbe-list-item")).map(function(e){return{text:A((e.querySelector(".rbe-list-text")||{}).innerHTML||""),level:Te({level:e.dataset.level}),alignment:le((e.querySelector(".rbe-list-text")||{}).style?e.querySelector(".rbe-list-text").style.textAlign:i.alignment),style:e.dataset.style||""}}).filter(function(e){return!Me(e)}):[],i.items.length||(i.items=[{text:"",level:0}])}else if("checklist"===t)i.items=Array.prototype.slice.call(e.querySelectorAll(".rbe-check-item")).map(function(e){var t=e.querySelector(".rbe-check-toggle"),i="true"===e.dataset.checked;return"true"!==e.dataset.checked&&"false"!==e.dataset.checked&&(i=!(!t||"true"!==t.dataset.checked)),{text:A((e.querySelector(".rbe-check-text")||{}).innerHTML||""),checked:i,level:Te({level:e.dataset.level})}}).filter(function(e){return!Me(e)}),i.items.length||(i.items=[{text:"",checked:!1,level:0}]);else if("code"===t)i.code=(e.querySelector(".rbe-code-input")||{}).value||"",i.language=he((e.querySelector(".rbe-code-language")||{}).value),i.headerColor=ge((e.querySelector(".rbe-code-header-color")||{}).value,"#e5e7eb"),i.backgroundColor=ge((e.querySelector(".rbe-code-bg-color")||{}).value,"#f3f4f6");else if("image"===t)i.items=Array.prototype.slice.call(e.querySelectorAll(".rbe-image-stage")).map(function(e){var t=e.querySelector(".rbe-image-preview"),i=e.__rbeMediaItem||{},r={url:e.dataset.url||(t?t.src:""),alt:e.dataset.alt||(t?t.alt:""),caption:e.dataset.caption||"",alignment:le(e.dataset.alignment),displayWidth:Number(e.dataset.displayWidth||0),minWidth:Number(e.dataset.minWidth||0),naturalWidth:Number(e.dataset.naturalWidth||0),naturalHeight:Number(e.dataset.naturalHeight||0),rotation:Number(e.dataset.rotation||0),crop:"custom"===e.dataset.crop?"custom":"free",cropRatio:Number(e.dataset.cropRatio||0),cropX:ee(e.dataset.cropX),cropY:ee(e.dataset.cropY),cropZoom:te(e.dataset.cropZoom)};return i.base64&&(r.base64=i.base64),i.upload&&(r.upload=B(i.upload)),r}).filter(function(e){return!!e.url}),i.url=i.items[0]?i.items[0].url:"",i.alt=i.items[0]?i.items[0].alt:"",i.caption=i.items[0]?i.items[0].caption:"";else if("table"===t)i.withHeadings=!!(e.querySelector("[data-role='table-heading']")||{}).checked,i.align=(e.querySelector(".rbe-table-align")||{}).value||"left",i.width=Number((e.querySelector(".rbe-table-width")||{}).value||100),i.borderStyle=se((e.querySelector(".rbe-table-border-style")||{}).value),i.borderWidth=de((e.querySelector(".rbe-table-border-width")||{}).value),i.rows=Array.prototype.slice.call(e.querySelectorAll(".rbe-table tr")).map(function(e){return Array.prototype.slice.call(e.cells).map(function(e){return{text:A(e.innerHTML),alignment:le(e.style?e.style.textAlign:"left")}})});else if("embed"===t){i.source=(e.querySelector(".rbe-embed-url")||{}).value||"";var s=e.querySelector(".rbe-embed-frame");i.embed=s?s.src:"",i.service=P(i.source).service,i.caption=(e.querySelector(".rbe-embed-caption")||{}).value||""}else if("callout"===t){var d=e.querySelector(".rbe-callout-text");i.text=A((d||{}).innerHTML||""),i.tone=(e.querySelector(".rbe-callout-tone")||{}).value||(e.querySelector(".rbe-callout")||{}).dataset.tone||"info",i.alignment=le(d&&d.style?d.style.textAlign:"left")}else if("delimiter"===t)i.style=(e.querySelector(".rbe-delimiter-style")||{}).value||(e.querySelector(".rbe-delimiter-wrap")||{}).dataset.style||"line";else if("button"===t)i.text=(e.querySelector(".rbe-button-text")||{}).value||"",i.url=(e.querySelector(".rbe-button-url")||{}).value||"",i.background=(e.querySelector(".rbe-button-bg")||{}).value||"#2563eb",i.color=(e.querySelector(".rbe-button-color")||{}).value||"#ffffff",i.alignment=le((e.querySelector(".rbe-button-align")||{}).value||"left");else if("toggle"===t){i.title=(e.querySelector(".rbe-toggle-title")||{}).value||"";var c=e.querySelector(".rbe-toggle-nested-canvas");i.blocks=c?Array.prototype.slice.call(c.children).map(this.serializeBlock.bind(this)):[],i.text=i.blocks.map(function(e){return e.data&&e.data.text?e.data.text:""}).join(""),i.open=!!(e.querySelector(".rbe-toggle")||{}).open}else if("linkPreview"===t)i.url=(e.querySelector(".rbe-link-preview-url")||{}).value||"",i.title=(e.querySelector(".rbe-link-preview-title")||{}).value||"",i.description=(e.querySelector(".rbe-link-preview-description")||{}).value||"";else if("raw"===t){var u=e.querySelector(".rbe-raw-wrap");i.html=(e.querySelector(".rbe-raw-input")||{}).value||u&&u.__rbeRawHtml||""}else"attaches"===t?(i.items=Array.prototype.slice.call(e.querySelectorAll(".rbe-attachment-card")).map(function(e){var t=e.__rbeMediaItem||{},i={name:e.dataset.name||"Attachment",url:e.dataset.url||e.getAttribute("href")||"",type:e.dataset.type||"",size:Number(e.dataset.size||0),alignment:le(e.dataset.alignment)};return t.base64&&(i.base64=t.base64),t.upload&&(i.upload=B(t.upload)),i}).filter(function(e){return!!e.url}),i.name=i.items[0]?i.items[0].name:"",i.url=i.items[0]?i.items[0].url:"",i.type=i.items[0]?i.items[0].type:"",i.size=i.items[0]?i.items[0].size:0):n[t]&&"function"==typeof n[t].serialize&&(i=n[t].serialize.call(this,e,Pe())||{});return{id:e.dataset.id||y("block"),type:t,data:i}},Ie.prototype.getData=function(){var t={time:Date.now(),version:e,blocks:Array.prototype.slice.call(this.canvas.children).map(this.serializeBlock.bind(this))};return Object.keys(this.documentMeta||{}).forEach(function(e){t[e]=B(this.documentMeta[e])},this),t},Ie.prototype.save=function(){return Promise.resolve(this.getData())},Ie.prototype.render=function(e,t){var r=this.renderingData,n=this.silent;this.renderingData=!0,this.silent=!(!t||!t.silent);try{var a=z(e);Object.keys(a).length&&(this.documentMeta=a),this.canvas.innerHTML="";var o=function(e){return e?Array.isArray(e)?e:"string"==typeof e?M(e):Array.isArray(e.blocks)?e.blocks:[]:[]}(e);o.length||(o=ae().blocks),o.forEach(function(e){var t=i.indexOf(e.type)>=0?e.type:"paragraph";this.insertBlock(t,e.data||{},this.canvas.children.length,e.id||y("block"))}.bind(this))}finally{this.renderingData=r,this.silent=n}this.scheduleSelectEnhance(),t&&t.silent||this.changed()},Ie.prototype.scheduleSelectEnhance=function(){!1!==this.options.select2&&"undefined"!=typeof window&&(clearTimeout(this.selectEnhanceTimer),this.selectEnhanceTimer=setTimeout(function(){this.enhanceSelects()}.bind(this),0))},Ie.prototype.enhanceSelects=function(){if(!1!==this.options.select2&&this.root){var e=this.root,t=this;!function(e){if("undefined"!=typeof window&&"undefined"!=typeof document){C("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css","select2-css");var t=function(){window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2&&e()};if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2)t();else{var i=function(){E("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js","select2-js",t)};window.jQuery?i():E("https://code.jquery.com/jquery-3.7.1.min.js","jquery-js",i)}}}(function(){var i=window.jQuery;i&&i.fn&&i.fn.select2&&i(e).find("select").each(function(){var e=this;i(e).data("select2")||i(e).select2({width:"style",minimumResultsForSearch:1/0,dropdownParent:i(document.body)}).on("select2:opening select2:open",function(){e.closest(".rbe-inline-toolbar")&&t.keepInlineToolbarOpen()}).on("select2:select",function(){e.closest(".rbe-inline-toolbar")&&t.keepInlineToolbarOpen(),e.dispatchEvent(new Event("change",{bubbles:!0}))})})})}},Ie.prototype.clear=function(e){if(e&&e.resetHistory)return this.render(ae(),{silent:!0}),this.resetHistoryToCurrent(),void this.emitChange();this.render(ae())},Ie.prototype.destroy=function(){document.removeEventListener("selectionchange",this.boundSelectionChange),document.removeEventListener("mousedown",this.boundDocumentMouseDown),this.holder.innerHTML=""},Ie.prototype.setReadOnly=function(e){this.readOnly=!!e,this.root.dataset.readonly=this.readOnly?"true":"false",Array.prototype.slice.call(this.canvas.children).forEach(function(e){this.makeBlockReadonly(e)}.bind(this)),this.updateHistoryButtons()},Ie.prototype.makeBlockReadonly=function(e){Array.prototype.slice.call(e.querySelectorAll("[contenteditable]")).forEach(function(e){e.contentEditable=!this.readOnly}.bind(this)),Array.prototype.slice.call(e.querySelectorAll("input, textarea, select, button")).forEach(function(e){e.classList.contains("rbe-code-copy")||(e.disabled=this.readOnly)}.bind(this))},Ie.prototype.changed=function(e){this.silent||((this.hasExplicitSave||this.savedExportData)&&(this.hasExplicitSave=!1,this.savedExportData=null,this.hideExportMenu(),this.updateHistoryButtons()),e?this.recordHistory(!0):this.queueHistory(),this.queueChange())},Ie.prototype.noteHistory=function(e,t){this.pendingHistoryAction={blockName:e||"Document",actionName:t||"Edited"}},Ie.prototype.describeHistoryChange=function(e,t){if(this.pendingHistoryAction)return this.pendingHistoryAction;var i=[],n=[];try{i=e?JSON.parse(e):[],n=t?JSON.parse(t):[]}catch(e){return{blockName:"Document",actionName:"Edited"}}if(n.length>i.length){var a=n.find(function(e){return!i.some(function(t){return t.id===e.id})})||n[n.length-1];return{blockName:(r[a.type]||{}).label||a.type||"Block",actionName:"Created"}}if(n.length<i.length){var o=i.find(function(e){return!n.some(function(t){return t.id===e.id})})||i[i.length-1];return{blockName:(r[o.type]||{}).label||o.type||"Block",actionName:"Deleted"}}var l=n.find(function(e,t){return JSON.stringify(e)!==JSON.stringify(i[t])})||n[0]||{};return{blockName:(r[l.type]||{}).label||l.type||"Document",actionName:"Edited"}},Ie.prototype.emitChange=function(){var e=this.getData();if(this.options.autosave&&this.options.autosave.key)try{localStorage.setItem(this.options.autosave.key,JSON.stringify(e))}catch(e){}"function"==typeof this.options.onChange&&this.options.onChange(e,this),this.setShellStatus("JSON synced "+new Date(e.time||Date.now()).toLocaleTimeString()),this.root.dispatchEvent(new CustomEvent("rbe:change",{detail:e}))},Ie.prototype.setupAutosave=function(){if(this.options.autosave&&this.options.autosave.key&&this.options.autosave.load)try{var e=localStorage.getItem(this.options.autosave.key);e?this.render(JSON.parse(e),{silent:!0}):this.render(this.options.data||ae(),{silent:!0})}catch(e){this.render(this.options.data||ae(),{silent:!0})}else this.render(this.options.data||ae(),{silent:!0})},Ie.prototype.recordHistory=function(e){if(!this.silent){var t=JSON.stringify(this.getData().blocks);if(e||this.history[this.historyIndex]!==t){var i=this.history[this.historyIndex]||"[]",r=this.describeHistoryChange(i,t);this.history=this.history.slice(0,this.historyIndex+1),this.history.push(t),this.history.length>80&&this.history.shift(),this.historyIndex=this.history.length-1,this.actionHistory.push({time:new Date,snapshot:t,blockName:r.blockName,actionName:r.actionName,userName:this.options.userName||"Current user"}),this.pendingHistoryAction=null,this.actionHistory.length>80&&this.actionHistory.shift(),this.updateHistoryButtons()}}},Ie.prototype.resetHistoryToCurrent=function(){var e=JSON.stringify(this.getData().blocks);this.history=[e],this.historyIndex=0,this.actionHistory=[],this.pendingHistoryAction=null,this.updateHistoryButtons()},Ie.prototype.undo=function(){this.historyIndex<=0||(this.historyIndex-=1,this.render({blocks:JSON.parse(this.history[this.historyIndex])},{silent:!0}),this.updateHistoryButtons(),this.emitChange())},Ie.prototype.redo=function(){this.historyIndex>=this.history.length-1||(this.historyIndex+=1,this.render({blocks:JSON.parse(this.history[this.historyIndex])},{silent:!0}),this.updateHistoryButtons(),this.emitChange())},Ie.prototype.updateHistoryButtons=function(){if(this.topToolbar){var e=this.topToolbar.querySelector("[data-history='undo']"),t=this.topToolbar.querySelector("[data-history='redo']"),i=this.topToolbar.querySelector("[data-rbe-clear='true']"),r=this.topToolbar.querySelector("[data-rbe-save='true']"),n=this.topToolbar.querySelector("[data-rbe-export-toggle='true']"),a=this.topToolbar.querySelector("[data-rbe-export-html='true']");e&&(e.disabled=this.readOnly||this.historyIndex<=0),t&&(t.disabled=this.readOnly||this.historyIndex>=this.history.length-1),i&&(i.disabled=this.readOnly),r&&(r.disabled=this.readOnly),n&&(n.disabled=this.readOnly||!this.hasExplicitSave||!this.savedExportData),a&&(a.disabled=this.readOnly||!this.hasExplicitSave||!this.savedExportData),this.updateHistoryPanel()}},Ie.prototype.hideExportMenu=function(){if(this.topToolbar){var e=this.topToolbar.querySelector(".rbe-export-menu");e&&(e.hidden=!0)}},Ie.prototype.toggleExportMenu=function(e){if(e&&!e.disabled){var t=e.closest(".rbe-export-menu-wrap"),i=t&&t.querySelector(".rbe-export-menu");i&&(i.hidden=!i.hidden)}},Ie.prototype.handleClearButton=function(e){this.readOnly||e&&e.disabled||this.clear({resetHistory:!0})},Ie.prototype.handleSaveButton=function(e){if(!(this.readOnly||e&&e.disabled)){var t=this,i=null;e&&(e.disabled=!0),Promise.resolve(this.save()).then(function(e){return i=e,"function"==typeof t.options.onSave?t.options.onSave(e,t):e}).then(function(e){var r=null==e?i:e;return t.savedExportData=Ie.normalizePreviewData(r),t.hasExplicitSave=!0,t.root.dispatchEvent(new CustomEvent("rbe:save",{detail:t.savedExportData})),t.savedExportData}).catch(function(e){t.hasExplicitSave=!1,t.savedExportData=null,t.hideExportMenu(),t.root.dispatchEvent(new CustomEvent("rbe:save-error",{detail:e}))}).finally(function(){e&&(e.disabled=!1),t.updateHistoryButtons()})}},Ie.prototype.getExportFilename=function(e){var t=String(this.options.exportFilename||"blockwriteai-document").trim().replace(/[\\/:*?"<>|]+/g,"-").replace(/\s+/g,"-").replace(/^-+|-+$/g,"");return t||(t="blockwriteai-document"),t+"."+e},Ie.prototype.downloadBlob=function(e,t,i){var r=e instanceof Blob?e:new Blob([e],{type:i||"application/octet-stream"}),n=URL.createObjectURL(r),a=v("a","",{href:n,download:t});document.body.appendChild(a),a.click(),a.remove(),setTimeout(function(){URL.revokeObjectURL(n)},1e3)},Ie.prototype.collectExportStyles=function(){return Array.prototype.slice.call(document.querySelectorAll('link[rel="stylesheet"], style')).map(function(e){return e.tagName&&"link"===e.tagName.toLowerCase()?'<link rel="stylesheet" href="'+w(e.href)+'">':e.outerHTML||""}).join("\n")},Ie.prototype.getExportLogoUrl=function(){var e=oe("blockwriteai-logo.svg");if(e)return e;var t=document.querySelector(".brand-logo[src]");return t?t.src:""},Ie.prototype.getInlineExportLogoDataUrl=function(){var e=['<svg width="270" height="58" viewBox="0 0 270 58" fill="none" xmlns="http://www.w3.org/2000/svg">','<defs><linearGradient id="bwai-icon" x1="8" y1="8" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#102033"/><stop offset="1" stop-color="#172A46"/></linearGradient><linearGradient id="bwai-accent" x1="16" y1="17" x2="43" y2="42" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2BEA8A"/><stop offset="1" stop-color="#10B981"/></linearGradient></defs>','<rect x="2" y="7" width="44" height="44" rx="13" fill="url(#bwai-icon)"/>','<rect x="13" y="17" width="9" height="9" rx="2.2" fill="#FFFFFF"/>','<rect x="25" y="17" width="9" height="9" rx="2.2" fill="#FFFFFF" opacity="0.92"/>','<rect x="13" y="29" width="9" height="9" rx="2.2" fill="url(#bwai-accent)"/>','<path d="M27.5 38.3L37.6 28.2C38.2 27.6 39.1 27.6 39.7 28.2L43 31.5C43.6 32.1 43.6 33 43 33.6L32.9 43.7L26.1 45.1L27.5 38.3Z" fill="#FFFFFF"/>','<path d="M36.1 29.7L41.5 35.1" stroke="#10B981" stroke-width="2.2" stroke-linecap="round"/>','<circle cx="42" cy="45" r="5.5" fill="#19B86B" stroke="#FFFFFF" stroke-width="2.6"/>','<path d="M49 18.5H54M51.5 16V21" stroke="#19B86B" stroke-width="2.4" stroke-linecap="round"/>','<text x="60" y="37" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="28" font-weight="850"><tspan fill="#102033">BlockWr&#305;te</tspan><tspan fill="#12A865">AI</tspan></text>','<circle cx="182" cy="17.6" r="2.8" fill="#19B86B"/>',"</svg>"].join("");return"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(e)},Ie.prototype.buildExportPreviewRuntime=function(){var e=this.getInlineExportLogoDataUrl(),t={licenseKey:this.premiumOptions&&this.premiumOptions.licenseKey||"",sessionToken:this.premiumOptions&&this.premiumOptions.sessionToken||"",signatureEventUrl:this.premiumOptions&&this.premiumOptions.signatureEventEndpoint||""};try{t.licenseKey=t.licenseKey||localStorage.getItem("bwai_license_key")||localStorage.getItem("blockwriteai_license_key")||"",t.sessionToken=t.sessionToken||localStorage.getItem("bwai_session_token")||localStorage.getItem("blockwriteai_session_token")||""}catch(e){}return"<script>("+function(e,t){var i="blockwriteai-signature:",r="blockwriteai-signature-flow:",n=(t=t||{}).signatureEventUrl||window.BlockWriteAISignatureEventUrl||"/blockwriteai-platform/api/signature_event.php",a=document;function o(e){return String(null==e?"":e).trim()}function l(e){return e.toLocaleString()}function s(e){try{return JSON.parse(localStorage.getItem(e)||"null")}catch(e){return null}}function d(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(e){}}function c(e){try{return localStorage.getItem(e)||sessionStorage.getItem(e)||""}catch(e){return""}}function u(e,t){if(e&&t&&t.name){var i=e.querySelector(".rbe-signature-unsigned"),r=e.querySelector(".rbe-signature-signed"),n=e.querySelector(".rbe-signature-input"),a=e.querySelector(".rbe-signature-name"),o=e.querySelector(".rbe-signature-by-name"),s=e.querySelector(".rbe-signature-date");n&&(n.value=t.name,n.readOnly=!0),a&&(a.textContent=t.name),o&&(o.textContent=t.name),s&&(s.textContent=t.dateLabel||l(new Date(t.date||Date.now())),t.date&&s.setAttribute("datetime",t.date)),i&&(i.hidden=!0),r&&(r.hidden=!1),e.dataset.signed="true",e.classList.remove("has-error")}}function p(e){var t=e.querySelector(".rbe-signature-input"),r=o(t&&t.value);if(!r)return e.classList.add("has-error"),void(t&&t.focus());var n=new Date,a={name:r,date:n.toISOString(),dateLabel:l(n)};d(i+(e.dataset.signatureStorageKey||e.dataset.signatureId||""),a),u(e,a)}function h(e,t){if(e&&t&&t.name){var i=e.querySelector(".rbe-flow-signature-unsigned"),r=e.querySelector(".rbe-flow-signature-signed"),n=e.querySelector(".rbe-flow-signature-input"),a=e.querySelector(".rbe-flow-signature-status"),o=e.querySelector(".rbe-flow-signature-name"),s=e.querySelector(".rbe-flow-signature-by-name"),d=e.querySelector(".rbe-flow-signature-email"),c=e.querySelector(".rbe-flow-signature-ip"),u=e.querySelector(".rbe-flow-signature-date");e.classList.add("is-signed"),e.classList.remove("is-locked","has-error"),e.dataset.signed="true",e.dataset.signatureHash=t.signatureHash||"",n&&(n.value=t.name,n.readOnly=!0),a&&(a.textContent="Signed"),o&&(o.textContent=t.name),s&&(s.textContent=t.name),d&&(d.textContent=t.email||""),c&&(c.textContent=t.ipAddress||""),u&&(u.textContent=t.dateLabel||l(new Date(t.date||Date.now())),t.date&&u.setAttribute("datetime",t.date)),i&&(i.hidden=!0),r&&(r.hidden=!1)}}function m(e){var t=Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")),i=Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-connector")),r=!0;t.forEach(function(e,t){var n="true"===e.dataset.signed,a=r||n,o=e.querySelector(".rbe-flow-signature-input"),l=e.querySelector(".rbe-flow-signature-apply"),s=e.querySelector(".rbe-flow-signature-status");e.classList.toggle("is-locked",!a),e.classList.toggle("is-active",a&&!n),n||(o&&(o.disabled=!a),l&&(l.disabled=!a),s&&(s.textContent=a?"Ready to sign":"Pending")),i[t]&&(i[t].classList.toggle("is-complete",n),i[t].classList.toggle("is-pending",!n)),r=n})}function b(e){if(e&&!e.classList.contains("is-locked")){var i=e.querySelector(".rbe-flow-signature-input"),a=o(i&&i.value);if(!a)return e.classList.add("has-error"),void(i&&i.focus());var s=e.closest(".rbe-output-signature-flow");(function(e){var i=t.licenseKey||c("bwai_license_key")||c("blockwriteai_license_key");if(!i||!e||"function"!=typeof fetch)return Promise.resolve(null);var r={action:"lookup",license_key:i,match_signer_value:e,signer_name:e},a=t.sessionToken||c("bwai_session_token")||c("blockwriteai_session_token");return a&&(r.session_token=a),fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(function(e){return e.ok?e.json():null}).then(function(t){return t&&t.matched&&t.signature?{name:t.signature.signer_name||e,email:t.signature.signer_email||"",role:t.signature.signer_role||"",ipAddress:t.signature.ip_address||"",signatureHash:t.signature.signature_hash||"",date:t.signature.created_at||(new Date).toISOString(),dateLabel:t.signature.created_at?l(new Date(t.signature.created_at)):l(new Date)}:null}).catch(function(){return null})})(a).then(function(t){t?function(e,t,i){return i=o(i).toLowerCase(),!(!e||!i)&&Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).some(function(e){return e!==t&&"true"===e.dataset.signed&&o(e.dataset.signatureHash).toLowerCase()===i})}(s,e,t.signatureHash)?function(e,t){e.classList.add("has-error");var i=e.querySelector(".rbe-flow-signature-status");i&&(i.textContent="Signature already used in this flow."),t&&t.focus()}(e,i):(d(r+(s&&s.dataset.flowId||"")+":"+(e.dataset.stepId||""),t),h(e,t),s&&m(s)):function(e,t){e.classList.add("has-error");var i=e.querySelector(".rbe-flow-signature-status");i&&(i.textContent="No verified signature found."),t&&t.focus()}(e,i)})}}a.addEventListener("click",function(e){var t=e.target.closest(".rbe-signature-apply");if(t)p(t.closest(".rbe-output-signature"));else{var i=e.target.closest(".rbe-flow-signature-apply");i&&b(i.closest(".rbe-flow-signature-card"))}}),a.addEventListener("input",function(e){var t=e.target.closest(".has-error");t&&t.classList.remove("has-error")}),a.addEventListener("keydown",function(e){if("Enter"===e.key){var t=e.target.closest(".rbe-signature-input");if(t)return e.preventDefault(),void p(t.closest(".rbe-output-signature"));var i=e.target.closest(".rbe-flow-signature-input");i&&(e.preventDefault(),b(i.closest(".rbe-flow-signature-card")))}}),Array.prototype.slice.call(a.querySelectorAll(".rbe-signature-watermark,.rbe-flow-signature-watermark")).forEach(function(t){t.src=e}),function(){var e={};Array.prototype.slice.call(a.querySelectorAll(".rbe-output-signature")).forEach(function(t){var i=t.dataset.signatureId||"signature";e[i]=(e[i]||0)+1});var t={};Array.prototype.slice.call(a.querySelectorAll(".rbe-output-signature")).forEach(function(r){var n=r.dataset.signatureId||"signature";t[n]=(t[n]||0)+1;var a=e[n]>1?n+":"+t[n]:n;r.dataset.signatureStorageKey=a;var o=s(i+a);o&&o.name&&u(r,o)}),Array.prototype.slice.call(a.querySelectorAll(".rbe-output-signature-flow")).forEach(function(e){Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).forEach(function(t){var i=s(r+(e.dataset.flowId||"")+":"+(t.dataset.stepId||""));i&&i.name&&i.signatureHash&&h(t,i)}),m(e)})}()}.toString()+")("+JSON.stringify(e)+","+JSON.stringify(t)+");<\/script>"},Ie.prototype.buildExportDocument=function(){var e=Ie.normalizePreviewData(this.savedExportData),t=Ie.toHTML(e,{fontAwesome:this.options.fontAwesome,select2:!1}),i=this.collectExportStyles(),r=this.buildExportPreviewRuntime();return["<!doctype html>",'<html lang="en">',"<head>",'<meta charset="utf-8">','<meta name="viewport" content="width=device-width, initial-scale=1">',"<title>BlockWriteAI Report</title>",i,"<style>"+["@page{margin:18mm 14mm 20mm;}","body{margin:0;background:#eef3f8;color:#172033;font:16px/1.58 Arial,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}",".blockwriteai-export-page{max-width:1040px;margin:24px auto;padding:28px;background:#fff;border:1px solid #d7dee8;border-radius:8px;}",".blockwriteai-export-page .rbe-output-latex{font-style:italic;}","@media print{html,body{background:#fff!important;}.blockwriteai-export-page{max-width:none;margin:0;padding:0;border:0;border-radius:0;}.blockwriteai-export-pages{gap:0;}.blockwriteai-export-sheet{margin:0;box-shadow:none;border:0;}.blockwriteai-export-sheet:last-child{break-after:auto;page-break-after:auto;}}"].join("")+"</style>","</head>","<body>",'<main class="blockwriteai-export-page blockwriteai-preview">'+t+"</main>",r,"</body>","</html>"].join("\n")},Ie.prototype.handleExport=function(e){if(!this.readOnly&&this.hasExplicitSave&&this.savedExportData){this.hideExportMenu();var t=Ie.normalizePreviewData(this.savedExportData);"json"!==e||this.downloadBlob(JSON.stringify(t,null,2),this.getExportFilename("json"),"application/json;charset=utf-8")}},Ie.prototype.handleExportHTML=function(){!this.readOnly&&this.hasExplicitSave&&this.savedExportData&&this.showExportHTMLPreview(this.buildExportDocument())},Ie.prototype.showExportHTMLPreview=function(e){var t=document.querySelector(".rbe-html-preview-modal");t&&t.remove();var i=v("iframe","rbe-html-preview-frame",{title:"BlockWriteAI HTML preview",sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads"}),r=v("div","rbe-html-preview-modal",{role:"dialog","aria-modal":"true","aria-label":"BlockWriteAI HTML preview",html:'<div class="rbe-html-preview-shell"><header class="rbe-html-preview-header"><strong>HTML Preview</strong><button type="button" class="rbe-html-preview-close" aria-label="Close preview">'+S("xmark","Close preview")+'</button></header><div class="rbe-html-preview-body"></div></div>'});r.querySelector(".rbe-html-preview-body").appendChild(i),r.addEventListener("click",function(e){(e.target===r||e.target.closest(".rbe-html-preview-close"))&&r.remove()}),document.body.appendChild(r),i.srcdoc=e},Ie.prototype.toggleHistoryPanel=function(){var e=this.topToolbar&&this.topToolbar.querySelector(".rbe-history-panel");e&&(e.hidden=!e.hidden,e.hidden||this.updateHistoryPanel())},Ie.prototype.updateHistoryPanel=function(){var e=this.topToolbar&&this.topToolbar.querySelector(".rbe-history-panel");if(e){var t=function(e){return'<button type="button" class="rbe-history-clear" '+(e?"disabled":"")+">"+S("trash-can","Clear history")+"<span>Clear history</span></button>"};this.actionHistory.length?e.innerHTML="<strong>History</strong>"+this.actionHistory.slice().reverse().map(function(e,t){var i=this.actionHistory.length-1-t,r=e.time instanceof Date?e.time.toLocaleString([],{dateStyle:"short",timeStyle:"short"}):"";return'<div class="rbe-history-row"><button type="button" class="rbe-history-restore" data-history-restore="'+i+'"><span><strong>'+w(e.blockName||"Document")+"</strong><em>"+w(e.actionName||"Edited")+"</em></span><small>"+w(r)+"<br>By "+w(e.userName||"Current user")+'</small></button><button type="button" class="rbe-history-delete" title="Delete history item" aria-label="Delete history item" data-history-delete="'+i+'">'+S("trash-can","Delete history item")+"</button></div>"},this).join("")+t(!1):e.innerHTML='<strong>History</strong><span class="rbe-history-empty">No changes yet</span>'+t(!0)}},Ie.prototype.restoreHistoryEntry=function(e){var t=this.actionHistory[e];t&&t.snapshot&&(this.render({blocks:JSON.parse(t.snapshot)},{silent:!0}),this.history=this.history.slice(0,this.historyIndex+1),this.history.push(t.snapshot),this.history.length>80&&this.history.shift(),this.historyIndex=this.history.length-1,this.updateHistoryButtons(),this.emitChange())},Ie.prototype.deleteHistoryEntry=function(e){if(!(e<0||e>=this.actionHistory.length)){var t=this.actionHistory[e];if(this.actionHistory.splice(e,1),t&&t.snapshot&&this.history.length>1){var i=this.history.indexOf(t.snapshot);i>=0&&(this.history.splice(i,1),this.historyIndex>=i&&(this.historyIndex-=1))}var r=JSON.stringify(this.getData().blocks);(!this.history.length||this.history.indexOf(r)<0)&&(this.history.push(r),this.historyIndex=this.history.length-1),this.historyIndex=Math.max(0,Math.min(this.historyIndex,this.history.length-1)),this.updateHistoryButtons()}},Ie.prototype.clearHistory=function(){var e=JSON.stringify(this.getData().blocks);this.history=[e],this.historyIndex=0,this.actionHistory=[],this.pendingHistoryAction=null,this.updateHistoryButtons()},Ie.prototype.exportHTML=function(){var e=this,t=function(e){return"left"===(e=le(e))?"":' style="text-align:'+e+'"'},i=function(e){var t=P((e=e||{}).source||e.embed),i=t.embed||e.embed;return i?'<figure class="rbe-output-embed-figure"><iframe class="rbe-output-embed" src="'+w(i)+'" title="'+w(t.service||e.service||"Embedded content")+' embed" frameborder="0" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>'+(e.caption?"<figcaption>"+w(e.caption)+"</figcaption>":"")+"</figure>":'<p class="rbe-output-embed-link"><a href="'+w(e.source||"")+'">'+w(e.source||"")+"</a></p>"},r=function(a){var o=a&&a.data||{};if(!a)return"";if("paragraph"===a.type)return"<p"+t(o.alignment)+">"+Ne(o.text||"")+"</p>";if("heading"===a.type)return"<h"+(o.level||2)+t(o.alignment)+">"+Ne(o.text||"")+"</h"+(o.level||2)+">";if("quote"===a.type)return'<blockquote class="rbe-output-quote"'+t(o.alignment)+">"+Ne(o.text||"")+(o.caption?"<footer>"+w(o.caption)+"</footer>":"")+"</blockquote>";if("list"===a.type)return Oe(o.items||[],o.style,o.alignment);if("checklist"===a.type)return qe(o.items||[]);if("code"===a.type)return Ce(o);if("raw"===a.type)return x(o.html||"");if("image"===a.type)return'<figure class="rbe-output-image-figure"><div class="rbe-image-gallery">'+V(o).map(function(e){return ie(e)}).join("")+"</div></figure>";if("attaches"===a.type)return'<div class="rbe-attachment-grid">'+re(o).map(function(e){return'<a class="rbe-attachment-card" data-kind="'+w(Y(e.type,e.name))+'" href="'+w(e.url)+'" target="_blank" rel="noopener noreferrer"><span class="rbe-attachment-card-icon">'+S(Q(e.type,e.name),"Attachment")+'</span><strong class="rbe-attachment-card-type">'+w($(e.type,e.name))+'</strong><span class="rbe-attachment-card-name">'+w(e.name||"Attachment")+"</span></a>"}).join("")+"</div>";if("table"===a.type){var l="center"===o.align||"right"===o.align?o.align:"left",s=Math.min(100,Math.max(40,Number(o.width||100))),d="center"===l?"margin-left:auto;margin-right:auto;":"right"===l?"margin-left:auto;margin-right:0;":"margin-left:0;margin-right:auto;",c=ce(o);return'<div class="rbe-output-table-wrap"><table style="width:'+s+"%;"+d+'border-collapse:collapse;table-layout:fixed;">'+(o.rows||[]).map(function(e,t){return"<tr>"+e.map(function(e){var i=o.withHeadings&&0===t?"th":"td",r=He(e),n="border:"+c+";padding:8px;vertical-align:top;text-align:"+r+";";return"th"===i&&(n+="background:#eef5ff;font-weight:720;"),"<"+i+' style="'+n+'">'+Ne(Be(e))+"</"+i+">"}).join("")+"</tr>"}).join("")+"</table></div>"}if("callout"===a.type){var u=ue(o.tone);return'<aside class="rbe-output-callout rbe-output-callout-'+w(u)+'" style="'+pe(u,o.alignment)+'">'+Ne(o.text||"")+"</aside>"}return"embed"===a.type?i(o):n[a.type]&&"function"==typeof n[a.type].toHTML?n[a.type].toHTML.call(e,o,Object.assign(Pe(),{renderBlock:r})):""};return this.getData().blocks.map(function(e){var a=e.data||{};if("paragraph"===e.type)return"<p"+t(a.alignment)+">"+Ne(a.text||"")+"</p>";if("heading"===e.type)return"<h"+(a.level||2)+t(a.alignment)+">"+Ne(a.text||"")+"</h"+(a.level||2)+">";if("quote"===e.type)return'<blockquote class="rbe-output-quote"'+t(a.alignment)+">"+Ne(a.text||"")+(a.caption?"<footer>"+w(a.caption)+"</footer>":"")+"</blockquote>";if("list"===e.type)return Oe(a.items||[],a.style,a.alignment);if("checklist"===e.type)return qe(a.items||[]);if("code"===e.type)return Ce(a);if("image"===e.type)return'<figure class="rbe-output-image-figure"><div class="rbe-image-gallery">'+V(a).map(function(e){return ie(e)}).join("")+"</div></figure>";if("table"===e.type){var o="center"===a.align||"right"===a.align?a.align:"left",l=Math.min(100,Math.max(40,Number(a.width||100))),s="center"===o?"margin-left:auto;margin-right:auto;":"right"===o?"margin-left:auto;margin-right:0;":"margin-left:0;margin-right:auto;",d=ce(a);return'<div class="rbe-output-table-wrap"><table style="width:'+l+"%;"+s+'border-collapse:collapse;table-layout:fixed;">'+(a.rows||[]).map(function(e,t){return"<tr>"+e.map(function(e){var i=a.withHeadings&&0===t?"th":"td",r=He(e),n="border:"+d+";padding:8px;vertical-align:top;text-align:"+r+";";return"th"===i&&(n+="background:#eef5ff;font-weight:720;"),"<"+i+' style="'+n+'">'+Ne(Be(e))+"</"+i+">"}).join("")+"</tr>"}).join("")+"</table></div>"}if("embed"===e.type)return i(a);if("callout"===e.type){var c=ue(a.tone);return'<aside class="rbe-output-callout rbe-output-callout-'+w(c)+'" style="'+pe(c,a.alignment)+'">'+Ne(a.text||"")+"</aside>"}if("delimiter"===e.type)return'<hr class="rbe-output-delimiter rbe-output-delimiter-'+w("dashed"===a.style||"dotted"===a.style||"thick"===a.style?a.style:"line")+'">';if("button"===e.type){var u=le(a.alignment),p=T(a.url||"")?a.url:"#",h=a.background||"#2563eb",m=a.color||"#ffffff";return'<p class="rbe-output-button-wrap" style="text-align:'+u+'"><a class="rbe-button-link" style="background-color:'+w(h)+";color:"+w(m)+'" href="'+w(p)+'" target="_blank" rel="noopener noreferrer">'+w(a.text||"Button")+"</a></p>"}if("toggle"===e.type){var b=Array.isArray(a.blocks)&&a.blocks.length?a.blocks.map(r).join("\n"):Ne(a.text||"");return'<details class="rbe-output-toggle"'+(!1===a.open?"":" open")+"><summary>"+w(a.title||"Details")+"</summary><div>"+b+"</div></details>"}return"linkPreview"===e.type?'<a class="rbe-output-link-preview" href="'+w(T(a.url||"")?a.url:"#")+'" target="_blank" rel="noopener noreferrer"><span class="rbe-link-preview-icon">'+S("arrow-up-right-from-square","Open link")+"</span><strong>"+w(a.title||a.url||"Link preview")+"</strong><span>"+w(a.description||"")+"</span></a>":"raw"===e.type?x(a.html||""):"attaches"===e.type?'<div class="rbe-attachment-grid">'+re(a).map(function(e){return'<a class="rbe-attachment-card" data-kind="'+w(Y(e.type,e.name))+'" href="'+w(e.url)+'" target="_blank" rel="noopener noreferrer"><span class="rbe-attachment-card-icon">'+S(Q(e.type,e.name),"Attachment")+'</span><strong class="rbe-attachment-card-type">'+w($(e.type,e.name))+'</strong><span class="rbe-attachment-card-name">'+w(e.name||"Attachment")+"</span></a>"}).join("")+"</div>":n[e.type]&&"function"==typeof n[e.type].toHTML?n[e.type].toHTML.call(this,a,Object.assign(Pe(),{renderBlock:r})):""},this).join("\n")},Ie.normalizePreviewData=function(e){return e?e.data&&Array.isArray(e.data.blocks)?e.data:Array.isArray(e.blocks)?e:{time:Date.now(),blocks:[]}:{time:Date.now(),blocks:[]}},Ie.toHTML=function(e,t){if("undefined"==typeof document||!document.body)return"";var i=v("div","rbe-preview-renderer",{hidden:!0});document.body.appendChild(i);var r=new Ie(Object.assign({holder:i,data:Ie.normalizePreviewData(e),readOnly:!0,minHeight:"0px",autosave:null,saveButton:!1,exportButton:!1,historyPanel:!1,shell:!1,select2:!1},t||{})),n=r.exportHTML();return r.destroy(),i.remove(),n},Ie.initPreviewPlugins=function(e){var t="undefined"!=typeof window?window:null;return t?(t.BlockWriteAISignature&&"function"==typeof t.BlockWriteAISignature.init&&t.BlockWriteAISignature.init(e||document),t.BlockWriteAISignatureFlow&&"function"==typeof t.BlockWriteAISignatureFlow.init&&t.BlockWriteAISignatureFlow.init(e||document),e):e},Ie.primeSignatureData=function(e){if(!e||"undefined"==typeof localStorage)return e;var t=e.items||e.signatures||{};Array.isArray(t)?t.forEach(function(e){var t=e&&(e.storageKey||e.signatureId||e.id);t&&localStorage.setItem("blockwriteai-signature:"+t,JSON.stringify(e))}):Object.keys(t).forEach(function(e){t[e]&&localStorage.setItem("blockwriteai-signature:"+e,JSON.stringify(t[e]))});var i=e.flows||{};return Object.keys(i).forEach(function(e){var t=i[e]&&(i[e].steps||i[e])||{};Object.keys(t).forEach(function(i){t[i]&&localStorage.setItem("blockwriteai-signature-flow:"+e+":"+i,JSON.stringify(t[i]))})}),e},Ie.renderPreview=function(e,t,i){var r="string"==typeof e?document.querySelector(e):e;if(!r)return null;var n=Ie.normalizePreviewData(t);return Ie.primeSignatureData(n&&n.signatures),r.innerHTML=Ie.toHTML(n,i),r.dataset.blockwriteaiPreviewMounted="true",Ie.initPreviewPlugins(r),r},Ie.mountPreviews=function(e){var t=(e=e||{}).selector||".blockwriteai-preview, [data-blockwriteai-preview]",i=Array.prototype.slice.call(document.querySelectorAll(t));return Promise.all(i.map(function(t){if(!e.force&&"true"===t.dataset.blockwriteaiPreviewMounted)return Promise.resolve(t);var i=t.dataset.blockwriteaiJson||"",r=t.querySelector('script[type="application/json"]'),n=t.dataset.source||t.dataset.blockwriteaiSource||"",a=function(i){return Ie.renderPreview(t,i,e.editor||{}),t};if(i)try{return Promise.resolve(a(JSON.parse(i)))}catch(e){return t.innerHTML="<p>Invalid BlockWriteAI preview JSON.</p>",Promise.resolve(t)}if(r&&r.textContent.trim())try{return Promise.resolve(a(JSON.parse(r.textContent)))}catch(e){return t.innerHTML="<p>Invalid BlockWriteAI preview JSON.</p>",Promise.resolve(t)}return n?fetch(n,{headers:{Accept:"application/json"},cache:"no-store"}).then(function(e){if(!e.ok)throw new Error("Unable to load BlockWriteAI preview JSON");return e.json()}).then(a).catch(function(e){return t.innerHTML="<p>"+w(e.message||"Unable to load BlockWriteAI preview.")+"</p>",t}):e.data?Promise.resolve(a(e.data)):window.BlockWriteAIPreviewData||window.BlockWriteAIPreviewData?Promise.resolve(a(window.BlockWriteAIPreviewData)):(t.innerHTML="<p>No preview content available.</p>",t.dataset.blockwriteaiPreviewMounted="true",Promise.resolve(t))}))},Ie.prototype.exportMarkdown=function(){return this.getData().blocks.map(function(e){var t=e.data||{},i=function(e){var t=document.createElement("div");return t.innerHTML=A(e||""),t.textContent||""};if("paragraph"===e.type)return i(t.text);if("heading"===e.type)return Array(Number(t.level||2)+1).join("#")+" "+i(t.text);if("quote"===e.type)return"> "+i(t.text)+(t.caption?"\n> -- "+t.caption:"");if("list"===e.type){var r=[0,0,0,0,0];return(t.items||[]).map(Le).filter(function(e){return!Me(e)}).map(function(e){var n=Te(e);r[n]+=1;for(var a=n+1;a<r.length;a+=1)r[a]=0;return Array(n+1).join(" ")+("ordered"===t.style?r[n]+". ":"- ")+i(e.text)}).join("\n")}return"checklist"===e.type?(t.items||[]).map(Ae).filter(function(e){return!Me(e)}).map(function(e){var t=Te(e);return Array(t+1).join(" ")+"- ["+(e.checked?"x":" ")+"] "+i(e.text)}).join("\n"):"code"===e.type?"```"+(t.language||"")+"\n"+(t.code||"")+"\n```":"image"===e.type?V(t).map(function(e){return"!["+(e.alt||e.caption||"")+"]("+e.url+")"}).join("\n"):"delimiter"===e.type?"---":"embed"===e.type?t.source||t.embed||"":"callout"===e.type?"> "+i(t.text):"button"===e.type?"["+(t.text||"Button")+"]("+(t.url||"#")+")":"toggle"===e.type?"<details>\n<summary>"+(t.title||"Details")+"</summary>\n\n"+i(t.text)+"\n</details>":"linkPreview"===e.type?"["+(t.title||t.url||"Link preview")+"]("+(t.url||"#")+")"+(t.description?"\n"+t.description:""):"raw"===e.type?t.html||"":"attaches"===e.type?re(t).map(function(e){return"["+(e.name||"Attachment")+"]("+e.url+")"}).join("\n"):n[e.type]&&"function"==typeof n[e.type].toMarkdown?n[e.type].toMarkdown.call(this,t,Object.assign(Pe(),{text:i})):""},this).join("\n\n")},Ie.prototype.importHTML=function(e){var t=document.createElement("template");t.innerHTML=e;var i=[];Array.prototype.slice.call(t.content.children).forEach(function(e){var t=e.tagName.toLowerCase();/h[1-4]/.test(t)?i.push({type:"heading",data:{level:Number(t.slice(1)),text:A(e.innerHTML)}}):"blockquote"===t?i.push({type:"quote",data:{text:A(e.innerHTML),caption:""}}):"ul"===t||"ol"===t?i.push({type:"list",data:{style:"ol"===t?"ordered":"unordered",items:Array.prototype.slice.call(e.children).map(function(e){return A(e.innerHTML)})}}):"figure"===t&&e.querySelector("img")?i.push({type:"image",data:{url:e.querySelector("img").src,caption:(e.querySelector("figcaption")||{}).textContent||""}}):"pre"===t?i.push({type:"code",data:{code:e.textContent||"",language:""}}):"hr"===t?i.push({type:"delimiter",data:{}}):i.push({type:"paragraph",data:{text:A(e.innerHTML||e.textContent)}})}),this.render({blocks:i})},Ie});
1
+ !function(e,t){if("object"==typeof module&&module.exports)module.exports=t();else{var i=t();e.BlockWriteAI=i,e.RichBlockEditor=i}}("undefined"!=typeof window?window:this,function(){"use strict";var e="1.0.20",t={premiumPlugins:"https://blockwriteai.in/api/premium_plugins.php",licenseVerify:"https://blockwriteai.in/api/license_verify.php",aiUsage:"https://blockwriteai.in/api/ai_usage.php",aiGenerate:"https://blockwriteai.in/api/ai_generate.php",premiumUsage:"https://blockwriteai.in/api/premium_usage.php",premiumEvent:"https://blockwriteai.in/api/premium_event.php",signatureEvent:"https://blockwriteai.in/api/signature_event.php"},i=["paragraph","heading","quote","list","checklist","code","image","table","embed","callout","delimiter","button","toggle","linkPreview","raw","attaches","drawing","mermaid","signature","signatureFlow"],r={paragraph:{label:"Text",hint:"Plain text block",icon:"font"},heading:{label:"Heading",hint:"Section heading",icon:"heading"},quote:{label:"Quote",hint:"Quote with caption",icon:"quote-left"},list:{label:"List",hint:"Ordered or unordered list",icon:"list-ul"},checklist:{label:"Checklist",hint:"Tasks with checkboxes",icon:"square-check"},code:{label:"Code",hint:"Code block",icon:"code"},image:{label:"Image",hint:"Upload or paste an image",icon:"image"},table:{label:"Table",hint:"Editable table",icon:"table"},embed:{label:"Embed",hint:"YouTube, Vimeo, X, maps, or any iframe URL",icon:"play"},callout:{label:"Callout",hint:"Highlighted note",icon:"circle-info"},delimiter:{label:"Divider",hint:"Horizontal divider",icon:"minus"},button:{label:"Button",hint:"Linked CTA button",icon:"rectangle-ad"},toggle:{label:"Toggle",hint:"Collapsible content",icon:"chevron-down"},linkPreview:{label:"Link Preview",hint:"Rich link card",icon:"link"},raw:{label:"Raw HTML",hint:"Trusted HTML block",icon:"file-code"},attaches:{label:"Attachment",hint:"Upload or link a file",icon:"paperclip"},drawing:{label:"Drawing",hint:"Premium drawing canvas",icon:"pen-ruler"},mermaid:{label:"Mermaid",hint:"Premium drawing and diagram block",icon:"diagram-project"},signature:{label:"Signature",hint:"Premium signature field",icon:"signature"},signatureFlow:{label:"Signature Flow",hint:"Premium multi-signer workflow",icon:"file-signature"}},n={},a={},o={drawing:"Drawing",mermaid:"Mermaid",signature:"Signature",signature_flow:"Signature Flow",ai:"AI"},l={drawing:"drawing",mermaid:"mermaid",signature:"signature",signatureFlow:"signature_flow"},s={},d=[{command:"bold",label:"B",title:"Bold"},{command:"italic",label:"I",title:"Italic"},{command:"underline",label:"U",title:"Underline"},{command:"strikeThrough",label:"S",title:"Strike"},{command:"formatBlock",value:"blockquote",icon:"quote-left",label:"Q",title:"Quote selection"},{command:"createLink",icon:"link",label:"Link",title:"Add link"},{command:"justifyLeft",icon:"align-left",label:"L",title:"Align left"},{command:"justifyCenter",icon:"align-center",label:"C",title:"Align center"},{command:"justifyRight",icon:"align-right",label:"R",title:"Align right"},{command:"insertComment",icon:"comment-dots",label:"Comment",title:"Insert comment"},{command:"removeComment",icon:"comment-slash",label:"Remove comment",title:"Remove comment"},{command:"removeFormat",icon:"eraser",label:"Clear",title:"Clear formatting"}],c=[["plaintext","Plain text"],["javascript","JavaScript"],["typescript","TypeScript"],["html","HTML"],["css","CSS"],["json","JSON"],["php","PHP"],["python","Python"],["java","Java"],["csharp","C#"],["cpp","C++"],["sql","SQL"],["bash","Bash"],["markdown","Markdown"]],u=["video/*",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".csv",".txt",".rtf",".odt",".ods",".odp"].join(","),p=new Set(["pdf","doc","docx","xls","xlsx","ppt","pptx","csv","txt","rtf","odt","ods","odp"]),h=new Set(["a","abbr","b","blockquote","br","code","del","em","figcaption","h1","h2","h3","h4","i","img","li","mark","ol","p","pre","s","span","strike","strong","sub","sup","u","ul"]),m=new Set(["href","src"]),b=new Set(["title","alt","target","rel","style"]),f={a:new Set(["href","target","rel","title"]),img:new Set(["src","alt","title","width","height"]),code:new Set(["data-language"]),span:new Set(["style","class","data-rbe-comment","data-rbe-comment-id"]),mark:new Set(["style"])},g=new Set(["color","background-color","font-family","font-size","font-weight","font-style","text-decoration","text-decoration-line","text-align"]);function y(e){return(e||"block")+"-"+Math.random().toString(36).slice(2,9)+Date.now().toString(36)}function v(e,t,i){var r=document.createElement(e);return t&&(r.className=t),i&&Object.keys(i).forEach(function(e){!1!==i[e]&&null!==i[e]&&void 0!==i[e]&&("text"===e?r.textContent=i[e]:"html"===e?r.innerHTML=i[e]:"dataset"===e?Object.keys(i[e]).forEach(function(t){r.dataset[t]=i[e][t]}):e in r?r[e]=i[e]:r.setAttribute(e,i[e]))}),r}function w(e){return String(null==e?"":e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function k(e,t){if(e){var i=e.querySelector(".rbe-raw-frame");i||(e.innerHTML="",(i=v("iframe","rbe-raw-frame",{title:"Raw HTML preview",loading:"lazy",sandbox:"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin"})).onload=function(){try{var e=i.contentDocument||i.contentWindow.document,t=e.documentElement,r=e.body,n=Math.max(t?t.scrollHeight:0,r?r.scrollHeight:0,220);i.style.height=Math.min(n+4,900)+"px"}catch(e){i.style.height="360px"}},e.appendChild(i)),i.srcdoc=function(e){var t=String(e||"");return t.trim()?/(<!doctype|<html[\s>]|<body[\s>])/i.test(t)?t:["<!doctype html>",'<html><head><meta charset="utf-8"><base target="_blank">',"<style>","body{margin:0;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#172033;background:#fff;}","img,video,iframe{max-width:100%;height:auto;}table{border-collapse:collapse;max-width:100%;}td,th{border:1px solid #d7dee8;padding:8px;}","</style></head><body>",t,"</body></html>"].join(""):""}(t)}}function x(e){if(!(e=String(e||"")).trim())return"";if(/(<!doctype|<html[\s>]|<body[\s>])/i.test(e)&&"undefined"!=typeof DOMParser)try{var t=(new DOMParser).parseFromString(e,"text/html");return'<div class="rbe-output-raw-html">'+(t.head?Array.prototype.slice.call(t.head.querySelectorAll("style,link[rel='stylesheet']")):[]).map(function(e){return e.outerHTML||""}).join("")+(t.body?t.body.innerHTML:"")+"</div>"}catch(t){return'<div class="rbe-output-raw-html">'+e+"</div>"}return'<div class="rbe-output-raw-html">'+e+"</div>"}function S(e,t){return'<i class="rbe-fa-icon fa-solid fa-'+w(e=String(e||"circle").trim())+'" aria-hidden="true"></i><span class="rbe-sr-only">'+w(t||e)+"</span>"}function C(e,t){"undefined"!=typeof document&&document.head&&(document.querySelector("link[data-rbe-lib='"+t+"'], link[href='"+e+"']")||document.head.appendChild(v("link","",{rel:"stylesheet",href:e,dataset:{rbeLib:t}})))}function E(e,t,i){if("undefined"!=typeof document&&document.head){var r=document.querySelector("script[data-rbe-lib='"+t+"'], script[src='"+e+"']");if(r)"true"===r.dataset.loaded?i():r.addEventListener("load",i,{once:!0});else{var n=v("script","",{src:e,dataset:{rbeLib:t}});n.addEventListener("load",function(){n.dataset.loaded="true",i()}),document.head.appendChild(n)}}}function T(e){if(!e)return!0;var t=String(e).trim().toLowerCase();return 0===t.indexOf("http://")||0===t.indexOf("https://")||0===t.indexOf("mailto:")||0===t.indexOf("tel:")||0===t.indexOf("data:image/")||0===t.indexOf("/")||0===t.indexOf("#")||0===t.indexOf("./")||0===t.indexOf("../")}function L(e){var t=String(e||"").trim();return t&&(/^#[0-9a-f]{3,8}$/i.test(t)||/^rgba?\(\s*(\d{1,3}\s*,\s*){2}\d{1,3}(\s*,\s*(0|1|0?\.\d+))?\s*\)$/i.test(t)||/^[a-z]+$/i.test(t))?t:""}function A(e){var t=document.createElement("template");return t.innerHTML=String(e||""),function e(t){Array.prototype.slice.call(t.childNodes).forEach(function(i){if(i.nodeType!==Node.TEXT_NODE)if(i.nodeType===Node.ELEMENT_NODE){var r=i.tagName.toLowerCase();if("font"!==r){if(!h.has(r)){for(var n=document.createDocumentFragment();i.firstChild;)n.appendChild(i.firstChild);return i.replaceWith(n),void e(t)}Array.prototype.slice.call(i.attributes).forEach(function(e){var t,n=e.name.toLowerCase(),a=f[r]&&f[r].has(n);if(b.has(n)||a)if(!m.has(n)||T(e.value)){if("style"===n){var o=(t=e.value,String(t||"").split(";").map(function(e){var t=e.split(":");if(t.length<2)return"";var i=t.shift().trim().toLowerCase(),r=t.join(":").trim();return g.has(i)?/url\s*\(|expression\s*\(/i.test(r)?"":i+": "+r:""}).filter(Boolean).join("; "));o?i.setAttribute("style",o):i.removeAttribute("style")}}else i.removeAttribute(e.name);else i.removeAttribute(e.name)}),"a"===r&&(i.setAttribute("rel","noopener noreferrer"),i.getAttribute("target")||i.setAttribute("target","_blank")),e(i)}else{var a=L(i.getAttribute("color"));if(a){var o=document.createElement("span");for(o.style.color=a;i.firstChild;)o.appendChild(i.firstChild);i.replaceWith(o),e(o)}else{for(var l=document.createDocumentFragment();i.firstChild;)l.appendChild(i.firstChild);i.replaceWith(l),e(t)}}}else i.remove()})}(t.content),t.innerHTML}function M(e){return String(e||"").split(/\n{2,}/).map(function(e){return e.trim()}).filter(Boolean).map(function(e){return{id:y("block"),type:"paragraph",data:{text:w(e).replace(/\n/g,"<br>")}}})}function O(e,t){var i=null;return function(){var r=arguments,n=this;clearTimeout(i),i=setTimeout(function(){e.apply(n,r)},t)}}function q(e){return e?(e.nodeType===Node.TEXT_NODE&&(e=e.parentElement),e&&e.closest?e.closest(".rbe-block"):null):null}function N(){return"undefined"!=typeof window&&window.location&&window.location.origin&&/^https?:\/\//i.test(window.location.origin)?window.location.origin:""}function P(e){var t,i,r,n=String(e||"").trim(),a=function(e){var t=String(e||"").trim(),i=t.match(/<iframe[^>]+src=["']([^"']+)["']/i);i&&(t=i[1]);try{var r=new URL(t,N()||void 0),n=r.hostname.replace(/^www\./,"").toLowerCase(),a=r.pathname.split("/").filter(Boolean);if("youtu.be"===n)return a[0]||"";if("youtube.com"===n||n.endsWith(".youtube.com")){if("/watch"===r.pathname)return r.searchParams.get("v")||"";if(("embed"===a[0]||"shorts"===a[0])&&a[1])return a[1]}if(("youtube-nocookie.com"===n||n.endsWith(".youtube-nocookie.com"))&&"embed"===a[0])return a[1]||""}catch(e){}var o=t.match(/(?:youtube(?:-nocookie)?\.com\/(?:watch\?[^#\s]*v=|embed\/|shorts\/)|youtu\.be\/)([A-Za-z0-9_-]{6,})/);return o?o[1]:""}(n);if(a)return{service:"youtube",source:n,embed:(t=a,i="rel=0&modestbranding=1&playsinline=1",r=N(),r&&(i+="&origin="+encodeURIComponent(r)),"https://www.youtube.com/embed/"+t+"?"+i)};var o=function(e){var t=String(e).match(/vimeo\.com\/(?:video\/)?([0-9]+)/);return t?t[1]:""}(n);return o?{service:"vimeo",source:n,embed:"https://player.vimeo.com/video/"+o}:/google\.[^/]+\/maps|goo\.gl\/maps|maps\.app\.goo\.gl/.test(n)?{service:"map",source:n,embed:n}:{service:"link",source:n,embed:n}}function B(e){if(!e||"object"!=typeof e)return e||null;try{return JSON.parse(JSON.stringify(e))}catch(t){return e}}function H(e){var t={};return Object.keys(o).forEach(function(i){t[i]=!!e}),t}function I(e){return"signatureFlow"===(e=String(e||"").trim())?"signature_flow":e}function _(e){return e=I(e),o[e]||e||"Premium feature"}function D(e){"string"==typeof e&&(e=e.split(",")),Array.isArray(e)||(e=Object.keys(o));var t={};return e.map(I).filter(function(e){return!(!e||t[e])&&(t[e]=!0,!0)})}function R(e){var t=(e=e||{}).upgradeUrl||e.upgrade_url||e.billingUrl||e.billing_url||"";if(t)return String(t);var i=String(e.verifyEndpoint||e.verify||e.endpoint||e.usageEndpoint||e.pluginEndpoint||"").trim();return i?i.replace(/\/api\/[^\/?#]+(?:[?#].*)?$/i,"/dashboard.php#billing"):""}function j(){return(new Date).toISOString().slice(0,10)}function F(e){e=e||{};var i=String(e.pluginEndpoint||e.pluginsEndpoint||e.bundleEndpoint||e.endpoint||t.premiumPlugins).trim(),r=String(e.licenseKey||e.license_key||e.license||"").trim(),n=String(e.sessionToken||e.session_token||"").trim(),a=D(e.features||e.pluginFeatures);if(!i)return Promise.reject(new Error("Missing premium plugin endpoint."));if(!r)return Promise.reject(new Error("Missing premium license key."));if("function"!=typeof fetch)return Promise.reject(new Error("This browser does not support fetch()."));if("undefined"==typeof document)return Promise.reject(new Error("Premium plugins can only be loaded in a browser."));var o=i+"|"+r.slice(0,18)+"|"+a.slice().sort().join(",");return s[o]||(s[o]=fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/javascript, application/json;q=0.9, */*;q=0.8"},body:JSON.stringify({license_key:r,session_token:n,features:a,domain:"undefined"!=typeof window&&window.location?window.location.origin:""})}).then(function(e){return e.text().then(function(t){if(!e.ok)throw new Error(function(e,t){try{var i=JSON.parse(e||"{}");return i.error||i.message||t}catch(i){return e||t}}(t,"Premium plugin license verification failed."));return{text:t,response:e}})}).then(function(e){var t=document.createElement("script");return t.type="text/javascript",t.setAttribute("data-blockwriteai-premium-bundle","true"),t.text=e.text+"\n//# sourceURL=blockwriteai-premium-plugins.js",document.head.appendChild(t),{ok:!0,features:a}}).catch(function(e){throw delete s[o],e})),s[o]}function W(e){var i=(e=e||{}).premium||e.Premium||{};!1===i&&(i={disabled:!0});var r=e.licenseKey||e.license_key||e.license||i.licenseKey||i.license_key||i.key||"";return{disabled:!!i.disabled,licenseKey:String(r||"").trim(),sessionToken:String(i.sessionToken||i.session_token||e.sessionToken||e.session_token||"").trim(),verifyEndpoint:String(i.verifyEndpoint||i.verify||i.endpoint||e.licenseVerifyEndpoint||t.licenseVerify).trim(),usageEndpoint:String(i.usageEndpoint||i.usage||e.aiUsageEndpoint||t.aiUsage).trim(),featureUsageEndpoint:String(i.featureUsageEndpoint||i.premiumUsageEndpoint||e.featureUsageEndpoint||e.premiumUsageEndpoint||t.premiumUsage).trim(),usageDetailEndpoint:String(i.usageDetailEndpoint||i.usageDetail||e.aiUsageDetailEndpoint||"").trim(),pluginEndpoint:String(i.pluginEndpoint||i.pluginsEndpoint||i.bundleEndpoint||e.premiumPluginEndpoint||t.premiumPlugins).trim(),eventEndpoint:String(i.eventEndpoint||i.premiumEventEndpoint||e.eventEndpoint||e.premiumEventEndpoint||t.premiumEvent).trim(),signatureEventEndpoint:String(i.signatureEventEndpoint||i.signatureEvent||e.signatureEventEndpoint||t.signatureEvent).trim(),upgradeUrl:R(Object.assign({},e,i)),pluginFeatures:D(i.features||i.pluginFeatures||e.premiumPluginFeatures),autoLoadPlugins:!!(i.autoLoadPlugins||i.loadPlugins||e.autoLoadPremiumPlugins)}}function U(e){return e.disabled?{status:"disabled",valid:!0,message:"Premium checks are disabled.",features:H(!0),limits:{},usage:{}}:{status:e.licenseKey&&e.verifyEndpoint?"pending":"missing",valid:!1,message:e.licenseKey?"License verification is pending.":"License key is required for premium features.",features:H(!1),limits:{},usage:{}}}function z(e){var t={};return e&&"object"==typeof e?(Object.keys(e).forEach(function(i){"time"!==i&&"version"!==i&&"blocks"!==i&&(t[i]=B(e[i]))}),t):t}function J(e){var t=(e&&e.name?e.name:"").split(".");return t.length>1?t.pop().toLowerCase():""}function X(e){return!(!e||!e.type||0!==e.type.indexOf("image/"))}function K(e){return!(!e||X(e))&&(!(!e.type||0!==e.type.indexOf("video/"))||(!!p.has(J(e))||/^(application\/pdf|application\/msword|application\/vnd\.ms-|application\/vnd\.openxmlformats|text\/plain|text\/csv|application\/rtf)/i.test(e.type||"")))}function Q(e,t){var i=J({name:t||""});return e&&0===e.indexOf("video/")?"file-video":"pdf"===i?"file-pdf":"xls"===i||"xlsx"===i||"csv"===i||"ods"===i?"file-excel":"ppt"===i||"pptx"===i||"odp"===i?"file-powerpoint":"doc"===i||"docx"===i||"odt"===i?"file-word":"file-lines"}function $(e,t){var i=J({name:t||""});return e&&0===e.indexOf("video/")?"VIDEO":i?i.toUpperCase():"FILE"}function Y(e,t){var i=J({name:t||""});return e&&0===e.indexOf("video/")?"video":"pdf"===i?"pdf":"xls"===i||"xlsx"===i||"csv"===i||"ods"===i?"excel":"ppt"===i||"pptx"===i||"odp"===i?"powerpoint":"doc"===i||"docx"===i||"odt"===i?"word":"txt"===i||"rtf"===i?"text":"file"}function V(e){e=e||{};var t=Array.isArray(e.items)?e.items:Array.isArray(e.images)?e.images:null;return t||!e.url&&!e.src||(t=[e]),(t||[]).map(function(t){return{url:(t=t||{}).url||t.src||t.base64||"",base64:t.base64||e.base64||"",upload:B(t.upload||e.upload||null),alt:t.alt||t.caption||"",caption:t.caption||"",alignment:le(t.alignment||e.alignment),width:Number(t.width||e.width||100),displayWidth:Number(t.displayWidth||e.displayWidth||0),minWidth:Number(t.minWidth||e.minWidth||0),naturalWidth:Number(t.naturalWidth||e.naturalWidth||0),naturalHeight:Number(t.naturalHeight||e.naturalHeight||0),rotation:Number(t.rotation||e.rotation||0),crop:t.crop||e.crop||"free",cropRatio:Number(t.cropRatio||e.cropRatio||0),cropX:Number(t.cropX||e.cropX||50),cropY:Number(t.cropY||e.cropY||50),cropZoom:Number(t.cropZoom||e.cropZoom||1)}}).filter(function(e){return!!e.url})}function Z(e,t,i,r){return e=Number(e),Number.isFinite(e)||(e=r),Math.min(i,Math.max(t,e))}function G(e){return Z(e&&e.cropRatio,.35,3.5,0)}function ee(e){return Z(e,0,100,50)}function te(e){return Z(e,1,3,1)}function ie(e){var t=Math.min(100,Math.max(50,Number(e.width||100))),i=Number(e.rotation||0),r="custom"===e.crop?"custom":"free",n=G(e),a="custom"===r&&n?"aspect-ratio:"+n.toFixed(3)+" / 1;":"",o=Number(e.displayWidth||0),l=Number(e.minWidth||0),s=Number(e.naturalWidth||0);o>0&&l>0&&(o=Math.max(o,l)),o>0&&s>0&&(o=Math.min(o,Math.max(l||0,s)));var d="width:min(100%,"+(o>0?Math.round(o):Math.round(t/100*180))+"px);"+a,c=ee(e.cropX),u=ee(e.cropY),p="max-width:100%;"+("free"===r?"max-height:360px;":"max-height:none;")+"width:100%;"+("free"===r?"height:auto;":"height:100%;")+"object-fit:"+("free"===r?"contain":"cover")+";object-position:"+c+"% "+u+"%;transform-origin:"+c+"% "+u+"%;--rbe-image-zoom:"+te(e.cropZoom)+";transform:rotate("+i+"deg) scale(var(--rbe-image-zoom,1));";return'<div class="rbe-image-stage" style="'+w(d)+'"><img class="rbe-output-image rbe-image-preview" src="'+w(e.url)+'" alt="'+w(e.alt||e.caption||"")+'" loading="lazy" style="'+w(p)+'"></div>'}function re(e){e=e||{};var t=Array.isArray(e.items)?e.items:Array.isArray(e.attachments)?e.attachments:null;return t||!e.url&&!e.name||(t=[e]),(t||[]).map(function(t){return{name:(t=t||{}).name||t.url||"Attachment",url:t.url||t.base64||"",base64:t.base64||e.base64||"",upload:B(t.upload||e.upload||null),type:t.type||"",size:Number(t.size||0),alignment:le(t.alignment||e.alignment)}}).filter(function(e){return!!e.url})}function ne(e){if(e&&window.getSelection&&(e.focus(),e.isContentEditable)){var t=document.createRange();t.selectNodeContents(e),t.collapse(!1);var i=window.getSelection();i.removeAllRanges(),i.addRange(t)}}function ae(){return{time:Date.now(),version:e,blocks:[{id:y("block"),type:"paragraph",data:{text:"",alignment:"left"}}]}}function oe(e){var t=[];document.currentScript&&t.push(document.currentScript);var i=(t=t.concat(Array.prototype.slice.call(document.scripts))).find(function(e){return e.src&&/\/blockwriteai(?:\.min)?\.js(?:[?#].*)?$/i.test(e.src)});if(i&&i.src)try{return new URL(e,i.src).href}catch(e){}return""}function le(e){return"center"===e||"right"===e?e:"left"}function se(e){return"dashed"===e||"dotted"===e||"double"===e?e:"solid"}function de(e){return e=Number(e||1),Number.isFinite(e)||(e=1),Math.min(6,Math.max(1,Math.round(e)))}function ce(e){return de((e=e||{}).borderWidth)+"px "+se(e.borderStyle)+" #d7dee8"}function ue(e){return"success"===e||"warning"===e||"danger"===e?e:"info"}function pe(e,t){var i={info:["#2563eb","#f6faff"],success:["#07845f","#f2fbf7"],warning:["#b76b00","#fff9ef"],danger:["#cf2f2f","#fff5f5"]}[e=ue(e)];return"border-left:5px solid "+i[0]+";background:"+i[1]+";padding:12px 14px;border-radius:8px;margin:0 0 16px;color:#172033;text-align:"+le(t)+";"}function he(e){return e=String(e||"plaintext").toLowerCase(),c.some(function(t){return t[0]===e})?e:"plaintext"}function me(e){return Array(Math.max(0,e)+1).join(" ")}function be(e){return e.map(function(e){return e.replace(/\s+$/g,"")}).filter(function(e,t,i){return e.trim()||t>0&&t<i.length-1&&i[t-1].trim()&&i[t+1].trim()}).join("\n").trim()}function fe(e,t){if(e=String(e||"").trim(),t=he(t),!e)return"";if("json"===t)try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}return"html"===t?function(e){var t=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),i=String(e||"").replace(/>\s+</g,"><").match(/<!--[\s\S]*?-->|<!doctype[^>]*>|<\/?[\w:-]+(?:\s+[\w:-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*\/?>|[^<]+/gi);if(!i)return String(e||"").trim();var r=0,n=[];return i.forEach(function(e){var i=e.trim();if(i){var a=/^<\//.test(i),o=i.match(/^<\/?([\w:-]+)/),l=o?o[1].toLowerCase():"",s=/\/>$/.test(i)||/^<!/i.test(i)||t.has(l);a&&(r=Math.max(0,r-1)),/^</.test(i)?(n.push(me(r)+i),a||s||(r+=1)):i.split(/\s*\n+\s*/).forEach(function(e){e.trim()&&n.push(me(r)+e.trim())})}}),be(n)}(e):"css"===t?function(e){var t=String(e||"").trim(),i=[],r="",n=0,a="",o=!1;function l(e){var t=r.trim();t&&i.push(me(n+(e||0))+t),r=""}for(var s=0;s<t.length;s+=1){var d=t[s],c=t[s+1];o?(r+=d,"*"===d&&"/"===c&&(r+=c,s+=1,o=!1,l())):a?(r+=d,"\\"===d&&c?(r+=c,s+=1):d===a&&(a="")):"/"!==d||"*"!==c?'"'!==d&&"'"!==d?"{"!==d?"}"!==d?";"!==d?"\n"!==d&&"\r"!==d?r+=d:r.trim()&&l():(r+=";",l()):(l(),n=Math.max(0,n-1),i.push(me(n)+"}")):(r=r.trim()+" {",l(),n+=1):(a=d,r+=d):(r.trim()&&l(),r="/*",s+=1,o=!0)}return l(),be(i)}(e):"javascript"===t||"typescript"===t||"java"===t||"csharp"===t||"cpp"===t||"php"===t?function(e){var t=String(e||"").trim(),i=[],r="",n=0,a="",o=!1,l=!1;function s(e){var t=r.trim();t&&i.push(me(n+(e||0))+t),r=""}for(var d=0;d<t.length;d+=1){var c=t[d],u=t[d+1];o?"\n"===c||"\r"===c?(s(),o=!1):r+=c:l?(r+=c,"*"===c&&"/"===u&&(r+=u,d+=1,l=!1,s())):a?(r+=c,"\\"===c&&u?(r+=u,d+=1):(c===a&&"`"!==a||"`"===c&&"`"===a)&&(a="")):"/"!==c||"/"!==u?"/"!==c||"*"!==u?'"'!==c&&"'"!==c&&"`"!==c?"{"!==c?"}"!==c?";"!==c?"\n"!==c&&"\r"!==c?r+=c:r.trim()&&s():(r+=";",s()):(s(),n=Math.max(0,n-1),r="}",";"!==u&&","!==u||(r+=u,d+=1),s()):(r=r.trim()+" {",s(),n+=1):(a=c,r+=c):(r.trim()&&s(),r="/*",d+=1,l=!0):(r+="//",d+=1,o=!0)}return s(),be(i)}(e):e}function ge(e,t){return e=String(e||"").trim(),/^#[0-9a-f]{3}$/i.test(e)?("#"+e.slice(1).split("").map(function(e){return e+e}).join("")).toLowerCase():/^#[0-9a-f]{6}$/i.test(e)?e.toLowerCase():t}function ye(e){return e=ge(e,"#f3f4f6").slice(1),(.299*parseInt(e.slice(0,2),16)+.587*parseInt(e.slice(2,4),16)+.114*parseInt(e.slice(4,6),16))/255>.56?"#172033":"#f8fafc"}function ve(e){return ge(e&&e.headerColor,"#e5e7eb")}function we(e){return ge(e&&e.backgroundColor,"#f3f4f6")}function ke(e,t){if(e){var i=ve(t),r=we(t);e.style.setProperty("--rbe-code-header-bg",i),e.style.setProperty("--rbe-code-header-text",ye(i)),e.style.setProperty("--rbe-code-bg",r),e.style.setProperty("--rbe-code-text",ye(r))}}function xe(e,t){return'<span class="rbe-token '+e+'">'+w(t)+"</span>"}function Se(e,t){if(e=String(e||""),t=he(t),!e)return"";if("html"===t)return e.replace(/(<!--[\s\S]*?-->)|(<\/?[\w:-]+(?:\s+[\w:-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+))?)*\s*\/?>)|([^<]+)/g,function(e,t,i,r){return t?xe("rbe-token-comment",t):i?w(i).replace(/(&quot;.*?&quot;|&#39;.*?&#39;)/g,'<span class="rbe-token rbe-token-string">$1</span>').replace(/(&lt;\/?)([\w:-]+)/,'$1<span class="rbe-token rbe-token-keyword">$2</span>'):w(r||"")});if("css"===t)return e.replace(/(\/\*[\s\S]*?\*\/)|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')|(#[0-9a-f]{3,8}\b)|([a-z-]+)(?=\s*:)|([{}:;])|([^"'#{}:;\/]+)/gi,function(e,t,i,r,n,a,o){return t?xe("rbe-token-comment",t):i?xe("rbe-token-string",i):r?xe("rbe-token-number",r):n?xe("rbe-token-keyword",n):a?xe("rbe-token-punctuation",a):w(o||"")});var i=({javascript:"async await break case catch class const continue default delete do else export extends finally for function if import in instanceof let new return static switch this throw try typeof var void while yield true false null undefined",typescript:"abstract any as async await boolean break case catch class const continue default delete do else enum export extends false finally for function if implements import in interface instanceof let module namespace never new null number private protected public readonly return static string super switch this throw true try type typeof undefined var void while yield",php:"abstract and array as break callable case catch class clone const continue declare default do echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends final finally fn for foreach function global goto if implements include include_once instanceof insteadof interface isset list namespace new or print private protected public require require_once return static switch throw trait try unset use var while xor true false null",python:"and as assert async await break class continue def del elif else except False finally for from global if import in is lambda None nonlocal not or pass raise return True try while with yield",java:"abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while true false",csharp:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while",cpp:"alignas alignof and and_eq asm auto bitand bitor bool break case catch char class compl const constexpr const_cast continue decltype default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new noexcept not not_eq nullptr operator or or_eq private protected public register reinterpret_cast return short signed sizeof static static_assert static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq",sql:"select from where insert update delete create alter drop table view join inner left right full outer on as and or not null is in exists between like group by order having limit offset values set distinct union all case when then else end",bash:"if then else elif fi for while do done case esac function in select until true false export local readonly return shift"}[t]||"").split(/\s+/).filter(Boolean),r=i.length?new RegExp("\\b("+i.map(function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("|")+")\\b","g"):null,n=new RegExp("\\/\\*[\\s\\S]*?\\*\\/|"+("python"===t||"bash"===t?"#[^\\n]*":"\\/\\/[^\\n]*")+"|`(?:\\\\.|[^`\\\\])*`|\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\b\\d+(?:\\.\\d+)?\\b"+(r?"|\\b(?:"+i.join("|")+")\\b":""),"g"),a="",o=0;return e.replace(n,function(t,i){return a+=w(e.slice(o,i)),/^(\/\*|\/\/|#)/.test(t)?a+=xe("rbe-token-comment",t):/^["'`]/.test(t)?a+=xe("rbe-token-string",t):/^\d/.test(t)?a+=xe("rbe-token-number",t):a+=xe("rbe-token-keyword",t),o=i+t.length,t}),a+=w(e.slice(o))}function Ce(e){var t=he((e=e||{}).language);return'<div class="rbe-output-code" style="'+w(function(e){var t=ve(e),i=we(e);return"--rbe-code-header-bg:"+t+";--rbe-code-header-text:"+ye(t)+";--rbe-code-bg:"+i+";--rbe-code-text:"+ye(i)+";"}(e))+'"><div class="rbe-output-code-title">'+w(function(e){e=e||"plaintext";var t=c.find(function(t){return t[0]===e});return t?t[1]:e}(t))+'</div><pre><code class="language-'+w(t)+'">'+Se(e.code||"",t)+"</code></pre></div>"}function Ee(e){return"object"==typeof e&&e?e.text||"":e||""}function Te(e){var t="object"==typeof e&&e?Number(e.level||0):0;return Number.isFinite(t)||(t=0),Math.min(4,Math.max(0,Math.round(t)))}function Le(e){return{text:A(Ee(e)),level:Te(e),alignment:le("object"==typeof e&&e?e.alignment:"left"),style:"object"==typeof e&&e&&"ordered"===e.style?"ordered":"object"==typeof e&&e&&"unordered"===e.style?"unordered":""}}function Ae(e){return{text:A((e="object"==typeof e&&e?e:{text:e||""}).text||""),checked:!!e.checked,level:Te(e)}}function Me(e){return""===Ee(e).replace(/<br\s*\/?>/gi,"").trim()}function Oe(e,t,i){var r="ordered"===t?"ol":"ul",n=[],a=[n],o=0;return(e||[]).map(Le).filter(function(e){return!Me(e)}).forEach(function(e){for(e.level>o+1&&(e.level=o+1);a.length>e.level+1;)a.pop();var r={text:e.text,alignment:le(e.alignment||i),style:e.style||t,children:[]};a[a.length-1].push(r),a[e.level+1]=r.children,o=e.level}),"<"+r+' class="rbe-output-outline-list" style="text-align:'+le(i)+'">'+function e(r,n){var a=n.slice();return r.map(function(r){if("ordered"===(r.style||t)){var o=a.slice();o[o.length-1]+=1,a=o.slice();var l=o.join(".")+".";return'<li style="text-align:'+le(r.alignment||i)+'"><span class="rbe-output-list-marker">'+l+'</span><span class="rbe-output-list-text">'+Ne(r.text)+"</span>"+(r.children.length?'<ol class="rbe-output-outline-list">'+e(r.children,o.concat(0))+"</ol>":"")+"</li>"}return'<li style="text-align:'+le(r.alignment||i)+'"><span class="rbe-output-list-marker">&bull;</span><span class="rbe-output-list-text">'+Ne(r.text)+"</span>"+(r.children.length?'<ul class="rbe-output-outline-list">'+e(r.children,n.concat(0))+"</ul>":"")+"</li>"}).join("")}(n,[0])+"</"+r+">"}function qe(e){var t=[],i=[t],r=0;return(e||[]).map(Ae).filter(function(e){return!Me(e)}).forEach(function(e){for(e.level>r+1&&(e.level=r+1);i.length>e.level+1;)i.pop();var t={text:e.text,checked:e.checked,level:e.level,children:[]};i[i.length-1].push(t),i[e.level+1]=t.children,r=e.level}),'<ul class="rbe-output-checklist">'+function e(t){return t.map(function(t){return'<li class="rbe-output-checklist-item" data-level="'+t.level+'">'+function(e){var t=e.level>0;return'<span class="rbe-output-check'+(e.checked?" is-checked":"")+(t?" is-nested":"")+'" aria-hidden="true">'+S(t?e.checked?"circle-check":"circle":e.checked?"square-check":"square",e.checked?"Checked":"Unchecked")+"</span>"}(t)+'<span class="rbe-output-checklist-text">'+Ne(t.text)+"</span>"+(t.children.length?'<ul class="rbe-output-checklist rbe-output-checklist-nested">'+e(t.children)+"</ul>":"")+"</li>"}).join("")}(t)+"</ul>"}function Ne(e){var t=document.createElement("template");return t.innerHTML=A(e||""),Array.prototype.slice.call(t.content.querySelectorAll(".rbe-comment-mark")).forEach(function(e){var t=e.getAttribute("data-rbe-comment")||e.getAttribute("title")||"",i=e.getAttribute("data-rbe-comment-id")||y("comment"),r=document.createElement("span");r.className="rbe-output-annotation",r.setAttribute("data-comment-id",i),r.setAttribute("data-comment",t),r.innerHTML='<span class="rbe-output-annotation-text">'+e.innerHTML+'</span><span class="rbe-output-annotation-card"><strong>Comment</strong><span class="rbe-output-annotation-note">'+w(t)+'</span><span class="rbe-output-annotation-history" aria-live="polite"></span><span class="rbe-output-annotation-actions"><button type="button" class="rbe-output-annotation-resolve" title="Resolve comment">'+S("check","Resolve comment")+'</button><button type="button" class="rbe-output-annotation-decline" title="Decline comment">'+S("xmark","Decline comment")+'</button></span><span class="rbe-output-annotation-decline-form" hidden><textarea class="rbe-output-annotation-reply" placeholder="Write decline reason"></textarea><button type="button" class="rbe-output-annotation-save-decline">Save</button></span></span>',e.replaceWith(r)}),t.innerHTML}function Pe(){return{el:v,uid:y,faIcon:S,escapeHTML:w,sanitizeHTML:A,renderOutputInline:Ne,cleanAlignment:le,isSafeUrl:T}}function Be(e){return"object"==typeof e&&e?e.text||"":e||""}function He(e){return le("object"==typeof e&&e?e.alignment:"left")}function Ie(e,t){if(e){e.value=t;var i=Array.prototype.slice.call(e.options||[]).find(function(e){return e.value===t}),r=e.nextElementSibling&&e.nextElementSibling.classList&&e.nextElementSibling.classList.contains("select2-container")?e.nextElementSibling:null;if(r&&i){var n=r.querySelector(".select2-selection__rendered");n&&(n.textContent=i.textContent||i.text||t,n.setAttribute("title",n.textContent))}window.jQuery&&window.jQuery(e).data("select2")&&window.jQuery(e).val(t).trigger("change.select2")}}function _e(e){this.options=Object.assign({holder:null,data:null,placeholder:"Type / for blocks",minHeight:"320px",autofocus:!1,readOnly:!1,tools:null,upload:null,uploadOutput:["base64"],mentions:[],autosave:null,userName:"Current user",fontAwesome:!0,select2:!0,shell:!0,maxWidth:null,historyPanel:!1,saveButton:!1,exportButton:!1,exportHtmlButton:!1,exportFilename:"blockwriteai-document",onReady:null,onChange:null,onSave:null},a,e||{});var i=this.options.export||this.options.Export||null;if(i&&"object"==typeof i){var r="buttons"in i?i.buttons:"Export Buttons"in i?i["Export Buttons"]:i.exportButtons,n="html"in i?i.html:"Export To HTML"in i?i["Export To HTML"]:i.exportToHTML;void 0!==r&&(this.options.exportButton=!!r),void 0!==n&&(this.options.exportHtmlButton=!!n)}if(this.holder="string"==typeof this.options.holder?document.querySelector(this.options.holder):this.options.holder,!this.holder)throw new Error("BlockWriteAI: holder was not found.");if(!1!==this.options.fontAwesome&&C("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css","fontawesome-css"),this.readOnly=!!this.options.readOnly,this.premiumOptions=W(this.options),this.licenseState=U(this.premiumOptions),this.shellOptions=function(e){if(!e||!1===e.shell)return null;var t,i=e.shell&&"object"==typeof e.shell?e.shell:{},r=i.branding&&"object"==typeof i.branding?i.branding:e.branding&&"object"==typeof e.branding?e.branding:{},n=void 0!==i.maxWidth?i.maxWidth:void 0!==e.maxWidth?e.maxWidth:e.editorMaxWidth,a=void 0!==i.logo?i.logo:void 0!==i.logoUrl?i.logoUrl:void 0!==r.logo?r.logo:void 0!==e.logoUrl?e.logoUrl:void 0!==e.shellLogo?e.shellLogo:oe("blockwriteai-logo.svg")||!1;return{showHeader:!1!==(void 0!==i.showHeader?i.showHeader:e.showHeader),title:i.title||e.shellTitle||"BlockWriteAI",subtitle:i.subtitle||e.shellSubtitle||"Block-first writing editor with AI, slash commands, inline toolbar, uploads, tables, embeds, autosave, and JSON responses.",heading:i.heading||e.shellHeading||"Editor",status:i.status||e.shellStatus||"Ready",logo:a,maxWidth:(t=n,null==t||!1===t||""===t?"":"number"==typeof t&&Number.isFinite(t)?Math.max(0,t)+"px":String(t)),className:i.className||e.shellClassName||""}}(this.options),"undefined"!=typeof window&&(window.BlockWriteAISignatureEventUrl=this.premiumOptions.signatureEventEndpoint||t.signatureEvent,window.BlockWriteAIPremiumEventUrl=this.premiumOptions.eventEndpoint||t.premiumEvent,window.BlockWriteAILogoUrl=this.shellOptions&&this.shellOptions.logo?this.shellOptions.logo:oe("blockwriteai-logo.svg")),this.shell=null,this.shellStatus=null,this.shellProgress=null,this.shellProgressText=null,this.editorMount=null,this.availableTools=this.resolveTools(this.options.tools),this.history=[],this.actionHistory=[],this.historyIndex=-1,this.currentMenuBlock=null,this.slashBlock=null,this.draggingBlock=null,this.silent=!1,this.savedRange=null,this.selectEnhanceTimer=null,this.inlineToolbarStickyUntil=0,this.pendingHistoryAction=null,this.renderingData=!1,this.documentMeta=z(this.options.data),this.hasExplicitSave=!1,this.savedExportData=null,this.boundDocumentMouseDown=this.handleDocumentMouseDown.bind(this),this.root=v("div","rbe",{dataset:{readonly:this.readOnly?"true":"false",premiumStatus:this.licenseState.status}}),this.root.__blockwriteaiInstance=this,this.root.style.setProperty("--rbe-min-height",this.options.minHeight),this.topToolbar=this.createTopToolbar(),this.canvas=v("div","rbe-canvas",{role:"textbox","aria-label":"Rich text editor"}),this.inlineToolbar=this.createInlineToolbar(),this.commentModal=this.createCommentModal(),this.linkModal=this.createLinkModal(),this.menu=v("div","rbe-menu",{hidden:!0}),this.root.appendChild(this.topToolbar),this.root.appendChild(this.canvas),this.root.appendChild(this.inlineToolbar),this.root.appendChild(this.commentModal),this.root.appendChild(this.linkModal),this.root.appendChild(this.menu),this.holder.innerHTML="",this.shellOptions?(this.shell=this.createShell(),this.editorMount.appendChild(this.root),this.holder.appendChild(this.shell),this.bindShellEvents()):this.holder.appendChild(this.root),this.queueChange=O(this.emitChange.bind(this),250),this.queueHistory=O(this.recordHistory.bind(this),450),this.boundSelectionChange=this.handleSelectionChange.bind(this),this.bindEvents(),this.setupAutosave(),this.canvas.children.length||this.render(this.options.data||ae(),{silent:!0}),this.recordHistory(!0),this.scheduleSelectEnhance(),this.options.autofocus){var o=this.canvas.querySelector("[contenteditable='true'], textarea, input");setTimeout(function(){o&&ne(o)},0)}"function"==typeof this.options.onReady&&this.options.onReady(this),this.verifyPremiumLicense()}return _e.version=e,_e.platformEndpoints=Object.assign({},t),_e.sanitizeHTML=A,_e.toEmbed=P,_e.registerTool=function(e,t){(e=String(e||"").trim())&&t&&(i.indexOf(e)<0&&i.push(e),n[e]=t,r[e]=Object.assign({label:t.label||e,hint:t.hint||"Plugin block",icon:t.icon||"puzzle-piece",premiumFeature:I(t.premiumFeature||t.premium||l[e]||"")},r[e]||{},t.menu||{}))},_e.getTool=function(e){return n[e]||null},_e.configure=function(e){return Object.assign(a,e||{}),_e},_e.loadPremiumPlugins=function(e){return F(e||{})},_e.helpers=Pe(),_e.prototype.resolveTools=function(e){return e?Array.isArray(e)?e.filter(function(e){return i.indexOf(e)>=0}):i.filter(function(t){return!1!==e[t]}):i.slice()},_e.prototype.setPremiumState=function(e){return e=e||{},this?(this.licenseState=Object.assign({},this.licenseState||U(this.premiumOptions||{}),e),this.licenseState.features=Object.assign(H(!1),this.licenseState.features||{}),this.root&&(this.root.dataset.premiumStatus=this.licenseState.status||"missing",this.root.dispatchEvent(new CustomEvent("rbe:premium-change",{bubbles:!0,detail:this.getPremiumState()}))),this.refreshPremiumUI(),this.licenseState):U({})},_e.prototype.getPremiumState=function(){var e=this||{};return B(e.licenseState||U(e.premiumOptions||{}))},_e.prototype.getPremiumFeatureForTool=function(e){return function(e){var t=n[e]||{};return I(t.premiumFeature||t.premium||l[e]||"")}(e)},_e.prototype.loadPremiumPlugins=function(e){var t=this.premiumOptions||W(this.options);return F({licenseKey:t.licenseKey,pluginEndpoint:t.pluginEndpoint,sessionToken:t.sessionToken,features:e||t.pluginFeatures}).then(function(e){return this.availableTools=this.resolveTools(this.options.tools),this.refreshPremiumUI(),e}.bind(this))},_e.prototype.isPremiumFeatureEnabled=function(e){if(!(e=I(e)))return!0;if(!this)return!1;if(this.premiumOptions&&this.premiumOptions.disabled)return!0;var t=this.licenseState||{};if(!(t.valid&&t.features&&t.features[e]))return!1;if(!(t.subscription||{}).trial)return!0;var i=t.usage||{};if(i._trial_usage_date&&i._trial_usage_date!==j())return!0;if("ai"===e){var r=i.ai_actions_remaining_today;return void 0===r&&(r=i.ai_prompts_remaining_today),void 0===r||Number(r)>0}var n=i.premium_features_remaining_today||{};return void 0===n[e]||Number(n[e])>0},_e.prototype.canUseTool=function(e){if(!this)return!1;var t=this.getPremiumFeatureForTool(e);return!t||this.isPremiumFeatureEnabled(t)},_e.prototype.premiumMessage=function(e){e=I(e);var t=this&&this.licenseState?this.licenseState:{};return"pending"===t.status?_(e)+" is checking your license. Please try again in a moment.":t.subscription&&"expired"===t.subscription.status?_(e)+" is locked due to trial is expired.":t.message&&!/license verified/i.test(t.message)?_(e)+" is locked. "+t.message:_(e)+" is locked. Please add an active BlockWriteAI premium license."},_e.prototype.premiumStorageKey=function(e){var t=this&&this.licenseState?this.licenseState:{},i=this&&this.premiumOptions?this.premiumOptions:{},r=t.license&&t.license.prefix||(i.licenseKey?i.licenseKey.slice(0,18):"no-license");return"blockwriteai:"+(t.organization&&t.organization.id?"org-"+t.organization.id:"org-unknown")+":"+r+":"+e},_e.prototype.premiumUpgradeTitle=function(e,t){return"Unlock Premium Blocks"},_e.prototype.premiumUpgradeMessage=function(e,t){return"Get Drawing, Mermaid, Signature, Signature Flow, and AI Credits with a premium plan."},_e.prototype.showPremiumUpgradeModal=function(e,t){if("undefined"!=typeof document){var i=this||{};e=I(e||"ai"),t=String(t||"").toLowerCase();var r=document.querySelector(".rbe-premium-modal-backdrop");r&&r.parentNode&&r.parentNode.removeChild(r);var n=y("premium-title"),a=v("div","rbe-premium-modal-backdrop",{}),o=v("section","rbe-premium-modal-card",{role:"dialog","aria-modal":"true","aria-labelledby":n}),l=v("button","rbe-premium-modal-close",{type:"button",title:"Close",html:S("xmark","Close")}),s="limit"===t?"gauge-high":"trial"===t?"clock":"lock",d="function"==typeof i.premiumUpgradeTitle?i.premiumUpgradeTitle(e,t):_(e),c="function"==typeof i.premiumUpgradeMessage?i.premiumUpgradeMessage(e,t):_(e)+" is locked. Please add an active BlockWriteAI premium license.",u=v("h2","",{id:n,text:d}),p=v("p","",{text:c}),h=v("div","rbe-premium-modal-actions",{}),m=i.premiumOptions&&i.premiumOptions.upgradeUrl?i.premiumOptions.upgradeUrl:"",b=v("button","rbe-premium-primary",{type:"button",text:"Upgrade Now"}),f=v("button","rbe-premium-secondary",{type:"button",text:"Compare Plans"});l.addEventListener("click",w),f.addEventListener("click",function(){g(!0)||w()}),b.addEventListener("click",function(){g(!1),w()}.bind(i)),a.addEventListener("mousedown",function(e){e.target===a&&w()}),document.addEventListener("keydown",function e(t){"Escape"===t.key&&(document.removeEventListener("keydown",e),w())},{once:!0}),h.appendChild(f),h.appendChild(b),o.appendChild(l),o.appendChild(v("div","rbe-premium-modal-icon",{html:S(s,"Premium")})),o.appendChild(u),o.appendChild(p),o.appendChild(h),a.appendChild(o),document.body.appendChild(a),requestAnimationFrame(function(){a.classList.add("is-visible"),b.focus()})}function g(e){if(!m||"undefined"==typeof window)return!1;var t=m;return e&&-1===t.indexOf("#")&&(t+="#pricing"),window.open(t,"_blank","noopener"),!0}function w(){a.classList.remove("is-visible"),a.classList.add("is-closing"),setTimeout(function(){a.parentNode&&a.parentNode.removeChild(a)},180)}},_e.prototype.maybeShowTrialUpgradeModal=function(){if(this){var e=this.licenseState||{},t=e.subscription||{};if(e.valid&&t.trial&&"trialing"===t.status){var i=this.premiumStorageKey("trial-nudge:"+j());"1"!==function(e){try{return"undefined"!=typeof localStorage?localStorage.getItem(e):null}catch(e){return null}}(i)&&(!function(e,t){try{"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}catch(e){}}(i,"1"),setTimeout(function(){this.showPremiumUpgradeModal("ai","trial")}.bind(this),650))}}},_e.prototype.showToast=function(e,t){if(e&&"undefined"!=typeof document){var i=document.querySelector(".rbe-toast-stack");i||(i=v("div","rbe-toast-stack",{role:"status","aria-live":"polite"}),document.body.appendChild(i));var r="error"===t?"error":"success"===t?"success":"warning",n="error"===r?"circle-exclamation":"success"===r?"circle-check":"lock",a=v("div","rbe-toast is-"+r,{});a.innerHTML=S(n,r)+"<div><strong>"+w("error"===r?"BlockWriteAI error":"success"===r?"BlockWriteAI":"Premium feature")+"</strong><span>"+w(e)+"</span></div>",i.appendChild(a),requestAnimationFrame(function(){a.classList.add("is-show")}),setTimeout(function(){a.classList.remove("is-show"),a.classList.add("is-hiding"),setTimeout(function(){a.parentNode&&a.parentNode.removeChild(a),i&&!i.children.length&&i.parentNode&&i.parentNode.removeChild(i)},260)},5e3)}},_e.prototype.showPremiumLocked=function(e){this&&(this.showToast(this.premiumMessage(e),"warning"),this.showPremiumUpgradeModal(e,"locked"))},_e.prototype.refreshPremiumUI=function(){this&&this.root&&(Array.prototype.slice.call(this.root.querySelectorAll(".rbe-menu-item[data-type]")).forEach(function(e){var t=this.getPremiumFeatureForTool(e.dataset.type),i=!!t&&!this.isPremiumFeatureEnabled(t);e.classList.toggle("is-premium-locked",i),i?e.setAttribute("data-premium-locked","true"):e.removeAttribute("data-premium-locked"),i&&(e.title=this.premiumMessage(t))}.bind(this)),Array.prototype.slice.call(this.root.querySelectorAll("[data-premium-feature]")).forEach(function(e){var t=I(e.dataset.premiumFeature),i=!!t&&!this.isPremiumFeatureEnabled(t);e.classList.toggle("is-premium-locked",i),i?e.setAttribute("data-premium-locked","true"):e.removeAttribute("data-premium-locked"),i?e.title=this.premiumMessage(t):e.dataset.unlockedTitle&&(e.title=e.dataset.unlockedTitle)}.bind(this)))},_e.prototype.verifyPremiumLicense=function(){if(!this)return Promise.resolve(U({}));var e=this.premiumOptions||W(this.options);return e.disabled?(this.setPremiumState({status:"disabled",valid:!0,message:"Premium checks are disabled.",features:H(!0)}),Promise.resolve(this.getPremiumState())):e.licenseKey&&e.verifyEndpoint&&"function"==typeof fetch?(this.setPremiumState({status:"pending",valid:!1,message:"License verification is pending.",features:H(!1)}),fetch(e.verifyEndpoint,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({license_key:e.licenseKey,session_token:e.sessionToken,domain:"undefined"!=typeof window&&window.location?window.location.origin:""})}).then(function(e){return e.json().catch(function(){return{}}).then(function(t){if(!e.ok||!1===t.ok)throw new Error(t.message||t.error||"License verification failed.");return t})}).then(function(t){return this.setPremiumState({status:t.valid?"valid":"invalid",valid:!!t.valid,message:t.message||(t.valid?"License verified.":"License is not active."),features:Object.assign(H(!1),t.features||{}),limits:t.limits||{},usage:t.usage||{},organization:t.organization||null,subscription:t.subscription||null,license:t.license||null}),this.maybeShowTrialUpgradeModal(),t.valid&&e.pluginEndpoint&&e.autoLoadPlugins?this.loadPremiumPlugins(e.pluginFeatures).then(function(){return this.getPremiumState()}.bind(this)).catch(function(e){return this.showToast(e&&e.message?e.message:"Premium plugins could not be loaded.","error"),this.getPremiumState()}.bind(this)):this.getPremiumState()}.bind(this)).catch(function(e){return this.setPremiumState({status:"invalid",valid:!1,message:e&&e.message?e.message:"License verification failed.",features:H(!1)}),this.getPremiumState()}.bind(this))):(this.setPremiumState(U(e)),Promise.resolve(this.getPremiumState()))},_e.prototype.consumePremiumUsage=function(e,t){if(e=I(e),!this||"function"!=typeof this.isPremiumFeatureEnabled){var i=new Error(_(e)+" is locked. Please add an active BlockWriteAI premium license.");return i.status=402,Promise.reject(i)}if(!e||this.premiumOptions&&this.premiumOptions.disabled)return Promise.resolve(this.getPremiumState());if(!this.isPremiumFeatureEnabled(e))return this.showPremiumUpgradeModal(e,"locked"),Promise.reject(new Error(this.premiumMessage(e)));if(!this.premiumOptions||"function"!=typeof fetch)return Promise.resolve(this.getPremiumState());var r="ai"===e?this.premiumOptions.usageEndpoint:this.premiumOptions.featureUsageEndpoint;if(!r)return Promise.resolve(this.getPremiumState());var n=Object.assign({},t||{},{license_key:this.premiumOptions.licenseKey});return n.feature=e,this.premiumOptions.sessionToken&&(n.session_token=this.premiumOptions.sessionToken),fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(n)}).then(function(t){return t.json().catch(function(){return{}}).then(function(i){if(!t.ok||!1===i.ok){var r=i.error||i.message||"AI usage limit check failed.";if(void 0!==i.limit||void 0!==i.used||void 0!==i.remaining){var n=Object.assign({},this.licenseState.usage||{}),a=Object.assign({},this.licenseState.limits||{});n._trial_usage_date=j(),"ai_credits"===i.limit_type?(void 0!==i.used&&(n.ai_credits_used_month=i.used),void 0!==i.remaining&&(n.ai_credits_remaining_month=i.remaining),void 0!==i.limit&&(a.ai_credits_per_month=i.limit)):"ai"===e?(void 0!==i.used&&(n.ai_actions_today=i.used,n.ai_prompts_today=i.used),void 0!==i.remaining&&(n.ai_actions_remaining_today=i.remaining,n.ai_prompts_remaining_today=i.remaining),void 0!==i.limit&&(a.ai_trial_actions_per_day=i.limit,a.ai_prompts_per_day=i.limit)):(n.premium_features_today=Object.assign({},n.premium_features_today||{}),n.premium_features_remaining_today=Object.assign({},n.premium_features_remaining_today||{}),a.premium_features_per_day=Object.assign({},a.premium_features_per_day||{}),void 0!==i.used&&(n.premium_features_today[e]=i.used),void 0!==i.remaining&&(n.premium_features_remaining_today[e]=i.remaining),void 0!==i.limit&&(a.premium_features_per_day[e]=i.limit)),this.setPremiumState({usage:n,limits:a})}429===t.status||/daily (ai|premium)/i.test(r)?this.showPremiumUpgradeModal(e,"limit"):(402===t.status||/not available|expired|subscription|enough ai credits/i.test(r))&&this.showPremiumUpgradeModal(e,"locked");var o=new Error(r);throw o.status=t.status,o.details=i,o}return i}.bind(this))}.bind(this)).then(function(t){var i=Object.assign({},this.licenseState.usage||{}),r=Object.assign({},this.licenseState.limits||{});return i._trial_usage_date=j(),"ai_credits"===t.limit_type?(i.ai_credits_used_month=t.used,i.ai_credits_remaining_month=t.remaining,r.ai_credits_per_month=t.limit):"ai"===e?(i.ai_actions_today=t.used,i.ai_actions_remaining_today=t.remaining,i.ai_prompts_today=t.used,i.ai_prompts_remaining_today=t.remaining,r.ai_trial_actions_per_day=t.limit,r.ai_prompts_per_day=t.limit):(i.premium_features_today=Object.assign({},i.premium_features_today||{}),i.premium_features_remaining_today=Object.assign({},i.premium_features_remaining_today||{}),r.premium_features_per_day=Object.assign({},r.premium_features_per_day||{}),i.premium_features_today[e]=t.used,i.premium_features_remaining_today[e]=t.remaining,r.premium_features_per_day[e]=t.limit),this.setPremiumState({usage:i,limits:r}),this.lastPremiumUsageResult=t,Object.assign({},this.getPremiumState(),{usage_event_id:t.event_id||null,usage_result:t})}.bind(this))},_e.prototype.createShell=function(){var e=this.shellOptions||{},t=v("div","rbe-shell"+(e.className?" "+e.className:""));e.maxWidth&&t.style.setProperty("--rbe-shell-max-width",e.maxWidth);var i=null;if(!1!==e.showHeader){if(i=v("header","rbe-shell-brand"),!1!==e.logo){var r=v("img","rbe-shell-logo",{src:e.logo||oe("blockwriteai-logo.svg"),alt:e.title||"BlockWriteAI",decoding:"async"});i.appendChild(r)}else i.appendChild(v("strong","rbe-shell-title",{text:e.title||"BlockWriteAI"}));!1!==e.subtitle&&i.appendChild(v("p","rbe-shell-subtitle",{text:e.subtitle||""}))}var n=v("section","rbe-shell-panel"),a=v("div","rbe-shell-panel-title");return a.appendChild(v("span","rbe-shell-heading",{text:e.heading||"Editor"})),this.shellProgress=v("span","rbe-shell-progress",{hidden:!0}),this.shellProgressText=v("span","rbe-shell-progress-text",{text:"Working with BlockWriteAI..."}),this.shellProgress.appendChild(this.shellProgressText),this.shellProgress.appendChild(v("span","rbe-shell-progress-track",{html:"<span></span>","aria-hidden":"true"})),a.appendChild(this.shellProgress),this.shellStatus=v("span","rbe-shell-status",{text:e.status||"Ready"}),a.appendChild(this.shellStatus),this.editorMount=v("div","rbe-shell-editor-wrap"),n.appendChild(a),n.appendChild(this.editorMount),i&&t.appendChild(i),t.appendChild(n),t},_e.prototype.bindShellEvents=function(){if(this.shell&&this.root){var e=this;this.root.addEventListener("rbe:ai-progress",function(t){var i=t&&t.detail||{};e.setShellProgress(!!i.active,i.message||"Working with BlockWriteAI...")}),this.root.addEventListener("rbe:save",function(){e.setShellStatus("Saved "+(new Date).toLocaleTimeString())}),this.root.addEventListener("rbe:save-error",function(t){var i=t.detail&&t.detail.message||t.detail||"Save failed";e.setShellStatus(String(i))})}},_e.prototype.setShellStatus=function(e){this.shellStatus&&(this.shellStatus.textContent=e||"")},_e.prototype.setShellProgress=function(e,t){this.shellProgress&&(this.shellProgressText&&t&&(this.shellProgressText.textContent=t),this.shellProgress.hidden=!e)},_e.prototype.bindEvents=function(){var e=this;document.addEventListener("selectionchange",this.boundSelectionChange),this.canvas.addEventListener("input",function(t){e.handleInput(t)}),this.canvas.addEventListener("beforeinput",function(t){e.handleBeforeInput(t)}),this.canvas.addEventListener("focusin",function(t){e.handleEditableActivation(t)}),this.canvas.addEventListener("keydown",function(t){e.handleKeydown(t)}),this.canvas.addEventListener("paste",function(t){e.handlePaste(t)}),this.canvas.addEventListener("drop",function(t){e.handleDrop(t)}),this.canvas.addEventListener("dragover",function(t){if(!e.readOnly){t.preventDefault();var i=e.getDragAfterElement(t.clientY),r=e.draggingBlock;r&&(null==i?e.canvas.appendChild(r):e.canvas.insertBefore(r,i))}}),this.root.addEventListener("click",function(t){e.handleRootClick(t)}),this.root.addEventListener("mousedown",function(t){e.handleEditableMouseDown(t)||t.target.closest(".rbe-list-action, .rbe-list-add, .rbe-list-remove, .rbe-table-action")&&t.preventDefault()}),this.root.addEventListener("change",function(t){e.handleRootChange(t)}),this.root.addEventListener("dragstart",function(t){var i=t.target.closest(".rbe-drag-handle");if(i&&!e.readOnly){var r=q(i);r&&r.classList.contains("rbe-nested-block")||(e.draggingBlock=r,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",r.dataset.id),setTimeout(function(){r.classList.add("rbe-is-dragging")},0))}}),this.root.addEventListener("dragend",function(){e.draggingBlock&&(e.draggingBlock.classList.remove("rbe-is-dragging"),e.draggingBlock=null,e.changed())}),document.addEventListener("mousedown",this.boundDocumentMouseDown),window.addEventListener("resize",O(function(){this.updateMediaActionAvailability(this.root)}.bind(this),160))},_e.prototype.createTopToolbar=function(){var e=v("div","rbe-editor-toolbar",{role:"toolbar","aria-label":"Editor history"});e.appendChild(v("button","rbe-history-btn",{type:"button",html:S("rotate-left","Undo"),title:"Undo","aria-label":"Undo",dataset:{history:"undo"}})),e.appendChild(v("button","rbe-history-btn",{type:"button",html:S("rotate-right","Redo"),title:"Redo","aria-label":"Redo",dataset:{history:"redo"}})),e.appendChild(v("button","rbe-history-btn rbe-clear-editor-btn",{type:"button",html:S("trash-can","Clear editor"),title:"Clear editor","aria-label":"Clear editor",dataset:{rbeClear:"true"}})),!1!==this.options.saveButton&&e.appendChild(v("button","rbe-history-btn rbe-save-btn",{type:"button",html:S("floppy-disk","Save"),title:"Save","aria-label":"Save",dataset:{rbeSave:"true"}}));var t=!1!==this.options.exportButton,i=!1!==this.options.exportHtmlButton;if(t||i){var r=this;if(t){var n=v("div","rbe-export-menu-wrap"),a=v("button","rbe-history-btn rbe-export-btn",{type:"button",html:S("file-export","Export"),title:"Export saved preview","aria-label":"Export saved preview",disabled:!0,dataset:{rbeExportToggle:"true"}});a.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),r.toggleExportMenu(a)}),n.appendChild(a);var o=v("div","rbe-export-menu",{hidden:!0,role:"menu","aria-label":"Export options"});[["json","file-code","Export to JSON File"]].forEach(function(e){var t=v("button","rbe-export-option",{type:"button",html:S(e[1],e[2]),title:e[2],"aria-label":e[2],role:"menuitem",dataset:{rbeExport:e[0]}});t.addEventListener("click",function(t){t.preventDefault(),t.stopPropagation(),r.handleExport(e[0])}),o.appendChild(t)}),n.appendChild(o),e.appendChild(n)}i&&e.appendChild(v("button","rbe-history-btn rbe-export-html-btn",{type:"button",html:S("file-lines","Export HTML"),title:"Export HTML preview","aria-label":"Export HTML preview",disabled:!0,dataset:{rbeExportHtml:"true"}}))}return this.options.historyPanel&&(e.appendChild(v("button","rbe-history-btn rbe-history-toggle",{type:"button",html:S("clock-rotate-left","History"),title:"Show history","aria-label":"Show history",dataset:{historyPanel:"toggle"}})),e.appendChild(v("div","rbe-history-panel",{hidden:!0}))),e},_e.prototype.handleDocumentMouseDown=function(e){if(this.root&&(e.target.closest(".rbe-image-stage, .rbe-attachment-card")||this.closeMediaMenus(),e.target.closest(".rbe-export-menu-wrap")||this.hideExportMenu(),!e.target.closest(".rbe-menu, .rbe-block-add, .rbe-inline-toolbar, .rbe-history-panel, .rbe-history-toggle, .rbe-export-menu-wrap, .select2-container, .select2-dropdown, .rbe-comment-modal, .rbe-link-modal"))){var t=this.topToolbar&&this.topToolbar.querySelector(".rbe-history-panel");t&&(t.hidden=!0),this.hideMenus()}},_e.prototype.closeMediaMenus=function(e){this.root&&Array.prototype.slice.call(this.root.querySelectorAll(".is-media-menu-open")).forEach(function(t){e&&t===e||t.classList.remove("is-media-menu-open")})},_e.prototype.toggleMediaMenu=function(e){if(e){var t=e.closest(".rbe-image-stage, .rbe-attachment-card");if(t){var i=t.classList.contains("is-media-menu-open");this.closeMediaMenus(t),t.classList.toggle("is-media-menu-open",!i),this.updateMediaActionAvailability(t.closest(".rbe-image-gallery, .rbe-attachment-grid")||t.parentElement||this.root)}}},_e.prototype.createCommentModal=function(){var e=v("div","modal rbe-comment-modal",{hidden:!0,role:"dialog","aria-modal":"true","aria-label":"Add comment"});return e.innerHTML='<div class="modal-dialog rbe-comment-dialog"><div class="modal-content rbe-comment-content"><div class="modal-header rbe-comment-header"><strong>Add comment</strong><button type="button" class="rbe-comment-close" aria-label="Close">'+S("xmark","Close")+'</button></div><div class="modal-body rbe-comment-body"><textarea class="rbe-comment-input" placeholder="Write comment..."></textarea></div><div class="modal-footer rbe-comment-footer"><button type="button" class="rbe-small-btn rbe-comment-cancel">Cancel</button><button type="button" class="rbe-small-btn rbe-comment-save">Save comment</button></div></div></div>',e},_e.prototype.createLinkModal=function(){var e=v("div","modal rbe-comment-modal rbe-link-modal",{hidden:!0,role:"dialog","aria-modal":"true","aria-label":"Add link"});return e.innerHTML='<div class="modal-dialog rbe-comment-dialog"><div class="modal-content rbe-comment-content"><div class="modal-header rbe-comment-header"><strong>Add link</strong><button type="button" class="rbe-comment-close rbe-link-close" aria-label="Close">'+S("xmark","Close")+'</button></div><div class="modal-body rbe-comment-body"><label class="rbe-link-modal-label">URL</label><input class="rbe-link-input" type="url" placeholder="https://example.com"></div><div class="modal-footer rbe-comment-footer"><button type="button" class="rbe-small-btn rbe-link-cancel">Cancel</button><button type="button" class="rbe-small-btn rbe-link-save">Save link</button></div></div></div>',e},_e.prototype.createInlineToolbar=function(){var e=v("div","rbe-inline-toolbar",{hidden:!0,role:"toolbar"}),t=v("select","rbe-inline-select rbe-font-family-select",{title:"Font family",dataset:{command:"fontFamily"}});[["Arial, sans-serif","Arial"],["Inter, sans-serif","Inter"],["Georgia, serif","Georgia"],['"Times New Roman", serif',"Times"],['"Courier New", monospace',"Courier"],["Verdana, sans-serif","Verdana"]].forEach(function(e){t.appendChild(v("option","",{value:e[0],text:e[1]}))}),t.value="Arial, sans-serif",t.style.width="112px";var i=v("select","rbe-inline-select rbe-font-size-select",{title:"Font size",dataset:{command:"fontSize"}});["10","12","14","16","18","20","24","28","32","36","48"].forEach(function(e){i.appendChild(v("option","",{value:e,text:e}))}),i.value="16",i.style.width="66px",e.appendChild(t),e.appendChild(i),d.forEach(function(t){e.appendChild(v("button","rbe-inline-btn",{type:"button",title:t.title,html:t.icon?S(t.icon,t.title):w(t.label),dataset:{command:t.command,value:t.value||""}}))});var r=v("input","rbe-color-input",{type:"color",title:"Text color",value:"#1d4ed8",dataset:{command:"foreColor"}}),n=v("input","rbe-color-input",{type:"color",title:"Highlight",value:"#fff2a8",dataset:{command:"hiliteColor"}}),a=v("label","rbe-color-control",{title:"Text color"});a.appendChild(v("span","rbe-color-icon",{text:"A"})),a.appendChild(r),a.appendChild(v("button","rbe-color-reset",{type:"button",title:"Reset text color",html:S("rotate-left","Reset text color"),dataset:{command:"foreColorReset"}}));var o=v("label","rbe-color-control",{title:"Highlight"});o.appendChild(v("span","rbe-color-icon",{html:S("highlighter","Highlight")})),o.appendChild(n),o.appendChild(v("button","rbe-color-reset",{type:"button",title:"Reset highlight",html:S("rotate-left","Reset highlight"),dataset:{command:"hiliteColorReset"}})),e.appendChild(a),e.appendChild(o);var l=this;return e.addEventListener("mousedown",function(e){l.keepInlineToolbarOpen(),e.target.matches("input, select, option")||e.target.closest(".select2-container")||e.preventDefault()}),e},_e.prototype.createBlock=function(e,t,i){var r=v("article","rbe-block",{dataset:{id:i||y("block"),type:e}}),n=v("div","rbe-block-controls"),a=v("button","rbe-control-btn rbe-block-add",{type:"button",title:"Insert block",html:S("circle-plus","Insert block")}),o=v("button","rbe-control-btn rbe-drag-handle",{type:"button",title:"Drag block",html:S("grip-vertical","Drag block"),draggable:!0});n.appendChild(a),n.appendChild(o);var l=this.createBlockActions(),s=v("div","rbe-block-body");return this.renderBlockBody(s,e,t||{}),r.appendChild(n),r.appendChild(s),r.appendChild(l),this.readOnly&&this.makeBlockReadonly(r),r},_e.prototype.createBlockActions=function(){var e=v("div","rbe-block-actions",{"aria-label":"Block actions"});return[["move-up","arrow-up","Move up"],["move-down","arrow-down","Move down"],["duplicate","copy","Duplicate"],["delete","trash-can","Delete block"]].forEach(function(t){e.appendChild(v("button","rbe-block-action",{type:"button",title:t[2],html:S(t[1],t[2]),dataset:{action:t[0]},"aria-label":t[2]}))}),e},_e.prototype.renderBlockBody=function(e,t,i){e.innerHTML="","paragraph"===t?this.renderParagraph(e,i):"heading"===t?this.renderHeading(e,i):"quote"===t?this.renderQuote(e,i):"list"===t?this.renderList(e,i):"checklist"===t?this.renderChecklist(e,i):"code"===t?this.renderCode(e,i):"image"===t?this.renderImage(e,i):"table"===t?this.renderTable(e,i):"embed"===t?this.renderEmbed(e,i):"callout"===t?this.renderCallout(e,i):"delimiter"===t?this.renderDelimiter(e,i):"button"===t?this.renderButton(e,i):"toggle"===t?this.renderToggle(e,i):"linkPreview"===t?this.renderLinkPreview(e,i):"raw"===t?this.renderRaw(e,i):"attaches"===t?this.renderAttachment(e,i):n[t]&&"function"==typeof n[t].render?n[t].render.call(this,e,i||{},Pe()):this.renderParagraph(e,i)},_e.prototype.editable=function(e,t,i){return v("div","rbe-editable "+(e||""),{contentEditable:!this.readOnly,html:A(t||""),dataset:{placeholder:i||this.options.placeholder}})},_e.prototype.renderParagraph=function(e,t){var i=this.editable("rbe-paragraph",t.text,this.options.placeholder);i.style.textAlign=le(t.alignment),e.appendChild(i)},_e.prototype.renderHeading=function(e,t){var i=Math.min(4,Math.max(1,Number(t.level||2))),r=v("div","rbe-heading-wrap"),n=v("select","rbe-heading-level",{title:"Heading level",dataset:{role:"heading-level"}});[1,2,3,4].forEach(function(e){n.appendChild(v("option","",{value:String(e),text:"H"+e,selected:e===i}))});var a=v("div","rbe-editable rbe-heading rbe-h"+i,{contentEditable:!this.readOnly,html:A(t.text||""),dataset:{placeholder:"Heading",level:i}});a.style.textAlign=le(t.alignment),r.appendChild(n),r.appendChild(a),e.appendChild(r)},_e.prototype.renderQuote=function(e,t){var i=v("div","rbe-quote"),r=this.editable("rbe-quote-text",t.text,"Quote");r.style.textAlign=le(t.alignment),i.appendChild(r),i.appendChild(v("input","rbe-quote-caption",{type:"text",value:t.caption||"",placeholder:"Caption",disabled:this.readOnly})),e.appendChild(i)},_e.prototype.renderList=function(e,t){var i="ordered"===t.style?"ordered":"unordered",r=v("div","rbe-list-wrap",{dataset:{style:i}}),n=v("div","rbe-list-tools"),a=v("select","rbe-list-style",{title:"List style",dataset:{role:"list-style"}});a.appendChild(v("option","",{value:"unordered",text:"Bulleted",selected:"unordered"===i})),a.appendChild(v("option","",{value:"ordered",text:"Numbered",selected:"ordered"===i})),n.appendChild(a),n.appendChild(v("button","rbe-mini-btn rbe-list-action rbe-list-nest-action",{type:"button",html:S("indent","Indent list item"),title:"Indent list item",dataset:{action:"indent-list"},disabled:this.readOnly})),n.appendChild(v("button","rbe-mini-btn rbe-list-action rbe-list-nest-action",{type:"button",html:S("outdent","Outdent list item"),title:"Outdent list item",dataset:{action:"outdent-list"},disabled:this.readOnly})),n.appendChild(v("button","rbe-mini-btn rbe-list-action rbe-list-style-action",{type:"button",html:S("list-check","Switch selected item bullet/number"),title:"Switch selected item bullet/number",dataset:{action:"toggle-list-style"},disabled:this.readOnly}));var o=v("div","rbe-list",{dataset:{alignment:le(t.alignment)}});o.style.textAlign=le(t.alignment),(Array.isArray(t.items)&&t.items.length?t.items:[""]).forEach(function(e){o.appendChild(this.createListItem(e))}.bind(this)),r.appendChild(n),r.appendChild(o),r.appendChild(v("button","rbe-icon-btn rbe-row-add rbe-list-add",{type:"button",html:S("circle-plus","Add list item"),title:"Add list item","aria-label":"Add list item",disabled:this.readOnly})),this.updateListMarkers(r),e.appendChild(r)},_e.prototype.createListItem=function(e){var t=v("div","rbe-list-item",{dataset:{level:(e=Le(e)).level,style:e.style||""}});return t.appendChild(v("span","rbe-list-marker",{"aria-hidden":"true"})),t.appendChild(v("span","rbe-list-text rbe-editable",{contentEditable:!this.readOnly,html:e.text,dataset:{placeholder:"List item"}})),t.querySelector(".rbe-list-text").style.textAlign=le(e.alignment),t.appendChild(v("button","rbe-icon-btn rbe-row-remove rbe-list-remove",{type:"button",html:S("trash-can","Remove list item"),title:"Remove list item","aria-label":"Remove list item",disabled:this.readOnly})),t},_e.prototype.renderChecklist=function(e,t){var i=v("div","rbe-checklist-wrap"),r=v("div","rbe-checklist-tools");r.appendChild(v("button","rbe-small-btn rbe-list-nest-action rbe-checklist-action",{type:"button",html:S("indent","Indent checklist item"),title:"Indent checklist item",dataset:{action:"indent-checklist"},disabled:this.readOnly})),r.appendChild(v("button","rbe-small-btn rbe-list-nest-action rbe-checklist-action",{type:"button",html:S("outdent","Outdent checklist item"),title:"Outdent checklist item",dataset:{action:"outdent-checklist"},disabled:this.readOnly}));var n=v("div","rbe-checklist"),a=Array.isArray(t.items)&&t.items.length?t.items:[{text:"",checked:!1}],o=this;a.forEach(function(e){n.appendChild(o.createChecklistItem(e))}),n.appendChild(v("button","rbe-icon-btn rbe-row-add rbe-checklist-add",{type:"button",html:S("circle-plus","Add checklist item"),title:"Add checklist item","aria-label":"Add checklist item",disabled:this.readOnly})),i.appendChild(r),i.appendChild(n),e.appendChild(i)},_e.prototype.createChecklistItem=function(e){var t=v("div","rbe-check-item",{dataset:{level:(e=Ae(e)).level,checked:e.checked?"true":"false"}});return t.appendChild(v("button","rbe-check-toggle",{type:"button",disabled:this.readOnly,dataset:{checked:e.checked?"true":"false"},"aria-pressed":e.checked?"true":"false","aria-label":e.checked?"Mark item incomplete":"Mark item complete"})),t.appendChild(v("span","rbe-check-text rbe-editable",{contentEditable:!this.readOnly,html:e.text,dataset:{placeholder:"Task"}})),t.appendChild(v("button","rbe-icon-btn rbe-row-remove rbe-check-remove",{type:"button",html:S("trash-can","Remove item"),title:"Remove item","aria-label":"Remove item",disabled:this.readOnly})),this.updateChecklistItemIcon(t),t},_e.prototype.renderCode=function(e,t){var i=he(t.language),r=ve(t),n=we(t),a=v("div","rbe-code-wrap");ke(a,{headerColor:r,backgroundColor:n});var o=v("div","rbe-code-header"),l=v("select","rbe-code-language",{title:"Code language",disabled:this.readOnly});l.style.width="176px",c.forEach(function(e){l.appendChild(v("option","",{value:e[0],text:e[1],selected:e[0]===i}))}),o.appendChild(l);var s=v("label","rbe-code-color-label",{title:"Header color"});s.appendChild(v("span","",{text:"Header"})),s.appendChild(v("input","rbe-code-header-color",{type:"color",value:r,disabled:this.readOnly})),o.appendChild(s);var d=v("label","rbe-code-color-label",{title:"Editor background"});d.appendChild(v("span","",{text:"Background"})),d.appendChild(v("input","rbe-code-bg-color",{type:"color",value:n,disabled:this.readOnly})),o.appendChild(d),o.appendChild(v("button","rbe-small-btn rbe-code-format",{type:"button",title:"Format code","aria-label":"Format code",html:S("wand-magic-sparkles","Format code"),disabled:this.readOnly})),o.appendChild(v("button","rbe-small-btn rbe-code-copy",{type:"button",title:"Copy code","aria-label":"Copy code",html:S("copy","Copy code"),disabled:!1})),a.appendChild(o);var u=v("div","rbe-code-editor"),p=v("pre","rbe-code-highlight",{html:Se(t.code||"",i)+"\n"}),h=v("textarea","rbe-code-input",{value:t.code||"",placeholder:"Write code...",spellcheck:!1,disabled:this.readOnly});u.appendChild(p),u.appendChild(h);var m=function(){p.innerHTML=Se(h.value,l.value)+"\n"};h.addEventListener("input",m),h.addEventListener("scroll",function(){p.scrollTop=h.scrollTop,p.scrollLeft=h.scrollLeft}),l.addEventListener("change",m),a.appendChild(u),e.appendChild(a)},_e.prototype.renderImage=function(e,t){var i=v("figure","rbe-image",{dataset:{caption:t.caption||"",alt:t.alt||t.caption||""}}),r=V(t),n=!this.readOnly;if(r.length){var a=this,o=v("div","rbe-image-gallery",{title:this.readOnly?"":"Drop image files here to add more images"});r.forEach(function(e){var t=le(e.alignment),i=v("div","rbe-image-stage"+(n?" is-editable":""),{dataset:{url:e.url,alt:e.alt||"",caption:e.caption||"",alignment:t,displayWidth:e.displayWidth>0?Math.round(e.displayWidth):"",minWidth:e.minWidth>0?Math.round(e.minWidth):"",naturalWidth:e.naturalWidth>0?Math.round(e.naturalWidth):"",naturalHeight:e.naturalHeight>0?Math.round(e.naturalHeight):"",rotation:e.rotation||"",crop:e.crop||"free",cropRatio:e.cropRatio||"",cropX:ee(e.cropX),cropY:ee(e.cropY),cropZoom:te(e.cropZoom)}});i.__rbeMediaItem=B(e);var r=v("img","rbe-image-preview",{src:e.url,alt:e.alt||e.caption||""});function l(){r.naturalWidth&&(i.dataset.naturalWidth=String(r.naturalWidth),i.dataset.naturalHeight=String(r.naturalHeight||""),Number(i.dataset.displayWidth||0)>r.naturalWidth&&(i.dataset.displayWidth=String(r.naturalWidth)),a.applyImageStageState(i))}if(r.addEventListener("load",l),i.appendChild(r),n){var s=v("div","rbe-media-gear-menu");s.appendChild(v("button","rbe-media-gear",{type:"button",title:"Image settings",html:S("gear","Image settings"),"aria-label":"Image settings"})),s.appendChild(v("button","rbe-media-action rbe-media-action-top rbe-image-crop-toggle",{type:"button",title:"Crop image","aria-label":"Crop image","aria-pressed":"custom"===e.crop?"true":"false",html:S("crop-simple","Crop image")})),s.appendChild(v("button","rbe-media-action rbe-media-action-bottom rbe-media-delete rbe-image-delete",{type:"button",title:"Remove image","aria-label":"Remove image",html:S("trash-can","Remove image")})),i.appendChild(s),i.appendChild(v("span","rbe-image-resize-handle",{title:"Drag to resize image"})),["e","s","se"].forEach(function(e){i.appendChild(v("span","rbe-image-crop-handle rbe-image-crop-"+e,{dataset:{cropHandle:e},title:"Drag to crop image"}))})}a.applyImageStageState(i),r.complete&&setTimeout(l,0),o.appendChild(i),n&&a.bindImageStageMouseControls(i)}),this.readOnly||o.appendChild(v("span","rbe-image-replace-hint",{text:"Drop more image files to add"})),i.appendChild(o)}else{var l=v("label","rbe-upload-dropzone rbe-image-dropzone");l.appendChild(v("input","rbe-image-file rbe-upload-input",{type:"file",accept:"image/*",multiple:!0,disabled:this.readOnly})),l.appendChild(v("span","rbe-upload-icon",{html:S("cloud-arrow-up","Upload image")})),l.appendChild(v("strong","",{text:"Drag and drop or click here"})),l.appendChild(v("span","rbe-upload-main",{text:"to upload image"})),l.appendChild(v("small","",{text:"Upload any image from desktop"})),i.appendChild(l)}e.appendChild(i),n&&r.length&&setTimeout(function(){this.updateMediaActionAvailability(i)}.bind(this),0)},_e.prototype.renderTable=function(e,t){var i="center"===t.align||"right"===t.align?t.align:"left",r=Math.min(100,Math.max(40,Number(t.width||100))),n=se(t.borderStyle),a=de(t.borderWidth),o=v("div","rbe-table-wrap",{dataset:{align:i}}),l=v("div","rbe-table-toolbar");[["add-row","table-list","Add row"],["add-col","table-columns","Add column"],["remove-row","trash-can|arrow-right|table-list","Remove row"],["remove-col","trash-can|arrow-right|table-columns","Remove column"],["cell-align-left","align-left","Align cell left"],["cell-align-center","align-center","Align cell center"],["cell-align-right","align-right","Align cell right"]].forEach(function(e){var t=e[1].indexOf("|")>=0?'<span class="rbe-combo-icon" aria-hidden="true">'+e[1].split("|").map(function(t){return S(t,e[2])}).join("")+'</span><span class="rbe-sr-only">'+w(e[2])+"</span>":S(e[1],e[2]);l.appendChild(v("button","rbe-small-btn rbe-table-action",{type:"button",title:e[2],html:t,"aria-label":e[2],dataset:{action:e[0]}}))}),o.appendChild(l);var s=v("div","rbe-table-layout"),d=v("label","rbe-table-width-label");d.appendChild(document.createTextNode("Width")),d.appendChild(v("input","rbe-table-width",{type:"range",min:"40",max:"100",step:"5",value:String(r),disabled:this.readOnly})),d.appendChild(v("span","rbe-table-width-value",{text:r+"%"})),s.appendChild(d);var c=v("label","rbe-table-align-label");c.appendChild(document.createTextNode("Align"));var u=v("select","rbe-table-align",{title:"Table alignment",disabled:this.readOnly});[["left","Left"],["center","Center"],["right","Right"]].forEach(function(e){u.appendChild(v("option","",{value:e[0],text:e[1],selected:e[0]===i}))}),c.appendChild(u),s.appendChild(c);var p=v("label","rbe-table-border-style-label");p.appendChild(document.createTextNode("Border"));var h=v("select","rbe-table-border-style",{title:"Table border style",disabled:this.readOnly});[["solid","Solid"],["dashed","Dashed"],["dotted","Dotted"],["double","Double"]].forEach(function(e){h.appendChild(v("option","",{value:e[0],text:e[1],selected:e[0]===n}))}),p.appendChild(h),s.appendChild(p);var m=v("label","rbe-table-border-width-label");m.appendChild(document.createTextNode("Weight")),m.appendChild(v("input","rbe-table-border-width",{type:"range",min:"1",max:"6",step:"1",value:String(a),disabled:this.readOnly})),m.appendChild(v("span","rbe-table-border-width-value",{text:a+"px"})),s.appendChild(m),o.appendChild(s);var b=v("table","rbe-table");b.style.width=r+"%",b.style.setProperty("--rbe-table-border-width",a+"px"),b.style.setProperty("--rbe-table-border-style",n),(Array.isArray(t.rows)&&t.rows.length?t.rows:[["",""],["",""]]).forEach(function(e,i){var r=v("tr");(e.length?e:[""]).forEach(function(e){var n=v(t.withHeadings&&0===i?"th":"td","",{contentEditable:!this.readOnly,html:A(Be(e))});n.style.textAlign=He(e),r.appendChild(n)}.bind(this)),b.appendChild(r)}.bind(this));var f=v("div","rbe-table-stage");f.appendChild(b),o.appendChild(f);var g=v("label","rbe-table-heading-toggle");g.appendChild(v("input","",{type:"checkbox",checked:!!t.withHeadings,dataset:{role:"table-heading"},disabled:this.readOnly})),g.appendChild(document.createTextNode(" First row is heading")),o.appendChild(g),e.appendChild(o)},_e.prototype.renderEmbed=function(e,t){var i=v("div","rbe-embed"),r=v("div","rbe-media-tools");r.appendChild(v("input","rbe-embed-url",{type:"url",value:t.source||"",placeholder:"Paste YouTube, Vimeo, map, or iframe URL",disabled:this.readOnly})),r.appendChild(v("button","rbe-small-btn rbe-embed-apply",{type:"button",text:"Embed",disabled:this.readOnly})),i.appendChild(r),t.embed?i.appendChild(v("iframe","rbe-embed-frame",{src:t.embed,title:t.service?t.service+" embed":"Embedded content",referrerPolicy:"strict-origin-when-cross-origin",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullscreen:!0})):i.appendChild(v("div","rbe-dropzone",{text:"Paste a URL and press Embed"})),i.appendChild(v("input","rbe-embed-caption",{type:"text",value:t.caption||"",placeholder:"Caption",disabled:this.readOnly})),e.appendChild(i)},_e.prototype.renderCallout=function(e,t){var i=v("div","rbe-callout",{dataset:{tone:t.tone||"info"}}),r=v("select","rbe-callout-tone",{title:"Callout tone",disabled:this.readOnly});["info","success","warning","danger"].forEach(function(e){r.appendChild(v("option","",{value:e,text:e,selected:(t.tone||"info")===e}))}),i.appendChild(r);var n=this.editable("rbe-callout-text",t.text,"Callout text");n.style.textAlign=le(t.alignment),i.appendChild(n),e.appendChild(i)},_e.prototype.renderDelimiter=function(e,t){var i="dashed"===t.style||"dotted"===t.style||"thick"===t.style?t.style:"line",r=v("div","rbe-delimiter-wrap",{dataset:{style:i}});if(r.addEventListener("mouseleave",function(){r.classList.remove("rbe-divider-toolbar-dismissed")}),!this.readOnly){var n=v("div","rbe-divider-toolbar",{role:"toolbar","aria-label":"Divider style"});[["line","minus","Line"],["dashed","grip-lines","Dashed"],["dotted","ellipsis","Dotted"],["thick","bars-staggered","Bold line"]].forEach(function(e){n.appendChild(v("button","rbe-divider-style-btn"+(e[0]===i?" is-active":""),{type:"button",title:e[2],html:S(e[1],e[2]),dataset:{style:e[0]},"aria-pressed":e[0]===i?"true":"false"}))}),r.appendChild(n)}r.appendChild(v("hr","rbe-delimiter")),e.appendChild(r)},_e.prototype.renderButton=function(e,t){var i={primary:["#2563eb","#ffffff"],secondary:["#ffffff","#172033"],success:["#07845f","#ffffff"],dark:["#111827","#ffffff"]},r=i[t.style]||i.primary,n=t.background||r[0],a=t.color||r[1],o=le(t.alignment),l=v("div","rbe-button-block",{dataset:{align:o}}),s=v("div","rbe-button-controls");s.appendChild(v("input","rbe-button-text",{type:"text",value:t.text||"",placeholder:"Button text",disabled:this.readOnly})),s.appendChild(v("input","rbe-button-url",{type:"url",value:t.url||"",placeholder:"https://example.com",disabled:this.readOnly}));var d=v("label","rbe-button-color-label",{title:"Button background"});d.appendChild(v("span","",{text:"Fill"})),d.appendChild(v("input","rbe-button-bg",{type:"color",value:n,disabled:this.readOnly}));var c=v("label","rbe-button-color-label",{title:"Button text color"});c.appendChild(v("span","",{text:"Text"})),c.appendChild(v("input","rbe-button-color",{type:"color",value:a,disabled:this.readOnly}));var u=v("select","rbe-button-align",{title:"Button alignment",disabled:this.readOnly});["left","center","right"].forEach(function(e){u.appendChild(v("option","",{value:e,text:e.charAt(0).toUpperCase()+e.slice(1),selected:e===o}))}),s.appendChild(d),s.appendChild(c),s.appendChild(u),l.appendChild(s);var p=v("div","rbe-button-preview");p.style.textAlign=o,p.appendChild(v("a","rbe-button-link",{href:T(t.url||"")?t.url:"#",target:"_blank",rel:"noopener noreferrer",text:t.text||"Button"})),p.querySelector(".rbe-button-link").style.backgroundColor=n,p.querySelector(".rbe-button-link").style.color=a,l.appendChild(p),e.appendChild(l)},_e.prototype.renderToggle=function(e,t){var r=v("details","rbe-toggle",{open:!1!==t.open}),n=v("summary","rbe-toggle-summary"),a=v("button","rbe-toggle-arrow",{type:"button",title:"Toggle section",html:S("chevron-down","Toggle section"),"aria-expanded":!1!==t.open?"true":"false"}),o=v("input","rbe-toggle-title",{type:"text",value:t.title||"",placeholder:"Toggle title",disabled:this.readOnly});a.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),r.open=!r.open,a.setAttribute("aria-expanded",r.open?"true":"false"),this.changed(!0)}.bind(this)),o.addEventListener("click",function(e){e.stopPropagation()}),o.addEventListener("keydown",function(e){e.stopPropagation()}),n.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation()}),n.addEventListener("keydown",function(e){" "!==e.key&&"Enter"!==e.key||e.preventDefault()}),n.appendChild(a),n.appendChild(o),r.appendChild(n);var l=v("div","rbe-toggle-content"),s=v("div","rbe-toggle-nested-canvas");(Array.isArray(t.blocks)&&t.blocks.length?t.blocks:t.text?[{type:"paragraph",data:{text:t.text}}]:[{type:"paragraph",data:{text:""}}]).forEach(function(e){var t=i.indexOf(e.type)>=0&&"toggle"!==e.type?e.type:"paragraph",r=this.createBlock(t,e.data||this.defaultBlockData(t),e.id||y("block"));r.classList.add("rbe-nested-block"),s.appendChild(r)}.bind(this)),l.appendChild(s),r.appendChild(l),e.appendChild(r)},_e.prototype.renderLinkPreview=function(e,t){var i=v("div","rbe-link-preview"),r=v("div","rbe-link-preview-fields");r.appendChild(v("input","rbe-link-preview-url",{type:"url",value:t.url||"",placeholder:"https://example.com",disabled:this.readOnly})),r.appendChild(v("input","rbe-link-preview-title",{type:"text",value:t.title||"",placeholder:"Link title",disabled:this.readOnly})),r.appendChild(v("input","rbe-link-preview-description",{type:"text",value:t.description||"",placeholder:"Short description",disabled:this.readOnly})),i.appendChild(r);var n=v("a","rbe-link-preview-card",{href:T(t.url||"")?t.url:"#",target:"_blank",rel:"noopener noreferrer"});n.appendChild(v("span","rbe-link-preview-icon",{html:S("arrow-up-right-from-square","Open link")})),n.appendChild(v("strong","rbe-link-preview-card-title",{text:t.title||t.url||"Link preview"})),n.appendChild(v("span","rbe-link-preview-card-description",{text:t.description||"Add a URL, title, and description for this link."})),i.appendChild(n),e.appendChild(i)},_e.prototype.renderRaw=function(e,t){var i=v("div","rbe-raw-wrap");if(i.__rbeRawHtml=t.html||"",!this.readOnly){var r=v("div","rbe-raw-header");r.appendChild(v("strong","",{html:S("file-code","Raw HTML")+"<span>Raw HTML</span>"})),r.appendChild(v("button","rbe-small-btn rbe-raw-format",{type:"button",title:"Format HTML","aria-label":"Format HTML",html:S("wand-magic-sparkles","Format HTML")})),r.appendChild(v("button","rbe-small-btn rbe-raw-copy",{type:"button",title:"Copy HTML","aria-label":"Copy HTML",html:S("copy","Copy HTML")})),i.appendChild(r);var n=v("div","rbe-raw-editor"),a=v("pre","rbe-raw-highlight",{html:Se(t.html||"","html")+"\n"}),o=v("textarea","rbe-raw-input",{value:t.html||"",placeholder:"<div>Trusted HTML</div>",spellcheck:!1,disabled:this.readOnly});n.appendChild(a),n.appendChild(o),o.addEventListener("input",function(){i.__rbeRawHtml=o.value,a.innerHTML=Se(o.value,"html")+"\n"}),o.addEventListener("scroll",function(){a.scrollTop=o.scrollTop,a.scrollLeft=o.scrollLeft}),i.appendChild(n)}var l=v("div","rbe-raw-preview");k(l,t.html),i.appendChild(l),e.appendChild(i)},_e.prototype.renderAttachment=function(e,t){var i=v("div","rbe-attachment"),r=re(t),n=!this.readOnly;if(r.length){var a=v("div","rbe-attachment-grid",{title:this.readOnly?"":"Drop files here to add more attachments"});r.forEach(function(e){var t=Y(e.type,e.name),i=le(e.alignment),r=v("div","rbe-attachment-card"+(n?" is-editable":""),{title:e.name||"Open attachment",dataset:{name:e.name,url:e.url,type:e.type,size:e.size,kind:t,alignment:i}});r.__rbeMediaItem=B(e);var o=v("a","rbe-attachment-card-link",{href:e.url,target:"_blank",rel:"noopener noreferrer",title:e.name||"Open attachment"});if(o.appendChild(v("span","rbe-attachment-card-icon",{html:S(Q(e.type,e.name),"Attachment")})),o.appendChild(v("strong","rbe-attachment-card-type",{text:$(e.type,e.name)})),o.appendChild(v("span","rbe-attachment-card-name",{text:e.name||"Open attachment"})),r.appendChild(o),n){var l=v("div","rbe-attachment-delete-menu");l.appendChild(v("button","rbe-media-action rbe-media-action-bottom rbe-media-delete rbe-attachment-delete",{type:"button",title:"Remove attachment","aria-label":"Remove attachment",html:S("trash-can","Remove attachment")})),r.appendChild(l)}a.appendChild(r)}),this.readOnly||a.appendChild(v("small","rbe-attachment-replace-hint",{text:"Drop more files to add"})),i.appendChild(a)}else{var o=v("label","rbe-upload-dropzone rbe-attachment-dropzone");o.appendChild(v("input","rbe-attachment-file rbe-upload-input",{type:"file",accept:u,multiple:!0,disabled:this.readOnly})),o.appendChild(v("span","rbe-upload-icon",{html:S("cloud-arrow-up","Upload attachment")})),o.appendChild(v("strong","",{text:"Drag and drop or click here"})),o.appendChild(v("span","rbe-upload-main",{text:"to upload attachment"})),o.appendChild(v("small","",{text:"Videos, PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF only"})),i.appendChild(o)}e.appendChild(i),n&&r.length&&setTimeout(function(){this.updateMediaActionAvailability(i)}.bind(this),0)},_e.prototype.handleRootClick=function(e){var t=e.target;if(!(e.detail>1&&t.closest(".rbe-editable, [contenteditable='true'], textarea, input")))if(t.closest(".rbe-editable, [contenteditable='true']"))this.handleEditableActivation(e);else{var i=t.closest(".rbe-media-gear");if(i)return e.preventDefault(),e.stopPropagation(),void this.toggleMediaMenu(i);var r=t.closest(".rbe-media-align");if(r)return e.preventDefault(),e.stopPropagation(),void this.alignMediaItem(r,r.dataset.align);var n=t.closest(".rbe-image-crop-toggle");if(n){e.preventDefault(),e.stopPropagation();var a=n.closest(".rbe-image-stage");return this.setImageCropMode(a,!(a&&a.classList.contains("is-image-crop-mode"))),void this.changed(!0)}var o=t.closest(".rbe-media-delete");if(o)return e.preventDefault(),e.stopPropagation(),void this.removeMediaItem(o);if(t.closest("[data-history-panel='toggle']"))this.toggleHistoryPanel();else{var l=t.closest(".rbe-history-delete");if(l)return e.preventDefault(),e.stopPropagation(),void this.deleteHistoryEntry(Number(l.dataset.historyDelete||-1));if(t.closest(".rbe-history-clear"))return e.preventDefault(),e.stopPropagation(),void this.clearHistory();var s=t.closest(".rbe-history-restore");if(s)this.restoreHistoryEntry(Number(s.dataset.historyRestore||-1));else{var d=t.closest(".rbe-history-btn[data-history]");if(d)"undo"===d.dataset.history?this.undo():this.redo();else{var c=t.closest("[data-rbe-clear='true']");if(c)return e.preventDefault(),e.stopPropagation(),void this.handleClearButton(c);var u=t.closest("[data-rbe-save='true']");if(u)return e.preventDefault(),e.stopPropagation(),void this.handleSaveButton(u);var p=t.closest("[data-rbe-export-toggle='true']");if(p)return e.preventDefault(),e.stopPropagation(),void this.toggleExportMenu(p);var h=t.closest("[data-rbe-export]");if(h)return e.preventDefault(),e.stopPropagation(),void this.handleExport(h.dataset.rbeExport);if(t.closest("[data-rbe-export-html='true']"))return e.preventDefault(),e.stopPropagation(),void this.handleExportHTML();var m=t.closest(".rbe-inline-btn");if(m)this.formatInline(m.dataset.command,m.dataset.value);else{var b=t.closest(".rbe-color-reset");if(b)return e.preventDefault(),e.stopPropagation(),void this.formatInline(b.dataset.command);if(t.closest(".rbe-comment-save"))this.saveCommentFromModal();else if(!t.closest(".rbe-comment-cancel, .rbe-comment-close")||t.closest(".rbe-link-modal"))if(t.closest(".rbe-link-save"))this.saveLinkFromModal();else if(t.closest(".rbe-link-cancel, .rbe-link-close"))this.hideLinkModal();else{var f=t.closest(".rbe-divider-style-btn");if(f){var g=f.closest(".rbe-delimiter-wrap");g&&(g.dataset.style=f.dataset.style||"line",Array.prototype.slice.call(g.querySelectorAll(".rbe-divider-style-btn")).forEach(function(e){var t=e===f;e.classList.toggle("is-active",t),e.setAttribute("aria-pressed",t?"true":"false")}),g.classList.add("rbe-divider-toolbar-dismissed"),f.blur(),this.changed(!0))}else{var y=q(t);if(t.closest(".rbe-toggle-add-block"))this.addToggleNestedBlock(y);else{var v=t.closest(".rbe-block-action");if(v)this.handleBlockAction(y,v.dataset.action);else if(t.closest(".rbe-block-add"))this.showBlockMenu(y,t);else{var w=t.closest(".rbe-menu-item");if(w)this.handleMenuItem(w);else{var k=t.closest(".rbe-checklist-action");if(k)this.applyChecklistNestAction(y,k.dataset.action);else if(t.closest(".rbe-check-toggle"))this.toggleChecklistItem(y,t.closest(".rbe-check-item"));else if(t.closest(".rbe-checklist-add"))this.addChecklistItem(y);else if(t.closest(".rbe-check-remove"))this.removeChecklistItem(y,t.closest(".rbe-check-item"));else if(t.closest(".rbe-code-copy"))this.copyCode(t.closest(".rbe-code-wrap"));else if(t.closest(".rbe-raw-copy"))this.copyRaw(y);else if(t.closest(".rbe-code-format"))this.formatCodeBlock(y);else if(t.closest(".rbe-raw-format"))this.formatRawBlock(y);else if(t.closest(".rbe-image-apply"))this.applyImageUrl(y);else if(t.closest(".rbe-embed-apply"))this.applyEmbed(y);else{var x=t.closest(".rbe-list-action");if(x)this.applyListNestAction(y,x.dataset.action);else if(t.closest(".rbe-list-add"))this.addListItem(y);else if(t.closest(".rbe-list-remove"))this.removeListItem(y,t.closest(".rbe-list-item"));else{var S=t.closest(".rbe-table-action");S&&this.applyTableAction(y,S.dataset.action)}}}}}}}else this.hideCommentModal()}}}}}},_e.prototype.handleRootChange=function(e){var t=e.target;if(!t.dataset||"foreColor"!==t.dataset.command&&"hiliteColor"!==t.dataset.command)if(!t.dataset||"fontFamily"!==t.dataset.command&&"fontSize"!==t.dataset.command){var i=q(t);if(i){if(t.matches(".rbe-heading-level")){var r=i.querySelector(".rbe-heading");r.dataset.level=t.value,r.className="rbe-editable rbe-heading rbe-h"+t.value}if(t.matches(".rbe-list-style")&&this.switchListStyle(i,t.value),t.matches(".rbe-callout-tone"))i.querySelector(".rbe-callout").dataset.tone=t.value;t.matches(".rbe-button-bg, .rbe-button-color, .rbe-button-align")&&this.refreshButtonPreview(i),t.matches(".rbe-code-language, .rbe-code-header-color, .rbe-code-bg-color")&&this.refreshCodeBlock(i),t.matches(".rbe-image-file")&&this.applyImageFiles(i,Array.prototype.slice.call(t.files||[])),t.matches(".rbe-attachment-file")&&this.applyAttachmentFiles(i,Array.prototype.slice.call(t.files||[])),"table-heading"===t.dataset.role&&this.refreshTableHeading(i),t.matches(".rbe-table-align, .rbe-table-width, .rbe-table-border-style, .rbe-table-border-width")&&this.updateTableLayout(i),this.changed()}}else this.formatInline(t.dataset.command,t.value);else this.formatInline(t.dataset.command,t.value)},_e.prototype.handleInput=function(e){if(!this.silent)if("historyUndo"!==e.inputType&&"historyRedo"!==e.inputType){var t=q(e.target);if(t){if(this.handleMarkdownShortcut(t,e.target),this.handleSlashMenu(t,e.target),e.target.matches(".rbe-raw-input"))k(t.querySelector(".rbe-raw-preview"),e.target.value),this.refreshRawHighlight(t);e.target.matches(".rbe-code-input")&&this.refreshCodeBlock(t),e.target.matches(".rbe-code-header-color, .rbe-code-bg-color")&&this.refreshCodeBlock(t),e.target.matches(".rbe-table-width, .rbe-table-border-width")&&this.updateTableLayout(t),e.target.matches(".rbe-button-text, .rbe-button-url, .rbe-button-bg, .rbe-button-color")&&this.refreshButtonPreview(t),e.target.matches(".rbe-link-preview-url, .rbe-link-preview-title, .rbe-link-preview-description")&&this.refreshLinkPreview(t),this.changed()}}else this.restoreCurrentHistorySnapshot()},_e.prototype.handleBeforeInput=function(e){this.silent||this.readOnly||"historyUndo"!==e.inputType&&"historyRedo"!==e.inputType||e.preventDefault()},_e.prototype.restoreCurrentHistorySnapshot=function(){var e=this.history[this.historyIndex];e&&(this.render({blocks:JSON.parse(e)},{silent:!0}),this.updateHistoryButtons())},_e.prototype.handleEditableMouseDown=function(e){if(this.silent||this.readOnly||0!==e.button||1!==e.detail)return!1;var t=e.target.closest(".rbe-editable, [contenteditable='true']");return!(!t||!this.root.contains(t))&&(e.preventDefault(),function(e,t,i){if(e&&window.getSelection)if(e.isContentEditable){e.focus({preventScroll:!0});var r=null;if(document.caretRangeFromPoint)r=document.caretRangeFromPoint(t,i);else if(document.caretPositionFromPoint){var n=document.caretPositionFromPoint(t,i);n&&(r=document.createRange()).setStart(n.offsetNode,n.offset)}if(r&&e.contains(r.startContainer)){r.collapse(!0);var a=window.getSelection();a.removeAllRanges(),a.addRange(r)}else ne(e)}else e.focus()}(t,e.clientX,e.clientY),this.handleEditableActivation(e),!0)},_e.prototype.handleEditableActivation=function(e){if(!this.silent&&!this.readOnly&&e.target.closest(".rbe-editable, [contenteditable='true']")){var t=this.history[this.historyIndex],i=this.historyIndex;t&&setTimeout(function(){this.silent||this.readOnly||this.historyIndex===i&&this.history[i]===t&&JSON.stringify(this.getData().blocks)!==t&&this.restoreCurrentHistorySnapshot()}.bind(this),0)}},_e.prototype.handleKeydown=function(e){if(!this.readOnly){if((e.ctrlKey||e.metaKey)&&"z"===e.key.toLowerCase())return e.preventDefault(),void(e.shiftKey?this.redo():this.undo());if((e.ctrlKey||e.metaKey)&&"y"===e.key.toLowerCase())return e.preventDefault(),void this.redo();if((e.ctrlKey||e.metaKey)&&"k"===e.key.toLowerCase())return e.preventDefault(),void this.formatInline("createLink");if(!this.menu||this.menu.hidden||"ArrowDown"!==e.key&&"ArrowUp"!==e.key&&"Enter"!==e.key&&"Escape"!==e.key){var t=e.target,i=q(t);if(i){if("Enter"===e.key&&!e.shiftKey&&this.shouldCreateNewBlock(t,i)){e.preventDefault(),this.recordHistory(!1);var r=i.parentElement&&i.parentElement.classList.contains("rbe-toggle-nested-canvas")?i.parentElement:null,n=r?this.createBlock("paragraph",{text:""},y("block")):this.insertBlock("paragraph",{text:""},this.indexOfBlock(i)+1);return r&&(n.classList.add("rbe-nested-block"),r.insertBefore(n,i.nextElementSibling),this.scheduleSelectEnhance()),this.focusBlock(n),void this.changed(!0)}if("Backspace"===e.key&&!1!==e.isTrusted&&this.isEmptyEditable(t)&&!this.shouldKeepEmptyEditableBlock(i,t)&&this.canvas.children.length>1){e.preventDefault(),this.recordHistory(!1);var a=i.previousElementSibling||i.nextElementSibling;i.remove(),a&&this.focusBlock(a),this.changed(!0)}}}else this.handleMenuKeyboard(e)}},_e.prototype.handlePaste=function(e){if(!this.readOnly){var t=q(e.target);if(t&&e.clipboardData){var i=Array.prototype.slice.call(e.clipboardData.files||[]).filter(X);if(i.length){e.preventDefault();var r="image"===t.dataset.type?t:this.insertBlock("image",{},this.indexOfBlock(t)+1);this.applyImageFiles(r,i)}else{var n=e.clipboardData.getData("text/plain");if(/^https?:\/\/\S+$/.test(n.trim())&&""===(t.textContent||"").trim())return e.preventDefault(),void this.transformBlock(t,"embed",P(n.trim()));if(n&&n.indexOf("\n\n")>-1&&"paragraph"===t.dataset.type&&""===(t.textContent||"").trim()){e.preventDefault();var a=M(n),o=this.indexOfBlock(t);t.remove(),a.forEach(function(e,t){this.insertBlock(e.type,e.data,o+t,e.id)}.bind(this)),this.changed()}}}}},_e.prototype.handleDrop=function(e){if(!this.readOnly){var t=Array.prototype.slice.call(e.dataTransfer&&e.dataTransfer.files?e.dataTransfer.files:[]);if(t.length){var i=q(e.target)||this.getCurrentBlock(),r=t[0],n=t.filter(X),a=t.filter(K);if(e.preventDefault(),i&&"attaches"===i.dataset.type)return!a.length||X(r)?void alert("Attachments only allow videos and documents such as PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF. Please use the Image block for images."):void this.applyAttachmentFiles(i,a);if(i&&"image"===i.dataset.type)return n.length?void this.applyImageFiles(i,n):void alert("The Image block only accepts image files.");if(n.length){var o=this.insertBlock("image",{},i?this.indexOfBlock(i)+1:this.canvas.children.length);this.applyImageFiles(o,n)}else if(a.length){var l=this.insertBlock("attaches",{},i?this.indexOfBlock(i)+1:this.canvas.children.length);this.applyAttachmentFiles(l,a)}else alert("Attachments only allow videos and documents such as PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF. Please use the Image block for images.")}}},_e.prototype.handleSelectionChange=function(){if(this.root&&!this.readOnly){var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){var t=e.anchorNode;if(this.root.contains(t)){var i=e.getRangeAt(0);this.savedRange=i.cloneRange();var r=i.getBoundingClientRect();if(r&&(r.width||r.height)){if(this.inlineToolbar.hidden=!1,this.inlineToolbar.style.transform="none",this.inlineToolbarPinnedUntil&&Date.now()<this.inlineToolbarPinnedUntil&&this.inlineToolbarPinnedPosition)return this.inlineToolbar.style.left=this.inlineToolbarPinnedPosition.left,this.inlineToolbar.style.top=this.inlineToolbarPinnedPosition.top,void this.updateInlineToolbarState();this.inlineToolbarPinnedPosition=null;var n=this.inlineToolbar.getBoundingClientRect(),a=r.left+r.width/2-n.width/2,o=q(t),l=o&&o.querySelector(".rbe-block-body")?o.querySelector(".rbe-block-body").getBoundingClientRect():null,s=this.canvas?this.canvas.getBoundingClientRect():null,d=l?Math.max(8,l.left):s?Math.max(8,s.left):8,c=s?Math.min(window.innerWidth-8,s.right):window.innerWidth-8;l&&(c=Math.min(c,l.right));var u=Math.max(d,c-n.width),p=Math.min(u,Math.max(d,a));this.inlineToolbar.style.left=p+"px",this.inlineToolbar.style.top=Math.max(8,r.top-n.height-8)+"px",this.updateInlineToolbarState()}}else this.inlineToolbar.hidden=!0}else{if(this.shouldKeepInlineToolbarOpen())return;this.inlineToolbar.hidden=!0}}},_e.prototype.keepInlineToolbarOpen=function(){this.inlineToolbarStickyUntil=Date.now()+900},_e.prototype.pinInlineToolbarPosition=function(){this.inlineToolbar&&!this.inlineToolbar.hidden&&(this.inlineToolbarPinnedPosition={left:this.inlineToolbar.style.left||this.inlineToolbar.getBoundingClientRect().left+"px",top:this.inlineToolbar.style.top||this.inlineToolbar.getBoundingClientRect().top+"px"},this.inlineToolbarPinnedUntil=Date.now()+700)},_e.prototype.shouldKeepInlineToolbarOpen=function(){return this.inlineToolbar&&!this.inlineToolbar.hidden&&Date.now()<this.inlineToolbarStickyUntil},_e.prototype.updateInlineToolbarState=function(){if(this.inlineToolbar&&!this.inlineToolbar.hidden){var e=this.getSelectionEditable(),t=window.getSelection&&window.getSelection(),i=t&&t.anchorNode?t.anchorNode:null;i=i&&i.nodeType===Node.TEXT_NODE?i.parentElement:i;var r=e&&e.style&&e.style.textAlign?le(e.style.textAlign):"left";Array.prototype.slice.call(this.inlineToolbar.querySelectorAll(".rbe-inline-btn")).forEach(function(e){var i=e.dataset.command,n=!1;if("bold"===i||"italic"===i||"underline"===i||"strikeThrough"===i)try{n=document.queryCommandState(i)}catch(e){n=!1}if("justifyLeft"===i&&(n="left"===r),"justifyCenter"===i&&(n="center"===r),"justifyRight"===i&&(n="right"===r),"formatBlock"===i&&"blockquote"===e.dataset.value){var a=t&&t.anchorNode?t.anchorNode:null;n=!!((a=a&&a.nodeType===Node.TEXT_NODE?a.parentElement:a)&&a.closest&&a.closest(".rbe-inline-quote"))}e.classList.toggle("is-active",!!n),e.setAttribute("aria-pressed",n?"true":"false")});for(var n=e,a=i;a&&e&&a!==e&&e.contains(a);){if(a.style&&(a.style.fontFamily||a.style.fontSize||a.style.color||a.style.backgroundColor)){n=a;break}a=a.parentElement}var o=n?window.getComputedStyle(n):null,l=this.inlineToolbar.querySelector(".rbe-font-family-select"),s=this.inlineToolbar.querySelector(".rbe-font-size-select");if(l&&o&&o.fontFamily){var d=o.fontFamily.toLowerCase(),c=Array.prototype.slice.call(l.options).find(function(e){var t=String(e.value||"").toLowerCase(),i=t.split(",")[0].replace(/"/g,"").trim();return d===t||i&&d.indexOf(i)>=0||d.indexOf(e.text.toLowerCase())>=0});Ie(l,c?c.value:"Arial, sans-serif")}if(function(e,t){if(e){e.hidden=!t,e.style.display=t?"":"none";var i=e.nextElementSibling&&e.nextElementSibling.classList&&e.nextElementSibling.classList.contains("select2-container")?e.nextElementSibling:null;i&&(i.style.display=t?"":"none")}}(s,!!!(e&&e.classList&&e.classList.contains("rbe-heading"))),s&&o&&o.fontSize){var u=String(Math.round(parseFloat(o.fontSize)||16));Ie(s,Array.prototype.slice.call(s.options).some(function(e){return e.value===u})?u:"16")}}},_e.prototype.handleMenuKeyboard=function(e){var t=Array.prototype.slice.call(this.menu.querySelectorAll(".rbe-menu-item"));if(t.length){var i=this.menu.querySelector(".is-active"),r=Math.max(0,t.indexOf(i));return"Escape"===e.key?(e.preventDefault(),void this.hideMenus()):"ArrowDown"===e.key||"ArrowUp"===e.key?(e.preventDefault(),i&&i.classList.remove("is-active"),t[r="ArrowDown"===e.key?(r+1)%t.length:(r-1+t.length)%t.length].classList.add("is-active"),void t[r].scrollIntoView({block:"nearest"})):void("Enter"===e.key&&(e.preventDefault(),(i||t[0]).click()))}},_e.prototype.handleMarkdownShortcut=function(e,t){if(t.isContentEditable&&"paragraph"===e.dataset.type)for(var i=t.textContent||"",r=[[/^#\s$/,"heading",{level:1,text:""}],[/^##\s$/,"heading",{level:2,text:""}],[/^###\s$/,"heading",{level:3,text:""}],[/^>\s$/,"quote",{text:"",caption:""}],[/^-\s$/,"list",{style:"unordered",items:[""]}],[/^1\.\s$/,"list",{style:"ordered",items:[""]}],[/^\[\]\s$/,"checklist",{items:[{text:"",checked:!1}]}],[/^```\s?$/,"code",{code:"",language:""}]],n=0;n<r.length;n+=1)if(r[n][0].test(i))return this.transformBlock(e,r[n][1],r[n][2]),void this.focusBlock(e)},_e.prototype.handleSlashMenu=function(e,t){if(t.isContentEditable&&"paragraph"===e.dataset.type){var i=(t.textContent||"").trim();0===i.indexOf("/")?(this.slashBlock=e,this.showToolMenu(e,t,i.slice(1).toLowerCase(),!0)):this.slashBlock===e&&(this.hideMenus(),this.slashBlock=null)}},_e.prototype.handleMenuItem=function(e){var t=e.dataset.action,i=e.dataset.type,r=this.currentMenuBlock||this.slashBlock||this.getCurrentBlock(),n=this.slashBlock;if(this.hideMenus(),r||"insert"===t)if("insert"!==t)if("convert"!==t)this.handleBlockAction(r,t);else{var a=this.getPremiumFeatureForTool(i);if(!this.canUseTool(i))return void this.showPremiumLocked(a);var o=function(){this.transformBlock(r,i,this.dataFromBlockForType(r,i)),this.focusBlock(r),this.changed(!0)}.bind(this);a&&"ai"!==a?this.consumePremiumUsage(a,{action:"convert",source:"editor_menu",tool:i}).then(o).catch(function(e){this.showToast(e&&e.message?e.message:"Premium usage limit check failed.","warning")}.bind(this)):o()}else{var l=this.getPremiumFeatureForTool(i);if(!this.canUseTool(i))return void this.showPremiumLocked(l);var s=function(){var e=r?this.indexOfBlock(r)+1:this.canvas.children.length,t=r&&r.parentElement&&r.parentElement.classList.contains("rbe-toggle-nested-canvas")?r.parentElement:null;this.recordHistory(!1),n&&(t=n.parentElement&&n.parentElement.classList.contains("rbe-toggle-nested-canvas")?n.parentElement:t,e=this.indexOfBlock(n)+1,this.clearSlashCommand(n));var a=t?this.createBlock(i,this.defaultBlockData(i),y("block")):this.insertBlock(i,this.defaultBlockData(i),e);t&&(a.classList.add("rbe-nested-block"),t.insertBefore(a,(n||r).nextElementSibling),this.scheduleSelectEnhance()),this.focusBlock(a),this.changed(!0)}.bind(this);l&&"ai"!==l?this.consumePremiumUsage(l,{action:"insert",source:"editor_menu",tool:i}).then(s).catch(function(e){this.showToast(e&&e.message?e.message:"Premium usage limit check failed.","warning")}.bind(this)):s()}},_e.prototype.clearSlashCommand=function(e){var t=e&&e.querySelector(".rbe-paragraph");t&&(0===(t.textContent||"").trim().indexOf("/")&&(t.innerHTML=""))},_e.prototype.handleBlockAction=function(e,t){if(e&&t){var i=e.parentElement&&e.parentElement.classList.contains("rbe-toggle-nested-canvas")?e.parentElement:null,r=i||this.canvas;if("duplicate"===t){this.recordHistory(!1);var n=this.serializeBlock(e);n.id=y("block");var a=i?this.createBlock(n.type,n.data,n.id):this.insertBlock(n.type,n.data,this.indexOfBlock(e)+1,n.id);return i&&(a.classList.add("rbe-nested-block"),i.insertBefore(a,e.nextElementSibling),this.scheduleSelectEnhance()),this.focusBlock(a),void this.changed(!0)}if("delete"===t){this.recordHistory(!1);var o=e.previousElementSibling||e.nextElementSibling;if(e.remove(),!r.children.length){var l=this.createBlock("paragraph",{},y("block"));i&&l.classList.add("rbe-nested-block"),r.appendChild(l)}return o&&this.focusBlock(o),void this.changed(!0)}if("move-up"===t||"move-down"===t){var s="attaches"===e.dataset.type;s||this.recordHistory(!1);var d="move-up"===t?e.previousElementSibling:e.nextElementSibling;d&&"move-up"===t&&r.insertBefore(e,d),d&&"move-down"===t&&r.insertBefore(d,e),s?(e.scrollIntoView({block:"nearest"}),this.changed()):(this.focusBlock(e),this.changed(!0))}}},_e.prototype.addToggleNestedBlock=function(e){if(e&&"toggle"===e.dataset.type&&!this.readOnly){var t=e.querySelector(".rbe-toggle-nested-canvas"),r=e.querySelector(".rbe-toggle-block-type");if(t&&r){var n=i.indexOf(r.value)>=0&&"toggle"!==r.value?r.value:"paragraph";if(this.canUseTool(n)){this.recordHistory(!1);var a=this.createBlock(n,this.defaultBlockData(n),y("block"));a.classList.add("rbe-nested-block"),t.appendChild(a),this.scheduleSelectEnhance(),this.focusBlock(a),this.changed(!0)}else this.showPremiumLocked(this.getPremiumFeatureForTool(n))}}},_e.prototype.showBlockMenu=function(e,t){this.currentMenuBlock=e,this.slashBlock=null,this.menu.innerHTML="";var i=v("div","rbe-menu-section");i.appendChild(v("div","rbe-menu-title",{text:"Insert block"})),this.availableTools.forEach(function(e){i.appendChild(this.createMenuButton(e,"insert"))}.bind(this)),this.menu.appendChild(i),this.positionMenu(t||e)},_e.prototype.showToolMenu=function(e,t,i,n){this.currentMenuBlock=e,this.menu.innerHTML="";var a=v("div","rbe-menu-section"),o=this.availableTools.filter(function(e){var t=r[e];return!i||t.label.toLowerCase().indexOf(i)>=0||e.indexOf(i)>=0});o.length?o.forEach(function(e,t){var i=this.createMenuButton(e,"insert");0===t&&i.classList.add("is-active"),a.appendChild(i)}.bind(this)):a.appendChild(v("div","rbe-empty-menu",{text:"No blocks found"})),this.menu.appendChild(a),this.positionMenu(t||e),n&&(this.slashBlock=e)},_e.prototype.createMenuButton=function(e,t){var i=r[e]||r.paragraph,n=this.getPremiumFeatureForTool(e),a=!!n&&!this.isPremiumFeatureEnabled(n);return v("button","rbe-menu-item"+(a?" is-premium-locked":""),{type:"button",title:a?this.premiumMessage(n):i.label,"data-premium-locked":a?"true":"false",dataset:{type:e,action:t,premiumFeature:n||""},html:'<span class="rbe-menu-icon">'+S(i.icon,i.label)+"</span><span><strong>"+w(i.label)+(a?'<em class="rbe-premium-badge">Premium</em>':"")+"</strong><small>"+w(a?this.premiumMessage(n):i.hint)+"</small></span>"})},_e.prototype.positionMenu=function(e){var t=e.getBoundingClientRect?e.getBoundingClientRect():this.root.getBoundingClientRect();this.menu.hidden=!1;var i=Math.min(340,Math.max(260,window.innerWidth-24)),r=Math.max(12,Math.min(t.left,window.innerWidth-i-12));this.menu.style.width=i+"px",this.menu.style.maxHeight="min(440px, calc(100vh - 24px))";var n=Math.max(0,window.innerHeight-t.bottom-12),a=Math.max(0,t.top-12),o=n<260&&a>n,l=o?a:n,s=Math.max(180,Math.min(440,l-6,window.innerHeight-24));this.menu.style.maxHeight=s+"px";var d=Math.min(this.menu.scrollHeight||s,s),c=o?t.top-d-6:t.bottom+6;c=Math.max(12,Math.min(c,window.innerHeight-d-12)),this.menu.dataset.placement=o?"top":"bottom",this.menu.style.left=r+"px",this.menu.style.top=c+"px"},_e.prototype.hideMenus=function(){this.menu.hidden=!0,this.currentMenuBlock=null,this.slashBlock=null},_e.prototype.formatInline=function(e,t){this.pinInlineToolbarPosition(),this.restoreSelection();var i=window.getSelection();if(i&&0!==i.rangeCount){if("formatBlock"===e&&"blockquote"===t)return this.quoteSelection(),this.noteHistory("Text","Quoted"),this.changed(),void this.updateInlineToolbarState();if("removeFormat"===e)return this.clearFormattingPreserveTypography(),this.noteHistory("Text","Formatting cleared"),this.changed(),void this.updateInlineToolbarState();if("justifyLeft"===e||"justifyCenter"===e||"justifyRight"===e){var r=this.getSelectionEditable();if(!r)return;var n="justifyCenter"===e?"center":"justifyRight"===e?"right":"left";return r.style.textAlign=n,this.noteHistory("Text","Aligned "+n),this.changed(!0),void this.updateInlineToolbarState()}if("createLink"!==e){if("fontFamily"===e){if(!t)return;return this.wrapSelectionWithSpan({fontFamily:t}),this.noteHistory("Text","Font family changed"),this.changed(),void this.updateInlineToolbarState()}if("fontSize"===e){if(!t)return;var a=this.getSelectionEditable();if(a&&a.classList&&a.classList.contains("rbe-heading"))return;return this.applyFontSizeToSelection(t),this.noteHistory("Text","Font size changed"),this.changed(),void this.updateInlineToolbarState()}if("foreColorReset"===e||"hiliteColorReset"===e)return this.resetSelectionInlineStyle("foreColorReset"===e?"color":"highlight"),this.noteHistory("Text","foreColorReset"===e?"Text color reset":"Highlight reset"),this.changed(),void this.updateInlineToolbarState();if("foreColor"===e||"hiliteColor"===e){var o=L(t);if(!o)return;return this.wrapSelectionWithSpan("foreColor"===e?{color:o}:{backgroundColor:o}),this.noteHistory("Text","foreColor"===e?"Text color changed":"Highlight changed"),this.changed(),void this.updateInlineToolbarState()}if("insertComment"!==e){if("removeComment"===e)return this.removeSelectedComment(),this.noteHistory("Comment","Removed"),this.changed(),void this.updateInlineToolbarState();document.execCommand(e,!1,t||null),this.changed(),this.updateInlineToolbarState()}else this.openCommentModal()}else this.openLinkModal()}},_e.prototype.quoteSelection=function(){var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){var t=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,i=t&&t.closest?t.closest(".rbe-inline-quote"):null;if(i&&this.root.contains(i))this.unwrapInlineQuote(i);else{var r=e.getRangeAt(0),n=document.createElement("span");n.className="rbe-inline-quote",n.style.fontStyle="italic",n.appendChild(document.createTextNode('"')),n.appendChild(r.extractContents()),n.appendChild(document.createTextNode('"')),r.insertNode(n),e.removeAllRanges();var a=document.createRange();a.selectNodeContents(n),e.addRange(a),this.savedRange=a.cloneRange()}}},_e.prototype.openCommentModal=function(){if(this.commentModal){this.restoreSelection();var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){this.savedRange=e.getRangeAt(0).cloneRange(),this.commentModal.hidden=!1,this.commentModal.classList.add("show");var t=this.commentModal.querySelector(".rbe-comment-input");t&&(t.value="",setTimeout(function(){t.focus()},0))}}},_e.prototype.hideCommentModal=function(){this.commentModal&&(this.commentModal.hidden=!0,this.commentModal.classList.remove("show"))},_e.prototype.openLinkModal=function(){if(this.linkModal){this.restoreSelection();var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){this.savedRange=e.getRangeAt(0).cloneRange(),this.linkModal.hidden=!1,this.linkModal.classList.add("show");var t=this.linkModal.querySelector(".rbe-link-input");t&&(t.value="",t.classList.remove("is-invalid"),setTimeout(function(){t.focus()},0))}}},_e.prototype.hideLinkModal=function(){this.linkModal&&(this.linkModal.hidden=!0,this.linkModal.classList.remove("show"))},_e.prototype.saveLinkFromModal=function(){var e=this.linkModal&&this.linkModal.querySelector(".rbe-link-input"),t=e?e.value.trim():"";t&&T(t)?(this.applyLinkToSelection(t),this.noteHistory("Text","Link added"),this.hideLinkModal(),this.changed(),this.updateInlineToolbarState()):e&&e.classList.add("is-invalid")},_e.prototype.applyLinkToSelection=function(e){this.restoreSelection();var t=window.getSelection();if(t&&0!==t.rangeCount&&!t.isCollapsed){var i=t.anchorNode&&t.anchorNode.nodeType===Node.TEXT_NODE?t.anchorNode.parentElement:t.anchorNode,r=i&&i.closest?i.closest("a"):null;if(r&&this.root.contains(r))return r.href=e,r.target="_blank",r.rel="noopener noreferrer",void(this.savedRange=t.getRangeAt(0).cloneRange());var n=t.getRangeAt(0),a=document.createElement("a");a.href=e,a.target="_blank",a.rel="noopener noreferrer",a.appendChild(n.extractContents()),n.insertNode(a),t.removeAllRanges();var o=document.createRange();o.selectNodeContents(a),t.addRange(o),this.savedRange=o.cloneRange()}},_e.prototype.saveCommentFromModal=function(){var e=this.commentModal&&this.commentModal.querySelector(".rbe-comment-input"),t=e?e.value.trim():"";t&&(this.restoreSelection(),this.wrapSelectionWithSpan(null,{class:"rbe-comment-mark",title:t,"data-rbe-comment":t,"data-rbe-comment-id":y("comment")}),this.noteHistory("Comment","Added"),this.hideCommentModal(),this.changed(),this.updateInlineToolbarState())},_e.prototype.removeSelectedComment=function(){this.restoreSelection();var e=window.getSelection();if(e&&0!==e.rangeCount){var t=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,i=t&&t.closest?t.closest(".rbe-comment-mark"):null;if(!i||!this.root.contains(i)){var r=e.getRangeAt(0);i=Array.prototype.slice.call(this.root.querySelectorAll(".rbe-comment-mark")).filter(function(e){return r.intersectsNode(e)})[0]}if(i){for(;i.firstChild;)i.parentNode.insertBefore(i.firstChild,i);i.remove()}}},_e.prototype.clearFormattingPreserveTypography=function(){var e=window.getSelection();if(e&&0!==e.rangeCount&&!e.isCollapsed){var t=this.getSelectionEditable(),i=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,r=i&&i.nodeType===Node.ELEMENT_NODE?i:t,n=r?window.getComputedStyle(r):null,a=n&&n.fontFamily?n.fontFamily:"Arial, sans-serif",o=n&&n.fontSize?n.fontSize:"16px";this.removeInlineQuotesInSelection(),document.execCommand("removeFormat",!1,null),this.wrapSelectionWithSpan({fontFamily:a,fontSize:o})}},_e.prototype.unwrapInlineQuote=function(e){if(e&&e.parentNode){for(e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(e.firstChild.textContent=e.firstChild.textContent.replace(/^"/,"")),e.lastChild&&e.lastChild.nodeType===Node.TEXT_NODE&&(e.lastChild.textContent=e.lastChild.textContent.replace(/"$/,""));e.firstChild;)e.parentNode.insertBefore(e.firstChild,e);e.remove()}},_e.prototype.removeInlineQuotesInSelection=function(){var e=window.getSelection();if(e&&0!==e.rangeCount){var t=e.getRangeAt(0),i=e.anchorNode&&e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode,r=[],n=i&&i.closest?i.closest(".rbe-inline-quote"):null;n&&this.root.contains(n)&&r.push(n),Array.prototype.slice.call(this.root.querySelectorAll(".rbe-inline-quote")).forEach(function(e){try{t.intersectsNode(e)&&r.indexOf(e)<0&&r.push(e)}catch(e){return}}),r.forEach(this.unwrapInlineQuote.bind(this))}},_e.prototype.resetSelectionInlineStyle=function(e){var t=window.getSelection();if(t&&0!==t.rangeCount&&!t.isCollapsed){var i=this.getSelectionEditable();if(i){var r=t.getRangeAt(0),n="color"===e?["color"]:["backgroundColor","background"];Array.prototype.slice.call(i.querySelectorAll("[style], font")).forEach(function(e){(function(e){try{return r.intersectsNode(e)}catch(e){return!1}})(e)&&l(e)});for(var a=t.anchorNode&&t.anchorNode.nodeType===Node.TEXT_NODE?t.anchorNode.parentElement:t.anchorNode;a&&a!==i.parentElement&&(a.nodeType===Node.ELEMENT_NODE&&i.contains(a)&&l(a),a!==i);)a=a.parentElement;for(var o=t.focusNode&&t.focusNode.nodeType===Node.TEXT_NODE?t.focusNode.parentElement:t.focusNode;o&&o!==i.parentElement&&(o.nodeType===Node.ELEMENT_NODE&&i.contains(o)&&l(o),o!==i);)o=o.parentElement;this.savedRange=t.getRangeAt(0).cloneRange()}}function l(t){t&&t.style&&(n.forEach(function(e){t.style[e]=""}),t.getAttribute("style")||t.removeAttribute("style"),"color"===e&&t.tagName&&"font"===t.tagName.toLowerCase()&&t.removeAttribute("color"))}},_e.prototype.applyFontSizeToSelection=function(e){var t=Number(e);if(t&&!(t<1)){var i=window.getSelection();if(i&&0!==i.rangeCount&&!i.isCollapsed){var r=this.getSelectionEditable();if(r){var n=i.getRangeAt(0),a=[];Array.prototype.slice.call(r.querySelectorAll("[style]")).forEach(function(e){(function(e){try{return n.intersectsNode(e)}catch(e){return!1}})(e)&&s(e)});for(var o=i.anchorNode&&i.anchorNode.nodeType===Node.TEXT_NODE?i.anchorNode.parentElement:i.anchorNode;o&&o!==r.parentElement&&(r.contains(o)&&s(o),o!==r);)o=o.parentElement;for(var l=i.focusNode&&i.focusNode.nodeType===Node.TEXT_NODE?i.focusNode.parentElement:i.focusNode;l&&l!==r.parentElement&&(r.contains(l)&&s(l),l!==r);)l=l.parentElement;a.forEach(function(e){e.style.fontSize="",e.getAttribute("style")||e.removeAttribute("style")}),16!==t?this.wrapSelectionWithSpan({fontSize:t+"px"}):this.savedRange=i.getRangeAt(0).cloneRange()}}}function s(e){e&&e.nodeType===Node.ELEMENT_NODE&&e.style&&e.style.fontSize&&a.indexOf(e)<0&&a.push(e)}},_e.prototype.restoreSelection=function(){if(this.savedRange&&window.getSelection){var e=window.getSelection();e.removeAllRanges(),e.addRange(this.savedRange)}},_e.prototype.wrapSelectionWithSpan=function(e,t){var i=window.getSelection();if(i&&0!==i.rangeCount&&!i.isCollapsed){var r=i.getRangeAt(0),n=document.createElement("span");Object.keys(e||{}).forEach(function(t){n.style[t]=e[t]}),Object.keys(t||{}).forEach(function(e){n.setAttribute(e,t[e])}),n.appendChild(r.extractContents()),r.insertNode(n),i.removeAllRanges();var a=document.createRange();a.selectNodeContents(n),i.addRange(a),this.savedRange=a.cloneRange()}},_e.prototype.getSelectionEditable=function(){var e=window.getSelection();if(!e||!e.anchorNode||!this.root.contains(e.anchorNode))return null;var t=e.anchorNode.nodeType===Node.TEXT_NODE?e.anchorNode.parentElement:e.anchorNode;return t&&t.closest?t.closest(".rbe-editable, .rbe-table td, .rbe-table th"):null},_e.prototype.shouldCreateNewBlock=function(e,t){return!!e.isContentEditable&&("paragraph"===t.dataset.type||"heading"===t.dataset.type||"quote"===t.dataset.type||"callout"===t.dataset.type)},_e.prototype.isEmptyEditable=function(e){return!(!e||!e.isContentEditable)&&""===(e.textContent||"").trim()},_e.prototype.shouldKeepEmptyEditableBlock=function(e,t){return!(!e||!t)&&(!("quote"!==e.dataset.type||!t.closest(".rbe-quote-text"))||!("callout"!==e.dataset.type||!t.closest(".rbe-callout .rbe-editable")))},_e.prototype.defaultBlockData=function(e){return"heading"===e?{text:"",level:2}:"quote"===e?{text:"",caption:""}:"list"===e?{style:"unordered",items:[""]}:"checklist"===e?{items:[{text:"",checked:!1}]}:"code"===e?{code:"",language:"plaintext",headerColor:"#e5e7eb",backgroundColor:"#f3f4f6"}:"image"===e?{url:"",caption:""}:"table"===e?{rows:[["",""],["",""]],withHeadings:!1}:"embed"===e?{source:"",embed:"",caption:""}:"callout"===e?{text:"",tone:"info"}:"delimiter"===e?{style:"line"}:"button"===e?{text:"Button",url:"",background:"#2563eb",color:"#ffffff",alignment:"left"}:"toggle"===e?{title:"",blocks:[{type:"paragraph",data:{text:""}}],open:!0}:"linkPreview"===e?{url:"",title:"",description:""}:"raw"===e?{html:""}:"attaches"===e?{name:"",url:"",size:0}:n[e]&&"function"==typeof n[e].defaultData?n[e].defaultData.call(this,Pe()):n[e]&&n[e].defaultData?Object.assign({},n[e].defaultData):{text:""}},_e.prototype.dataFromBlockForType=function(e,t){var i="",r=e.querySelector(".rbe-editable");return r&&(i=r.innerHTML),"heading"===t?{text:i,level:2}:"quote"===t?{text:i,caption:""}:"list"===t?{style:"unordered",items:[i||""]}:"checklist"===t?{items:[{text:i||"",checked:!1}]}:"code"===t?{code:(r?r.textContent:e.textContent||"").trim(),language:"plaintext",headerColor:"#e5e7eb",backgroundColor:"#f3f4f6"}:"callout"===t?{text:i,tone:"info"}:"button"===t?{text:i||"Button",url:"",background:"#2563eb",color:"#ffffff",alignment:"left"}:"toggle"===t?{title:i||"",blocks:[{type:"paragraph",data:{text:""}}],open:!0}:"linkPreview"===t?{url:"",title:i||"",description:""}:n[t]&&"function"==typeof n[t].fromBlock?n[t].fromBlock.call(this,e,i,Pe()):Object.assign(this.defaultBlockData(t),{text:i})},_e.prototype.insertBlock=function(e,t,r,n){if(!(this.silent||this.renderingData||this.readOnly||this.canUseTool(e)))return this.showPremiumLocked(this.getPremiumFeatureForTool(e)),null;this.availableTools.indexOf(e)<0&&i.indexOf(e)>=0&&this.availableTools.push(e);var a=this.createBlock(e,t||this.defaultBlockData(e),n),o=Array.prototype.slice.call(this.canvas.children);return"number"!=typeof r||r<0||r>=o.length?this.canvas.appendChild(a):this.canvas.insertBefore(a,o[r]),this.scheduleSelectEnhance(),a},_e.prototype.transformBlock=function(e,t,i){if(!this.silent&&!this.readOnly&&!this.canUseTool(t))return this.showPremiumLocked(this.getPremiumFeatureForTool(t)),e;e.dataset.id;e.dataset.type=t;var r=e.querySelector(".rbe-block-body");return this.renderBlockBody(r,t,i||this.defaultBlockData(t)),this.scheduleSelectEnhance(),e},_e.prototype.refreshButtonPreview=function(e){if(e){var t=e.querySelector(".rbe-button-text"),i=e.querySelector(".rbe-button-url"),r=(e.querySelector(".rbe-button-bg")||{}).value||"#2563eb",n=(e.querySelector(".rbe-button-color")||{}).value||"#ffffff",a=le((e.querySelector(".rbe-button-align")||{}).value||"left"),o=e.querySelector(".rbe-button-block"),l=e.querySelector(".rbe-button-preview"),s=e.querySelector(".rbe-button-link");o&&(o.dataset.align=a),l&&(l.style.textAlign=a),s&&(s.className="rbe-button-link",s.style.backgroundColor=r,s.style.color=n,s.textContent=t&&t.value||"Button",s.href=T(i&&i.value||"")?i.value:"#")}},_e.prototype.refreshLinkPreview=function(e){if(e){var t=(e.querySelector(".rbe-link-preview-url")||{}).value||"",i=(e.querySelector(".rbe-link-preview-title")||{}).value||"",r=(e.querySelector(".rbe-link-preview-description")||{}).value||"",n=e.querySelector(".rbe-link-preview-card"),a=e.querySelector(".rbe-link-preview-card-title"),o=e.querySelector(".rbe-link-preview-card-description");n&&(n.href=T(t)?t:"#"),a&&(a.textContent=i||t||"Link preview"),o&&(o.textContent=r||"Add a URL, title, and description for this link.")}},_e.prototype.indexOfBlock=function(e){return Array.prototype.slice.call(this.canvas.children).indexOf(e)},_e.prototype.focusBlock=function(e){if(e){var t=e.querySelector("[contenteditable='true'], textarea, input:not([type='hidden'])");t&&setTimeout(function(){ne(t)},0)}},_e.prototype.getCurrentBlock=function(){var e=window.getSelection();return e&&e.anchorNode&&this.root.contains(e.anchorNode)?q(e.anchorNode):this.root.contains(document.activeElement)?q(document.activeElement):this.canvas.lastElementChild},_e.prototype.getDragAfterElement=function(e){return Array.prototype.slice.call(this.canvas.children).filter(function(e){return e.classList&&e.classList.contains("rbe-block")&&!e.classList.contains("rbe-is-dragging")}).reduce(function(t,i){var r=i.getBoundingClientRect(),n=e-r.top-r.height/2;return n<0&&n>t.offset?{offset:n,element:i}:t},{offset:Number.NEGATIVE_INFINITY,element:null}).element},_e.prototype.switchListStyle=function(e,t){var i=e.querySelector(".rbe-list-wrap");i&&(i.dataset.style=t),Array.prototype.slice.call(e.querySelectorAll(".rbe-list-item")).forEach(function(e){e.dataset.style=""}),this.updateListMarkers(i)},_e.prototype.copyCode=function(e){if(e&&navigator.clipboard){var t=e.querySelector(".rbe-code-input");navigator.clipboard.writeText(t?t.value:"")}},_e.prototype.copyRaw=function(e){if(e&&navigator.clipboard){var t=e.querySelector(".rbe-raw-input");navigator.clipboard.writeText(t?t.value:"")}},_e.prototype.formatCodeBlock=function(e){if(e&&"code"===e.dataset.type){var t=e.querySelector(".rbe-code-input"),i=(e.querySelector(".rbe-code-language")||{}).value||"plaintext";t&&(this.recordHistory(!1),t.value=fe(t.value,i),this.refreshCodeBlock(e),this.noteHistory("Code","Formatted"),this.changed(!0))}},_e.prototype.formatRawBlock=function(e){if(e&&"raw"===e.dataset.type){var t=e.querySelector(".rbe-raw-input");t&&(this.recordHistory(!1),t.value=fe(t.value,"html"),this.refreshRawHighlight(e),k(e.querySelector(".rbe-raw-preview"),t.value),this.noteHistory("Raw HTML","Formatted"),this.changed(!0))}},_e.prototype.refreshCodeBlock=function(e){if(e){var t=e.querySelector(".rbe-code-wrap"),i=e.querySelector(".rbe-code-input"),r=e.querySelector(".rbe-code-highlight"),n=he((e.querySelector(".rbe-code-language")||{}).value);ke(t,{headerColor:ge((e.querySelector(".rbe-code-header-color")||{}).value,"#e5e7eb"),backgroundColor:ge((e.querySelector(".rbe-code-bg-color")||{}).value,"#f3f4f6")}),r&&i&&(r.innerHTML=Se(i.value,n)+"\n",r.scrollTop=i.scrollTop,r.scrollLeft=i.scrollLeft)}},_e.prototype.refreshRawHighlight=function(e){if(e){var t=e.querySelector(".rbe-raw-input"),i=e.querySelector(".rbe-raw-highlight");i&&t&&(i.innerHTML=Se(t.value,"html")+"\n",i.scrollTop=t.scrollTop,i.scrollLeft=t.scrollLeft)}},_e.prototype.applyImageStageState=function(e){if(e){var t=e.querySelector(".rbe-image-preview");t&&t.naturalWidth&&(e.dataset.naturalWidth=String(t.naturalWidth),e.dataset.naturalHeight=String(t.naturalHeight||""));var i=Number(e.dataset.displayWidth||0),r=Number(e.dataset.minWidth||0),n=Number(e.dataset.naturalWidth||0);i>0&&r>0&&i<r&&(i=r,e.dataset.displayWidth=String(Math.round(i))),i>0&&n>0&&i>Math.max(r||0,n)&&(i=Math.max(r||0,n),e.dataset.displayWidth=String(Math.round(i)));var a="custom"===e.dataset.crop,o=G(e.dataset),l=ee(e.dataset.cropX),s=ee(e.dataset.cropY),d=te(e.dataset.cropZoom);if(i>0?e.style.width=Math.round(i)+"px":e.style.removeProperty("width"),e.style.maxWidth=n>0?"min(100%, "+Math.round(n)+"px)":"100%",e.classList.toggle("is-custom-crop",a),a){if(!o){var c=e.getBoundingClientRect();o=c.width&&c.height?c.width/c.height:1,e.dataset.cropRatio=o.toFixed(3)}e.style.aspectRatio=o.toFixed(3)+" / 1"}else e.style.removeProperty("aspect-ratio");t&&(a?(t.style.height="100%",t.style.maxHeight="none",t.style.objectFit="cover",t.style.objectPosition=l+"% "+s+"%",t.style.transformOrigin=l+"% "+s+"%",t.style.setProperty("--rbe-image-zoom",d)):(t.style.removeProperty("height"),t.style.removeProperty("max-height"),t.style.removeProperty("object-fit"),t.style.removeProperty("object-position"),t.style.removeProperty("transform-origin"),t.style.removeProperty("--rbe-image-zoom")),t.style.transform="rotate("+(Number(e.dataset.rotation||0)||0)+"deg) scale(var(--rbe-image-zoom, 1))")}},_e.prototype.setImageCropMode=function(e,t){if(e&&!this.readOnly){if(t&&"custom"!==e.dataset.crop){var i=e.getBoundingClientRect();e.dataset.crop="custom",e.dataset.cropRatio=(i.width&&i.height?i.width/i.height:1).toFixed(3),e.dataset.cropX=e.dataset.cropX||"50",e.dataset.cropY=e.dataset.cropY||"50",e.dataset.cropZoom=e.dataset.cropZoom||"1"}e.classList.toggle("is-image-crop-mode",!!t);var r=e.querySelector(".rbe-image-crop-toggle");r&&(r.classList.toggle("is-active",!!t),r.setAttribute("aria-pressed",t?"true":"false"),r.title=t?"Finish crop":"Crop image",r.setAttribute("aria-label",t?"Finish crop":"Crop image")),this.applyImageStageState(e)}},_e.prototype.bindImageStageMouseControls=function(e){if(e&&!this.readOnly&&"true"!==e.dataset.imageMouseReady){e.dataset.imageMouseReady="true";var t=this,i=e.querySelector(".rbe-image-resize-handle");i&&i.addEventListener("pointerdown",function(i){i.preventDefault(),i.stopPropagation(),t.recordHistory(!1);var r=e.closest(".rbe-image-gallery")||e.parentElement||e,n=e.getBoundingClientRect(),a=r.getBoundingClientRect(),o=Number(e.dataset.minWidth||0);o||(o=Math.max(80,Math.round(n.width)),e.dataset.minWidth=String(o));var l=Number(e.dataset.naturalWidth||0),s=Math.round(a.width||n.width),d=Math.max(o,l?Math.min(l,s):s),c=i.clientX;function u(i){var a=Z(n.width+i.clientX-c,o,d,n.width);e.dataset.displayWidth=String(Math.round(a)),t.applyImageStageState(e),t.updateMediaActionAvailability(r)}document.addEventListener("pointermove",u),document.addEventListener("pointerup",function e(){document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",e),t.changed(!0)})}),Array.prototype.slice.call(e.querySelectorAll(".rbe-image-crop-handle")).forEach(function(i){i.addEventListener("pointerdown",function(r){r.preventDefault(),r.stopPropagation(),t.recordHistory(!1),t.setImageCropMode(e,!0);var n=e.closest(".rbe-image-gallery")||e.parentElement||e,a=e.getBoundingClientRect(),o=n.getBoundingClientRect(),l=Number(e.dataset.minWidth||0);l||(l=Math.max(80,Math.round(a.width)),e.dataset.minWidth=String(l));var s=Number(e.dataset.naturalWidth||0),d=Math.round(o.width||a.width),c=Math.max(l,s?Math.min(s,d):d),u=r.clientX,p=r.clientY,h=a.width,m=a.height||a.width,b=i.dataset.cropHandle||"se";function f(i){var r=h,a=m;b.indexOf("e")>=0&&(r=Z(h+i.clientX-u,l,c,h),e.dataset.displayWidth=String(Math.round(r))),b.indexOf("s")>=0&&(a=Z(m+i.clientY-p,70,900,m)),e.dataset.crop="custom",e.dataset.cropRatio=Z(r/a,.35,3.5,1).toFixed(3),t.applyImageStageState(e),t.updateMediaActionAvailability(n)}document.addEventListener("pointermove",f),document.addEventListener("pointerup",function e(){document.removeEventListener("pointermove",f),document.removeEventListener("pointerup",e),t.changed(!0)})})}),e.addEventListener("pointerdown",function(i){if(e.classList.contains("is-image-crop-mode")&&!i.target.closest("button, .rbe-image-resize-handle, .rbe-image-crop-handle")){i.preventDefault(),t.recordHistory(!1);var r=e.getBoundingClientRect(),n=i.clientX,a=i.clientY,o=ee(e.dataset.cropX),l=ee(e.dataset.cropY);document.addEventListener("pointermove",s),document.addEventListener("pointerup",function e(){document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",e),t.changed(!0)})}function s(i){var s=(i.clientX-n)/Math.max(1,r.width)*100,d=(i.clientY-a)/Math.max(1,r.height)*100;e.dataset.cropX=String(Math.round(ee(o-s))),e.dataset.cropY=String(Math.round(ee(l-d))),t.applyImageStageState(e)}}),e.addEventListener("wheel",function(i){if(e.classList.contains("is-image-crop-mode")){i.preventDefault();var r=te(e.dataset.cropZoom);r=te(r+(i.deltaY<0?.08:-.08)),e.dataset.cropZoom=r.toFixed(2),t.applyImageStageState(e),t.changed(!0)}},{passive:!1})}},_e.prototype.applyImageUrl=function(e){var t=e&&e.querySelector(".rbe-image-url");if(t&&T(t.value)){var i=this.serializeBlock(e).data;i.url=t.value.trim(),this.transformBlock(e,"image",i),this.changed()}},_e.prototype.applyImageFile=function(e,t){return this.applyImageFiles(e,t?[t]:[])},_e.prototype.applyImageFiles=function(e,t){if(e&&t&&t.length){var i=t.filter(X);if(i.length){var r=this;Promise.all(i.map(function(e){return r.uploadFile(e,"image").then(function(t){return{url:t.url,base64:t.base64||"",upload:B(t.upload||null),alt:t.alt||e.name,caption:t.caption||e.name}})})).then(function(t){var i={items:t=V(r.serializeBlock(e).data).concat(t),url:t[0]?t[0].url:"",alt:t[0]?t[0].alt:"",caption:t[0]?t[0].caption:""};r.transformBlock(e,"image",i),r.changed()}).catch(function(){alert("Image upload failed.")})}else alert("The Image block only accepts image files.")}},_e.prototype.applyAttachmentFile=function(e,t){return this.applyAttachmentFiles(e,t?[t]:[])},_e.prototype.applyAttachmentFiles=function(e,t){if(e&&t&&t.length){var i=t.filter(K);if(i.length&&i.length===t.length){var r=this;Promise.all(i.map(function(e){return r.uploadFile(e,"file").then(function(t){return{name:t.name||e.name,url:t.url,base64:t.base64||"",upload:B(t.upload||null),size:t.size||e.size,type:t.type||e.type}})})).then(function(t){t=re(r.serializeBlock(e).data).concat(t),r.transformBlock(e,"attaches",{items:t,name:t[0]?t[0].name:"",url:t[0]?t[0].url:"",size:t[0]?t[0].size:0,type:t[0]?t[0].type:""}),r.changed()}).catch(function(){alert("File upload failed.")})}else alert("Attachments only allow videos and documents such as PDF, Word, Excel, PowerPoint, CSV, TXT, and RTF. Please use the Image block for images.")}},_e.prototype.removeMediaItem=function(e){if(!this.readOnly){var t=q(e);if(t){var i=e.closest(".rbe-image-stage"),r=e.closest(".rbe-attachment-card");if(i||r){if(this.recordHistory(!1),i){var n=i.closest(".rbe-image-gallery");return i.remove(),t.querySelector(".rbe-image-stage")?(this.closeMediaMenus(),this.updateMediaActionAvailability(n||t)):this.transformBlock(t,"image",{}),void this.changed(!0)}var a=r.closest(".rbe-attachment-grid");r.remove(),t.querySelector(".rbe-attachment-card")?(this.closeMediaMenus(),this.updateMediaActionAvailability(a||t)):this.transformBlock(t,"attaches",{}),this.changed(!0)}}}},_e.prototype.alignMediaItem=function(e,t){if(!this.readOnly){var i=e.closest(".rbe-image-stage, .rbe-attachment-card");i&&(t=le(t),this.recordHistory(!1),i.dataset.alignment=t,i.classList.remove("rbe-media-align-left","rbe-media-align-center","rbe-media-align-right"),i.classList.add("rbe-media-align-"+t),this.updateMediaActionAvailability(i.closest(".rbe-image-gallery, .rbe-attachment-grid")||i.parentElement||this.root),this.changed(!0))}},_e.prototype.updateMediaActionAvailability=function(e){(e=e||this.root)&&e.querySelectorAll&&[".rbe-image-gallery",".rbe-attachment-grid"].forEach(function(t){var i=e.matches&&e.matches(t)?[e]:[];(i=i.concat(Array.prototype.slice.call(e.querySelectorAll(t)))).forEach(function(e){var t=Array.prototype.slice.call(e.querySelectorAll(".rbe-image-stage, .rbe-attachment-card"));if(t.forEach(function(e){e.classList.remove("rbe-media-row-has-space","rbe-media-row-full")}),t.length){var i=window.getComputedStyle(e),r=parseFloat(i.columnGap||i.gap||"10")||10,n=(i.gridTemplateColumns||"").split(" ").filter(function(e){return!!e&&"none"!==e}),a=t[0],o=a&&(a.getBoundingClientRect().width||a.offsetWidth)||1,l=Math.max(1,n.length||Math.floor((e.clientWidth+r)/(o+r))),s={};t.forEach(function(e){var t=Math.round(e.offsetTop||0);s[t]=s[t]||[],s[t].push(e)}),Object.keys(s).forEach(function(e){var t=s[e].length<l;s[e].forEach(function(e){e.classList.toggle("rbe-media-row-has-space",t),e.classList.toggle("rbe-media-row-full",!t)})})}})})},_e.prototype.uploadFile=function(e,t){var i=this.options.upload||{},r="image"===t&&"function"==typeof i.image?i.image:"image"!==t&&"function"==typeof i.file?i.file:null,n=function(e){var t=Array.isArray(e)?e:e?[e]:["base64"];return(t=t.map(function(e){return String(e||"").toLowerCase().trim()}).filter(function(e){return"base64"===e||"upload"===e})).length?Array.from(new Set(t)):["base64"]}(this.options.uploadOutput||this.options["upload output"]||i.output||i.uploadOutput||i["upload output"]),a=n.indexOf("upload")>=0,o=n.indexOf("base64")>=0||!r&&!a?function(e){return new Promise(function(t,i){var r=new FileReader;r.onload=function(){t(r.result)},r.onerror=i,r.readAsDataURL(e)})}(e):Promise.resolve(""),l=a&&r?Promise.resolve(r(e)):Promise.resolve(null);return Promise.all([o,l]).then(function(t){var i=t[0],r=t[1]||null,n=Object.assign({},r||{});return i&&(n.base64=i),r&&a&&(n.upload=B(r)),n.url||(n.url=i||r&&r.url||""),n.name||(n.name=e.name),n.size||(n.size=e.size),n.type||(n.type=e.type),n})},_e.prototype.applyEmbed=function(e){var t=e&&e.querySelector(".rbe-embed-url");if(t&&t.value.trim()){var i=P(t.value.trim()),r=e.querySelector(".rbe-embed-caption");i.caption=r?r.value:"",this.transformBlock(e,"embed",i),this.changed()}},_e.prototype.applyListNestAction=function(e,t){if(e&&"list"===e.dataset.type&&e.querySelector(".rbe-list")){var i=this.getActiveListItem(e);if(i){if(this.recordHistory(!1),"toggle-list-style"===t){var r=i.dataset.style||(e.querySelector(".rbe-list-wrap")||{}).dataset.style||"unordered";return i.dataset.style="ordered"===r?"unordered":"ordered",this.updateListMarkers(e.querySelector(".rbe-list-wrap")),ne(i.querySelector(".rbe-list-text")),void this.changed(!0)}if("indent-list"===t||"outdent-list"===t){var n=Number(i.dataset.level||0);if("indent-list"===t){if(!i.previousElementSibling)return;i.dataset.level=Math.min(4,n+1)}else i.dataset.level=Math.max(0,n-1);this.updateListMarkers(e.querySelector(".rbe-list-wrap")),ne(i.querySelector(".rbe-list-text")),this.changed(!0)}}}},_e.prototype.getActiveListItem=function(e){var t=e&&e.querySelector(".rbe-list");if(!t)return null;var i=window.getSelection(),r=i&&i.anchorNode?i.anchorNode:document.activeElement,n=r&&r.nodeType===Node.TEXT_NODE?r.parentElement:r,a=n&&n.closest?n.closest(".rbe-list-item"):null;return a&&t.contains(a)||(a=t.querySelector(".rbe-list-item")),a},_e.prototype.addListItem=function(e){if(e&&"list"===e.dataset.type){var t=e.querySelector(".rbe-list");if(t){this.recordHistory(!1);var i=this.getActiveListItem(e),r=this.createListItem({text:"",level:i?Number(i.dataset.level||0):0,style:i&&i.dataset.style||""});i&&i.parentNode===t?i.insertAdjacentElement("afterend",r):t.appendChild(r),this.updateListMarkers(e.querySelector(".rbe-list-wrap")),ne(r.querySelector(".rbe-list-text")),this.changed(!0)}}},_e.prototype.removeListItem=function(e,t){if(e&&"list"===e.dataset.type&&t){var i=e.querySelector(".rbe-list");if(i&&i.contains(t)){this.recordHistory(!1);var r=t.previousElementSibling||t.nextElementSibling;if(i.querySelectorAll(".rbe-list-item").length>1)t.remove(),r&&ne(r.querySelector(".rbe-list-text"));else{var n=t.querySelector(".rbe-list-text");n&&(n.innerHTML=""),t.dataset.level="0",ne(n)}this.updateListMarkers(e.querySelector(".rbe-list-wrap")),this.changed(!0)}}},_e.prototype.updateListMarkers=function(e){if(e){var t="ordered"===e.dataset.style,i=[0,0,0,0,0];Array.prototype.slice.call(e.querySelectorAll(".rbe-list-item")).forEach(function(e){var r=Math.min(4,Math.max(0,Number(e.dataset.level||0))),n="ordered"===(e.dataset.style||(t?"ordered":"unordered"));e.dataset.level=String(r),n&&(i[r]+=1);for(var a=r+1;a<i.length;a+=1)i[a]=0;var o=e.querySelector(".rbe-list-marker");o&&(o.textContent=n?i.slice(0,r+1).filter(function(e){return e>0}).join(".")+".":"•")})}},_e.prototype.updateChecklistItemIcon=function(e){if(e){var t=e.querySelector(".rbe-check-toggle");if(t){var i=Te({level:e.dataset.level}),r="true"===e.dataset.checked;"true"!==e.dataset.checked&&"false"!==e.dataset.checked&&(r="true"===t.dataset.checked),e.dataset.level=String(i),e.dataset.checked=r?"true":"false",t.dataset.checked=r?"true":"false",t.setAttribute("aria-pressed",r?"true":"false"),t.setAttribute("aria-label",r?"Mark item incomplete":"Mark item complete"),t.title=r?"Mark incomplete":"Mark complete",t.classList.toggle("is-checked",r),t.classList.toggle("is-nested",i>0);var n=i>0?r?"circle-check":"circle":r?"square-check":"square";t.innerHTML=S(n,r?"Checked":"Unchecked")}}},_e.prototype.updateChecklistIcons=function(e){e&&Array.prototype.slice.call(e.querySelectorAll(".rbe-check-item")).forEach(function(e){this.updateChecklistItemIcon(e)}.bind(this))},_e.prototype.getActiveChecklistItem=function(e){var t=e&&e.querySelector(".rbe-checklist");if(!t)return null;var i=window.getSelection(),r=i&&i.anchorNode?i.anchorNode:document.activeElement,n=r&&r.nodeType===Node.TEXT_NODE?r.parentElement:r,a=n&&n.closest?n.closest(".rbe-check-item"):null;return a&&t.contains(a)||(a=t.querySelector(".rbe-check-item")),a},_e.prototype.applyChecklistNestAction=function(e,t){if(e&&"checklist"===e.dataset.type){var i=this.getActiveChecklistItem(e);if(i&&("indent-checklist"===t||"outdent-checklist"===t)){this.recordHistory(!1);var r=Number(i.dataset.level||0);if("indent-checklist"===t){if(!i.previousElementSibling)return;i.dataset.level=Math.min(4,r+1)}else i.dataset.level=Math.max(0,r-1);this.updateChecklistItemIcon(i),ne(i.querySelector(".rbe-check-text")),this.changed(!0)}}},_e.prototype.addChecklistItem=function(e){if(e&&"checklist"===e.dataset.type){var t=e.querySelector(".rbe-checklist");if(t){this.recordHistory(!1);var i=this.getActiveChecklistItem(e),r=this.createChecklistItem({text:"",checked:!1,level:i?Number(i.dataset.level||0):0});i&&i.parentNode===t?i.insertAdjacentElement("afterend",r):t.insertBefore(r,t.querySelector(".rbe-checklist-add")),ne(r.querySelector(".rbe-check-text")),this.changed(!0)}}},_e.prototype.removeChecklistItem=function(e,t){if(e&&"checklist"===e.dataset.type&&t){var i=e.querySelector(".rbe-checklist");if(i&&i.contains(t)){this.recordHistory(!1);var r=t.previousElementSibling||t.nextElementSibling;if(i.querySelectorAll(".rbe-check-item").length>1)t.remove(),r&&r.classList.contains("rbe-check-item")&&ne(r.querySelector(".rbe-check-text"));else{var n=t.querySelector(".rbe-check-text");n&&(n.innerHTML=""),t.dataset.level="0",t.dataset.checked="false",this.updateChecklistItemIcon(t),ne(n)}this.changed(!0)}}},_e.prototype.toggleChecklistItem=function(e,t){e&&"checklist"===e.dataset.type&&t&&!this.readOnly&&(this.recordHistory(!1),t.dataset.checked="true"===t.dataset.checked?"false":"true",this.updateChecklistItemIcon(t),this.changed(!0))},_e.prototype.applyTableAction=function(e,t){if(e){var i=e.querySelector(".rbe-table");if(i){this.recordHistory(!1);var r=Array.prototype.slice.call(i.rows);if(r.length){var n=document.activeElement&&document.activeElement.closest("td, th"),a=n&&n.parentElement?n.parentElement.rowIndex:r.length-1,o=n?n.cellIndex:r[0].cells.length-1;if(0===t.indexOf("cell-align-")){var l=le(t.replace("cell-align-","")),s=n&&i.contains(n)?n:r[0].cells[0];return s&&(s.style.textAlign=l),void this.changed(!0)}if("add-row"===t)for(var d=i.insertRow(a+1),c=0;c<r[0].cells.length;c+=1){d.insertCell(c).contentEditable=!this.readOnly}"add-col"===t&&r.forEach(function(e){e.insertCell(o+1).contentEditable=!this.readOnly}.bind(this)),"remove-row"===t&&r.length>1&&i.deleteRow(Math.max(0,a)),"remove-col"===t&&r[0].cells.length>1&&r.forEach(function(e){e.deleteCell(Math.max(0,o))}),this.refreshTableHeading(e),this.updateTableLayout(e),this.changed(!0)}}}},_e.prototype.updateTableLayout=function(e){var t=e&&e.querySelector(".rbe-table-wrap"),i=e&&e.querySelector(".rbe-table");if(t&&i){var r=e.querySelector(".rbe-table-width"),n=e.querySelector(".rbe-table-width-value"),a=e.querySelector(".rbe-table-align"),o=e.querySelector(".rbe-table-border-style"),l=e.querySelector(".rbe-table-border-width"),s=e.querySelector(".rbe-table-border-width-value"),d=Math.min(100,Math.max(40,Number(r&&r.value?r.value:100))),c=!a||"center"!==a.value&&"right"!==a.value?"left":a.value,u=se(o&&o.value),p=de(l&&l.value);t.dataset.align=c,i.style.width=d+"%",i.style.setProperty("--rbe-table-border-style",u),i.style.setProperty("--rbe-table-border-width",p+"px"),n&&(n.textContent=d+"%"),s&&(s.textContent=p+"px")}},_e.prototype.refreshTableHeading=function(e){var t=e&&e.querySelector(".rbe-table"),i=e&&e.querySelector("[data-role='table-heading']");t&&i&&Array.prototype.slice.call(t.rows).forEach(function(e,t){Array.prototype.slice.call(e.cells).forEach(function(e){var r=i.checked&&0===t?"th":"td";if(e.tagName.toLowerCase()!==r){var n=v(r,"",{contentEditable:!this.readOnly,html:A(e.innerHTML)});n.style.textAlign=e.style&&e.style.textAlign||"left",e.replaceWith(n)}}.bind(this))}.bind(this))},_e.prototype.serializeBlock=function(e){var t=e.dataset.type||"paragraph",i={};if("paragraph"===t){var r=e.querySelector(".rbe-paragraph");i.text=A((r||{}).innerHTML||""),i.alignment=le(r&&r.style?r.style.textAlign:"left")}else if("heading"===t){var a=e.querySelector(".rbe-heading");i.text=A(a?a.innerHTML:""),i.level=Number(a&&a.dataset.level||(e.querySelector(".rbe-heading-level")||{}).value||2),i.alignment=le(a&&a.style?a.style.textAlign:"left")}else if("quote"===t){var o=e.querySelector(".rbe-quote-text");i.text=A((o||{}).innerHTML||""),i.caption=(e.querySelector(".rbe-quote-caption")||{}).value||"",i.alignment=le(o&&o.style?o.style.textAlign:"left")}else if("list"===t){var l=e.querySelector(".rbe-list");i.style=(e.querySelector(".rbe-list-style")||{}).value||"unordered",i.alignment=le(l&&l.style?l.style.textAlign:"left"),i.items=l?Array.prototype.slice.call(l.querySelectorAll(".rbe-list-item")).map(function(e){return{text:A((e.querySelector(".rbe-list-text")||{}).innerHTML||""),level:Te({level:e.dataset.level}),alignment:le((e.querySelector(".rbe-list-text")||{}).style?e.querySelector(".rbe-list-text").style.textAlign:i.alignment),style:e.dataset.style||""}}).filter(function(e){return!Me(e)}):[],i.items.length||(i.items=[{text:"",level:0}])}else if("checklist"===t)i.items=Array.prototype.slice.call(e.querySelectorAll(".rbe-check-item")).map(function(e){var t=e.querySelector(".rbe-check-toggle"),i="true"===e.dataset.checked;return"true"!==e.dataset.checked&&"false"!==e.dataset.checked&&(i=!(!t||"true"!==t.dataset.checked)),{text:A((e.querySelector(".rbe-check-text")||{}).innerHTML||""),checked:i,level:Te({level:e.dataset.level})}}).filter(function(e){return!Me(e)}),i.items.length||(i.items=[{text:"",checked:!1,level:0}]);else if("code"===t)i.code=(e.querySelector(".rbe-code-input")||{}).value||"",i.language=he((e.querySelector(".rbe-code-language")||{}).value),i.headerColor=ge((e.querySelector(".rbe-code-header-color")||{}).value,"#e5e7eb"),i.backgroundColor=ge((e.querySelector(".rbe-code-bg-color")||{}).value,"#f3f4f6");else if("image"===t)i.items=Array.prototype.slice.call(e.querySelectorAll(".rbe-image-stage")).map(function(e){var t=e.querySelector(".rbe-image-preview"),i=e.__rbeMediaItem||{},r={url:e.dataset.url||(t?t.src:""),alt:e.dataset.alt||(t?t.alt:""),caption:e.dataset.caption||"",alignment:le(e.dataset.alignment),displayWidth:Number(e.dataset.displayWidth||0),minWidth:Number(e.dataset.minWidth||0),naturalWidth:Number(e.dataset.naturalWidth||0),naturalHeight:Number(e.dataset.naturalHeight||0),rotation:Number(e.dataset.rotation||0),crop:"custom"===e.dataset.crop?"custom":"free",cropRatio:Number(e.dataset.cropRatio||0),cropX:ee(e.dataset.cropX),cropY:ee(e.dataset.cropY),cropZoom:te(e.dataset.cropZoom)};return i.base64&&(r.base64=i.base64),i.upload&&(r.upload=B(i.upload)),r}).filter(function(e){return!!e.url}),i.url=i.items[0]?i.items[0].url:"",i.alt=i.items[0]?i.items[0].alt:"",i.caption=i.items[0]?i.items[0].caption:"";else if("table"===t)i.withHeadings=!!(e.querySelector("[data-role='table-heading']")||{}).checked,i.align=(e.querySelector(".rbe-table-align")||{}).value||"left",i.width=Number((e.querySelector(".rbe-table-width")||{}).value||100),i.borderStyle=se((e.querySelector(".rbe-table-border-style")||{}).value),i.borderWidth=de((e.querySelector(".rbe-table-border-width")||{}).value),i.rows=Array.prototype.slice.call(e.querySelectorAll(".rbe-table tr")).map(function(e){return Array.prototype.slice.call(e.cells).map(function(e){return{text:A(e.innerHTML),alignment:le(e.style?e.style.textAlign:"left")}})});else if("embed"===t){i.source=(e.querySelector(".rbe-embed-url")||{}).value||"";var s=e.querySelector(".rbe-embed-frame");i.embed=s?s.src:"",i.service=P(i.source).service,i.caption=(e.querySelector(".rbe-embed-caption")||{}).value||""}else if("callout"===t){var d=e.querySelector(".rbe-callout-text");i.text=A((d||{}).innerHTML||""),i.tone=(e.querySelector(".rbe-callout-tone")||{}).value||(e.querySelector(".rbe-callout")||{}).dataset.tone||"info",i.alignment=le(d&&d.style?d.style.textAlign:"left")}else if("delimiter"===t)i.style=(e.querySelector(".rbe-delimiter-style")||{}).value||(e.querySelector(".rbe-delimiter-wrap")||{}).dataset.style||"line";else if("button"===t)i.text=(e.querySelector(".rbe-button-text")||{}).value||"",i.url=(e.querySelector(".rbe-button-url")||{}).value||"",i.background=(e.querySelector(".rbe-button-bg")||{}).value||"#2563eb",i.color=(e.querySelector(".rbe-button-color")||{}).value||"#ffffff",i.alignment=le((e.querySelector(".rbe-button-align")||{}).value||"left");else if("toggle"===t){i.title=(e.querySelector(".rbe-toggle-title")||{}).value||"";var c=e.querySelector(".rbe-toggle-nested-canvas");i.blocks=c?Array.prototype.slice.call(c.children).map(this.serializeBlock.bind(this)):[],i.text=i.blocks.map(function(e){return e.data&&e.data.text?e.data.text:""}).join(""),i.open=!!(e.querySelector(".rbe-toggle")||{}).open}else if("linkPreview"===t)i.url=(e.querySelector(".rbe-link-preview-url")||{}).value||"",i.title=(e.querySelector(".rbe-link-preview-title")||{}).value||"",i.description=(e.querySelector(".rbe-link-preview-description")||{}).value||"";else if("raw"===t){var u=e.querySelector(".rbe-raw-wrap");i.html=(e.querySelector(".rbe-raw-input")||{}).value||u&&u.__rbeRawHtml||""}else"attaches"===t?(i.items=Array.prototype.slice.call(e.querySelectorAll(".rbe-attachment-card")).map(function(e){var t=e.__rbeMediaItem||{},i={name:e.dataset.name||"Attachment",url:e.dataset.url||e.getAttribute("href")||"",type:e.dataset.type||"",size:Number(e.dataset.size||0),alignment:le(e.dataset.alignment)};return t.base64&&(i.base64=t.base64),t.upload&&(i.upload=B(t.upload)),i}).filter(function(e){return!!e.url}),i.name=i.items[0]?i.items[0].name:"",i.url=i.items[0]?i.items[0].url:"",i.type=i.items[0]?i.items[0].type:"",i.size=i.items[0]?i.items[0].size:0):n[t]&&"function"==typeof n[t].serialize&&(i=n[t].serialize.call(this,e,Pe())||{});return{id:e.dataset.id||y("block"),type:t,data:i}},_e.prototype.getData=function(){var t={time:Date.now(),version:e,blocks:Array.prototype.slice.call(this.canvas.children).map(this.serializeBlock.bind(this))};return Object.keys(this.documentMeta||{}).forEach(function(e){t[e]=B(this.documentMeta[e])},this),t},_e.prototype.save=function(){return Promise.resolve(this.getData())},_e.prototype.render=function(e,t){var r=this.renderingData,n=this.silent;this.renderingData=!0,this.silent=!(!t||!t.silent);try{var a=z(e);Object.keys(a).length&&(this.documentMeta=a),this.canvas.innerHTML="";var o=function(e){return e?Array.isArray(e)?e:"string"==typeof e?M(e):Array.isArray(e.blocks)?e.blocks:[]:[]}(e);o.length||(o=ae().blocks),o.forEach(function(e){var t=i.indexOf(e.type)>=0?e.type:"paragraph";this.insertBlock(t,e.data||{},this.canvas.children.length,e.id||y("block"))}.bind(this))}finally{this.renderingData=r,this.silent=n}this.scheduleSelectEnhance(),t&&t.silent||this.changed()},_e.prototype.scheduleSelectEnhance=function(){!1!==this.options.select2&&"undefined"!=typeof window&&(clearTimeout(this.selectEnhanceTimer),this.selectEnhanceTimer=setTimeout(function(){this.enhanceSelects()}.bind(this),0))},_e.prototype.enhanceSelects=function(){if(!1!==this.options.select2&&this.root){var e=this.root,t=this;!function(e){if("undefined"!=typeof window&&"undefined"!=typeof document){C("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css","select2-css");var t=function(){window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2&&e()};if(window.jQuery&&window.jQuery.fn&&window.jQuery.fn.select2)t();else{var i=function(){E("https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js","select2-js",t)};window.jQuery?i():E("https://code.jquery.com/jquery-3.7.1.min.js","jquery-js",i)}}}(function(){var i=window.jQuery;i&&i.fn&&i.fn.select2&&i(e).find("select").each(function(){var e=this;i(e).data("select2")||i(e).select2({width:"style",minimumResultsForSearch:1/0,dropdownParent:i(document.body)}).on("select2:opening select2:open",function(){e.closest(".rbe-inline-toolbar")&&t.keepInlineToolbarOpen()}).on("select2:select",function(){e.closest(".rbe-inline-toolbar")&&t.keepInlineToolbarOpen(),e.dispatchEvent(new Event("change",{bubbles:!0}))})})})}},_e.prototype.clear=function(e){if(e&&e.resetHistory)return this.render(ae(),{silent:!0}),this.resetHistoryToCurrent(),void this.emitChange();this.render(ae())},_e.prototype.destroy=function(){document.removeEventListener("selectionchange",this.boundSelectionChange),document.removeEventListener("mousedown",this.boundDocumentMouseDown),this.holder.innerHTML=""},_e.prototype.setReadOnly=function(e){this.readOnly=!!e,this.root.dataset.readonly=this.readOnly?"true":"false",Array.prototype.slice.call(this.canvas.children).forEach(function(e){this.makeBlockReadonly(e)}.bind(this)),this.updateHistoryButtons()},_e.prototype.makeBlockReadonly=function(e){Array.prototype.slice.call(e.querySelectorAll("[contenteditable]")).forEach(function(e){e.contentEditable=!this.readOnly}.bind(this)),Array.prototype.slice.call(e.querySelectorAll("input, textarea, select, button")).forEach(function(e){e.classList.contains("rbe-code-copy")||(e.disabled=this.readOnly)}.bind(this))},_e.prototype.changed=function(e){this.silent||((this.hasExplicitSave||this.savedExportData)&&(this.hasExplicitSave=!1,this.savedExportData=null,this.hideExportMenu(),this.updateHistoryButtons()),e?this.recordHistory(!0):this.queueHistory(),this.queueChange())},_e.prototype.noteHistory=function(e,t){this.pendingHistoryAction={blockName:e||"Document",actionName:t||"Edited"}},_e.prototype.describeHistoryChange=function(e,t){if(this.pendingHistoryAction)return this.pendingHistoryAction;var i=[],n=[];try{i=e?JSON.parse(e):[],n=t?JSON.parse(t):[]}catch(e){return{blockName:"Document",actionName:"Edited"}}if(n.length>i.length){var a=n.find(function(e){return!i.some(function(t){return t.id===e.id})})||n[n.length-1];return{blockName:(r[a.type]||{}).label||a.type||"Block",actionName:"Created"}}if(n.length<i.length){var o=i.find(function(e){return!n.some(function(t){return t.id===e.id})})||i[i.length-1];return{blockName:(r[o.type]||{}).label||o.type||"Block",actionName:"Deleted"}}var l=n.find(function(e,t){return JSON.stringify(e)!==JSON.stringify(i[t])})||n[0]||{};return{blockName:(r[l.type]||{}).label||l.type||"Document",actionName:"Edited"}},_e.prototype.emitChange=function(){var e=this.getData();if(this.options.autosave&&this.options.autosave.key)try{localStorage.setItem(this.options.autosave.key,JSON.stringify(e))}catch(e){}"function"==typeof this.options.onChange&&this.options.onChange(e,this),this.setShellStatus("JSON synced "+new Date(e.time||Date.now()).toLocaleTimeString()),this.root.dispatchEvent(new CustomEvent("rbe:change",{detail:e}))},_e.prototype.setupAutosave=function(){if(this.options.autosave&&this.options.autosave.key&&this.options.autosave.load)try{var e=localStorage.getItem(this.options.autosave.key);e?this.render(JSON.parse(e),{silent:!0}):this.render(this.options.data||ae(),{silent:!0})}catch(e){this.render(this.options.data||ae(),{silent:!0})}else this.render(this.options.data||ae(),{silent:!0})},_e.prototype.recordHistory=function(e){if(!this.silent){var t=JSON.stringify(this.getData().blocks);if(e||this.history[this.historyIndex]!==t){var i=this.history[this.historyIndex]||"[]",r=this.describeHistoryChange(i,t);this.history=this.history.slice(0,this.historyIndex+1),this.history.push(t),this.history.length>80&&this.history.shift(),this.historyIndex=this.history.length-1,this.actionHistory.push({time:new Date,snapshot:t,blockName:r.blockName,actionName:r.actionName,userName:this.options.userName||"Current user"}),this.pendingHistoryAction=null,this.actionHistory.length>80&&this.actionHistory.shift(),this.updateHistoryButtons()}}},_e.prototype.resetHistoryToCurrent=function(){var e=JSON.stringify(this.getData().blocks);this.history=[e],this.historyIndex=0,this.actionHistory=[],this.pendingHistoryAction=null,this.updateHistoryButtons()},_e.prototype.undo=function(){this.historyIndex<=0||(this.historyIndex-=1,this.render({blocks:JSON.parse(this.history[this.historyIndex])},{silent:!0}),this.updateHistoryButtons(),this.emitChange())},_e.prototype.redo=function(){this.historyIndex>=this.history.length-1||(this.historyIndex+=1,this.render({blocks:JSON.parse(this.history[this.historyIndex])},{silent:!0}),this.updateHistoryButtons(),this.emitChange())},_e.prototype.updateHistoryButtons=function(){if(this.topToolbar){var e=this.topToolbar.querySelector("[data-history='undo']"),t=this.topToolbar.querySelector("[data-history='redo']"),i=this.topToolbar.querySelector("[data-rbe-clear='true']"),r=this.topToolbar.querySelector("[data-rbe-save='true']"),n=this.topToolbar.querySelector("[data-rbe-export-toggle='true']"),a=this.topToolbar.querySelector("[data-rbe-export-html='true']");e&&(e.disabled=this.readOnly||this.historyIndex<=0),t&&(t.disabled=this.readOnly||this.historyIndex>=this.history.length-1),i&&(i.disabled=this.readOnly),r&&(r.disabled=this.readOnly),n&&(n.disabled=this.readOnly||!this.hasExplicitSave||!this.savedExportData),a&&(a.disabled=this.readOnly||!this.hasExplicitSave||!this.savedExportData),this.updateHistoryPanel()}},_e.prototype.hideExportMenu=function(){if(this.topToolbar){var e=this.topToolbar.querySelector(".rbe-export-menu");e&&(e.hidden=!0)}},_e.prototype.toggleExportMenu=function(e){if(e&&!e.disabled){var t=e.closest(".rbe-export-menu-wrap"),i=t&&t.querySelector(".rbe-export-menu");i&&(i.hidden=!i.hidden)}},_e.prototype.handleClearButton=function(e){this.readOnly||e&&e.disabled||this.clear({resetHistory:!0})},_e.prototype.handleSaveButton=function(e){if(!(this.readOnly||e&&e.disabled)){var t=this,i=null;e&&(e.disabled=!0),Promise.resolve(this.save()).then(function(e){return i=e,"function"==typeof t.options.onSave?t.options.onSave(e,t):e}).then(function(e){var r=null==e?i:e;return t.savedExportData=_e.normalizePreviewData(r),t.hasExplicitSave=!0,t.root.dispatchEvent(new CustomEvent("rbe:save",{detail:t.savedExportData})),t.savedExportData}).catch(function(e){t.hasExplicitSave=!1,t.savedExportData=null,t.hideExportMenu(),t.root.dispatchEvent(new CustomEvent("rbe:save-error",{detail:e}))}).finally(function(){e&&(e.disabled=!1),t.updateHistoryButtons()})}},_e.prototype.getExportFilename=function(e){var t=String(this.options.exportFilename||"blockwriteai-document").trim().replace(/[\\/:*?"<>|]+/g,"-").replace(/\s+/g,"-").replace(/^-+|-+$/g,"");return t||(t="blockwriteai-document"),t+"."+e},_e.prototype.downloadBlob=function(e,t,i){var r=e instanceof Blob?e:new Blob([e],{type:i||"application/octet-stream"}),n=URL.createObjectURL(r),a=v("a","",{href:n,download:t});document.body.appendChild(a),a.click(),a.remove(),setTimeout(function(){URL.revokeObjectURL(n)},1e3)},_e.prototype.collectExportStyles=function(){return Array.prototype.slice.call(document.querySelectorAll('link[rel="stylesheet"], style')).map(function(e){return e.tagName&&"link"===e.tagName.toLowerCase()?'<link rel="stylesheet" href="'+w(e.href)+'">':e.outerHTML||""}).join("\n")},_e.prototype.getExportLogoUrl=function(){var e=oe("blockwriteai-logo.svg");if(e)return e;var t=document.querySelector(".brand-logo[src]");return t?t.src:""},_e.prototype.getInlineExportLogoDataUrl=function(){var e=['<svg width="270" height="58" viewBox="0 0 270 58" fill="none" xmlns="http://www.w3.org/2000/svg">','<defs><linearGradient id="bwai-icon" x1="8" y1="8" x2="50" y2="50" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#102033"/><stop offset="1" stop-color="#172A46"/></linearGradient><linearGradient id="bwai-accent" x1="16" y1="17" x2="43" y2="42" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2BEA8A"/><stop offset="1" stop-color="#10B981"/></linearGradient></defs>','<rect x="2" y="7" width="44" height="44" rx="13" fill="url(#bwai-icon)"/>','<rect x="13" y="17" width="9" height="9" rx="2.2" fill="#FFFFFF"/>','<rect x="25" y="17" width="9" height="9" rx="2.2" fill="#FFFFFF" opacity="0.92"/>','<rect x="13" y="29" width="9" height="9" rx="2.2" fill="url(#bwai-accent)"/>','<path d="M27.5 38.3L37.6 28.2C38.2 27.6 39.1 27.6 39.7 28.2L43 31.5C43.6 32.1 43.6 33 43 33.6L32.9 43.7L26.1 45.1L27.5 38.3Z" fill="#FFFFFF"/>','<path d="M36.1 29.7L41.5 35.1" stroke="#10B981" stroke-width="2.2" stroke-linecap="round"/>','<circle cx="42" cy="45" r="5.5" fill="#19B86B" stroke="#FFFFFF" stroke-width="2.6"/>','<path d="M49 18.5H54M51.5 16V21" stroke="#19B86B" stroke-width="2.4" stroke-linecap="round"/>','<text x="60" y="37" font-family="Inter, Segoe UI, Arial, sans-serif" font-size="28" font-weight="850"><tspan fill="#102033">BlockWr&#305;te</tspan><tspan fill="#12A865">AI</tspan></text>','<circle cx="182" cy="17.6" r="2.8" fill="#19B86B"/>',"</svg>"].join("");return"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(e)},_e.prototype.buildExportPreviewRuntime=function(){var e=this.getInlineExportLogoDataUrl(),t={licenseKey:this.premiumOptions&&this.premiumOptions.licenseKey||"",sessionToken:this.premiumOptions&&this.premiumOptions.sessionToken||"",signatureEventUrl:this.premiumOptions&&this.premiumOptions.signatureEventEndpoint||""};try{t.licenseKey=t.licenseKey||localStorage.getItem("bwai_license_key")||localStorage.getItem("blockwriteai_license_key")||"",t.sessionToken=t.sessionToken||localStorage.getItem("bwai_session_token")||localStorage.getItem("blockwriteai_session_token")||""}catch(e){}return"<script>("+function(e,t){var i="blockwriteai-signature:",r="blockwriteai-signature-flow:",n=(t=t||{}).signatureEventUrl||window.BlockWriteAISignatureEventUrl||"/blockwriteai-platform/api/signature_event.php",a=document;function o(e){return String(null==e?"":e).trim()}function l(e){return e.toLocaleString()}function s(e){try{return JSON.parse(localStorage.getItem(e)||"null")}catch(e){return null}}function d(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch(e){}}function c(e){try{return localStorage.getItem(e)||sessionStorage.getItem(e)||""}catch(e){return""}}function u(e,t){if(e&&t&&t.name){var i=e.querySelector(".rbe-signature-unsigned"),r=e.querySelector(".rbe-signature-signed"),n=e.querySelector(".rbe-signature-input"),a=e.querySelector(".rbe-signature-name"),o=e.querySelector(".rbe-signature-by-name"),s=e.querySelector(".rbe-signature-date");n&&(n.value=t.name,n.readOnly=!0),a&&(a.textContent=t.name),o&&(o.textContent=t.name),s&&(s.textContent=t.dateLabel||l(new Date(t.date||Date.now())),t.date&&s.setAttribute("datetime",t.date)),i&&(i.hidden=!0),r&&(r.hidden=!1),e.dataset.signed="true",e.classList.remove("has-error")}}function p(e){var t=e.querySelector(".rbe-signature-input"),r=o(t&&t.value);if(!r)return e.classList.add("has-error"),void(t&&t.focus());var n=new Date,a={name:r,date:n.toISOString(),dateLabel:l(n)};d(i+(e.dataset.signatureStorageKey||e.dataset.signatureId||""),a),u(e,a)}function h(e,t){if(e&&t&&t.name){var i=e.querySelector(".rbe-flow-signature-unsigned"),r=e.querySelector(".rbe-flow-signature-signed"),n=e.querySelector(".rbe-flow-signature-input"),a=e.querySelector(".rbe-flow-signature-status"),o=e.querySelector(".rbe-flow-signature-name"),s=e.querySelector(".rbe-flow-signature-by-name"),d=e.querySelector(".rbe-flow-signature-email"),c=e.querySelector(".rbe-flow-signature-ip"),u=e.querySelector(".rbe-flow-signature-date");e.classList.add("is-signed"),e.classList.remove("is-locked","has-error"),e.dataset.signed="true",e.dataset.signatureHash=t.signatureHash||"",n&&(n.value=t.name,n.readOnly=!0),a&&(a.textContent="Signed"),o&&(o.textContent=t.name),s&&(s.textContent=t.name),d&&(d.textContent=t.email||""),c&&(c.textContent=t.ipAddress||""),u&&(u.textContent=t.dateLabel||l(new Date(t.date||Date.now())),t.date&&u.setAttribute("datetime",t.date)),i&&(i.hidden=!0),r&&(r.hidden=!1)}}function m(e){var t=Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")),i=Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-connector")),r=!0;t.forEach(function(e,t){var n="true"===e.dataset.signed,a=r||n,o=e.querySelector(".rbe-flow-signature-input"),l=e.querySelector(".rbe-flow-signature-apply"),s=e.querySelector(".rbe-flow-signature-status");e.classList.toggle("is-locked",!a),e.classList.toggle("is-active",a&&!n),n||(o&&(o.disabled=!a),l&&(l.disabled=!a),s&&(s.textContent=a?"Ready to sign":"Pending")),i[t]&&(i[t].classList.toggle("is-complete",n),i[t].classList.toggle("is-pending",!n)),r=n})}function b(e){if(e&&!e.classList.contains("is-locked")){var i=e.querySelector(".rbe-flow-signature-input"),a=o(i&&i.value);if(!a)return e.classList.add("has-error"),void(i&&i.focus());var s=e.closest(".rbe-output-signature-flow");(function(e){var i=t.licenseKey||c("bwai_license_key")||c("blockwriteai_license_key");if(!i||!e||"function"!=typeof fetch)return Promise.resolve(null);var r={action:"lookup",license_key:i,match_signer_value:e,signer_name:e},a=t.sessionToken||c("bwai_session_token")||c("blockwriteai_session_token");return a&&(r.session_token=a),fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}).then(function(e){return e.ok?e.json():null}).then(function(t){return t&&t.matched&&t.signature?{name:t.signature.signer_name||e,email:t.signature.signer_email||"",role:t.signature.signer_role||"",ipAddress:t.signature.ip_address||"",signatureHash:t.signature.signature_hash||"",date:t.signature.created_at||(new Date).toISOString(),dateLabel:t.signature.created_at?l(new Date(t.signature.created_at)):l(new Date)}:null}).catch(function(){return null})})(a).then(function(t){t?function(e,t,i){return i=o(i).toLowerCase(),!(!e||!i)&&Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).some(function(e){return e!==t&&"true"===e.dataset.signed&&o(e.dataset.signatureHash).toLowerCase()===i})}(s,e,t.signatureHash)?function(e,t){e.classList.add("has-error");var i=e.querySelector(".rbe-flow-signature-status");i&&(i.textContent="Signature already used in this flow."),t&&t.focus()}(e,i):(d(r+(s&&s.dataset.flowId||"")+":"+(e.dataset.stepId||""),t),h(e,t),s&&m(s)):function(e,t){e.classList.add("has-error");var i=e.querySelector(".rbe-flow-signature-status");i&&(i.textContent="No verified signature found."),t&&t.focus()}(e,i)})}}a.addEventListener("click",function(e){var t=e.target.closest(".rbe-signature-apply");if(t)p(t.closest(".rbe-output-signature"));else{var i=e.target.closest(".rbe-flow-signature-apply");i&&b(i.closest(".rbe-flow-signature-card"))}}),a.addEventListener("input",function(e){var t=e.target.closest(".has-error");t&&t.classList.remove("has-error")}),a.addEventListener("keydown",function(e){if("Enter"===e.key){var t=e.target.closest(".rbe-signature-input");if(t)return e.preventDefault(),void p(t.closest(".rbe-output-signature"));var i=e.target.closest(".rbe-flow-signature-input");i&&(e.preventDefault(),b(i.closest(".rbe-flow-signature-card")))}}),Array.prototype.slice.call(a.querySelectorAll(".rbe-signature-watermark,.rbe-flow-signature-watermark")).forEach(function(t){t.src=e}),function(){var e={};Array.prototype.slice.call(a.querySelectorAll(".rbe-output-signature")).forEach(function(t){var i=t.dataset.signatureId||"signature";e[i]=(e[i]||0)+1});var t={};Array.prototype.slice.call(a.querySelectorAll(".rbe-output-signature")).forEach(function(r){var n=r.dataset.signatureId||"signature";t[n]=(t[n]||0)+1;var a=e[n]>1?n+":"+t[n]:n;r.dataset.signatureStorageKey=a;var o=s(i+a);o&&o.name&&u(r,o)}),Array.prototype.slice.call(a.querySelectorAll(".rbe-output-signature-flow")).forEach(function(e){Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).forEach(function(t){var i=s(r+(e.dataset.flowId||"")+":"+(t.dataset.stepId||""));i&&i.name&&i.signatureHash&&h(t,i)}),m(e)})}()}.toString()+")("+JSON.stringify(e)+","+JSON.stringify(t)+");<\/script>"},_e.prototype.buildExportDocument=function(){var e=_e.normalizePreviewData(this.savedExportData),t=_e.toHTML(e,{fontAwesome:this.options.fontAwesome,select2:!1}),i=this.collectExportStyles(),r=this.buildExportPreviewRuntime();return["<!doctype html>",'<html lang="en">',"<head>",'<meta charset="utf-8">','<meta name="viewport" content="width=device-width, initial-scale=1">',"<title>BlockWriteAI Report</title>",i,"<style>"+["@page{margin:18mm 14mm 20mm;}","body{margin:0;background:#eef3f8;color:#172033;font:16px/1.58 Arial,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}",".blockwriteai-export-page{max-width:1040px;margin:24px auto;padding:28px;background:#fff;border:1px solid #d7dee8;border-radius:8px;}",".blockwriteai-export-page .rbe-output-latex{font-style:italic;}","@media print{html,body{background:#fff!important;}.blockwriteai-export-page{max-width:none;margin:0;padding:0;border:0;border-radius:0;}.blockwriteai-export-pages{gap:0;}.blockwriteai-export-sheet{margin:0;box-shadow:none;border:0;}.blockwriteai-export-sheet:last-child{break-after:auto;page-break-after:auto;}}"].join("")+"</style>","</head>","<body>",'<main class="blockwriteai-export-page blockwriteai-preview">'+t+"</main>",r,"</body>","</html>"].join("\n")},_e.prototype.handleExport=function(e){if(!this.readOnly&&this.hasExplicitSave&&this.savedExportData){this.hideExportMenu();var t=_e.normalizePreviewData(this.savedExportData);"json"!==e||this.downloadBlob(JSON.stringify(t,null,2),this.getExportFilename("json"),"application/json;charset=utf-8")}},_e.prototype.handleExportHTML=function(){!this.readOnly&&this.hasExplicitSave&&this.savedExportData&&this.showExportHTMLPreview(this.buildExportDocument())},_e.prototype.showExportHTMLPreview=function(e){var t=document.querySelector(".rbe-html-preview-modal");t&&t.remove();var i=v("iframe","rbe-html-preview-frame",{title:"BlockWriteAI HTML preview",sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads"}),r=v("div","rbe-html-preview-modal",{role:"dialog","aria-modal":"true","aria-label":"BlockWriteAI HTML preview",html:'<div class="rbe-html-preview-shell"><header class="rbe-html-preview-header"><strong>HTML Preview</strong><button type="button" class="rbe-html-preview-close" aria-label="Close preview">'+S("xmark","Close preview")+'</button></header><div class="rbe-html-preview-body"></div></div>'});r.querySelector(".rbe-html-preview-body").appendChild(i),r.addEventListener("click",function(e){(e.target===r||e.target.closest(".rbe-html-preview-close"))&&r.remove()}),document.body.appendChild(r),i.srcdoc=e},_e.prototype.toggleHistoryPanel=function(){var e=this.topToolbar&&this.topToolbar.querySelector(".rbe-history-panel");e&&(e.hidden=!e.hidden,e.hidden||this.updateHistoryPanel())},_e.prototype.updateHistoryPanel=function(){var e=this.topToolbar&&this.topToolbar.querySelector(".rbe-history-panel");if(e){var t=function(e){return'<button type="button" class="rbe-history-clear" '+(e?"disabled":"")+">"+S("trash-can","Clear history")+"<span>Clear history</span></button>"};this.actionHistory.length?e.innerHTML="<strong>History</strong>"+this.actionHistory.slice().reverse().map(function(e,t){var i=this.actionHistory.length-1-t,r=e.time instanceof Date?e.time.toLocaleString([],{dateStyle:"short",timeStyle:"short"}):"";return'<div class="rbe-history-row"><button type="button" class="rbe-history-restore" data-history-restore="'+i+'"><span><strong>'+w(e.blockName||"Document")+"</strong><em>"+w(e.actionName||"Edited")+"</em></span><small>"+w(r)+"<br>By "+w(e.userName||"Current user")+'</small></button><button type="button" class="rbe-history-delete" title="Delete history item" aria-label="Delete history item" data-history-delete="'+i+'">'+S("trash-can","Delete history item")+"</button></div>"},this).join("")+t(!1):e.innerHTML='<strong>History</strong><span class="rbe-history-empty">No changes yet</span>'+t(!0)}},_e.prototype.restoreHistoryEntry=function(e){var t=this.actionHistory[e];t&&t.snapshot&&(this.render({blocks:JSON.parse(t.snapshot)},{silent:!0}),this.history=this.history.slice(0,this.historyIndex+1),this.history.push(t.snapshot),this.history.length>80&&this.history.shift(),this.historyIndex=this.history.length-1,this.updateHistoryButtons(),this.emitChange())},_e.prototype.deleteHistoryEntry=function(e){if(!(e<0||e>=this.actionHistory.length)){var t=this.actionHistory[e];if(this.actionHistory.splice(e,1),t&&t.snapshot&&this.history.length>1){var i=this.history.indexOf(t.snapshot);i>=0&&(this.history.splice(i,1),this.historyIndex>=i&&(this.historyIndex-=1))}var r=JSON.stringify(this.getData().blocks);(!this.history.length||this.history.indexOf(r)<0)&&(this.history.push(r),this.historyIndex=this.history.length-1),this.historyIndex=Math.max(0,Math.min(this.historyIndex,this.history.length-1)),this.updateHistoryButtons()}},_e.prototype.clearHistory=function(){var e=JSON.stringify(this.getData().blocks);this.history=[e],this.historyIndex=0,this.actionHistory=[],this.pendingHistoryAction=null,this.updateHistoryButtons()},_e.prototype.exportHTML=function(){var e=this,t=function(e){return"left"===(e=le(e))?"":' style="text-align:'+e+'"'},i=function(e){var t=P((e=e||{}).source||e.embed),i=t.embed||e.embed;return i?'<figure class="rbe-output-embed-figure"><iframe class="rbe-output-embed" src="'+w(i)+'" title="'+w(t.service||e.service||"Embedded content")+' embed" frameborder="0" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>'+(e.caption?"<figcaption>"+w(e.caption)+"</figcaption>":"")+"</figure>":'<p class="rbe-output-embed-link"><a href="'+w(e.source||"")+'">'+w(e.source||"")+"</a></p>"},r=function(a){var o=a&&a.data||{};if(!a)return"";if("paragraph"===a.type)return"<p"+t(o.alignment)+">"+Ne(o.text||"")+"</p>";if("heading"===a.type)return"<h"+(o.level||2)+t(o.alignment)+">"+Ne(o.text||"")+"</h"+(o.level||2)+">";if("quote"===a.type)return'<blockquote class="rbe-output-quote"'+t(o.alignment)+">"+Ne(o.text||"")+(o.caption?"<footer>"+w(o.caption)+"</footer>":"")+"</blockquote>";if("list"===a.type)return Oe(o.items||[],o.style,o.alignment);if("checklist"===a.type)return qe(o.items||[]);if("code"===a.type)return Ce(o);if("raw"===a.type)return x(o.html||"");if("image"===a.type)return'<figure class="rbe-output-image-figure"><div class="rbe-image-gallery">'+V(o).map(function(e){return ie(e)}).join("")+"</div></figure>";if("attaches"===a.type)return'<div class="rbe-attachment-grid">'+re(o).map(function(e){return'<a class="rbe-attachment-card" data-kind="'+w(Y(e.type,e.name))+'" href="'+w(e.url)+'" target="_blank" rel="noopener noreferrer"><span class="rbe-attachment-card-icon">'+S(Q(e.type,e.name),"Attachment")+'</span><strong class="rbe-attachment-card-type">'+w($(e.type,e.name))+'</strong><span class="rbe-attachment-card-name">'+w(e.name||"Attachment")+"</span></a>"}).join("")+"</div>";if("table"===a.type){var l="center"===o.align||"right"===o.align?o.align:"left",s=Math.min(100,Math.max(40,Number(o.width||100))),d="center"===l?"margin-left:auto;margin-right:auto;":"right"===l?"margin-left:auto;margin-right:0;":"margin-left:0;margin-right:auto;",c=ce(o);return'<div class="rbe-output-table-wrap"><table style="width:'+s+"%;"+d+'border-collapse:collapse;table-layout:fixed;">'+(o.rows||[]).map(function(e,t){return"<tr>"+e.map(function(e){var i=o.withHeadings&&0===t?"th":"td",r=He(e),n="border:"+c+";padding:8px;vertical-align:top;text-align:"+r+";";return"th"===i&&(n+="background:#eef5ff;font-weight:720;"),"<"+i+' style="'+n+'">'+Ne(Be(e))+"</"+i+">"}).join("")+"</tr>"}).join("")+"</table></div>"}if("callout"===a.type){var u=ue(o.tone);return'<aside class="rbe-output-callout rbe-output-callout-'+w(u)+'" style="'+pe(u,o.alignment)+'">'+Ne(o.text||"")+"</aside>"}return"embed"===a.type?i(o):n[a.type]&&"function"==typeof n[a.type].toHTML?n[a.type].toHTML.call(e,o,Object.assign(Pe(),{renderBlock:r})):""};return this.getData().blocks.map(function(e){var a=e.data||{};if("paragraph"===e.type)return"<p"+t(a.alignment)+">"+Ne(a.text||"")+"</p>";if("heading"===e.type)return"<h"+(a.level||2)+t(a.alignment)+">"+Ne(a.text||"")+"</h"+(a.level||2)+">";if("quote"===e.type)return'<blockquote class="rbe-output-quote"'+t(a.alignment)+">"+Ne(a.text||"")+(a.caption?"<footer>"+w(a.caption)+"</footer>":"")+"</blockquote>";if("list"===e.type)return Oe(a.items||[],a.style,a.alignment);if("checklist"===e.type)return qe(a.items||[]);if("code"===e.type)return Ce(a);if("image"===e.type)return'<figure class="rbe-output-image-figure"><div class="rbe-image-gallery">'+V(a).map(function(e){return ie(e)}).join("")+"</div></figure>";if("table"===e.type){var o="center"===a.align||"right"===a.align?a.align:"left",l=Math.min(100,Math.max(40,Number(a.width||100))),s="center"===o?"margin-left:auto;margin-right:auto;":"right"===o?"margin-left:auto;margin-right:0;":"margin-left:0;margin-right:auto;",d=ce(a);return'<div class="rbe-output-table-wrap"><table style="width:'+l+"%;"+s+'border-collapse:collapse;table-layout:fixed;">'+(a.rows||[]).map(function(e,t){return"<tr>"+e.map(function(e){var i=a.withHeadings&&0===t?"th":"td",r=He(e),n="border:"+d+";padding:8px;vertical-align:top;text-align:"+r+";";return"th"===i&&(n+="background:#eef5ff;font-weight:720;"),"<"+i+' style="'+n+'">'+Ne(Be(e))+"</"+i+">"}).join("")+"</tr>"}).join("")+"</table></div>"}if("embed"===e.type)return i(a);if("callout"===e.type){var c=ue(a.tone);return'<aside class="rbe-output-callout rbe-output-callout-'+w(c)+'" style="'+pe(c,a.alignment)+'">'+Ne(a.text||"")+"</aside>"}if("delimiter"===e.type)return'<hr class="rbe-output-delimiter rbe-output-delimiter-'+w("dashed"===a.style||"dotted"===a.style||"thick"===a.style?a.style:"line")+'">';if("button"===e.type){var u=le(a.alignment),p=T(a.url||"")?a.url:"#",h=a.background||"#2563eb",m=a.color||"#ffffff";return'<p class="rbe-output-button-wrap" style="text-align:'+u+'"><a class="rbe-button-link" style="background-color:'+w(h)+";color:"+w(m)+'" href="'+w(p)+'" target="_blank" rel="noopener noreferrer">'+w(a.text||"Button")+"</a></p>"}if("toggle"===e.type){var b=Array.isArray(a.blocks)&&a.blocks.length?a.blocks.map(r).join("\n"):Ne(a.text||"");return'<details class="rbe-output-toggle"'+(!1===a.open?"":" open")+"><summary>"+w(a.title||"Details")+"</summary><div>"+b+"</div></details>"}return"linkPreview"===e.type?'<a class="rbe-output-link-preview" href="'+w(T(a.url||"")?a.url:"#")+'" target="_blank" rel="noopener noreferrer"><span class="rbe-link-preview-icon">'+S("arrow-up-right-from-square","Open link")+"</span><strong>"+w(a.title||a.url||"Link preview")+"</strong><span>"+w(a.description||"")+"</span></a>":"raw"===e.type?x(a.html||""):"attaches"===e.type?'<div class="rbe-attachment-grid">'+re(a).map(function(e){return'<a class="rbe-attachment-card" data-kind="'+w(Y(e.type,e.name))+'" href="'+w(e.url)+'" target="_blank" rel="noopener noreferrer"><span class="rbe-attachment-card-icon">'+S(Q(e.type,e.name),"Attachment")+'</span><strong class="rbe-attachment-card-type">'+w($(e.type,e.name))+'</strong><span class="rbe-attachment-card-name">'+w(e.name||"Attachment")+"</span></a>"}).join("")+"</div>":n[e.type]&&"function"==typeof n[e.type].toHTML?n[e.type].toHTML.call(this,a,Object.assign(Pe(),{renderBlock:r})):""},this).join("\n")},_e.normalizePreviewData=function(e){return e?e.data&&Array.isArray(e.data.blocks)?e.data:Array.isArray(e.blocks)?e:{time:Date.now(),blocks:[]}:{time:Date.now(),blocks:[]}},_e.toHTML=function(e,t){if("undefined"==typeof document||!document.body)return"";var i=v("div","rbe-preview-renderer",{hidden:!0});document.body.appendChild(i);var r=new _e(Object.assign({holder:i,data:_e.normalizePreviewData(e),readOnly:!0,minHeight:"0px",autosave:null,saveButton:!1,exportButton:!1,historyPanel:!1,shell:!1,select2:!1},t||{})),n=r.exportHTML();return r.destroy(),i.remove(),n},_e.initPreviewPlugins=function(e){var t="undefined"!=typeof window?window:null;return t?(t.BlockWriteAISignature&&"function"==typeof t.BlockWriteAISignature.init&&t.BlockWriteAISignature.init(e||document),t.BlockWriteAISignatureFlow&&"function"==typeof t.BlockWriteAISignatureFlow.init&&t.BlockWriteAISignatureFlow.init(e||document),e):e},_e.primeSignatureData=function(e){if(!e||"undefined"==typeof localStorage)return e;var t=e.items||e.signatures||{};Array.isArray(t)?t.forEach(function(e){var t=e&&(e.storageKey||e.signatureId||e.id);t&&localStorage.setItem("blockwriteai-signature:"+t,JSON.stringify(e))}):Object.keys(t).forEach(function(e){t[e]&&localStorage.setItem("blockwriteai-signature:"+e,JSON.stringify(t[e]))});var i=e.flows||{};return Object.keys(i).forEach(function(e){var t=i[e]&&(i[e].steps||i[e])||{};Object.keys(t).forEach(function(i){t[i]&&localStorage.setItem("blockwriteai-signature-flow:"+e+":"+i,JSON.stringify(t[i]))})}),e},_e.renderPreview=function(e,t,i){var r="string"==typeof e?document.querySelector(e):e;if(!r)return null;var n=_e.normalizePreviewData(t);return _e.primeSignatureData(n&&n.signatures),r.innerHTML=_e.toHTML(n,i),r.dataset.blockwriteaiPreviewMounted="true",_e.initPreviewPlugins(r),r},_e.mountPreviews=function(e){var t=(e=e||{}).selector||".blockwriteai-preview, [data-blockwriteai-preview]",i=Array.prototype.slice.call(document.querySelectorAll(t));return Promise.all(i.map(function(t){if(!e.force&&"true"===t.dataset.blockwriteaiPreviewMounted)return Promise.resolve(t);var i=t.dataset.blockwriteaiJson||"",r=t.querySelector('script[type="application/json"]'),n=t.dataset.source||t.dataset.blockwriteaiSource||"",a=function(i){return _e.renderPreview(t,i,e.editor||{}),t};if(i)try{return Promise.resolve(a(JSON.parse(i)))}catch(e){return t.innerHTML="<p>Invalid BlockWriteAI preview JSON.</p>",Promise.resolve(t)}if(r&&r.textContent.trim())try{return Promise.resolve(a(JSON.parse(r.textContent)))}catch(e){return t.innerHTML="<p>Invalid BlockWriteAI preview JSON.</p>",Promise.resolve(t)}return n?fetch(n,{headers:{Accept:"application/json"},cache:"no-store"}).then(function(e){if(!e.ok)throw new Error("Unable to load BlockWriteAI preview JSON");return e.json()}).then(a).catch(function(e){return t.innerHTML="<p>"+w(e.message||"Unable to load BlockWriteAI preview.")+"</p>",t}):e.data?Promise.resolve(a(e.data)):window.BlockWriteAIPreviewData||window.BlockWriteAIPreviewData?Promise.resolve(a(window.BlockWriteAIPreviewData)):(t.innerHTML="<p>No preview content available.</p>",t.dataset.blockwriteaiPreviewMounted="true",Promise.resolve(t))}))},_e.prototype.exportMarkdown=function(){return this.getData().blocks.map(function(e){var t=e.data||{},i=function(e){var t=document.createElement("div");return t.innerHTML=A(e||""),t.textContent||""};if("paragraph"===e.type)return i(t.text);if("heading"===e.type)return Array(Number(t.level||2)+1).join("#")+" "+i(t.text);if("quote"===e.type)return"> "+i(t.text)+(t.caption?"\n> -- "+t.caption:"");if("list"===e.type){var r=[0,0,0,0,0];return(t.items||[]).map(Le).filter(function(e){return!Me(e)}).map(function(e){var n=Te(e);r[n]+=1;for(var a=n+1;a<r.length;a+=1)r[a]=0;return Array(n+1).join(" ")+("ordered"===t.style?r[n]+". ":"- ")+i(e.text)}).join("\n")}return"checklist"===e.type?(t.items||[]).map(Ae).filter(function(e){return!Me(e)}).map(function(e){var t=Te(e);return Array(t+1).join(" ")+"- ["+(e.checked?"x":" ")+"] "+i(e.text)}).join("\n"):"code"===e.type?"```"+(t.language||"")+"\n"+(t.code||"")+"\n```":"image"===e.type?V(t).map(function(e){return"!["+(e.alt||e.caption||"")+"]("+e.url+")"}).join("\n"):"delimiter"===e.type?"---":"embed"===e.type?t.source||t.embed||"":"callout"===e.type?"> "+i(t.text):"button"===e.type?"["+(t.text||"Button")+"]("+(t.url||"#")+")":"toggle"===e.type?"<details>\n<summary>"+(t.title||"Details")+"</summary>\n\n"+i(t.text)+"\n</details>":"linkPreview"===e.type?"["+(t.title||t.url||"Link preview")+"]("+(t.url||"#")+")"+(t.description?"\n"+t.description:""):"raw"===e.type?t.html||"":"attaches"===e.type?re(t).map(function(e){return"["+(e.name||"Attachment")+"]("+e.url+")"}).join("\n"):n[e.type]&&"function"==typeof n[e.type].toMarkdown?n[e.type].toMarkdown.call(this,t,Object.assign(Pe(),{text:i})):""},this).join("\n\n")},_e.prototype.importHTML=function(e){var t=document.createElement("template");t.innerHTML=e;var i=[];Array.prototype.slice.call(t.content.children).forEach(function(e){var t=e.tagName.toLowerCase();/h[1-4]/.test(t)?i.push({type:"heading",data:{level:Number(t.slice(1)),text:A(e.innerHTML)}}):"blockquote"===t?i.push({type:"quote",data:{text:A(e.innerHTML),caption:""}}):"ul"===t||"ol"===t?i.push({type:"list",data:{style:"ol"===t?"ordered":"unordered",items:Array.prototype.slice.call(e.children).map(function(e){return A(e.innerHTML)})}}):"figure"===t&&e.querySelector("img")?i.push({type:"image",data:{url:e.querySelector("img").src,caption:(e.querySelector("figcaption")||{}).textContent||""}}):"pre"===t?i.push({type:"code",data:{code:e.textContent||"",language:""}}):"hr"===t?i.push({type:"delimiter",data:{}}):i.push({type:"paragraph",data:{text:A(e.innerHTML||e.textContent)}})}),this.render({blocks:i})},_e});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qarakash/blockwriteai",
3
- "version": "1.0.19",
3
+ "version": "1.0.20",
4
4
  "description": "BlockWriteAI JSON-first drop-in block writing editor with free core blocks, preview mounting, and license-gated premium plugins.",
5
5
  "keywords": [
6
6
  "blockwriteai",