@blockwriteaileaf/blockwriteai 1.2.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(e){"use strict";var t=e.BlockWriteAI;if(t&&!t.__signatureFlowPluginInstalled){t.__signatureFlowPluginInstalled=!0;var r=t.helpers||{},n=r.el,i=r.escapeHTML||function(e){return String(null==e?"":e).replace(/[&<>"]/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]})},a=r.faIcon||function(e,t){return'<i class="fa-solid fa-'+i(e)+'" aria-hidden="true"></i><span class="rbe-sr-only">'+i(t||e)+"</span>"},o=r.uid||function(e){return(e||"signature-flow")+"-"+Math.random().toString(36).slice(2,9)};l(),t.registerTool("signatureFlow",{label:"Signature Flow",hint:"Sequential signer approvals",icon:"people-arrows",premiumFeature:"signature_flow",defaultData:function(){return{flowId:o("signature-flow"),title:"Signature Flow",steps:p()}},render:function(e,t){l();var r=n("div","rbe-signature-flow-editor",{dataset:{flowId:(t=t||{}).flowId||o("signature-flow")}}),i=n("div","rbe-signature-flow-top");i.appendChild(n("strong","",{text:"Signature Flow"})),i.appendChild(n("button","rbe-signature-flow-add",{type:"button",title:"Add signer","aria-label":"Add signer",html:a("circle-plus","Add signer"),disabled:this.readOnly})),r.appendChild(i);var s=n("div","rbe-signature-flow-steps");p(t.steps).forEach(function(e,t){s.appendChild(b(this,e,t))},this),r.appendChild(s),e.appendChild(r);var d=this,u=r.querySelector(".rbe-signature-flow-add");u&&u.addEventListener("click",function(){var e=s.querySelectorAll(".rbe-signature-flow-step").length;s.appendChild(b(d,{id:o("signer"),label:"Signer "+(e+1)},e)),w(r),d&&"function"==typeof d.changed&&d.changed(!0)}),s.addEventListener("click",function(e){var t=e.target.closest(".rbe-signature-flow-remove");t&&!d.readOnly&&(s.querySelectorAll(".rbe-signature-flow-step").length<=1||(t.closest(".rbe-signature-flow-step").remove(),w(r),d&&"function"==typeof d.changed&&d.changed(!0)))})},serialize:function(e){var t=e.querySelector(".rbe-signature-flow-editor");return{flowId:t&&t.dataset.flowId||o("signature-flow"),title:"Signature Flow",steps:Array.prototype.slice.call(e.querySelectorAll(".rbe-signature-flow-step")).map(function(e,t){return{id:e.dataset.stepId||o("signer"),label:d((e.querySelector(".rbe-signature-flow-label")||{}).value)||"Signer "+(t+1)}})}},toHTML:function(e){l();var t=(e=e||{}).flowId||o("signature-flow"),r=p(e.steps);return'<section class="rbe-output-signature-flow" data-flow-id="'+i(t)+'"><div class="rbe-output-signature-flow-title">Signature Flow</div><div class="rbe-flow-signature-track">'+r.map(function(e,t){return'<section class="rbe-flow-signature-card" data-step-id="'+i(e.id)+'" data-signed="false">'+('<span class="'+i(n="rbe-flow-signature-seal")+'" aria-hidden="true"><svg class="'+i(n+"-logo")+'" viewBox="0 0 32 32" role="img" focusable="false"><path d="M7 4h12l6 6v15a3 3 0 0 1-3 3H10a3 3 0 0 1-3-3z" fill="#fff"/><path d="M19 4v6h6" fill="#ffe5e5"/><path d="M10 23c2-4 3-4 4 0 1-2 2-2 3 0 1-1 2-1 4 0" fill="none" stroke="#d40000" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M22.5 17.5l4.6-4.6 2 2-4.6 4.6-3 .9z" fill="#fff"/><path d="M26.3 13.7l2 2" fill="none" stroke="#d40000" stroke-width="1.1" stroke-linecap="round"/></svg></span><img class="rbe-flow-signature-watermark" src="')+i(s())+'" alt="" aria-hidden="true"><div class="rbe-flow-signature-head"><span class="rbe-flow-signature-label">'+i(t+1+". "+e.label)+'</span><span class="rbe-flow-signature-status">Waiting</span></div><div class="rbe-flow-signature-unsigned"><input class="rbe-flow-signature-input" type="text" autocomplete="name" placeholder="Enter signer name or email..."><button type="button" class="rbe-flow-signature-apply">'+a("file-signature","Sign")+'<span>Sign</span></button></div><div class="rbe-flow-signature-signed" hidden><div class="rbe-flow-signature-name"></div><div class="rbe-flow-signature-meta"><strong>Signer Name: <span class="rbe-flow-signature-by-name"></span></strong><span>Signer Email: <span class="rbe-flow-signature-email"></span></span><span>IP Address: <span class="rbe-flow-signature-ip"></span></span><span>Date &amp; Time: <time class="rbe-flow-signature-date"></time></span></div></div></section>'+(t<r.length-1?'<span class="rbe-flow-signature-connector is-pending" aria-hidden="true"></span>':"");var n}).join("")+"</div></section>"},toMarkdown:function(e){return"Signature Flow\n"+p(e&&e.steps).map(function(e,t){return t+1+". "+e.label}).join("\n")}}),e.BlockWriteAISignatureFlow={init:k,sign:S,update:v},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){k(document)}):setTimeout(function(){k(document)},0)}function s(){return e.BlockWriteAILogoUrl||function(e){try{var t=document.currentScript&&document.currentScript.src||document.baseURI;return new URL(e,t).href}catch(t){return e}}("../blockwriteai-logo.svg")}function l(){if(!document.querySelector("style[data-blockwriteai-signature-flow-plugin]")){var e=document.createElement("style");e.dataset.blockwriteaiSignatureFlowPlugin="true",e.textContent=".rbe-signature-flow-editor{border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:14px;display:grid;gap:12px;}.rbe-signature-flow-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}.rbe-signature-flow-top strong{font:800 14px/1.3 Arial,sans-serif;color:#344054;}.rbe-signature-flow-steps{display:grid;gap:8px;}.rbe-signature-flow-step{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;gap:8px;align-items:center;border:1px solid #e2e8f0;border-radius:8px;background:#fbfdff;padding:8px;}.rbe-signature-flow-index{width:28px;height:28px;border-radius:999px;background:#eaf1ff;color:#1d4ed8;display:grid;place-items:center;font:800 12px/1 Arial,sans-serif;}.rbe-signature-flow-step input{width:100%;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#172033;font:14px/1.4 Arial,sans-serif;padding:9px 10px;}.rbe-signature-flow-add,.rbe-signature-flow-remove{border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#344054;min-width:34px;height:34px;display:inline-grid;place-items:center;cursor:pointer;}.rbe-signature-flow-add:hover{border-color:#16a34a;background:#ecfdf3;color:#07845f;}.rbe-signature-flow-remove:hover{border-color:#dc2626;background:#fef2f2;color:#b42318;}.rbe-output-signature-flow{display:grid;gap:12px;margin:0 0 15px;}.rbe-output-signature-flow-title{font:800 15px/1.35 Arial,sans-serif;color:#172033;}.rbe-flow-signature-track{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:10px 8px;}.rbe-flow-signature-card{position:relative;overflow:visible;container-type:inline-size;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:10px;display:grid;gap:8px;flex:1 1 170px;min-width:150px;max-width:230px;min-height:126px;box-sizing:border-box;}.rbe-flow-signature-card.is-locked{opacity:.68;}.rbe-flow-signature-watermark{position:absolute;left:50%;top:52%;width:min(140px,76%);max-height:82px;object-fit:contain;opacity:.14;transform:translate(-50%,-50%);pointer-events:none;user-select:none;}.rbe-flow-signature-seal{position:absolute;right:10px;top:8px;z-index:4;width:34px;height:34px;background:#d40000;color:#fff;display:none;place-items:center;padding:0;border-radius:4px;box-shadow:0 8px 14px rgba(160,0,0,.2);pointer-events:none;}.rbe-flow-signature-card[data-signed='true'] .rbe-flow-signature-seal{display:grid;}.rbe-flow-signature-seal-logo{display:block;width:25px;height:25px;}.rbe-flow-signature-head{position:relative;z-index:1;display:grid;gap:6px;font:800 13px/1.3 Arial,sans-serif;color:#344054;}.rbe-flow-signature-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.rbe-flow-signature-status{justify-self:start;border-radius:999px;background:#fffbeb;color:#b45309;padding:4px 7px;font-size:10px;line-height:1;font-weight:800;white-space:nowrap;}.rbe-flow-signature-card.is-signed{border-color:#86efac;background:#f0fdf4;}.rbe-flow-signature-card.is-signed .rbe-flow-signature-status{background:#dcfce7;color:#07845f;}.rbe-flow-signature-card.is-locked .rbe-flow-signature-status{background:#fef3c7;color:#92400e;}.rbe-flow-signature-connector{align-self:center;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;min-height:34px;color:#b45309;font:900 18px/1 Arial,sans-serif;}.rbe-flow-signature-connector::before{content:'\\2192';}.rbe-flow-signature-connector.is-complete{color:#16a34a;}.rbe-flow-signature-connector.is-pending{color:#d97706;}.rbe-flow-signature-unsigned{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:7px;align-items:center;width:100%;margin:0;}.rbe-flow-signature-input{width:100%;min-width:0;min-height:38px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#111827;font:15px/1.2 'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;padding:7px 9px;text-align:center;box-sizing:border-box;}.rbe-flow-signature-input::placeholder{color:#98a2b3;font:13px/1.35 Arial,sans-serif;}.rbe-flow-signature-apply{border:1px solid #1d4ed8;border-radius:8px;background:#2563eb;color:#fff;font:800 13px/1 Arial,sans-serif;padding:9px 10px;cursor:pointer;}.rbe-flow-signature-apply:disabled,.rbe-flow-signature-input:disabled{cursor:not-allowed;opacity:.7;}.rbe-flow-signature-card.has-error .rbe-flow-signature-input{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12);}.rbe-flow-signature-signed{position:relative;z-index:1;display:grid;gap:5px;align-items:center;}.rbe-flow-signature-signed[hidden],.rbe-flow-signature-unsigned[hidden]{display:none!important;}.rbe-flow-signature-name{min-width:0;font-family:'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;font-size:15px;line-height:1.1;color:#050505;overflow-wrap:anywhere;}.rbe-flow-signature-meta{min-width:0;font-family:Arial,sans-serif;font-size:12px;line-height:1.2;color:#050505;display:grid;gap:2px;overflow-wrap:anywhere;}.rbe-flow-signature-meta strong{font-weight:500;}.rbe-flow-signature-meta strong,.rbe-flow-signature-meta span,.rbe-flow-signature-meta time{min-width:0;overflow-wrap:anywhere;}.rbe-flow-signature-card.is-compact{padding:8px;gap:6px;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-name{font-size:15px;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-meta{font-size:11px;line-height:1.22;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-seal{right:7px;top:7px;width:30px;height:30px;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-seal-logo{width:22px;height:22px;}@container (max-width:180px){.rbe-flow-signature-meta{font-size:11px;}.rbe-flow-signature-name{font-size:14px;}}@media (max-width:720px){.rbe-signature-flow-step{grid-template-columns:1fr;}.rbe-signature-flow-index{width:100%;border-radius:8px;}.rbe-flow-signature-card{flex-basis:150px;}.rbe-flow-signature-connector{flex-basis:24px;}}",document.head.appendChild(e)}}function d(e){return String(null==e?"":e).trim()}function u(e){try{return sessionStorage.getItem(e)||localStorage.getItem(e)||""}catch(e){return""}}function c(e){return e.toLocaleString()}function f(e,t){return"blockwriteai-signature-flow:"+e+":"+t}function g(r,n){var i=e.BlockWriteAIAuthorizationToken||u("bwai_authorization_token");if(!i||!n||"function"!=typeof fetch)return Promise.resolve(null);var a={action:"lookup",authorization_token:i,match_signer_value:n,signer_name:n},o=e.BlockWriteAISessionToken||u("bwai_session_token")||u("blockwriteai_session_token");return o&&(a.session_token=o),fetch(e.BlockWriteAISignatureEventUrl||t.platformEndpoints&&t.platformEndpoints.signatureEvent||"https://blockwriteai.in/api/signature_event.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(function(e){return e.ok?e.json():null}).then(function(e){return e&&e.matched&&e.signature?{name:e.signature.signer_name||n,email:e.signature.signer_email||"",role:e.signature.signer_role||"",ipAddress:e.signature.ip_address||"",signatureHash:e.signature.signature_hash||"",date:e.signature.created_at||(new Date).toISOString(),dateLabel:e.signature.created_at?c(new Date(e.signature.created_at)):c(new Date)}:null}).catch(function(){return null})}function p(e){var t=Array.isArray(e)?e:[];return t.length||(t=[{id:o("signer"),label:"Signer 1"},{id:o("signer"),label:"Signer 2"},{id:o("signer"),label:"Signer 3"}]),t.map(function(e,t){return{id:(e=e||{}).id||o("signer"),label:d(e.label)||"Signer "+(t+1)}})}function b(e,t,r){var i=n("div","rbe-signature-flow-step",{dataset:{stepId:t.id||o("signer")}});return i.appendChild(n("span","rbe-signature-flow-index",{text:r+1})),i.appendChild(n("input","rbe-signature-flow-label",{type:"text",value:t.label||"Signer "+(r+1),placeholder:"Signer name or role",disabled:e.readOnly})),i.appendChild(n("button","rbe-signature-flow-remove",{type:"button",title:"Remove signer","aria-label":"Remove signer",html:a("trash-can","Remove signer"),disabled:e.readOnly})),i}function w(e){Array.prototype.slice.call(e.querySelectorAll(".rbe-signature-flow-step")).forEach(function(e,t){var r=e.querySelector(".rbe-signature-flow-index");r&&(r.textContent=t+1);var n=e.querySelector(".rbe-signature-flow-label");n&&!d(n.value)&&(n.placeholder="Signer "+(t+1))})}function h(e){if(!e)return[];Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-connector")).forEach(function(e){e.remove()});var t=Array.prototype.slice.call(e.children).filter(function(e){return e.classList&&e.classList.contains("rbe-flow-signature-card")});return t.forEach(function(r,n){var i;n<t.length-1&&e.insertBefore(((i=document.createElement("span")).className="rbe-flow-signature-connector is-pending",i.setAttribute("aria-hidden","true"),i),r.nextSibling)}),t}function m(e){var t=null;if(Array.prototype.slice.call(e.children).some(function(e){return!(!e.classList||!e.classList.contains("rbe-flow-signature-track"))&&(t=e,!0)}),!t){(t=document.createElement("div")).className="rbe-flow-signature-track";var r=e.querySelector(".rbe-output-signature-flow-title");r&&r.parentNode===e?e.insertBefore(t,r.nextSibling):e.appendChild(t)}return Array.prototype.slice.call(e.children).forEach(function(e){e!==t&&e.classList&&e.classList.contains("rbe-flow-signature-card")&&t.appendChild(e)}),h(t),t}function x(e,t){if(e&&t&&t.name){e.classList.add("is-signed"),e.classList.remove("is-locked","has-error"),e.dataset.signed="true";var r=e.querySelector(".rbe-flow-signature-unsigned"),n=e.querySelector(".rbe-flow-signature-signed"),i=e.querySelector(".rbe-flow-signature-status"),a=e.querySelector(".rbe-flow-signature-name"),o=e.querySelector(".rbe-flow-signature-by-name"),s=e.querySelector(".rbe-flow-signature-email"),l=e.querySelector(".rbe-flow-signature-ip"),d=e.querySelector(".rbe-flow-signature-date"),u=e.querySelector(".rbe-flow-signature-input");u&&(u.value=t.name,u.readOnly=!0),r&&(r.hidden=!0),n&&(n.hidden=!1),i&&(i.textContent="Signed"),a&&(a.textContent=t.name),o&&(o.textContent=t.name),s&&(s.textContent=t.email||""),l&&(l.textContent=t.ipAddress||""),d&&(d.textContent=t.dateLabel||c(new Date(t.date||Date.now())),t.date&&d.setAttribute("datetime",t.date)),e.dataset.signatureHash=t.signatureHash||"",y(e)}}function y(e){if(e&&e.getBoundingClientRect){var t=e.getBoundingClientRect().width;e.classList.toggle("is-compact",t>0&&t<190)}}function v(e){var t=m(e),r=Array.prototype.slice.call(t.querySelectorAll(".rbe-flow-signature-card")),n=Array.prototype.slice.call(t.querySelectorAll(".rbe-flow-signature-connector")),i=!0;r.forEach(function(e,t){var r="true"===e.dataset.signed,a=i||r;e.classList.toggle("is-locked",!a),e.classList.toggle("is-active",a&&!r),e.classList.toggle("is-pending",!r);var o=e.querySelector(".rbe-flow-signature-input"),s=e.querySelector(".rbe-flow-signature-apply"),l=e.querySelector(".rbe-flow-signature-status");r||(o&&(o.disabled=!a),s&&(s.disabled=!a),l&&(l.textContent=a?"Ready to sign":"Pending")),n[t]&&(n[t].classList.toggle("is-complete",r),n[t].classList.toggle("is-pending",!r)),i=r})}function S(e){if(e&&!e.classList.contains("is-locked")){var t=e.querySelector(".rbe-flow-signature-input"),r=d(t&&t.value);if(!r)return e.classList.add("has-error"),void(t&&t.focus());var n=e.closest(".rbe-output-signature-flow");g(0,r).then(function(r){if(r){var i=r;!function(e,t,r){return r=d(r).toLowerCase(),!(!e||!r)&&Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).some(function(e){return e!==t&&"true"===e.dataset.signed&&d(e.dataset.signatureHash).toLowerCase()===r})}(n,e,i.signatureHash)?(!function(e,t,r){try{localStorage.setItem(f(e,t),JSON.stringify(r))}catch(e){}}(n.dataset.flowId||"",e.dataset.stepId||"",i),x(e,i),v(n),e.dispatchEvent(new CustomEvent("blockwriteai:signature-flow-signed",{bubbles:!0,detail:i}))):function(e,t){e.classList.add("has-error");var r=e.querySelector(".rbe-flow-signature-status");r&&(r.textContent="Signature already used in this flow."),t&&t.focus()}(e,t)}else!function(e,t){e.classList.add("has-error");var r=e.querySelector(".rbe-flow-signature-status");r&&(r.textContent="No verified signature found."),t&&t.focus()}(e,t)})}}function k(e){l(),Array.prototype.slice.call((e||document).querySelectorAll(".rbe-output-signature-flow")).forEach(function(e){if("true"!==e.dataset.flowReady){e.dataset.flowReady="true";var t=e.dataset.flowId||o("signature-flow");e.dataset.flowId=t,m(e),Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).forEach(function(e){!function(e){e&&"true"!==e.dataset.flowCardResizeObserved&&(e.dataset.flowCardResizeObserved="true",y(e),"undefined"!=typeof ResizeObserver?new ResizeObserver(function(){y(e)}).observe(e):window.addEventListener("resize",function(){y(e)}))}(e);var r=e.dataset.stepId||o("signer");e.dataset.stepId=r;var n=function(e,t){try{return JSON.parse(localStorage.getItem(f(e,t))||"null")}catch(e){return null}}(t,r);n&&n.name&&n.signatureHash&&x(e,n);var i=e.querySelector(".rbe-flow-signature-input"),a=e.querySelector(".rbe-flow-signature-apply");a&&a.addEventListener("click",function(){S(e)}),i&&(i.addEventListener("input",function(){e.classList.remove("has-error")}),i.addEventListener("keydown",function(t){"Enter"===t.key&&(t.preventDefault(),S(e))}))}),v(e)}})}}("undefined"!=typeof window?window:this);
1
+ !function(e){"use strict";var t=e.BlockWriteAI;if(t&&!t.__signatureFlowPluginInstalled){t.__signatureFlowPluginInstalled=!0;var r=t.helpers||{},n=r.el,i=r.escapeHTML||function(e){return String(null==e?"":e).replace(/[&<>"]/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]})},a=r.faIcon||function(e,t){return'<i class="fa-solid fa-'+i(e)+'" aria-hidden="true"></i><span class="rbe-sr-only">'+i(t||e)+"</span>"},o=r.uid||function(e){return(e||"signature-flow")+"-"+Math.random().toString(36).slice(2,9)};l(),t.registerTool("signatureFlow",{label:"Signature Flow",hint:"Sequential signer approvals",icon:"people-arrows",premiumFeature:"signature_flow",defaultData:function(){return{flowId:o("signature-flow"),title:"Signature Flow",steps:p()}},render:function(e,t){l();var r=n("div","rbe-signature-flow-editor",{dataset:{flowId:(t=t||{}).flowId||o("signature-flow")}}),i=n("div","rbe-signature-flow-top");i.appendChild(n("strong","",{text:"Signature Flow"})),i.appendChild(n("button","rbe-signature-flow-add",{type:"button",title:"Add signer","aria-label":"Add signer",html:a("circle-plus","Add signer"),disabled:this.readOnly})),r.appendChild(i);var s=n("div","rbe-signature-flow-steps");p(t.steps).forEach(function(e,t){s.appendChild(b(this,e,t))},this),r.appendChild(s),e.appendChild(r);var d=this,u=r.querySelector(".rbe-signature-flow-add");u&&u.addEventListener("click",function(){var e=s.querySelectorAll(".rbe-signature-flow-step").length;s.appendChild(b(d,{id:o("signer"),label:"Signer "+(e+1)},e)),w(r),d&&"function"==typeof d.changed&&d.changed(!0)}),s.addEventListener("click",function(e){var t=e.target.closest(".rbe-signature-flow-remove");t&&!d.readOnly&&(s.querySelectorAll(".rbe-signature-flow-step").length<=1||(t.closest(".rbe-signature-flow-step").remove(),w(r),d&&"function"==typeof d.changed&&d.changed(!0)))})},serialize:function(e){var t=e.querySelector(".rbe-signature-flow-editor");return{flowId:t&&t.dataset.flowId||o("signature-flow"),title:"Signature Flow",steps:Array.prototype.slice.call(e.querySelectorAll(".rbe-signature-flow-step")).map(function(e,t){return{id:e.dataset.stepId||o("signer"),label:d((e.querySelector(".rbe-signature-flow-label")||{}).value)||"Signer "+(t+1)}})}},toHTML:function(e){l();var t=(e=e||{}).flowId||o("signature-flow"),r=p(e.steps);return'<section class="rbe-output-signature-flow" data-flow-id="'+i(t)+'"><div class="rbe-output-signature-flow-title">Signature Flow</div><div class="rbe-flow-signature-track">'+r.map(function(e,t){return'<section class="rbe-flow-signature-card" data-step-id="'+i(e.id)+'" data-signed="false">'+('<span class="'+i(n="rbe-flow-signature-seal")+'" aria-hidden="true"><svg class="'+i(n+"-logo")+'" viewBox="0 0 32 32" role="img" focusable="false"><path d="M7 4h12l6 6v15a3 3 0 0 1-3 3H10a3 3 0 0 1-3-3z" fill="#fff"/><path d="M19 4v6h6" fill="#ffe5e5"/><path d="M10 23c2-4 3-4 4 0 1-2 2-2 3 0 1-1 2-1 4 0" fill="none" stroke="#d40000" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M22.5 17.5l4.6-4.6 2 2-4.6 4.6-3 .9z" fill="#fff"/><path d="M26.3 13.7l2 2" fill="none" stroke="#d40000" stroke-width="1.1" stroke-linecap="round"/></svg></span><img class="rbe-flow-signature-watermark" src="')+i(s())+'" alt="" aria-hidden="true"><div class="rbe-flow-signature-head"><span class="rbe-flow-signature-label">'+i(t+1+". "+e.label)+'</span><span class="rbe-flow-signature-status">Waiting</span></div><div class="rbe-flow-signature-unsigned"><input class="rbe-flow-signature-input" type="text" autocomplete="name" placeholder="Enter signer name or email..."><button type="button" class="rbe-flow-signature-apply">'+a("file-signature","Sign")+'<span>Sign</span></button></div><div class="rbe-flow-signature-signed" hidden><div class="rbe-flow-signature-name"></div><div class="rbe-flow-signature-meta"><strong>Signer Name: <span class="rbe-flow-signature-by-name"></span></strong><span>Signer Email: <span class="rbe-flow-signature-email"></span></span><span>IP Address: <span class="rbe-flow-signature-ip"></span></span><span>Date &amp; Time: <time class="rbe-flow-signature-date"></time></span></div></div></section>'+(t<r.length-1?'<span class="rbe-flow-signature-connector is-pending" aria-hidden="true"></span>':"");var n}).join("")+"</div></section>"},toMarkdown:function(e){return"Signature Flow\n"+p(e&&e.steps).map(function(e,t){return t+1+". "+e.label}).join("\n")}}),e.BlockWriteAISignatureFlow={init:k,sign:S,update:v},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){k(document)}):setTimeout(function(){k(document)},0)}function s(){return e.BlockWriteAILogoUrl?e.BlockWriteAILogoUrl:function(e){try{var t=document.currentScript&&document.currentScript.src||document.baseURI;return new URL(e,t).href}catch(t){return e}}(document.querySelector(".rbe.rbe-theme-dark, .rbe-shell.rbe-theme-dark")?"../blockwriteai-logo-dark.svg":"../blockwriteai-logo.svg")}function l(){if(!document.querySelector("style[data-blockwriteai-signature-flow-plugin]")){var e=document.createElement("style");e.dataset.blockwriteaiSignatureFlowPlugin="true",e.textContent=".rbe-signature-flow-editor{border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:14px;display:grid;gap:12px;}.rbe-signature-flow-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}.rbe-signature-flow-top strong{font:800 14px/1.3 Arial,sans-serif;color:#344054;}.rbe-signature-flow-steps{display:grid;gap:8px;}.rbe-signature-flow-step{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;gap:8px;align-items:center;border:1px solid #e2e8f0;border-radius:8px;background:#fbfdff;padding:8px;}.rbe-signature-flow-index{width:28px;height:28px;border-radius:999px;background:#eaf1ff;color:#1d4ed8;display:grid;place-items:center;font:800 12px/1 Arial,sans-serif;}.rbe-signature-flow-step input{width:100%;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#172033;font:14px/1.4 Arial,sans-serif;padding:9px 10px;}.rbe-signature-flow-add,.rbe-signature-flow-remove{border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#344054;min-width:34px;height:34px;display:inline-grid;place-items:center;cursor:pointer;}.rbe-signature-flow-add:hover{border-color:#16a34a;background:#ecfdf3;color:#07845f;}.rbe-signature-flow-remove:hover{border-color:#dc2626;background:#fef2f2;color:#b42318;}.rbe-output-signature-flow{display:grid;gap:12px;margin:0 0 15px;}.rbe-output-signature-flow-title{font:800 15px/1.35 Arial,sans-serif;color:#172033;}.rbe-flow-signature-track{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:10px 8px;}.rbe-flow-signature-card{position:relative;overflow:visible;container-type:inline-size;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:10px;display:grid;gap:8px;flex:1 1 170px;min-width:150px;max-width:230px;min-height:126px;box-sizing:border-box;}.rbe-flow-signature-card.is-locked{opacity:.68;}.rbe-flow-signature-watermark{position:absolute;left:50%;top:52%;width:min(140px,76%);max-height:82px;object-fit:contain;opacity:.14;transform:translate(-50%,-50%);pointer-events:none;user-select:none;}.rbe-flow-signature-seal{position:absolute;right:10px;top:8px;z-index:4;width:34px;height:34px;background:#d40000;color:#fff;display:none;place-items:center;padding:0;border-radius:4px;box-shadow:0 8px 14px rgba(160,0,0,.2);pointer-events:none;}.rbe-flow-signature-card[data-signed='true'] .rbe-flow-signature-seal{display:grid;}.rbe-flow-signature-seal-logo{display:block;width:25px;height:25px;}.rbe-flow-signature-head{position:relative;z-index:1;display:grid;gap:6px;font:800 13px/1.3 Arial,sans-serif;color:#344054;}.rbe-flow-signature-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.rbe-flow-signature-status{justify-self:start;border-radius:999px;background:#fffbeb;color:#b45309;padding:4px 7px;font-size:10px;line-height:1;font-weight:800;white-space:nowrap;}.rbe-flow-signature-card.is-signed{border-color:#86efac;background:#f0fdf4;}.rbe-flow-signature-card.is-signed .rbe-flow-signature-status{background:#dcfce7;color:#07845f;}.rbe-flow-signature-card.is-locked .rbe-flow-signature-status{background:#fef3c7;color:#92400e;}.rbe-flow-signature-connector{align-self:center;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;min-height:34px;color:#b45309;font:900 18px/1 Arial,sans-serif;}.rbe-flow-signature-connector::before{content:'\\2192';}.rbe-flow-signature-connector.is-complete{color:#16a34a;}.rbe-flow-signature-connector.is-pending{color:#d97706;}.rbe-flow-signature-unsigned{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:7px;align-items:center;width:100%;margin:0;}.rbe-flow-signature-input{width:100%;min-width:0;min-height:38px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#111827;font:15px/1.2 'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;padding:7px 9px;text-align:center;box-sizing:border-box;}.rbe-flow-signature-input::placeholder{color:#98a2b3;font:13px/1.35 Arial,sans-serif;}.rbe-flow-signature-apply{border:1px solid #1d4ed8;border-radius:8px;background:#2563eb;color:#fff;font:800 13px/1 Arial,sans-serif;padding:9px 10px;cursor:pointer;}.rbe-flow-signature-apply:disabled,.rbe-flow-signature-input:disabled{cursor:not-allowed;opacity:.7;}.rbe-flow-signature-card.has-error .rbe-flow-signature-input{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12);}.rbe-flow-signature-signed{position:relative;z-index:1;display:grid;gap:5px;align-items:center;}.rbe-flow-signature-signed[hidden],.rbe-flow-signature-unsigned[hidden]{display:none!important;}.rbe-flow-signature-name{min-width:0;font-family:'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;font-size:15px;line-height:1.1;color:#050505;overflow-wrap:anywhere;}.rbe-flow-signature-meta{min-width:0;font-family:Arial,sans-serif;font-size:12px;line-height:1.2;color:#050505;display:grid;gap:2px;overflow-wrap:anywhere;}.rbe-flow-signature-meta strong{font-weight:500;}.rbe-flow-signature-meta strong,.rbe-flow-signature-meta span,.rbe-flow-signature-meta time{min-width:0;overflow-wrap:anywhere;}.rbe-flow-signature-card.is-compact{padding:8px;gap:6px;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-name{font-size:15px;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-meta{font-size:11px;line-height:1.22;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-seal{right:7px;top:7px;width:30px;height:30px;}.rbe-flow-signature-card.is-compact .rbe-flow-signature-seal-logo{width:22px;height:22px;}@container (max-width:180px){.rbe-flow-signature-meta{font-size:11px;}.rbe-flow-signature-name{font-size:14px;}}@media (max-width:720px){.rbe-signature-flow-step{grid-template-columns:1fr;}.rbe-signature-flow-index{width:100%;border-radius:8px;}.rbe-flow-signature-card{flex-basis:150px;}.rbe-flow-signature-connector{flex-basis:24px;}}",document.head.appendChild(e)}}function d(e){return String(null==e?"":e).trim()}function u(e){try{return sessionStorage.getItem(e)||localStorage.getItem(e)||""}catch(e){return""}}function c(e){return e.toLocaleString()}function g(e,t){return"blockwriteai-signature-flow:"+e+":"+t}function f(r,n){var i=e.BlockWriteAIAuthorizationToken||u("bwai_authorization_token");if(!i||!n||"function"!=typeof fetch)return Promise.resolve(null);var a={action:"lookup",authorization_token:i,match_signer_value:n,signer_name:n},o=e.BlockWriteAISessionToken||u("bwai_session_token")||u("blockwriteai_session_token");return o&&(a.session_token=o),fetch(e.BlockWriteAISignatureEventUrl||t.platformEndpoints&&t.platformEndpoints.signatureEvent||"https://blockwriteai.in/api/signature_event.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(function(e){return e.ok?e.json():null}).then(function(e){return e&&e.matched&&e.signature?{name:e.signature.signer_name||n,email:e.signature.signer_email||"",role:e.signature.signer_role||"",ipAddress:e.signature.ip_address||"",signatureHash:e.signature.signature_hash||"",date:e.signature.created_at||(new Date).toISOString(),dateLabel:e.signature.created_at?c(new Date(e.signature.created_at)):c(new Date)}:null}).catch(function(){return null})}function p(e){var t=Array.isArray(e)?e:[];return t.length||(t=[{id:o("signer"),label:"Signer 1"},{id:o("signer"),label:"Signer 2"},{id:o("signer"),label:"Signer 3"}]),t.map(function(e,t){return{id:(e=e||{}).id||o("signer"),label:d(e.label)||"Signer "+(t+1)}})}function b(e,t,r){var i=n("div","rbe-signature-flow-step",{dataset:{stepId:t.id||o("signer")}});return i.appendChild(n("span","rbe-signature-flow-index",{text:r+1})),i.appendChild(n("input","rbe-signature-flow-label",{type:"text",value:t.label||"Signer "+(r+1),placeholder:"Signer name or role",disabled:e.readOnly})),i.appendChild(n("button","rbe-signature-flow-remove",{type:"button",title:"Remove signer","aria-label":"Remove signer",html:a("trash-can","Remove signer"),disabled:e.readOnly})),i}function w(e){Array.prototype.slice.call(e.querySelectorAll(".rbe-signature-flow-step")).forEach(function(e,t){var r=e.querySelector(".rbe-signature-flow-index");r&&(r.textContent=t+1);var n=e.querySelector(".rbe-signature-flow-label");n&&!d(n.value)&&(n.placeholder="Signer "+(t+1))})}function h(e){if(!e)return[];Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-connector")).forEach(function(e){e.remove()});var t=Array.prototype.slice.call(e.children).filter(function(e){return e.classList&&e.classList.contains("rbe-flow-signature-card")});return t.forEach(function(r,n){var i;n<t.length-1&&e.insertBefore(((i=document.createElement("span")).className="rbe-flow-signature-connector is-pending",i.setAttribute("aria-hidden","true"),i),r.nextSibling)}),t}function m(e){var t=null;if(Array.prototype.slice.call(e.children).some(function(e){return!(!e.classList||!e.classList.contains("rbe-flow-signature-track"))&&(t=e,!0)}),!t){(t=document.createElement("div")).className="rbe-flow-signature-track";var r=e.querySelector(".rbe-output-signature-flow-title");r&&r.parentNode===e?e.insertBefore(t,r.nextSibling):e.appendChild(t)}return Array.prototype.slice.call(e.children).forEach(function(e){e!==t&&e.classList&&e.classList.contains("rbe-flow-signature-card")&&t.appendChild(e)}),h(t),t}function x(e,t){if(e&&t&&t.name){e.classList.add("is-signed"),e.classList.remove("is-locked","has-error"),e.dataset.signed="true";var r=e.querySelector(".rbe-flow-signature-unsigned"),n=e.querySelector(".rbe-flow-signature-signed"),i=e.querySelector(".rbe-flow-signature-status"),a=e.querySelector(".rbe-flow-signature-name"),o=e.querySelector(".rbe-flow-signature-by-name"),s=e.querySelector(".rbe-flow-signature-email"),l=e.querySelector(".rbe-flow-signature-ip"),d=e.querySelector(".rbe-flow-signature-date"),u=e.querySelector(".rbe-flow-signature-input");u&&(u.value=t.name,u.readOnly=!0),r&&(r.hidden=!0),n&&(n.hidden=!1),i&&(i.textContent="Signed"),a&&(a.textContent=t.name),o&&(o.textContent=t.name),s&&(s.textContent=t.email||""),l&&(l.textContent=t.ipAddress||""),d&&(d.textContent=t.dateLabel||c(new Date(t.date||Date.now())),t.date&&d.setAttribute("datetime",t.date)),e.dataset.signatureHash=t.signatureHash||"",y(e)}}function y(e){if(e&&e.getBoundingClientRect){var t=e.getBoundingClientRect().width;e.classList.toggle("is-compact",t>0&&t<190)}}function v(e){var t=m(e),r=Array.prototype.slice.call(t.querySelectorAll(".rbe-flow-signature-card")),n=Array.prototype.slice.call(t.querySelectorAll(".rbe-flow-signature-connector")),i=!0;r.forEach(function(e,t){var r="true"===e.dataset.signed,a=i||r;e.classList.toggle("is-locked",!a),e.classList.toggle("is-active",a&&!r),e.classList.toggle("is-pending",!r);var o=e.querySelector(".rbe-flow-signature-input"),s=e.querySelector(".rbe-flow-signature-apply"),l=e.querySelector(".rbe-flow-signature-status");r||(o&&(o.disabled=!a),s&&(s.disabled=!a),l&&(l.textContent=a?"Ready to sign":"Pending")),n[t]&&(n[t].classList.toggle("is-complete",r),n[t].classList.toggle("is-pending",!r)),i=r})}function S(e){if(e&&!e.classList.contains("is-locked")){var t=e.querySelector(".rbe-flow-signature-input"),r=d(t&&t.value);if(!r)return e.classList.add("has-error"),void(t&&t.focus());var n=e.closest(".rbe-output-signature-flow");f(0,r).then(function(r){if(r){var i=r;!function(e,t,r){return r=d(r).toLowerCase(),!(!e||!r)&&Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).some(function(e){return e!==t&&"true"===e.dataset.signed&&d(e.dataset.signatureHash).toLowerCase()===r})}(n,e,i.signatureHash)?(!function(e,t,r){try{localStorage.setItem(g(e,t),JSON.stringify(r))}catch(e){}}(n.dataset.flowId||"",e.dataset.stepId||"",i),x(e,i),v(n),e.dispatchEvent(new CustomEvent("blockwriteai:signature-flow-signed",{bubbles:!0,detail:i}))):function(e,t){e.classList.add("has-error");var r=e.querySelector(".rbe-flow-signature-status");r&&(r.textContent="Signature already used in this flow."),t&&t.focus()}(e,t)}else!function(e,t){e.classList.add("has-error");var r=e.querySelector(".rbe-flow-signature-status");r&&(r.textContent="No verified signature found."),t&&t.focus()}(e,t)})}}function k(e){l(),Array.prototype.slice.call((e||document).querySelectorAll(".rbe-output-signature-flow")).forEach(function(e){if("true"!==e.dataset.flowReady){e.dataset.flowReady="true";var t=e.dataset.flowId||o("signature-flow");e.dataset.flowId=t,m(e),Array.prototype.slice.call(e.querySelectorAll(".rbe-flow-signature-card")).forEach(function(e){!function(e){e&&"true"!==e.dataset.flowCardResizeObserved&&(e.dataset.flowCardResizeObserved="true",y(e),"undefined"!=typeof ResizeObserver?new ResizeObserver(function(){y(e)}).observe(e):window.addEventListener("resize",function(){y(e)}))}(e);var r=e.dataset.stepId||o("signer");e.dataset.stepId=r;var n=function(e,t){try{return JSON.parse(localStorage.getItem(g(e,t))||"null")}catch(e){return null}}(t,r);n&&n.name&&n.signatureHash&&x(e,n);var i=e.querySelector(".rbe-flow-signature-input"),a=e.querySelector(".rbe-flow-signature-apply");a&&a.addEventListener("click",function(){S(e)}),i&&(i.addEventListener("input",function(){e.classList.remove("has-error")}),i.addEventListener("keydown",function(t){"Enter"===t.key&&(t.preventDefault(),S(e))}))}),v(e)}})}}("undefined"!=typeof window?window:this);
@@ -1 +1 @@
1
- !function(e){"use strict";var t=e.BlockWriteAI;if(t&&!t.__signaturePluginInstalled){t.__signaturePluginInstalled=!0;var i=t.helpers||{},r=i.el,n=i.escapeHTML||function(e){return String(null==e?"":e).replace(/[&<>"]/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]})},a=(i.sanitizeHTML,i.faIcon||function(e,t){return'<i class="fa-solid fa-'+n(e)+'" aria-hidden="true"></i><span class="rbe-sr-only">'+n(t||e)+"</span>"}),s=i.uid||function(e){return(e||"signature")+"-"+Math.random().toString(36).slice(2,9)},o="blockwriteai-signature:";d(),t.registerTool("signature",{label:"Signature",hint:"Digital signature field",icon:"signature",premiumFeature:"signature",defaultData:function(){return{signatureId:s("signature"),label:"Signature",width:70,alignment:"center"}},render:function(e,t){d();var i=r("div","rbe-signature-editor",{dataset:{signatureId:(t=t||{}).signatureId||s("signature"),width:g(t.width),alignment:l(t.alignment)}});i.appendChild(r("img","rbe-signature-watermark",{src:u(),alt:"","aria-hidden":"true"}));var n=r("div","rbe-signature-toolbar");n.appendChild(r("div","rbe-signature-static-label",{text:"Signature"}));var o=r("div","rbe-signature-align-tools",{role:"toolbar","aria-label":"Signature alignment"});[["left","align-left","Align left"],["center","align-center","Align center"],["right","align-right","Align right"]].forEach(function(e){o.appendChild(r("button","rbe-signature-align-btn",{type:"button",title:e[2],html:a(e[1],e[2]),dataset:{align:e[0]},"aria-label":e[2],"aria-pressed":l(t.alignment)===e[0]?"true":"false",disabled:this.readOnly}))},this),n.appendChild(o),i.appendChild(n);var c=r("div","rbe-signature-preview");c.appendChild(r("div","rbe-signature-preview-name",{text:"Casey Jones"})),c.appendChild(r("div","rbe-signature-preview-copy",{html:"<strong>Blank signature input in preview</strong><span>Users type their name once; the signed block becomes read-only with date and time.</span>"})),i.appendChild(c),this.readOnly||i.appendChild(r("button","rbe-signature-resize-handle",{type:"button",title:"Resize signature field","aria-label":"Resize signature field"})),e.appendChild(i),p(i),function(e,t){var i=t&&t.querySelector(".rbe-signature-resize-handle");i&&"true"!==t.dataset.resizeReady&&(t.dataset.resizeReady="true",i.addEventListener("pointerdown",function(i){i.preventDefault(),i.stopPropagation();var r=t.parentElement||t,n=Math.max(1,r.getBoundingClientRect().width),a=i.clientX,s=t.getBoundingClientRect().width;function o(e){var i=s+e.clientX-a;t.dataset.width=String(g(i/n*100)),p(t)}document.addEventListener("pointermove",o),document.addEventListener("pointerup",function t(){document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",t),e&&"function"==typeof e.changed&&e.changed(!0)})}))}(this,i);var b=this;Array.prototype.slice.call(i.querySelectorAll(".rbe-signature-align-btn")).forEach(function(e){e.addEventListener("click",function(){i.dataset.alignment=l(e.dataset.align),p(i),b&&"function"==typeof b.changed&&b.changed(!0)})})},serialize:function(e){var t=e.querySelector(".rbe-signature-editor");return{signatureId:b(e,t),label:"Signature",width:g(t&&t.dataset.width),alignment:l(t&&t.dataset.alignment)}},toHTML:function(e){d();var t,i,r,o=(e=e||{}).signatureId||s("signature");return'<section class="rbe-output-signature" style="'+n((i=e.width,r=e.alignment,"width:min(100%,"+(i=g(i))+"%);"+("left"===(r=l(r))?"margin-left:0;margin-right:auto;":"right"===r?"margin-left:auto;margin-right:0;":"margin-left:auto;margin-right:auto;")+("left"===r?"justify-self:start;":"right"===r?"justify-self:end;":"justify-self:center;")))+'" data-signature-id="'+n(o)+'" data-signed="false">'+('<span class="'+n(t="rbe-signature-seal")+'" aria-hidden="true"><svg class="'+n(t+"-logo")+'" viewBox="0 0 32 32" role="img" focusable="false"><path d="M7 4h12l6 6v15a3 3 0 0 1-3 3H10a3 3 0 0 1-3-3z" fill="#fff"/><path d="M19 4v6h6" fill="#ffe5e5"/><path d="M10 23c2-4 3-4 4 0 1-2 2-2 3 0 1-1 2-1 4 0" fill="none" stroke="#d40000" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M22.5 17.5l4.6-4.6 2 2-4.6 4.6-3 .9z" fill="#fff"/><path d="M26.3 13.7l2 2" fill="none" stroke="#d40000" stroke-width="1.1" stroke-linecap="round"/></svg></span><img class="rbe-signature-watermark" src="')+n(u())+'" alt="" aria-hidden="true"><div class="rbe-output-signature-label">'+n("Signature")+'</div><div class="rbe-signature-unsigned"><input class="rbe-signature-input" type="text" autocomplete="name" placeholder="'+n("Enter your name here...")+'"><button type="button" class="rbe-signature-apply">'+a("file-signature","Sign")+'<span>Sign</span></button></div><div class="rbe-signature-signed" hidden><div class="rbe-signature-name"></div><div class="rbe-signature-meta"><strong>Digitally signed by <span class="rbe-signature-by-name"></span></strong><span>Date: <time class="rbe-signature-date"></time></span></div></div></section>'},toMarkdown:function(e){return"[Signature field: "+(e&&e.label?e.label:"Signature")+"]"}}),e.BlockWriteAISignature={init:x,sign:m,formatDate:c},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){x(document)}):setTimeout(function(){x(document)},0)}function u(){return e.BlockWriteAILogoUrl||function(e){try{var t=document.currentScript&&document.currentScript.src||document.baseURI;return new URL(e,t).href}catch(t){return e}}("../blockwriteai-logo.svg")}function d(){if(!document.querySelector("style[data-blockwriteai-signature-plugin]")){var e=document.createElement("style");e.dataset.blockwriteaiSignaturePlugin="true",e.textContent=".rbe-signature-editor,.rbe-output-signature{position:relative;overflow:hidden;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:16px;min-height:128px;box-sizing:border-box;max-width:100%;}.rbe-signature-editor{display:grid;gap:12px;width:var(--rbe-signature-width,70%);max-width:100%;min-width:min(180px,100%);resize:none;container-type:inline-size;}.rbe-signature-watermark{position:absolute;left:50%;top:50%;width:min(300px,76%);max-height:150px;object-fit:contain;opacity:.16;transform:translate(-50%,-50%);pointer-events:none;user-select:none;}.rbe-signature-seal{position:absolute;right:14px;top:10px;z-index:4;width:44px;height:44px;background:#d40000;color:#fff;display:none;place-items:center;padding:0;border-radius:4px;box-shadow:0 10px 18px rgba(160,0,0,.22);pointer-events:none;}.rbe-output-signature[data-signed='true'] .rbe-signature-seal{display:grid;}.rbe-signature-seal-logo{display:block;width:32px;height:32px;}.rbe-signature-toolbar{position:relative;z-index:2;display:flex;justify-content:space-between;gap:10px;align-items:center;}.rbe-signature-static-label{font:800 14px/1.3 Arial,sans-serif;color:#344054;}.rbe-signature-align-tools{display:flex;gap:6px;align-items:center;}.rbe-signature-align-btn{width:34px;height:34px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#344054;display:inline-grid;place-items:center;cursor:pointer;}.rbe-signature-align-btn:hover,.rbe-signature-align-btn.is-active{border-color:#2563eb;background:#eaf1ff;color:#1d4ed8;}.rbe-signature-preview{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;border:1px dashed #b6c4d6;border-radius:8px;background:rgba(248,251,255,.86);padding:14px;}.rbe-signature-preview-name{font-family:'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;font-size:20px;line-height:1.15;color:#111827;white-space:normal;overflow-wrap:anywhere;}.rbe-signature-preview-copy{display:grid;gap:4px;color:#344054;font:13px/1.35 Arial,sans-serif;min-width:0;}.rbe-signature-preview-copy strong{font-size:15px;color:#172033;}.rbe-signature-resize-handle{position:absolute;right:7px;bottom:7px;z-index:3;width:18px;height:18px;border:0;border-radius:5px;background:#2563eb;color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.22);cursor:nwse-resize;display:grid;place-items:center;padding:0;}.rbe-signature-resize-handle:before{content:'';width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;}.rbe-output-signature{display:grid;gap:14px;margin:0 0 15px;container-type:inline-size;overflow:visible;min-width:0;}.rbe-output-signature-label{position:relative;z-index:1;font:700 14px/1.4 Arial,sans-serif;color:#344054;}.rbe-signature-unsigned{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:min(640px,100%);max-width:100%;min-width:0;margin:0 auto;box-sizing:border-box;}.rbe-signature-input{width:100%;min-width:0;min-height:42px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#111827;font:15px/1.15 'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;padding:8px 10px;text-align:center;box-sizing:border-box;}.rbe-signature-input::placeholder{color:#98a2b3;font:13px/1.35 Arial,sans-serif;}.rbe-signature-apply{border:1px solid #1d4ed8;border-radius:8px;background:#2563eb;color:#fff;font:800 14px/1 Arial,sans-serif;padding:13px 16px;cursor:pointer;}.rbe-signature-apply:hover{background:#1d4ed8;}.rbe-output-signature.has-error .rbe-signature-input{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12);}.rbe-signature-signed{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;min-width:0;min-height:80px;}.rbe-signature-signed[hidden],.rbe-signature-unsigned[hidden]{display:none!important;}.rbe-signature-name{min-width:0;font-family:'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;font-size:20px;line-height:1.15;color:#050505;overflow-wrap:anywhere;}.rbe-signature-meta{min-width:0;font-family:Arial,sans-serif;font-size:15px;line-height:1.18;color:#050505;display:grid;gap:2px;overflow-wrap:anywhere;}.rbe-signature-meta strong{font-weight:500;}.rbe-signature-meta strong,.rbe-signature-meta span,.rbe-signature-meta time{min-width:0;overflow-wrap:anywhere;}.rbe-signature-meta time{font:inherit;}.rbe-output-signature.is-compact{padding:10px;gap:10px;}.rbe-output-signature.is-compact .rbe-signature-signed,.rbe-output-signature.is-compact .rbe-signature-unsigned{grid-template-columns:1fr;gap:8px;min-height:0;}.rbe-output-signature.is-compact .rbe-signature-apply{width:100%;}.rbe-output-signature.is-compact .rbe-signature-watermark{width:min(220px,86%);}.rbe-output-signature.is-compact .rbe-signature-seal{right:8px;top:8px;width:36px;height:36px;}.rbe-output-signature.is-compact .rbe-signature-seal-logo{width:26px;height:26px;}.rbe-output-signature.is-compact .rbe-signature-meta{font-size:13px;line-height:1.22;}@container (max-width:320px){.rbe-signature-preview,.rbe-signature-signed{grid-template-columns:1fr;gap:8px;min-height:0;}.rbe-signature-unsigned{grid-template-columns:1fr;}.rbe-signature-apply{width:100%;}}@media (max-width:720px){.rbe-signature-editor{width:100%!important;}.rbe-signature-toolbar,.rbe-signature-preview,.rbe-signature-unsigned,.rbe-signature-signed{grid-template-columns:1fr;}.rbe-signature-toolbar{align-items:flex-start;}.rbe-signature-preview-name,.rbe-signature-name{white-space:normal;}.rbe-signature-apply{width:100%;}}",document.head.appendChild(e)}}function l(e){return"left"===e||"right"===e?e:"center"}function g(e){return e=Number(e||70),Number.isFinite(e)||(e=70),Math.min(100,Math.max(14,Math.round(e)))}function p(e){if(e){var t=g(e.dataset.width),i=l(e.dataset.alignment);e.dataset.width=String(t),e.dataset.alignment=i,e.style.width="min(100%,"+t+"%)",e.style.marginLeft="left"===i?"0":"auto",e.style.marginRight="right"===i?"0":"auto",e.style.justifySelf="left"===i?"start":"right"===i?"end":"center",Array.prototype.slice.call(e.querySelectorAll(".rbe-signature-align-btn")).forEach(function(e){var t=e.dataset.align===i;e.classList.toggle("is-active",t),e.setAttribute("aria-pressed",t?"true":"false")})}}function c(e){return e.toLocaleString()}function b(e,t){var i=t&&t.dataset.signatureId||"",r=e&&e.closest&&e.closest(".rbe")||document,n=Array.prototype.slice.call(r.querySelectorAll(".rbe-signature-editor")),a=i?n.find(function(e){return e.dataset.signatureId===i}):null;if(!i||a&&a!==t){do{i=s("signature")}while(n.some(function(e){return e!==t&&e.dataset.signatureId===i}));t&&(t.dataset.signatureId=i)}return i}function f(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-name"),a=e.querySelector(".rbe-signature-by-name"),s=e.querySelector(".rbe-signature-date"),o=e.querySelector(".rbe-signature-input");o&&(o.value=t.name,o.readOnly=!0),n&&(n.textContent=t.name),a&&(a.textContent=t.name),s&&(s.textContent=t.dateLabel||c(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"),h(e)}}function h(e){if(e&&e.getBoundingClientRect){var t=e.getBoundingClientRect().width;e.classList.toggle("is-compact",t>0&&t<360)}}function m(e){var t,i=e.querySelector(".rbe-signature-input"),r=(t=i&&i.value,String(null==t?"":t).trim());if(!r)return e.classList.add("has-error"),void(i&&i.focus());var n=new Date,a={name:r,date:n.toISOString(),dateLabel:c(n)};!function(e,t){if(e)try{localStorage.setItem(o+e,JSON.stringify(t))}catch(e){}}(e.dataset.signatureStorageKey||e.dataset.signatureId||"",a),f(e,a),e.dispatchEvent(new CustomEvent("blockwriteai:signature-signed",{bubbles:!0,detail:a}))}function x(e){d(),function(e){var t=Array.prototype.slice.call((e||document).querySelectorAll(".rbe-output-signature")),i={};t.forEach(function(e){var t=e.dataset.signatureId||"";i[t]=(i[t]||0)+1});var r={};return t.forEach(function(e){var t=e.dataset.signatureId||s("signature");e.dataset.signatureId=t,r[t]=(r[t]||0)+1,e.dataset.signatureStorageKey=i[t]>1?t+":"+r[t]:t}),t}(e).forEach(function(e){if("true"!==e.dataset.signatureReady){e.dataset.signatureReady="true",function(e){e&&"true"!==e.dataset.signatureResizeObserved&&(e.dataset.signatureResizeObserved="true",h(e),"undefined"!=typeof ResizeObserver?new ResizeObserver(function(){h(e)}).observe(e):window.addEventListener("resize",function(){h(e)}))}(e);var t=function(e){if(!e)return null;try{return JSON.parse(localStorage.getItem(o+e)||"null")}catch(e){return null}}(e.dataset.signatureStorageKey||e.dataset.signatureId||"");t&&t.name&&f(e,t);var i=e.querySelector(".rbe-signature-input"),r=e.querySelector(".rbe-signature-apply");r&&r.addEventListener("click",function(){m(e)}),i&&(i.addEventListener("input",function(){e.classList.remove("has-error")}),i.addEventListener("keydown",function(t){"Enter"===t.key&&(t.preventDefault(),m(e))}))}})}}("undefined"!=typeof window?window:this);
1
+ !function(e){"use strict";var t=e.BlockWriteAI;if(t&&!t.__signaturePluginInstalled){t.__signaturePluginInstalled=!0;var r=t.helpers||{},i=r.el,n=r.escapeHTML||function(e){return String(null==e?"":e).replace(/[&<>"]/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]})},a=(r.sanitizeHTML,r.faIcon||function(e,t){return'<i class="fa-solid fa-'+n(e)+'" aria-hidden="true"></i><span class="rbe-sr-only">'+n(t||e)+"</span>"}),s=r.uid||function(e){return(e||"signature")+"-"+Math.random().toString(36).slice(2,9)},o="blockwriteai-signature:";d(),t.registerTool("signature",{label:"Signature",hint:"Digital signature field",icon:"signature",premiumFeature:"signature",defaultData:function(){return{signatureId:s("signature"),label:"Signature",width:70,alignment:"center"}},render:function(e,t){d();var r=i("div","rbe-signature-editor",{dataset:{signatureId:(t=t||{}).signatureId||s("signature"),width:g(t.width),alignment:l(t.alignment)}});r.appendChild(i("img","rbe-signature-watermark",{src:u(),alt:"","aria-hidden":"true"}));var n=i("div","rbe-signature-toolbar");n.appendChild(i("div","rbe-signature-static-label",{text:"Signature"}));var o=i("div","rbe-signature-align-tools",{role:"toolbar","aria-label":"Signature alignment"});[["left","align-left","Align left"],["center","align-center","Align center"],["right","align-right","Align right"]].forEach(function(e){o.appendChild(i("button","rbe-signature-align-btn",{type:"button",title:e[2],html:a(e[1],e[2]),dataset:{align:e[0]},"aria-label":e[2],"aria-pressed":l(t.alignment)===e[0]?"true":"false",disabled:this.readOnly}))},this),n.appendChild(o),r.appendChild(n);var c=i("div","rbe-signature-preview");c.appendChild(i("div","rbe-signature-preview-name",{text:"Casey Jones"})),c.appendChild(i("div","rbe-signature-preview-copy",{html:"<strong>Blank signature input in preview</strong><span>Users type their name once; the signed block becomes read-only with date and time.</span>"})),r.appendChild(c),this.readOnly||r.appendChild(i("button","rbe-signature-resize-handle",{type:"button",title:"Resize signature field","aria-label":"Resize signature field"})),e.appendChild(r),p(r),function(e,t){var r=t&&t.querySelector(".rbe-signature-resize-handle");r&&"true"!==t.dataset.resizeReady&&(t.dataset.resizeReady="true",r.addEventListener("pointerdown",function(r){r.preventDefault(),r.stopPropagation();var i=t.parentElement||t,n=Math.max(1,i.getBoundingClientRect().width),a=r.clientX,s=t.getBoundingClientRect().width;function o(e){var r=s+e.clientX-a;t.dataset.width=String(g(r/n*100)),p(t)}document.addEventListener("pointermove",o),document.addEventListener("pointerup",function t(){document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",t),e&&"function"==typeof e.changed&&e.changed(!0)})}))}(this,r);var b=this;Array.prototype.slice.call(r.querySelectorAll(".rbe-signature-align-btn")).forEach(function(e){e.addEventListener("click",function(){r.dataset.alignment=l(e.dataset.align),p(r),b&&"function"==typeof b.changed&&b.changed(!0)})})},serialize:function(e){var t=e.querySelector(".rbe-signature-editor");return{signatureId:b(e,t),label:"Signature",width:g(t&&t.dataset.width),alignment:l(t&&t.dataset.alignment)}},toHTML:function(e){d();var t,r,i,o=(e=e||{}).signatureId||s("signature");return'<section class="rbe-output-signature" style="'+n((r=e.width,i=e.alignment,"width:min(100%,"+(r=g(r))+"%);"+("left"===(i=l(i))?"margin-left:0;margin-right:auto;":"right"===i?"margin-left:auto;margin-right:0;":"margin-left:auto;margin-right:auto;")+("left"===i?"justify-self:start;":"right"===i?"justify-self:end;":"justify-self:center;")))+'" data-signature-id="'+n(o)+'" data-signed="false">'+('<span class="'+n(t="rbe-signature-seal")+'" aria-hidden="true"><svg class="'+n(t+"-logo")+'" viewBox="0 0 32 32" role="img" focusable="false"><path d="M7 4h12l6 6v15a3 3 0 0 1-3 3H10a3 3 0 0 1-3-3z" fill="#fff"/><path d="M19 4v6h6" fill="#ffe5e5"/><path d="M10 23c2-4 3-4 4 0 1-2 2-2 3 0 1-1 2-1 4 0" fill="none" stroke="#d40000" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/><path d="M22.5 17.5l4.6-4.6 2 2-4.6 4.6-3 .9z" fill="#fff"/><path d="M26.3 13.7l2 2" fill="none" stroke="#d40000" stroke-width="1.1" stroke-linecap="round"/></svg></span><img class="rbe-signature-watermark" src="')+n(u())+'" alt="" aria-hidden="true"><div class="rbe-output-signature-label">'+n("Signature")+'</div><div class="rbe-signature-unsigned"><input class="rbe-signature-input" type="text" autocomplete="name" placeholder="'+n("Enter your name here...")+'"><button type="button" class="rbe-signature-apply">'+a("file-signature","Sign")+'<span>Sign</span></button></div><div class="rbe-signature-signed" hidden><div class="rbe-signature-name"></div><div class="rbe-signature-meta"><strong>Digitally signed by <span class="rbe-signature-by-name"></span></strong><span>Date: <time class="rbe-signature-date"></time></span></div></div></section>'},toMarkdown:function(e){return"[Signature field: "+(e&&e.label?e.label:"Signature")+"]"}}),e.BlockWriteAISignature={init:x,sign:m,formatDate:c},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){x(document)}):setTimeout(function(){x(document)},0)}function u(){return e.BlockWriteAILogoUrl?e.BlockWriteAILogoUrl:function(e){try{var t=document.currentScript&&document.currentScript.src||document.baseURI;return new URL(e,t).href}catch(t){return e}}(document.querySelector(".rbe.rbe-theme-dark, .rbe-shell.rbe-theme-dark")?"../blockwriteai-logo-dark.svg":"../blockwriteai-logo.svg")}function d(){if(!document.querySelector("style[data-blockwriteai-signature-plugin]")){var e=document.createElement("style");e.dataset.blockwriteaiSignaturePlugin="true",e.textContent=".rbe-signature-editor,.rbe-output-signature{position:relative;overflow:hidden;border:1px solid #d7dee8;border-radius:8px;background:#fff;padding:16px;min-height:128px;box-sizing:border-box;max-width:100%;}.rbe-signature-editor{display:grid;gap:12px;width:var(--rbe-signature-width,70%);max-width:100%;min-width:min(180px,100%);resize:none;container-type:inline-size;}.rbe-signature-watermark{position:absolute;left:50%;top:50%;width:min(300px,76%);max-height:150px;object-fit:contain;opacity:.16;transform:translate(-50%,-50%);pointer-events:none;user-select:none;}.rbe-signature-seal{position:absolute;right:14px;top:10px;z-index:4;width:44px;height:44px;background:#d40000;color:#fff;display:none;place-items:center;padding:0;border-radius:4px;box-shadow:0 10px 18px rgba(160,0,0,.22);pointer-events:none;}.rbe-output-signature[data-signed='true'] .rbe-signature-seal{display:grid;}.rbe-signature-seal-logo{display:block;width:32px;height:32px;}.rbe-signature-toolbar{position:relative;z-index:2;display:flex;justify-content:space-between;gap:10px;align-items:center;}.rbe-signature-static-label{font:800 14px/1.3 Arial,sans-serif;color:#344054;}.rbe-signature-align-tools{display:flex;gap:6px;align-items:center;}.rbe-signature-align-btn{width:34px;height:34px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#344054;display:inline-grid;place-items:center;cursor:pointer;}.rbe-signature-align-btn:hover,.rbe-signature-align-btn.is-active{border-color:#2563eb;background:#eaf1ff;color:#1d4ed8;}.rbe-signature-preview{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;border:1px dashed #b6c4d6;border-radius:8px;background:rgba(248,251,255,.86);padding:14px;}.rbe-signature-preview-name{font-family:'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;font-size:20px;line-height:1.15;color:#111827;white-space:normal;overflow-wrap:anywhere;}.rbe-signature-preview-copy{display:grid;gap:4px;color:#344054;font:13px/1.35 Arial,sans-serif;min-width:0;}.rbe-signature-preview-copy strong{font-size:15px;color:#172033;}.rbe-signature-resize-handle{position:absolute;right:7px;bottom:7px;z-index:3;width:18px;height:18px;border:0;border-radius:5px;background:#2563eb;color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.22);cursor:nwse-resize;display:grid;place-items:center;padding:0;}.rbe-signature-resize-handle:before{content:'';width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;}.rbe-output-signature{display:grid;gap:14px;margin:0 0 15px;container-type:inline-size;overflow:visible;min-width:0;}.rbe-output-signature-label{position:relative;z-index:1;font:700 14px/1.4 Arial,sans-serif;color:#344054;}.rbe-signature-unsigned{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:min(640px,100%);max-width:100%;min-width:0;margin:0 auto;box-sizing:border-box;}.rbe-signature-input{width:100%;min-width:0;min-height:42px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#111827;font:15px/1.15 'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;padding:8px 10px;text-align:center;box-sizing:border-box;}.rbe-signature-input::placeholder{color:#98a2b3;font:13px/1.35 Arial,sans-serif;}.rbe-signature-apply{border:1px solid #1d4ed8;border-radius:8px;background:#2563eb;color:#fff;font:800 14px/1 Arial,sans-serif;padding:13px 16px;cursor:pointer;}.rbe-signature-apply:hover{background:#1d4ed8;}.rbe-output-signature.has-error .rbe-signature-input{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12);}.rbe-signature-signed{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center;min-width:0;min-height:80px;}.rbe-signature-signed[hidden],.rbe-signature-unsigned[hidden]{display:none!important;}.rbe-signature-name{min-width:0;font-family:'Brush Script MT','Segoe Script','Lucida Handwriting',cursive;font-size:20px;line-height:1.15;color:#050505;overflow-wrap:anywhere;}.rbe-signature-meta{min-width:0;font-family:Arial,sans-serif;font-size:15px;line-height:1.18;color:#050505;display:grid;gap:2px;overflow-wrap:anywhere;}.rbe-signature-meta strong{font-weight:500;}.rbe-signature-meta strong,.rbe-signature-meta span,.rbe-signature-meta time{min-width:0;overflow-wrap:anywhere;}.rbe-signature-meta time{font:inherit;}.rbe-output-signature.is-compact{padding:10px;gap:10px;}.rbe-output-signature.is-compact .rbe-signature-signed,.rbe-output-signature.is-compact .rbe-signature-unsigned{grid-template-columns:1fr;gap:8px;min-height:0;}.rbe-output-signature.is-compact .rbe-signature-apply{width:100%;}.rbe-output-signature.is-compact .rbe-signature-watermark{width:min(220px,86%);}.rbe-output-signature.is-compact .rbe-signature-seal{right:8px;top:8px;width:36px;height:36px;}.rbe-output-signature.is-compact .rbe-signature-seal-logo{width:26px;height:26px;}.rbe-output-signature.is-compact .rbe-signature-meta{font-size:13px;line-height:1.22;}@container (max-width:320px){.rbe-signature-preview,.rbe-signature-signed{grid-template-columns:1fr;gap:8px;min-height:0;}.rbe-signature-unsigned{grid-template-columns:1fr;}.rbe-signature-apply{width:100%;}}@media (max-width:720px){.rbe-signature-editor{width:100%!important;}.rbe-signature-toolbar,.rbe-signature-preview,.rbe-signature-unsigned,.rbe-signature-signed{grid-template-columns:1fr;}.rbe-signature-toolbar{align-items:flex-start;}.rbe-signature-preview-name,.rbe-signature-name{white-space:normal;}.rbe-signature-apply{width:100%;}}",document.head.appendChild(e)}}function l(e){return"left"===e||"right"===e?e:"center"}function g(e){return e=Number(e||70),Number.isFinite(e)||(e=70),Math.min(100,Math.max(14,Math.round(e)))}function p(e){if(e){var t=g(e.dataset.width),r=l(e.dataset.alignment);e.dataset.width=String(t),e.dataset.alignment=r,e.style.width="min(100%,"+t+"%)",e.style.marginLeft="left"===r?"0":"auto",e.style.marginRight="right"===r?"0":"auto",e.style.justifySelf="left"===r?"start":"right"===r?"end":"center",Array.prototype.slice.call(e.querySelectorAll(".rbe-signature-align-btn")).forEach(function(e){var t=e.dataset.align===r;e.classList.toggle("is-active",t),e.setAttribute("aria-pressed",t?"true":"false")})}}function c(e){return e.toLocaleString()}function b(e,t){var r=t&&t.dataset.signatureId||"",i=e&&e.closest&&e.closest(".rbe")||document,n=Array.prototype.slice.call(i.querySelectorAll(".rbe-signature-editor")),a=r?n.find(function(e){return e.dataset.signatureId===r}):null;if(!r||a&&a!==t){do{r=s("signature")}while(n.some(function(e){return e!==t&&e.dataset.signatureId===r}));t&&(t.dataset.signatureId=r)}return r}function f(e,t){if(e&&t&&t.name){var r=e.querySelector(".rbe-signature-unsigned"),i=e.querySelector(".rbe-signature-signed"),n=e.querySelector(".rbe-signature-name"),a=e.querySelector(".rbe-signature-by-name"),s=e.querySelector(".rbe-signature-date"),o=e.querySelector(".rbe-signature-input");o&&(o.value=t.name,o.readOnly=!0),n&&(n.textContent=t.name),a&&(a.textContent=t.name),s&&(s.textContent=t.dateLabel||c(new Date(t.date||Date.now())),t.date&&s.setAttribute("datetime",t.date)),r&&(r.hidden=!0),i&&(i.hidden=!1),e.dataset.signed="true",e.classList.remove("has-error"),h(e)}}function h(e){if(e&&e.getBoundingClientRect){var t=e.getBoundingClientRect().width;e.classList.toggle("is-compact",t>0&&t<360)}}function m(e){var t,r=e.querySelector(".rbe-signature-input"),i=(t=r&&r.value,String(null==t?"":t).trim());if(!i)return e.classList.add("has-error"),void(r&&r.focus());var n=new Date,a={name:i,date:n.toISOString(),dateLabel:c(n)};!function(e,t){if(e)try{localStorage.setItem(o+e,JSON.stringify(t))}catch(e){}}(e.dataset.signatureStorageKey||e.dataset.signatureId||"",a),f(e,a),e.dispatchEvent(new CustomEvent("blockwriteai:signature-signed",{bubbles:!0,detail:a}))}function x(e){d(),function(e){var t=Array.prototype.slice.call((e||document).querySelectorAll(".rbe-output-signature")),r={};t.forEach(function(e){var t=e.dataset.signatureId||"";r[t]=(r[t]||0)+1});var i={};return t.forEach(function(e){var t=e.dataset.signatureId||s("signature");e.dataset.signatureId=t,i[t]=(i[t]||0)+1,e.dataset.signatureStorageKey=r[t]>1?t+":"+i[t]:t}),t}(e).forEach(function(e){if("true"!==e.dataset.signatureReady){e.dataset.signatureReady="true",function(e){e&&"true"!==e.dataset.signatureResizeObserved&&(e.dataset.signatureResizeObserved="true",h(e),"undefined"!=typeof ResizeObserver?new ResizeObserver(function(){h(e)}).observe(e):window.addEventListener("resize",function(){h(e)}))}(e);var t=function(e){if(!e)return null;try{return JSON.parse(localStorage.getItem(o+e)||"null")}catch(e){return null}}(e.dataset.signatureStorageKey||e.dataset.signatureId||"");t&&t.name&&f(e,t);var r=e.querySelector(".rbe-signature-input"),i=e.querySelector(".rbe-signature-apply");i&&i.addEventListener("click",function(){m(e)}),r&&(r.addEventListener("input",function(){e.classList.remove("has-error")}),r.addEventListener("keydown",function(t){"Enter"===t.key&&(t.preventDefault(),m(e))}))}})}}("undefined"!=typeof window?window:this);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockwriteaileaf/blockwriteai",
3
- "version": "1.2.6",
3
+ "version": "1.3.0",
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",
@@ -80,9 +80,8 @@
80
80
  "publishConfig": {
81
81
  "access": "public"
82
82
  },
