@qarakash/blockwriteai 1.0.10 → 1.0.11

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,t){"object"==typeof module&&module.exports?module.exports=t(require("../blockwriteai")):t(e.BlockWriteAI)}("undefined"!=typeof window?window:this,function(e){"use strict";if(!e||e.__aiPluginInstalled)return e||null;e.__aiPluginInstalled=!0;var t=e.helpers||{},r=t.el||function(e,t,r){var o=document.createElement(e);return t&&(o.className=t),Object.keys(r||{}).forEach(function(e){"html"===e?o.innerHTML=r[e]:"text"===e?o.textContent=r[e]:"dataset"===e?Object.keys(r[e]||{}).forEach(function(t){o.dataset[t]=r[e][t]}):!1!==r[e]&&null!=r[e]&&o.setAttribute(e,!0===r[e]?"":r[e])}),o},o=t.escapeHTML||function(e){return String(null==e?"":e).replace(/[&<>"]/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]})},i=t.faIcon||function(e,t){return'<i class="fa-solid fa-'+o(e)+'" aria-hidden="true"></i><span class="rbe-sr-only">'+o(t||e)+"</span>"},a=[["improve","wand-magic-sparkles","Improve writing","Make selected writing clearer and smoother."],["grammar","spell-check","Fix grammar","Correct grammar, spelling, and punctuation."],["summarize","compress","Summarize","Create a shorter version of the selected text."],["expand","up-right-and-down-left-from-center","Expand","Add helpful detail while keeping the meaning."],["professional","briefcase","Make professional","Rewrite in a polished business tone."]];function n(){if(!document.querySelector("style[data-blockwriteai-ai]")){var e=document.createElement("style");e.dataset.blockwriteaiAi="true",e.textContent=".rbe-ai-inline-btn{width:34px;height:34px;border:1px solid #cbd5e1;border-radius:8px;background:#eef6ff;color:#155eef;display:inline-grid;place-items:center;cursor:pointer;font-weight:800;}.rbe-ai-inline-btn:hover,.rbe-ai-inline-btn:focus-visible{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;}.rbe-ai-inline-btn.is-open{border-color:#16a34a;background:#eafaf1;color:#087443;}.rbe-ai-toolbar-btn{position:absolute;left:50%;top:0;transform:translateX(-50%);width:38px;min-width:38px;padding-left:0;padding-right:0;justify-content:center;border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;box-shadow:0 8px 24px rgba(37,99,235,.14);}.rbe-ai-toolbar-btn:hover:not(:disabled),.rbe-ai-toolbar-btn:focus-visible{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;}.rbe-ai-toolbar-btn.is-open{border-color:#16a34a;background:#eafaf1;color:#087443;}.rbe-ai-drawer{position:fixed;right:18px;top:18px;z-index:11000;width:390px;max-width:calc(100vw - 24px);height:calc(100vh - 36px);display:grid;grid-template-rows:auto 1fr auto;border:1px solid #cbd5e1;border-radius:14px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.25);overflow:hidden;opacity:0;pointer-events:none;transform:translateX(calc(100% + 34px));transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s ease;will-change:transform,opacity;}.rbe-ai-drawer.is-open{opacity:1;pointer-events:auto;transform:translateX(0);}.rbe-ai-drawer[hidden]{display:none!important;}.rbe-ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fbff,#eef6ff);}.rbe-ai-title{display:flex;align-items:center;gap:10px;font-weight:850;color:#0f172a;}.rbe-ai-title-icon{width:34px;height:34px;border-radius:10px;background:#eafaf2;color:#12a865;display:grid;place-items:center;}.rbe-ai-close{width:32px;height:32px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#172033;display:grid;place-items:center;cursor:pointer;}.rbe-ai-body{padding:14px 16px;overflow:auto;display:grid;gap:14px;align-content:start;}.rbe-ai-section{display:grid;gap:8px;}.rbe-ai-label{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.03em;color:#667085;}.rbe-ai-selection,.rbe-ai-result{border:1px solid #d7dee8;border-radius:10px;background:#f8fafc;color:#172033;padding:10px 12px;min-height:54px;max-height:132px;overflow:auto;font:13px/1.45 Arial,sans-serif;white-space:pre-wrap;}.rbe-ai-selection.is-empty{color:#98a2b3;}.rbe-ai-mode{display:flex;align-items:flex-start;gap:10px;border:1px solid #d7dee8;border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer;}.rbe-ai-mode:hover{border-color:#93c5fd;background:#eff6ff;}.rbe-ai-mode input{width:18px;height:18px;margin:1px 0 0;accent-color:#16a34a;flex:0 0 auto;}.rbe-ai-mode strong{display:block;font-size:13px;line-height:1.2;color:#172033;}.rbe-ai-mode small{display:block;margin-top:3px;color:#667085;font-size:11px;line-height:1.3;}.rbe-ai-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}.rbe-ai-action{border:1px solid #d7dee8;border-radius:10px;background:#fff;color:#172033;padding:10px;display:flex;gap:9px;align-items:flex-start;text-align:left;cursor:pointer;}.rbe-ai-action:hover,.rbe-ai-action:focus-visible{border-color:#2563eb;background:#eff6ff;}.rbe-ai-action i{margin-top:2px;color:#1d4ed8;}.rbe-ai-action strong{display:block;font-size:13px;line-height:1.2;}.rbe-ai-action small{display:block;margin-top:3px;color:#667085;font-size:11px;line-height:1.25;}.rbe-ai-prompt{width:100%;min-height:110px;resize:vertical;border:1px solid #d7dee8;border-radius:10px;padding:10px 12px;color:#172033;font:14px/1.45 Arial,sans-serif;}.rbe-ai-prompt:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12);}.rbe-ai-primary,.rbe-ai-secondary{border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font-weight:850;padding:9px 12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;}.rbe-ai-primary{border-color:#2563eb;background:#2563eb;color:#fff;}.rbe-ai-primary:hover{background:#1d4ed8;}.rbe-ai-secondary:hover{border-color:#2563eb;color:#1d4ed8;background:#eff6ff;}.rbe-ai-primary[disabled],.rbe-ai-secondary[disabled],.rbe-ai-action[disabled]{opacity:.55;cursor:not-allowed;}.rbe-ai-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid #e2e8f0;background:#f8fafc;}.rbe-ai-foot-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0;width:100%;}.rbe-ai-apply{flex:0 1 112px;min-width:96px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.rbe-toast-stack{position:fixed;right:18px;bottom:18px;z-index:12000;display:grid;gap:10px;width:min(360px,calc(100vw - 24px));pointer-events:none;}.rbe-toast{display:flex;align-items:flex-start;gap:10px;border:1px solid #d7dee8;border-radius:12px;background:#fff;color:#172033;padding:12px 14px;box-shadow:0 18px 48px rgba(15,23,42,.18);opacity:0;transform:translateY(12px) scale(.98);transition:opacity .24s ease,transform .24s ease;pointer-events:auto;}.rbe-toast.is-show{opacity:1;transform:translateY(0) scale(1);}.rbe-toast.is-hiding{opacity:0;transform:translateY(10px) scale(.98);}.rbe-toast i{margin-top:2px;}.rbe-toast strong{display:block;font-size:13px;line-height:1.25;}.rbe-toast span{display:block;margin-top:2px;font-size:12px;line-height:1.4;color:#475467;}.rbe-toast.is-error{border-color:#fecaca;background:#fff7f7;}.rbe-toast.is-error i,.rbe-toast.is-error strong{color:#b42318;}.rbe-toast.is-warning{border-color:#fedf89;background:#fffbeb;}.rbe-toast.is-warning i,.rbe-toast.is-warning strong{color:#b54708;}@media (max-width:900px){.rbe-ai-toolbar-btn{position:static;transform:none;order:-1;}}@media (max-width:700px){.rbe-ai-drawer{inset:10px;width:auto;height:auto;max-height:calc(100dvh - 20px);border-radius:12px;}.rbe-ai-action-grid{grid-template-columns:1fr;}.rbe-ai-head,.rbe-ai-body,.rbe-ai-foot{padding-left:12px;padding-right:12px;}}@media (max-width:520px){.rbe-ai-foot-actions{justify-content:stretch;width:100%;}.rbe-ai-primary,.rbe-ai-secondary{width:100%;}.rbe-ai-apply{flex:1 1 auto;min-width:0;}.rbe-ai-title{min-width:0;}.rbe-ai-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.rbe-toast-stack{right:10px;bottom:10px;width:calc(100vw - 20px);}}",document.head.appendChild(e)}}function s(e,t){if(!e||!e.root||!t)return!1;var r=t.commonAncestorContainer;return r&&r.nodeType!==Node.ELEMENT_NODE&&(r=r.parentElement),!(!r||!e.root.contains(r))}function l(e){var t=function(e){var t=window.getSelection();if(t&&t.rangeCount&&!t.isCollapsed){var r=t.getRangeAt(0);if(s(e,r))return e.savedRange=r.cloneRange(),e.savedRange}return e.savedRange&&s(e,e.savedRange)?e.savedRange:null}(e);return t?t.toString().trim():""}function c(e,t,r){if(!(r=r||e.__blockwriteaiAI&&e.__blockwriteaiAI.lastRange||e.savedRange)||!s(e,r))return!1;var o=window.getSelection();o.removeAllRanges(),o.addRange(r),r.deleteContents();var i=function(e){var t=document.createDocumentFragment();return String(e||"").split(/\n/).forEach(function(e,r){r&&t.appendChild(document.createElement("br")),t.appendChild(document.createTextNode(e))}),t}(t),a=i.lastChild;if(r.insertNode(i),a&&a.parentNode){var n=document.createRange();n.setStartAfter(a),n.collapse(!0),o.removeAllRanges(),o.addRange(n),e.savedRange=n.cloneRange()}return"function"==typeof e.noteHistory&&e.noteHistory("AI","Text applied"),"function"==typeof e.changed&&e.changed(!0),"function"==typeof e.updateInlineToolbarState&&e.updateInlineToolbarState(),!0}function d(e){if(!e||"function"!=typeof e.isPremiumFeatureEnabled)return!0;try{return e.isPremiumFeatureEnabled.call(e,"ai")}catch(e){return!1}}function p(e){if(e&&"function"==typeof e.premiumMessage)try{return e.premiumMessage.call(e,"ai")}catch(e){}return"AI is locked. Please add an active BlockWriteAI premium license."}function u(e){if(d(e))return!0;if(w(e,p(e),"warning"),e&&"function"==typeof e.showPremiumUpgradeModal)try{e.showPremiumUpgradeModal.call(e,"ai","locked")}catch(e){}return!1}function f(e,t){return(e=String(null==e?"":e).trim()).length>t?e.slice(0,t):e}function b(e){if(!e)return"";if("string"==typeof e.result)return e.result;if(Array.isArray(e.blocks))return"Generated "+e.blocks.length+" block(s).";if("string"==typeof e.error)return e.error;try{return JSON.stringify(e)}catch(e){return""}}function g(e,t,r,o){var i=function(e,t){return t&&t.usage_event_id?t.usage_event_id:t&&t.usage_result&&t.usage_result.event_id?t.usage_result.event_id:e&&e.lastPremiumUsageResult&&e.lastPremiumUsageResult.event_id?e.lastPremiumUsageResult.event_id:null}(e,t),a=e&&e.premiumOptions?e.premiumOptions:{},n=function(e){var t=e&&e.premiumOptions?e.premiumOptions:{};return t.usageDetailEndpoint?t.usageDetailEndpoint:t.usageEndpoint?t.usageEndpoint.replace(/ai_usage\.php(?:\?.*)?$/i,"ai_usage_detail.php"):""}(e);if(!i||!n||!a.licenseKey||"function"!=typeof fetch)return Promise.resolve();var s=Object.assign({action:"update",license_key:a.licenseKey,event_id:i,route:f(r&&r.route,80),prompt:f(r&&r.prompt,4e3),selected_text:f(r&&r.text,3e3)},o||{});return a.sessionToken&&(s.session_token=a.sessionToken),fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(s)}).catch(function(){})}function m(e){if(e&&e.root){var t=!d(e);Array.prototype.slice.call(e.root.querySelectorAll(".rbe-ai-inline-btn,.rbe-ai-toolbar-btn")).forEach(function(r){r.classList.toggle("is-premium-locked",t),r.setAttribute("aria-disabled",t?"true":"false"),r.title=t?p(e):"BlockWriteAI"}),t&&T(e)&&S(e)}}function h(t,r){var o=function(t){var r=t&&t.options?t.options.ai:null;return r&&"string"==typeof r.endpoint&&r.endpoint?r.endpoint:e.ai&&"string"==typeof e.ai.endpoint&&e.ai.endpoint?e.ai.endpoint:"api/ai.php"}(t),i=Date.now();r=Object.assign({},r||{});var a=null;return function(e,t){if(e&&"function"==typeof e.consumePremiumUsage)try{return Promise.resolve(e.consumePremiumUsage.call(e,"ai",{action:t&&t.action?t.action:"generate",source:"ai_plugin",prompt:t&&t.prompt?t.prompt:"",selected_text:t&&t.text?t.text:""}))}catch(e){return Promise.reject(e)}return Promise.resolve()}(t,r).then(function(e){a=e;var n=e&&(e.usage_result||e.lastPremiumUsageResult);return n&&(n.model&&(r.model=n.model),n.route&&(r.route=n.route),void 0!==n.credits_required&&(r.credits_required=n.credits_required)),fetch(o,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(r)}).then(function(e){return e.json().catch(function(){return{}}).then(function(o){if(!e.ok||!1===o.ok){var n=new Error(o.error||"AI request failed");throw n.httpStatus=e.status,n}return g(t,a,r,{status:"completed",duration_ms:Date.now()-i,model:o.model||"",model_used:o.model_used||o.model||"",input_tokens:o.input_tokens||0,output_tokens:o.output_tokens||0,total_tokens:o.total_tokens||0,estimated_cost:o.estimated_cost||0,response_source:o.response_source||"",response_type:o.type||(Array.isArray(o.blocks)?"blocks":"text"),response:f(b(o),6e3),response_character_count:o.response_character_count||void 0,response_token_count:o.response_token_count||void 0,blocks_generated:Array.isArray(o.blocks)?o.blocks.length:void 0}),o})})}).catch(function(e){throw g(t,a,r,{status:"failed",duration_ms:Date.now()-i,http_status:e&&e.httpStatus?e.httpStatus:0,response_type:"error",error_reason:f(e&&e.message?e.message:"AI request failed",1200)}),e})}function x(e){return e.__blockwriteaiAI||(e.__blockwriteaiAI={drawer:null,lastRange:null,lastText:"",result:"",loading:!1,closeTimer:null,progressTimer:null}),e.__blockwriteaiAI}function y(e,t,r){e&&e.root&&"function"==typeof CustomEvent&&e.root.dispatchEvent(new CustomEvent("rbe:ai-progress",{bubbles:!0,detail:{active:!!t,message:r||""}}))}function v(e,t,r,o){var i=x(e);i.progressTimer&&(clearTimeout(i.progressTimer),i.progressTimer=null),t?y(e,!0,r||"Working with BlockWriteAI..."):i.progressTimer=setTimeout(function(){y(e,!1,""),i.progressTimer=null},"number"==typeof o?o:0)}function w(e,t,a){if(t&&"undefined"!=typeof document){n();var s=document.querySelector(".rbe-toast-stack");s||(s=r("div","rbe-toast-stack",{role:"status","aria-live":"polite"}),document.body.appendChild(s));var l="error"===a?"error":"warning",c=r("div","rbe-toast is-"+l,{});c.innerHTML=i("error"===l?"circle-exclamation":"triangle-exclamation",l)+"<div><strong>"+o("error"===l?"BlockWriteAI error":"BlockWriteAI warning")+"</strong><span>"+o(t)+"</span></div>",s.appendChild(c),requestAnimationFrame(function(){c.classList.add("is-show")}),setTimeout(function(){c.classList.remove("is-show"),c.classList.add("is-hiding"),setTimeout(function(){c.parentNode&&c.parentNode.removeChild(c),s&&!s.children.length&&s.parentNode&&s.parentNode.removeChild(s)},260)},5e3)}}function k(e,t){var r=x(e);r.loading=!!t,r.drawer&&Array.prototype.slice.call(r.drawer.querySelectorAll("button")).forEach(function(e){e.classList.contains("rbe-ai-close")||(e.disabled=!!t||e.classList.contains("rbe-ai-apply")&&!r.result)})}function _(e){var t=x(e);if(t.drawer){var r=l(e);t.lastRange=e.savedRange&&s(e,e.savedRange)?e.savedRange.cloneRange():null,t.lastText=r;var o=t.drawer.querySelector(".rbe-ai-selection");o&&(o.textContent=r||"Select text in the editor, then choose an AI action.",o.classList.toggle("is-empty",!r))}}function A(e,t){e&&e.root&&Array.prototype.slice.call(e.root.querySelectorAll(".rbe-ai-inline-btn,.rbe-ai-toolbar-btn")).forEach(function(e){e.classList.toggle("is-open",!!t)})}function T(e){var t=x(e);return!(!t.drawer||t.drawer.hidden||!t.drawer.classList.contains("is-open"))}function I(e){if(u(e)){var t,s,l=x(e),c=function(e){var t=x(e);if(t.drawer)return t.drawer;n();var s=r("aside","rbe-ai-drawer",{hidden:!0,role:"dialog","aria-label":"BlockWriteAI"});return s.innerHTML='<div class="rbe-ai-head"><div class="rbe-ai-title"><span class="rbe-ai-title-icon"><i class="fa-solid fa-wand-magic-sparkles" aria-hidden="true"></i></span><span>BlockWriteAI</span></div><button type="button" class="rbe-ai-close" title="Close AI">'+i("xmark","Close")+'</button></div><div class="rbe-ai-body"><section class="rbe-ai-section"><div class="rbe-ai-label">Selection</div><div class="rbe-ai-selection is-empty"></div></section><section class="rbe-ai-section"><div class="rbe-ai-label">Actions</div><div class="rbe-ai-action-grid">'+a.map(function(e){return'<button type="button" class="rbe-ai-action" data-ai-action="'+o(e[0])+'">'+i(e[1],e[2])+"<span><strong>"+o(e[2])+"</strong><small>"+o(e[3])+"</small></span></button>"}).join("")+'</div></section><section class="rbe-ai-section"><div class="rbe-ai-label">Generate blocks from prompt</div><textarea class="rbe-ai-prompt" placeholder="Example: Create a short project proposal with a heading, summary, checklist, and next steps."></textarea><button type="button" class="rbe-ai-primary rbe-ai-generate">'+i("sparkles","Generate")+'<span>Generate blocks</span></button></section><section class="rbe-ai-section"><div class="rbe-ai-label">Result</div><div class="rbe-ai-result"></div></section></div><div class="rbe-ai-foot"><div class="rbe-ai-foot-actions"><button type="button" class="rbe-ai-secondary rbe-ai-apply" disabled>'+i("check","Apply")+"<span>Apply</span></button></div></div>",e.root.appendChild(s),t.drawer=s,s}(e);_(e),l.closeTimer&&(clearTimeout(l.closeTimer),l.closeTimer=null),c.hidden=!1,c.getBoundingClientRect(),requestAnimationFrame(function(){c.classList.add("is-open")}),A(e,!0),(t="")&&s&&w(0,t,"error"),l.lastText||setTimeout(function(){var e=c.querySelector(".rbe-ai-prompt");e&&e.focus()},0)}}function S(e){var t=x(e);t.drawer&&(t.closeTimer&&clearTimeout(t.closeTimer),t.drawer.classList.remove("is-open"),A(e,!1),t.closeTimer=setTimeout(function(){t.drawer&&(t.drawer.hidden=!0,t.closeTimer=null)},300))}function C(e,t){var r=x(e);if(r.result=String(t||"").trim(),r.drawer){var o=r.drawer.querySelector(".rbe-ai-result"),i=r.drawer.querySelector(".rbe-ai-apply");o&&(o.textContent=r.result),i&&(i.disabled=r.loading||!r.result)}}function R(e){return e&&"object"==typeof e?{type:String(e.type||"paragraph"),data:e.data&&"object"==typeof e.data?e.data:{}}:null}function E(e,t){if(!(t=(t||[]).map(R).filter(Boolean)).length)return 0;var r="function"==typeof e.getCurrentBlock?e.getCurrentBlock():null,o=r&&"function"==typeof e.indexOfBlock?e.indexOfBlock(r)+1:e.canvas.children.length,i=e.canvas&&1===e.canvas.children.length?e.canvas.children[0]:null;i&&function(e){if(!e||!e.dataset||"paragraph"!==e.dataset.type)return!1;var t=e.querySelector(".rbe-paragraph"),r=t?t.textContent:e.textContent;return!String(r||"").trim()}(i)&&(o=0,i.remove());var a=0;return t.forEach(function(t){if(function(t){if(!e||"function"!=typeof e.getPremiumFeatureForTool||"function"!=typeof e.isPremiumFeatureEnabled)return!0;var r=e.getPremiumFeatureForTool.call(e,t);return!(r&&!e.isPremiumFeatureEnabled.call(e,r)&&("function"==typeof e.showPremiumLocked&&e.showPremiumLocked.call(e,r),1))}(t.type))try{var r=null;"function"==typeof e.insertBlock?(r=e.insertBlock.call(e,t.type,t.data,o))&&(o+=1):"function"==typeof e.createBlock&&(r=e.createBlock.call(e,t.type,t.data),e.canvas.appendChild(r)),r&&(a+=1)}catch(e){w(0,e&&e.message?e.message:"Unable to insert generated block.","error")}}),a&&"function"==typeof e.noteHistory&&e.noteHistory("AI","Generated "+a+" blocks"),a&&"function"==typeof e.changed&&e.changed(!0),a}function P(e){e&&e.root&&!e.__blockwriteaiAIRefreshBound&&(e.root.addEventListener("rbe:premium-change",m.bind(null,e)),e.__blockwriteaiAIRefreshBound=!0)}function B(e,t){return t=t||e&&e.topToolbar,e&&!1!==e.options.ai&&t?(n(),t.querySelector(".rbe-ai-toolbar-btn")||t.appendChild(r("button","rbe-history-btn rbe-ai-toolbar-btn",{type:"button",title:"BlockWriteAI",html:i("wand-magic-sparkles","BlockWriteAI"),dataset:{aiToolbar:"true",premiumFeature:"ai",unlockedTitle:"BlockWriteAI"}})),P(e),m(e),t):t}function q(e,t){return t=t||e&&e.inlineToolbar,e&&!1!==e.options.ai&&t?(n(),t.querySelector(".rbe-ai-inline-btn")||t.appendChild(r("button","rbe-ai-inline-btn",{type:"button",title:"BlockWriteAI",html:i("wand-magic-sparkles","AI"),dataset:{aiInline:"true",premiumFeature:"ai",unlockedTitle:"BlockWriteAI"}})),P(e),m(e),t):t}var j=e.prototype.createTopToolbar;e.prototype.createTopToolbar=function(){return B(this,j.call(this))};var D=e.prototype.createInlineToolbar;e.prototype.createInlineToolbar=function(){return q(this,D.call(this))},e.prototype.openAI=function(){return!1===this.options.ai?null:u(this)?(I(this),this):null};var L=e.prototype.handleRootClick;e.prototype.handleRootClick=function(e){var t,r=e.target;if(r.closest&&r.closest(".rbe-ai-inline-btn,.rbe-ai-toolbar-btn"))return e.preventDefault(),e.stopPropagation(),void(u(t=this)&&(T(t)?S(t):I(t)));if(r.closest&&r.closest(".rbe-ai-close"))return e.preventDefault(),e.stopPropagation(),void S(this);var o=r.closest&&r.closest(".rbe-ai-action");if(o)return e.preventDefault(),e.stopPropagation(),void function(e,t){if(u(e)){var r=x(e);_(e),r.lastText?(k(e,!0),C(e,""),v(e,!0,"Improving selected text with BlockWriteAI..."),h(e,{action:t,text:r.lastText,document:"function"==typeof e.getData?e.getData():null}).then(function(t){C(e,t.result||"")}).catch(function(e){w(0,e.message||"AI request failed","error")}).finally(function(){k(e,!1),v(e,!1,"",250)})):w(0,"Select text first, then run an AI action.","warning")}}(this,o.dataset.aiAction);if(r.closest&&r.closest(".rbe-ai-generate"))return e.preventDefault(),e.stopPropagation(),void function(e){if(u(e)){var t=x(e),r=t.drawer&&t.drawer.querySelector(".rbe-ai-prompt"),o=r?r.value.trim():"";o?(k(e,!0),C(e,""),v(e,!0,"Generating BlockWriteAI blocks..."),h(e,{action:"generate_blocks",prompt:o,document:"function"==typeof e.getData?e.getData():null}).then(function(t){E(e,t.blocks||[])||w(0,"AI returned no blocks.","warning")}).catch(function(e){w(0,e.message||"AI generation failed","error")}).finally(function(){k(e,!1),v(e,!1,"",250)})):w(0,"Write a prompt before generating blocks.","warning")}}(this);if(!r.closest||!r.closest(".rbe-ai-apply"))return L.call(this,e);e.preventDefault(),e.stopPropagation();var i=x(this);i.result&&c(this,i.result,i.lastRange)?(v(this,!0,"Applying BlockWriteAI result..."),C(this,""),_(this),v(this,!1,"",600)):w(0,"There is no AI result ready to apply.","warning")};var O=e.prototype.handleDocumentMouseDown;return e.prototype.handleDocumentMouseDown=function(e){if(!e.target.closest||!e.target.closest(".rbe-ai-drawer, .rbe-ai-inline-btn, .rbe-ai-toolbar-btn"))return T(this)&&S(this),O.call(this,e)},e.ai=e.ai||{},e.enableAI=function(t){return e.ai=Object.assign(e.ai||{},t||{}),e.configure({ai:Object.assign({},e.ai)}),e},"undefined"!=typeof document&&Array.prototype.slice.call(document.querySelectorAll(".rbe")).forEach(function(e){var t=e.__blockwriteaiInstance;t&&(B(t),q(t))}),e});
1
+ !function(e,t){"object"==typeof module&&module.exports?module.exports=t(require("../blockwriteai")):t(e.BlockWriteAI)}("undefined"!=typeof window?window:this,function(e){"use strict";if(!e||e.__aiPluginInstalled)return e||null;e.__aiPluginInstalled=!0;var t=e.helpers||{},r=t.el||function(e,t,r){var i=document.createElement(e);return t&&(i.className=t),Object.keys(r||{}).forEach(function(e){"html"===e?i.innerHTML=r[e]:"text"===e?i.textContent=r[e]:"dataset"===e?Object.keys(r[e]||{}).forEach(function(t){i.dataset[t]=r[e][t]}):!1!==r[e]&&null!=r[e]&&i.setAttribute(e,!0===r[e]?"":r[e])}),i},i=t.escapeHTML||function(e){return String(null==e?"":e).replace(/[&<>"]/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"}[e]})},o=t.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>"},a=[["improve","wand-magic-sparkles","Improve writing","Make selected writing clearer and smoother."],["grammar","spell-check","Fix grammar","Correct grammar, spelling, and punctuation."],["summarize","compress","Summarize","Create a shorter version of the selected text."],["expand","up-right-and-down-left-from-center","Expand","Add helpful detail while keeping the meaning."],["professional","briefcase","Make professional","Rewrite in a polished business tone."]];function n(){if(!document.querySelector("style[data-blockwriteai-ai]")){var e=document.createElement("style");e.dataset.blockwriteaiAi="true",e.textContent=".rbe-ai-inline-btn{width:34px;height:34px;border:1px solid #cbd5e1;border-radius:8px;background:#eef6ff;color:#155eef;display:inline-grid;place-items:center;cursor:pointer;font-weight:800;}.rbe-ai-inline-btn:hover,.rbe-ai-inline-btn:focus-visible{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;}.rbe-ai-inline-btn.is-open{border-color:#16a34a;background:#eafaf1;color:#087443;}.rbe-ai-toolbar-btn{position:absolute;left:50%;top:0;transform:translateX(-50%);width:38px;min-width:38px;padding-left:0;padding-right:0;justify-content:center;border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8;box-shadow:0 8px 24px rgba(37,99,235,.14);}.rbe-ai-toolbar-btn:hover:not(:disabled),.rbe-ai-toolbar-btn:focus-visible{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;}.rbe-ai-toolbar-btn.is-open{border-color:#16a34a;background:#eafaf1;color:#087443;}.rbe-ai-drawer{position:fixed;right:18px;top:18px;z-index:11000;width:390px;max-width:calc(100vw - 24px);height:calc(100vh - 36px);display:grid;grid-template-rows:auto 1fr auto;border:1px solid #cbd5e1;border-radius:14px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.25);overflow:hidden;opacity:0;pointer-events:none;transform:translateX(calc(100% + 34px));transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s ease;will-change:transform,opacity;}.rbe-ai-drawer.is-open{opacity:1;pointer-events:auto;transform:translateX(0);}.rbe-ai-drawer[hidden]{display:none!important;}.rbe-ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fbff,#eef6ff);}.rbe-ai-title{display:flex;align-items:center;gap:10px;font-weight:850;color:#0f172a;}.rbe-ai-title-icon{width:34px;height:34px;border-radius:10px;background:#eafaf2;color:#12a865;display:grid;place-items:center;}.rbe-ai-close{width:32px;height:32px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#172033;display:grid;place-items:center;cursor:pointer;}.rbe-ai-body{padding:14px 16px;overflow:auto;display:grid;gap:14px;align-content:start;}.rbe-ai-section{display:grid;gap:8px;}.rbe-ai-label{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.03em;color:#667085;}.rbe-ai-selection,.rbe-ai-result{border:1px solid #d7dee8;border-radius:10px;background:#f8fafc;color:#172033;padding:10px 12px;min-height:54px;max-height:132px;overflow:auto;font:13px/1.45 Arial,sans-serif;white-space:pre-wrap;}.rbe-ai-selection.is-empty{color:#98a2b3;}.rbe-ai-mode{display:flex;align-items:flex-start;gap:10px;border:1px solid #d7dee8;border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer;}.rbe-ai-mode:hover{border-color:#93c5fd;background:#eff6ff;}.rbe-ai-mode input{width:18px;height:18px;margin:1px 0 0;accent-color:#16a34a;flex:0 0 auto;}.rbe-ai-mode strong{display:block;font-size:13px;line-height:1.2;color:#172033;}.rbe-ai-mode small{display:block;margin-top:3px;color:#667085;font-size:11px;line-height:1.3;}.rbe-ai-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}.rbe-ai-action{border:1px solid #d7dee8;border-radius:10px;background:#fff;color:#172033;padding:10px;display:flex;gap:9px;align-items:flex-start;text-align:left;cursor:pointer;}.rbe-ai-action:hover,.rbe-ai-action:focus-visible{border-color:#2563eb;background:#eff6ff;}.rbe-ai-action i{margin-top:2px;color:#1d4ed8;}.rbe-ai-action strong{display:block;font-size:13px;line-height:1.2;}.rbe-ai-action small{display:block;margin-top:3px;color:#667085;font-size:11px;line-height:1.25;}.rbe-ai-prompt{width:100%;min-height:110px;resize:vertical;border:1px solid #d7dee8;border-radius:10px;padding:10px 12px;color:#172033;font:14px/1.45 Arial,sans-serif;}.rbe-ai-prompt:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12);}.rbe-ai-primary,.rbe-ai-secondary{border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font-weight:850;padding:9px 12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;}.rbe-ai-primary{border-color:#2563eb;background:#2563eb;color:#fff;}.rbe-ai-primary:hover{background:#1d4ed8;}.rbe-ai-secondary:hover{border-color:#2563eb;color:#1d4ed8;background:#eff6ff;}.rbe-ai-primary[disabled],.rbe-ai-secondary[disabled],.rbe-ai-action[disabled]{opacity:.55;cursor:not-allowed;}.rbe-ai-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid #e2e8f0;background:#f8fafc;}.rbe-ai-foot-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0;width:100%;}.rbe-ai-apply{flex:0 1 112px;min-width:96px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.rbe-toast-stack{position:fixed;right:18px;bottom:18px;z-index:12000;display:grid;gap:10px;width:min(360px,calc(100vw - 24px));pointer-events:none;}.rbe-toast{display:flex;align-items:flex-start;gap:10px;border:1px solid #d7dee8;border-radius:12px;background:#fff;color:#172033;padding:12px 14px;box-shadow:0 18px 48px rgba(15,23,42,.18);opacity:0;transform:translateY(12px) scale(.98);transition:opacity .24s ease,transform .24s ease;pointer-events:auto;}.rbe-toast.is-show{opacity:1;transform:translateY(0) scale(1);}.rbe-toast.is-hiding{opacity:0;transform:translateY(10px) scale(.98);}.rbe-toast i{margin-top:2px;}.rbe-toast strong{display:block;font-size:13px;line-height:1.25;}.rbe-toast span{display:block;margin-top:2px;font-size:12px;line-height:1.4;color:#475467;}.rbe-toast.is-error{border-color:#fecaca;background:#fff7f7;}.rbe-toast.is-error i,.rbe-toast.is-error strong{color:#b42318;}.rbe-toast.is-warning{border-color:#fedf89;background:#fffbeb;}.rbe-toast.is-warning i,.rbe-toast.is-warning strong{color:#b54708;}@media (max-width:900px){.rbe-ai-toolbar-btn{position:static;transform:none;order:-1;}}@media (max-width:700px){.rbe-ai-drawer{inset:10px;width:auto;height:auto;max-height:calc(100dvh - 20px);border-radius:12px;}.rbe-ai-action-grid{grid-template-columns:1fr;}.rbe-ai-head,.rbe-ai-body,.rbe-ai-foot{padding-left:12px;padding-right:12px;}}@media (max-width:520px){.rbe-ai-foot-actions{justify-content:stretch;width:100%;}.rbe-ai-primary,.rbe-ai-secondary{width:100%;}.rbe-ai-apply{flex:1 1 auto;min-width:0;}.rbe-ai-title{min-width:0;}.rbe-ai-title span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.rbe-toast-stack{right:10px;bottom:10px;width:calc(100vw - 20px);}}",document.head.appendChild(e)}}function s(e,t){if(!e||!e.root||!t)return!1;var r=t.commonAncestorContainer;return r&&r.nodeType!==Node.ELEMENT_NODE&&(r=r.parentElement),!(!r||!e.root.contains(r))}function l(e){var t=function(e){var t=window.getSelection();if(t&&t.rangeCount&&!t.isCollapsed){var r=t.getRangeAt(0);if(s(e,r))return e.savedRange=r.cloneRange(),e.savedRange}return e.savedRange&&s(e,e.savedRange)?e.savedRange:null}(e);return t?t.toString().trim():""}function c(e,t,r){if(!(r=r||e.__blockwriteaiAI&&e.__blockwriteaiAI.lastRange||e.savedRange)||!s(e,r))return!1;var i=window.getSelection();i.removeAllRanges(),i.addRange(r),r.deleteContents();var o=function(e){var t=document.createDocumentFragment();return String(e||"").split(/\n/).forEach(function(e,r){r&&t.appendChild(document.createElement("br")),t.appendChild(document.createTextNode(e))}),t}(t),a=o.lastChild;if(r.insertNode(o),a&&a.parentNode){var n=document.createRange();n.setStartAfter(a),n.collapse(!0),i.removeAllRanges(),i.addRange(n),e.savedRange=n.cloneRange()}return"function"==typeof e.noteHistory&&e.noteHistory("AI","Text applied"),"function"==typeof e.changed&&e.changed(!0),"function"==typeof e.updateInlineToolbarState&&e.updateInlineToolbarState(),!0}function d(t){var r=t&&t.options?t.options.ai:null;return r&&"string"==typeof r.endpoint&&r.endpoint?r.endpoint:e.ai&&"string"==typeof e.ai.endpoint&&e.ai.endpoint?e.ai.endpoint:e.platformEndpoints&&"string"==typeof e.platformEndpoints.aiGenerate?e.platformEndpoints.aiGenerate:"api/ai.php"}function p(e){return/\/api\/ai_generate\.php(?:[?#].*)?$/i.test(String(e||""))}function u(e){if(!e||"function"!=typeof e.isPremiumFeatureEnabled)return!0;try{return e.isPremiumFeatureEnabled.call(e,"ai")}catch(e){return!1}}function f(e){if(e&&"function"==typeof e.premiumMessage)try{return e.premiumMessage.call(e,"ai")}catch(e){}return"AI is locked. Please add an active BlockWriteAI premium license."}function b(e){if(u(e))return!0;if(_(e,f(e),"warning"),e&&"function"==typeof e.showPremiumUpgradeModal)try{e.showPremiumUpgradeModal.call(e,"ai","locked")}catch(e){}return!1}function g(e,t){return(e=String(null==e?"":e).trim()).length>t?e.slice(0,t):e}function m(e){if(!e)return"";if("string"==typeof e.result)return e.result;if(Array.isArray(e.blocks))return"Generated "+e.blocks.length+" block(s).";if("string"==typeof e.error)return e.error;try{return JSON.stringify(e)}catch(e){return""}}function h(e,t,r,i){var o=function(e,t){return t&&t.usage_event_id?t.usage_event_id:t&&t.usage_result&&t.usage_result.event_id?t.usage_result.event_id:e&&e.lastPremiumUsageResult&&e.lastPremiumUsageResult.event_id?e.lastPremiumUsageResult.event_id:null}(e,t),a=e&&e.premiumOptions?e.premiumOptions:{},n=function(e){var t=e&&e.premiumOptions?e.premiumOptions:{};return t.usageDetailEndpoint?t.usageDetailEndpoint:t.usageEndpoint?t.usageEndpoint.replace(/ai_usage\.php(?:\?.*)?$/i,"ai_usage_detail.php"):""}(e);if(!o||!n||!a.licenseKey||"function"!=typeof fetch)return Promise.resolve();var s=Object.assign({action:"update",license_key:a.licenseKey,event_id:o,route:g(r&&r.route,80),prompt:g(r&&r.prompt,4e3),selected_text:g(r&&r.text,3e3)},i||{});return a.sessionToken&&(s.session_token=a.sessionToken),fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(s)}).catch(function(){})}function y(e){if(e&&e.root){var t=!u(e);Array.prototype.slice.call(e.root.querySelectorAll(".rbe-ai-inline-btn,.rbe-ai-toolbar-btn")).forEach(function(r){r.classList.toggle("is-premium-locked",t),r.setAttribute("aria-disabled",t?"true":"false"),r.title=t?f(e):"BlockWriteAI"}),t&&S(e)&&E(e)}}function x(e,t){var r=d(e),i=Date.now();t=function(e,t,r){if(t=Object.assign({},t||{}),!p(r))return t;var i=e&&e.premiumOptions?e.premiumOptions:{};return i.licenseKey&&!t.license_key&&(t.license_key=i.licenseKey),i.sessionToken&&!t.session_token&&(t.session_token=i.sessionToken),t}(e,t,r);var o=null;return function(e,t){if(p(d(e)))return Promise.resolve();if(e&&"function"==typeof e.consumePremiumUsage)try{return Promise.resolve(e.consumePremiumUsage.call(e,"ai",{action:t&&t.action?t.action:"generate",source:"ai_plugin",prompt:t&&t.prompt?t.prompt:"",selected_text:t&&t.text?t.text:""}))}catch(e){return Promise.reject(e)}return Promise.resolve()}(e,t).then(function(a){o=a;var n=a&&(a.usage_result||a.lastPremiumUsageResult);return n&&(n.model&&(t.model=n.model),n.route&&(t.route=n.route),void 0!==n.credits_required&&(t.credits_required=n.credits_required)),fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t)}).then(function(r){return r.json().catch(function(){return{}}).then(function(a){if(!r.ok||!1===a.ok){var n=new Error(a.error||"AI request failed");throw n.httpStatus=r.status,n}return h(e,o,t,{status:"completed",duration_ms:Date.now()-i,model:a.model||"",model_used:a.model_used||a.model||"",input_tokens:a.input_tokens||0,output_tokens:a.output_tokens||0,total_tokens:a.total_tokens||0,estimated_cost:a.estimated_cost||0,response_source:a.response_source||"",response_type:a.type||(Array.isArray(a.blocks)?"blocks":"text"),response:g(m(a),6e3),response_character_count:a.response_character_count||void 0,response_token_count:a.response_token_count||void 0,blocks_generated:Array.isArray(a.blocks)?a.blocks.length:void 0}),a})})}).catch(function(r){throw h(e,o,t,{status:"failed",duration_ms:Date.now()-i,http_status:r&&r.httpStatus?r.httpStatus:0,response_type:"error",error_reason:g(r&&r.message?r.message:"AI request failed",1200)}),r})}function v(e){return e.__blockwriteaiAI||(e.__blockwriteaiAI={drawer:null,lastRange:null,lastText:"",result:"",loading:!1,closeTimer:null,progressTimer:null}),e.__blockwriteaiAI}function w(e,t,r){e&&e.root&&"function"==typeof CustomEvent&&e.root.dispatchEvent(new CustomEvent("rbe:ai-progress",{bubbles:!0,detail:{active:!!t,message:r||""}}))}function k(e,t,r,i){var o=v(e);o.progressTimer&&(clearTimeout(o.progressTimer),o.progressTimer=null),t?w(e,!0,r||"Working with BlockWriteAI..."):o.progressTimer=setTimeout(function(){w(e,!1,""),o.progressTimer=null},"number"==typeof i?i:0)}function _(e,t,a){if(t&&"undefined"!=typeof document){n();var s=document.querySelector(".rbe-toast-stack");s||(s=r("div","rbe-toast-stack",{role:"status","aria-live":"polite"}),document.body.appendChild(s));var l="error"===a?"error":"warning",c=r("div","rbe-toast is-"+l,{});c.innerHTML=o("error"===l?"circle-exclamation":"triangle-exclamation",l)+"<div><strong>"+i("error"===l?"BlockWriteAI error":"BlockWriteAI warning")+"</strong><span>"+i(t)+"</span></div>",s.appendChild(c),requestAnimationFrame(function(){c.classList.add("is-show")}),setTimeout(function(){c.classList.remove("is-show"),c.classList.add("is-hiding"),setTimeout(function(){c.parentNode&&c.parentNode.removeChild(c),s&&!s.children.length&&s.parentNode&&s.parentNode.removeChild(s)},260)},5e3)}}function A(e,t){var r=v(e);r.loading=!!t,r.drawer&&Array.prototype.slice.call(r.drawer.querySelectorAll("button")).forEach(function(e){e.classList.contains("rbe-ai-close")||(e.disabled=!!t||e.classList.contains("rbe-ai-apply")&&!r.result)})}function T(e){var t=v(e);if(t.drawer){var r=l(e);t.lastRange=e.savedRange&&s(e,e.savedRange)?e.savedRange.cloneRange():null,t.lastText=r;var i=t.drawer.querySelector(".rbe-ai-selection");i&&(i.textContent=r||"Select text in the editor, then choose an AI action.",i.classList.toggle("is-empty",!r))}}function I(e,t){e&&e.root&&Array.prototype.slice.call(e.root.querySelectorAll(".rbe-ai-inline-btn,.rbe-ai-toolbar-btn")).forEach(function(e){e.classList.toggle("is-open",!!t)})}function S(e){var t=v(e);return!(!t.drawer||t.drawer.hidden||!t.drawer.classList.contains("is-open"))}function C(e){if(b(e)){var t,s,l=v(e),c=function(e){var t=v(e);if(t.drawer)return t.drawer;n();var s=r("aside","rbe-ai-drawer",{hidden:!0,role:"dialog","aria-label":"BlockWriteAI"});return s.innerHTML='<div class="rbe-ai-head"><div class="rbe-ai-title"><span class="rbe-ai-title-icon"><i class="fa-solid fa-wand-magic-sparkles" aria-hidden="true"></i></span><span>BlockWriteAI</span></div><button type="button" class="rbe-ai-close" title="Close AI">'+o("xmark","Close")+'</button></div><div class="rbe-ai-body"><section class="rbe-ai-section"><div class="rbe-ai-label">Selection</div><div class="rbe-ai-selection is-empty"></div></section><section class="rbe-ai-section"><div class="rbe-ai-label">Actions</div><div class="rbe-ai-action-grid">'+a.map(function(e){return'<button type="button" class="rbe-ai-action" data-ai-action="'+i(e[0])+'">'+o(e[1],e[2])+"<span><strong>"+i(e[2])+"</strong><small>"+i(e[3])+"</small></span></button>"}).join("")+'</div></section><section class="rbe-ai-section"><div class="rbe-ai-label">Generate blocks from prompt</div><textarea class="rbe-ai-prompt" placeholder="Example: Create a short project proposal with a heading, summary, checklist, and next steps."></textarea><button type="button" class="rbe-ai-primary rbe-ai-generate">'+o("sparkles","Generate")+'<span>Generate blocks</span></button></section><section class="rbe-ai-section"><div class="rbe-ai-label">Result</div><div class="rbe-ai-result"></div></section></div><div class="rbe-ai-foot"><div class="rbe-ai-foot-actions"><button type="button" class="rbe-ai-secondary rbe-ai-apply" disabled>'+o("check","Apply")+"<span>Apply</span></button></div></div>",e.root.appendChild(s),t.drawer=s,s}(e);T(e),l.closeTimer&&(clearTimeout(l.closeTimer),l.closeTimer=null),c.hidden=!1,c.getBoundingClientRect(),requestAnimationFrame(function(){c.classList.add("is-open")}),I(e,!0),(t="")&&s&&_(0,t,"error"),l.lastText||setTimeout(function(){var e=c.querySelector(".rbe-ai-prompt");e&&e.focus()},0)}}function E(e){var t=v(e);t.drawer&&(t.closeTimer&&clearTimeout(t.closeTimer),t.drawer.classList.remove("is-open"),I(e,!1),t.closeTimer=setTimeout(function(){t.drawer&&(t.drawer.hidden=!0,t.closeTimer=null)},300))}function R(e,t){var r=v(e);if(r.result=String(t||"").trim(),r.drawer){var i=r.drawer.querySelector(".rbe-ai-result"),o=r.drawer.querySelector(".rbe-ai-apply");i&&(i.textContent=r.result),o&&(o.disabled=r.loading||!r.result)}}function P(e){return e&&"object"==typeof e?{type:String(e.type||"paragraph"),data:e.data&&"object"==typeof e.data?e.data:{}}:null}function B(e,t){if(!(t=(t||[]).map(P).filter(Boolean)).length)return 0;var r="function"==typeof e.getCurrentBlock?e.getCurrentBlock():null,i=r&&"function"==typeof e.indexOfBlock?e.indexOfBlock(r)+1:e.canvas.children.length,o=e.canvas&&1===e.canvas.children.length?e.canvas.children[0]:null;o&&function(e){if(!e||!e.dataset||"paragraph"!==e.dataset.type)return!1;var t=e.querySelector(".rbe-paragraph"),r=t?t.textContent:e.textContent;return!String(r||"").trim()}(o)&&(i=0,o.remove());var a=0;return t.forEach(function(t){if(function(t){if(!e||"function"!=typeof e.getPremiumFeatureForTool||"function"!=typeof e.isPremiumFeatureEnabled)return!0;var r=e.getPremiumFeatureForTool.call(e,t);return!(r&&!e.isPremiumFeatureEnabled.call(e,r)&&("function"==typeof e.showPremiumLocked&&e.showPremiumLocked.call(e,r),1))}(t.type))try{var r=null;"function"==typeof e.insertBlock?(r=e.insertBlock.call(e,t.type,t.data,i))&&(i+=1):"function"==typeof e.createBlock&&(r=e.createBlock.call(e,t.type,t.data),e.canvas.appendChild(r)),r&&(a+=1)}catch(e){_(0,e&&e.message?e.message:"Unable to insert generated block.","error")}}),a&&"function"==typeof e.noteHistory&&e.noteHistory("AI","Generated "+a+" blocks"),a&&"function"==typeof e.changed&&e.changed(!0),a}function q(e){e&&e.root&&!e.__blockwriteaiAIRefreshBound&&(e.root.addEventListener("rbe:premium-change",y.bind(null,e)),e.__blockwriteaiAIRefreshBound=!0)}function j(e,t){return t=t||e&&e.topToolbar,e&&!1!==e.options.ai&&t?(n(),t.querySelector(".rbe-ai-toolbar-btn")||t.appendChild(r("button","rbe-history-btn rbe-ai-toolbar-btn",{type:"button",title:"BlockWriteAI",html:o("wand-magic-sparkles","BlockWriteAI"),dataset:{aiToolbar:"true",premiumFeature:"ai",unlockedTitle:"BlockWriteAI"}})),q(e),y(e),t):t}function D(e,t){return t=t||e&&e.inlineToolbar,e&&!1!==e.options.ai&&t?(n(),t.querySelector(".rbe-ai-inline-btn")||t.appendChild(r("button","rbe-ai-inline-btn",{type:"button",title:"BlockWriteAI",html:o("wand-magic-sparkles","AI"),dataset:{aiInline:"true",premiumFeature:"ai",unlockedTitle:"BlockWriteAI"}})),q(e),y(e),t):t}var O=e.prototype.createTopToolbar;e.prototype.createTopToolbar=function(){return j(this,O.call(this))};var L=e.prototype.createInlineToolbar;e.prototype.createInlineToolbar=function(){return D(this,L.call(this))},e.prototype.openAI=function(){return!1===this.options.ai?null:b(this)?(C(this),this):null};var W=e.prototype.handleRootClick;e.prototype.handleRootClick=function(e){var t,r=e.target;if(r.closest&&r.closest(".rbe-ai-inline-btn,.rbe-ai-toolbar-btn"))return e.preventDefault(),e.stopPropagation(),void(b(t=this)&&(S(t)?E(t):C(t)));if(r.closest&&r.closest(".rbe-ai-close"))return e.preventDefault(),e.stopPropagation(),void E(this);var i=r.closest&&r.closest(".rbe-ai-action");if(i)return e.preventDefault(),e.stopPropagation(),void function(e,t){if(b(e)){var r=v(e);T(e),r.lastText?(A(e,!0),R(e,""),k(e,!0,"Improving selected text with BlockWriteAI..."),x(e,{action:t,text:r.lastText,document:"function"==typeof e.getData?e.getData():null}).then(function(t){R(e,t.result||"")}).catch(function(e){_(0,e.message||"AI request failed","error")}).finally(function(){A(e,!1),k(e,!1,"",250)})):_(0,"Select text first, then run an AI action.","warning")}}(this,i.dataset.aiAction);if(r.closest&&r.closest(".rbe-ai-generate"))return e.preventDefault(),e.stopPropagation(),void function(e){if(b(e)){var t=v(e),r=t.drawer&&t.drawer.querySelector(".rbe-ai-prompt"),i=r?r.value.trim():"";i?(A(e,!0),R(e,""),k(e,!0,"Generating BlockWriteAI blocks..."),x(e,{action:"generate_blocks",prompt:i,document:"function"==typeof e.getData?e.getData():null}).then(function(t){B(e,t.blocks||[])||_(0,"AI returned no blocks.","warning")}).catch(function(e){_(0,e.message||"AI generation failed","error")}).finally(function(){A(e,!1),k(e,!1,"",250)})):_(0,"Write a prompt before generating blocks.","warning")}}(this);if(!r.closest||!r.closest(".rbe-ai-apply"))return W.call(this,e);e.preventDefault(),e.stopPropagation();var o=v(this);o.result&&c(this,o.result,o.lastRange)?(k(this,!0,"Applying BlockWriteAI result..."),R(this,""),T(this),k(this,!1,"",600)):_(0,"There is no AI result ready to apply.","warning")};var F=e.prototype.handleDocumentMouseDown;return e.prototype.handleDocumentMouseDown=function(e){if(!e.target.closest||!e.target.closest(".rbe-ai-drawer, .rbe-ai-inline-btn, .rbe-ai-toolbar-btn"))return S(this)&&E(this),F.call(this,e)},e.ai=e.ai||{},e.enableAI=function(t){return e.ai=Object.assign(e.ai||{},t||{}),e.configure({ai:Object.assign({},e.ai)}),e},"undefined"!=typeof document&&Array.prototype.slice.call(document.querySelectorAll(".rbe")).forEach(function(e){var t=e.__blockwriteaiInstance;t&&(j(t),D(t))}),e});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qarakash/blockwriteai",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
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",
package/types/index.d.ts CHANGED
@@ -169,6 +169,12 @@ export default class BlockWriteAI {
169
169
  destroy(): void;
170
170
 
171
171
  static version: string;
172
+ static platformEndpoints: {
173
+ premiumPlugins: string;
174
+ licenseVerify: string;
175
+ aiUsage: string;
176
+ aiGenerate: string;
177
+ };
172
178
  static configure(options: Partial<BlockWriteAIOptions>): typeof BlockWriteAI;
173
179
  static loadPremiumPlugins(options: BlockWriteAIPremiumPluginLoadOptions): Promise<{ ok: boolean; features: string[] }>;
174
180
  static enableAI(options?: BlockWriteAIAIOptions): typeof BlockWriteAI;