83
- "devDependencies": {
84
- "clean-css-cli": "^5.6.3",
85
- "javascript-obfuscator": "^4.1.1",
86
- "terser": "^5.48.0"
87
- }
88
- }
83
+ "devDependencies": {
84
+ "clean-css-cli": "^5.6.3",
85
+ "terser": "^5.48.0"
86
+ }
87
+ }
package/types/index.d.ts CHANGED
@@ -92,6 +92,7 @@ export interface BlockWriteAIPremiumPluginLoadOptions {
92
92
 
93
93
  export type BlockWriteAIToolConfig = string[] | Record<string, boolean>;
94
94
  export type BlockWriteAIUploadOutput = "base64" | "upload";
95
+ export type BlockWriteAITheme = "light" | "dark";
95
96
 
96
97
  export interface BlockWriteAIExportOptions {
97
98
  html?: boolean;
@@ -142,6 +143,8 @@ export interface BlockWriteAIOptions {
142
143
  shellClassName?: string;
143
144
  autofocus?: boolean;
144
145
  readOnly?: boolean;
146
+ theme?: BlockWriteAITheme;
147
+ themeToggle?: boolean;
145
148
  tools?: BlockWriteAIToolConfig;
146
149
  autosave?: BlockWriteAIAutosaveOptions;
147
150
  upload?: BlockWriteAIUploadHandlers;
@@ -180,6 +183,8 @@ export default class BlockWriteAI {
180
183
  exportMarkdown(): string;
181
184
  importHTML(html: string): void;
182
185
  setReadOnly(readOnly: boolean): void;
186
+ applyTheme(theme: BlockWriteAITheme): void;
187
+ toggleTheme(): void;
183
188
  setShellStatus(status: string): void;
184
189
  verifyPremiumLicense(): Promise<BlockWriteAIPremiumState>;
185
190
  loadPremiumPlugins(features?: string[]): Promise<{ ok: boolean; features: string[] }>;