@imgly/plugin-ai-apps-web 1.73.0-rc.1 → 1.73.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- var Yf=typeof global=="object"&&global&&global.Object===Object&&global,Cs=Yf,Hf=typeof self=="object"&&self&&self.Object===Object&&self,Zf=Cs||Hf||Function("return this")(),K=Zf,Qf=K.Symbol,He=Qf,As=Object.prototype,Wf=As.hasOwnProperty,Kf=As.toString,mr=He?He.toStringTag:void 0;function Jf(e){var t=Wf.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=Kf.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var Xf=Jf,ey=Object.prototype,ty=ey.toString;function ry(e){return ty.call(e)}var iy=ry,ny="[object Null]",oy="[object Undefined]",cs=He?He.toStringTag:void 0;function ay(e){return e==null?e===void 0?oy:ny:cs&&cs in Object(e)?Xf(e):iy(e)}var wr=ay;function ly(e){return e!=null&&typeof e=="object"}var Po=ly,NK=Array.isArray;function sy(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ss=sy,uy="[object AsyncFunction]",cy="[object Function]",dy="[object GeneratorFunction]",py="[object Proxy]";function gy(e){if(!Ss(e))return!1;var t=wr(e);return t==cy||t==dy||t==uy||t==py}var fy=gy,yy=K["__core-js_shared__"],Eo=yy,ds=function(){var e=/[^.]+$/.exec(Eo&&Eo.keys&&Eo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function my(e){return!!ds&&ds in e}var by=my,hy=Function.prototype,vy=hy.toString;function wy(e){if(e!=null){try{return vy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=wy,ky=/[\\^$.*+?()[\]{}|]/g,xy=/^\[object .+?Constructor\]$/,Iy=Function.prototype,Cy=Object.prototype,Ay=Iy.toString,Sy=Cy.hasOwnProperty,My=RegExp("^"+Ay.call(Sy).replace(ky,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function jy(e){if(!Ss(e)||by(e))return!1;var t=fy(e)?My:xy;return t.test($e(e))}var $y=jy;function Ey(e,t){return e?.[t]}var _y=Ey;function Ly(e,t){var r=_y(e,t);return $y(r)?r:void 0}var Ze=Ly,Ty=Ze(K,"WeakMap"),Lo=Ty;function Oy(e,t){return e===t||e!==e&&t!==t}var Ny=Oy,Dy=9007199254740991;function Py(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Dy}var zy=Py;var DK=Object.prototype;var Uy="[object Arguments]";function Ry(e){return Po(e)&&wr(e)==Uy}var ps=Ry,Ms=Object.prototype,Fy=Ms.hasOwnProperty,Vy=Ms.propertyIsEnumerable,PK=ps(function(){return arguments}())?ps:function(e){return Po(e)&&Fy.call(e,"callee")&&!Vy.call(e,"callee")};var js=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gs=js&&typeof module=="object"&&module&&!module.nodeType&&module,By=gs&&gs.exports===js,fs=By?K.Buffer:void 0,zK=fs?fs.isBuffer:void 0;var qy="[object Arguments]",Gy="[object Array]",Yy="[object Boolean]",Hy="[object Date]",Zy="[object Error]",Qy="[object Function]",Wy="[object Map]",Ky="[object Number]",Jy="[object Object]",Xy="[object RegExp]",em="[object Set]",tm="[object String]",rm="[object WeakMap]",im="[object ArrayBuffer]",nm="[object DataView]",om="[object Float32Array]",am="[object Float64Array]",lm="[object Int8Array]",sm="[object Int16Array]",um="[object Int32Array]",cm="[object Uint8Array]",dm="[object Uint8ClampedArray]",pm="[object Uint16Array]",gm="[object Uint32Array]",L={};L[om]=L[am]=L[lm]=L[sm]=L[um]=L[cm]=L[dm]=L[pm]=L[gm]=!0;L[qy]=L[Gy]=L[im]=L[Yy]=L[nm]=L[Hy]=L[Zy]=L[Qy]=L[Wy]=L[Ky]=L[Jy]=L[Xy]=L[em]=L[tm]=L[rm]=!1;function fm(e){return Po(e)&&zy(e.length)&&!!L[wr(e)]}var ym=fm;function mm(e){return function(t){return e(t)}}var bm=mm,$s=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=$s&&typeof module=="object"&&module&&!module.nodeType&&module,hm=br&&br.exports===$s,_o=hm&&Cs.process,vm=function(){try{var e=br&&br.require&&br.require("util").types;return e||_o&&_o.binding&&_o.binding("util")}catch{}}(),ys=vm,ms=ys&&ys.isTypedArray,UK=ms?bm(ms):ym;var wm=Object.prototype,RK=wm.hasOwnProperty;function km(e,t){return function(r){return e(t(r))}}var xm=km,FK=xm(Object.keys,Object);var Im=Object.prototype,VK=Im.hasOwnProperty;var Cm=Ze(Object,"create"),hr=Cm;function Am(){this.__data__=hr?hr(null):{},this.size=0}var Sm=Am;function Mm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var jm=Mm,$m="__lodash_hash_undefined__",Em=Object.prototype,_m=Em.hasOwnProperty;function Lm(e){var t=this.__data__;if(hr){var r=t[e];return r===$m?void 0:r}return _m.call(t,e)?t[e]:void 0}var Tm=Lm,Om=Object.prototype,Nm=Om.hasOwnProperty;function Dm(e){var t=this.__data__;return hr?t[e]!==void 0:Nm.call(t,e)}var Pm=Dm,zm="__lodash_hash_undefined__";function Um(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?zm:t,this}var Rm=Um;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=Sm;Qe.prototype.delete=jm;Qe.prototype.get=Tm;Qe.prototype.has=Pm;Qe.prototype.set=Rm;var bs=Qe;function Fm(){this.__data__=[],this.size=0}var Vm=Fm;function Bm(e,t){for(var r=e.length;r--;)if(Ny(e[r][0],t))return r;return-1}var mn=Bm,qm=Array.prototype,Gm=qm.splice;function Ym(e){var t=this.__data__,r=mn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Gm.call(t,r,1),--this.size,!0}var Hm=Ym;function Zm(e){var t=this.__data__,r=mn(t,e);return r<0?void 0:t[r][1]}var Qm=Zm;function Wm(e){return mn(this.__data__,e)>-1}var Km=Wm;function Jm(e,t){var r=this.__data__,i=mn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var Xm=Jm;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=Vm;We.prototype.delete=Hm;We.prototype.get=Qm;We.prototype.has=Km;We.prototype.set=Xm;var bn=We,eb=Ze(K,"Map"),vr=eb;function tb(){this.size=0,this.__data__={hash:new bs,map:new(vr||bn),string:new bs}}var rb=tb;function ib(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var nb=ib;function ob(e,t){var r=e.__data__;return nb(t)?r[typeof t=="string"?"string":"hash"]:r.map}var hn=ob;function ab(e){var t=hn(this,e).delete(e);return this.size-=t?1:0,t}var lb=ab;function sb(e){return hn(this,e).get(e)}var ub=sb;function cb(e){return hn(this,e).has(e)}var db=cb;function pb(e,t){var r=hn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var gb=pb;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=rb;Ke.prototype.delete=lb;Ke.prototype.get=ub;Ke.prototype.has=db;Ke.prototype.set=gb;var Es=Ke;function fb(){this.__data__=new bn,this.size=0}var yb=fb;function mb(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var bb=mb;function hb(e){return this.__data__.get(e)}var vb=hb;function wb(e){return this.__data__.has(e)}var kb=wb,xb=200;function Ib(e,t){var r=this.__data__;if(r instanceof bn){var i=r.__data__;if(!vr||i.length<xb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Es(i)}return r.set(e,t),this.size=r.size,this}var Cb=Ib;function kr(e){var t=this.__data__=new bn(e);this.size=t.size}kr.prototype.clear=yb;kr.prototype.delete=bb;kr.prototype.get=vb;kr.prototype.has=kb;kr.prototype.set=Cb;var Ab=Object.prototype,BK=Ab.propertyIsEnumerable;var Sb=Ze(K,"DataView"),To=Sb,Mb=Ze(K,"Promise"),Oo=Mb,jb=Ze(K,"Set"),No=jb,hs="[object Map]",$b="[object Object]",vs="[object Promise]",ws="[object Set]",ks="[object WeakMap]",xs="[object DataView]",Eb=$e(To),_b=$e(vr),Lb=$e(Oo),Tb=$e(No),Ob=$e(Lo),Ye=wr;(To&&Ye(new To(new ArrayBuffer(1)))!=xs||vr&&Ye(new vr)!=hs||Oo&&Ye(Oo.resolve())!=vs||No&&Ye(new No)!=ws||Lo&&Ye(new Lo)!=ks)&&(Ye=function(e){var t=wr(e),r=t==$b?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Eb:return xs;case _b:return hs;case Lb:return vs;case Tb:return ws;case Ob:return ks}return t});var qK=K.Uint8Array;var Nb="__lodash_hash_undefined__";function Db(e){return this.__data__.set(e,Nb),this}var Pb=Db;function zb(e){return this.__data__.has(e)}var Ub=zb;function Do(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Es;++t<r;)this.add(e[t])}Do.prototype.add=Do.prototype.push=Pb;Do.prototype.has=Ub;var Is=He?He.prototype:void 0,GK=Is?Is.valueOf:void 0;var Rb=Object.prototype,YK=Rb.hasOwnProperty;var Fb=Object.prototype,HK=Fb.hasOwnProperty;var ZK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),QK=new RegExp(/[A-Fa-f0-9]{1}/,"g"),WK=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Vb(e){return e!==void 0}var _s=Vb;var Bb=typeof global=="object"&&global&&global.Object===Object&&global,Ys=Bb,qb=typeof self=="object"&&self&&self.Object===Object&&self,Gb=Ys||qb||Function("return this")(),J=Gb,Yb=J.Symbol,Xe=Yb,Hs=Object.prototype,Hb=Hs.hasOwnProperty,Zb=Hs.toString,xr=Xe?Xe.toStringTag:void 0;function Qb(e){var t=Hb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=Zb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var Wb=Qb,Kb=Object.prototype,Jb=Kb.toString;function Xb(e){return Jb.call(e)}var eh=Xb,th="[object Null]",rh="[object Undefined]",Ls=Xe?Xe.toStringTag:void 0;function ih(e){return e==null?e===void 0?rh:th:Ls&&Ls in Object(e)?Wb(e):eh(e)}var Sr=ih;function nh(e){return e!=null&&typeof e=="object"}var Yo=nh,JK=Array.isArray;function oh(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Zs=oh,ah="[object AsyncFunction]",lh="[object Function]",sh="[object GeneratorFunction]",uh="[object Proxy]";function ch(e){if(!Zs(e))return!1;var t=Sr(e);return t==lh||t==sh||t==ah||t==uh}var dh=ch,ph=J["__core-js_shared__"],zo=ph,Ts=function(){var e=/[^.]+$/.exec(zo&&zo.keys&&zo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function gh(e){return!!Ts&&Ts in e}var fh=gh,yh=Function.prototype,mh=yh.toString;function bh(e){if(e!=null){try{return mh.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=bh,hh=/[\\^$.*+?()[\]{}|]/g,vh=/^\[object .+?Constructor\]$/,wh=Function.prototype,kh=Object.prototype,xh=wh.toString,Ih=kh.hasOwnProperty,Ch=RegExp("^"+xh.call(Ih).replace(hh,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ah(e){if(!Zs(e)||fh(e))return!1;var t=dh(e)?Ch:vh;return t.test(Ee(e))}var Sh=Ah;function Mh(e,t){return e?.[t]}var jh=Mh;function $h(e,t){var r=jh(e,t);return Sh(r)?r:void 0}var et=$h,Eh=et(J,"WeakMap"),Fo=Eh;function _h(e,t){return e===t||e!==e&&t!==t}var Lh=_h,Th=9007199254740991;function Oh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Th}var Nh=Oh,XK=Object.prototype,Dh="[object Arguments]";function Ph(e){return Yo(e)&&Sr(e)==Dh}var Os=Ph,Qs=Object.prototype,zh=Qs.hasOwnProperty,Uh=Qs.propertyIsEnumerable,eJ=Os(function(){return arguments}())?Os:function(e){return Yo(e)&&zh.call(e,"callee")&&!Uh.call(e,"callee")},Ws=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ns=Ws&&typeof module=="object"&&module&&!module.nodeType&&module,Rh=Ns&&Ns.exports===Ws,Ds=Rh?J.Buffer:void 0,tJ=Ds?Ds.isBuffer:void 0,Fh="[object Arguments]",Vh="[object Array]",Bh="[object Boolean]",qh="[object Date]",Gh="[object Error]",Yh="[object Function]",Hh="[object Map]",Zh="[object Number]",Qh="[object Object]",Wh="[object RegExp]",Kh="[object Set]",Jh="[object String]",Xh="[object WeakMap]",e0="[object ArrayBuffer]",t0="[object DataView]",r0="[object Float32Array]",i0="[object Float64Array]",n0="[object Int8Array]",o0="[object Int16Array]",a0="[object Int32Array]",l0="[object Uint8Array]",s0="[object Uint8ClampedArray]",u0="[object Uint16Array]",c0="[object Uint32Array]",T={};T[r0]=T[i0]=T[n0]=T[o0]=T[a0]=T[l0]=T[s0]=T[u0]=T[c0]=!0;T[Fh]=T[Vh]=T[e0]=T[Bh]=T[t0]=T[qh]=T[Gh]=T[Yh]=T[Hh]=T[Zh]=T[Qh]=T[Wh]=T[Kh]=T[Jh]=T[Xh]=!1;function d0(e){return Yo(e)&&Nh(e.length)&&!!T[Sr(e)]}var p0=d0;function g0(e){return function(t){return e(t)}}var f0=g0,Ks=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=Ks&&typeof module=="object"&&module&&!module.nodeType&&module,y0=Ir&&Ir.exports===Ks,Uo=y0&&Ys.process,m0=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Uo&&Uo.binding&&Uo.binding("util")}catch{}}(),Ps=m0,zs=Ps&&Ps.isTypedArray,rJ=zs?f0(zs):p0,b0=Object.prototype,iJ=b0.hasOwnProperty;function h0(e,t){return function(r){return e(t(r))}}var v0=h0,nJ=v0(Object.keys,Object),w0=Object.prototype,oJ=w0.hasOwnProperty,k0=et(Object,"create"),Cr=k0;function x0(){this.__data__=Cr?Cr(null):{},this.size=0}var I0=x0;function C0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var A0=C0,S0="__lodash_hash_undefined__",M0=Object.prototype,j0=M0.hasOwnProperty;function $0(e){var t=this.__data__;if(Cr){var r=t[e];return r===S0?void 0:r}return j0.call(t,e)?t[e]:void 0}var E0=$0,_0=Object.prototype,L0=_0.hasOwnProperty;function T0(e){var t=this.__data__;return Cr?t[e]!==void 0:L0.call(t,e)}var O0=T0,N0="__lodash_hash_undefined__";function D0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?N0:t,this}var P0=D0;function tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tt.prototype.clear=I0;tt.prototype.delete=A0;tt.prototype.get=E0;tt.prototype.has=O0;tt.prototype.set=P0;var Us=tt;function z0(){this.__data__=[],this.size=0}var U0=z0;function R0(e,t){for(var r=e.length;r--;)if(Lh(e[r][0],t))return r;return-1}var vn=R0,F0=Array.prototype,V0=F0.splice;function B0(e){var t=this.__data__,r=vn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():V0.call(t,r,1),--this.size,!0}var q0=B0;function G0(e){var t=this.__data__,r=vn(t,e);return r<0?void 0:t[r][1]}var Y0=G0;function H0(e){return vn(this.__data__,e)>-1}var Z0=H0;function Q0(e,t){var r=this.__data__,i=vn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var W0=Q0;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=U0;rt.prototype.delete=q0;rt.prototype.get=Y0;rt.prototype.has=Z0;rt.prototype.set=W0;var wn=rt,K0=et(J,"Map"),Ar=K0;function J0(){this.size=0,this.__data__={hash:new Us,map:new(Ar||wn),string:new Us}}var X0=J0;function e2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var t2=e2;function r2(e,t){var r=e.__data__;return t2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var kn=r2;function i2(e){var t=kn(this,e).delete(e);return this.size-=t?1:0,t}var n2=i2;function o2(e){return kn(this,e).get(e)}var a2=o2;function l2(e){return kn(this,e).has(e)}var s2=l2;function u2(e,t){var r=kn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var c2=u2;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=X0;it.prototype.delete=n2;it.prototype.get=a2;it.prototype.has=s2;it.prototype.set=c2;var Js=it;function d2(){this.__data__=new wn,this.size=0}var p2=d2;function g2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var f2=g2;function y2(e){return this.__data__.get(e)}var m2=y2;function b2(e){return this.__data__.has(e)}var h2=b2,v2=200;function w2(e,t){var r=this.__data__;if(r instanceof wn){var i=r.__data__;if(!Ar||i.length<v2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Js(i)}return r.set(e,t),this.size=r.size,this}var k2=w2;function Mr(e){var t=this.__data__=new wn(e);this.size=t.size}Mr.prototype.clear=p2;Mr.prototype.delete=f2;Mr.prototype.get=m2;Mr.prototype.has=h2;Mr.prototype.set=k2;var x2=Object.prototype,aJ=x2.propertyIsEnumerable,I2=et(J,"DataView"),Vo=I2,C2=et(J,"Promise"),Bo=C2,A2=et(J,"Set"),qo=A2,Rs="[object Map]",S2="[object Object]",Fs="[object Promise]",Vs="[object Set]",Bs="[object WeakMap]",qs="[object DataView]",M2=Ee(Vo),j2=Ee(Ar),$2=Ee(Bo),E2=Ee(qo),_2=Ee(Fo),Je=Sr;(Vo&&Je(new Vo(new ArrayBuffer(1)))!=qs||Ar&&Je(new Ar)!=Rs||Bo&&Je(Bo.resolve())!=Fs||qo&&Je(new qo)!=Vs||Fo&&Je(new Fo)!=Bs)&&(Je=function(e){var t=Sr(e),r=t==S2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case M2:return qs;case j2:return Rs;case $2:return Fs;case E2:return Vs;case _2:return Bs}return t});var lJ=J.Uint8Array,L2="__lodash_hash_undefined__";function T2(e){return this.__data__.set(e,L2),this}var O2=T2;function N2(e){return this.__data__.has(e)}var D2=N2;function Go(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Js;++t<r;)this.add(e[t])}Go.prototype.add=Go.prototype.push=O2;Go.prototype.has=D2;var Gs=Xe?Xe.prototype:void 0,sJ=Gs?Gs.valueOf:void 0,P2=Object.prototype,uJ=P2.hasOwnProperty,z2=Object.prototype,cJ=z2.hasOwnProperty,dJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),pJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),gJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Xs(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var xn=class eu{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new eu),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var U2="ly.img.ai";function tu(e){return`${U2}.${e}`}function ru(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
1
+ var Kf=typeof global=="object"&&global&&global.Object===Object&&global,$s=Kf,Jf=typeof self=="object"&&self&&self.Object===Object&&self,Xf=$s||Jf||Function("return this")(),K=Xf,ey=K.Symbol,He=ey,Es=Object.prototype,ty=Es.hasOwnProperty,ry=Es.toString,mr=He?He.toStringTag:void 0;function iy(e){var t=ty.call(e,mr),r=e[mr];try{e[mr]=void 0;var i=!0}catch{}var n=ry.call(e);return i&&(t?e[mr]=r:delete e[mr]),n}var ny=iy,oy=Object.prototype,ay=oy.toString;function ly(e){return ay.call(e)}var sy=ly,uy="[object Null]",cy="[object Undefined]",ys=He?He.toStringTag:void 0;function dy(e){return e==null?e===void 0?cy:uy:ys&&ys in Object(e)?ny(e):sy(e)}var wr=dy;function py(e){return e!=null&&typeof e=="object"}var Uo=py,RK=Array.isArray;function gy(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var _s=gy,fy="[object AsyncFunction]",yy="[object Function]",my="[object GeneratorFunction]",by="[object Proxy]";function hy(e){if(!_s(e))return!1;var t=wr(e);return t==yy||t==my||t==fy||t==by}var vy=hy,wy=K["__core-js_shared__"],Lo=wy,ms=function(){var e=/[^.]+$/.exec(Lo&&Lo.keys&&Lo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function ky(e){return!!ms&&ms in e}var xy=ky,Iy=Function.prototype,Cy=Iy.toString;function Ay(e){if(e!=null){try{return Cy.call(e)}catch{}try{return e+""}catch{}}return""}var $e=Ay,Sy=/[\\^$.*+?()[\]{}|]/g,My=/^\[object .+?Constructor\]$/,jy=Function.prototype,$y=Object.prototype,Ey=jy.toString,_y=$y.hasOwnProperty,Ly=RegExp("^"+Ey.call(_y).replace(Sy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ty(e){if(!_s(e)||xy(e))return!1;var t=vy(e)?Ly:My;return t.test($e(e))}var Oy=Ty;function Ny(e,t){return e?.[t]}var Dy=Ny;function Py(e,t){var r=Dy(e,t);return Oy(r)?r:void 0}var Ze=Py,zy=Ze(K,"WeakMap"),Oo=zy;function Uy(e,t){return e===t||e!==e&&t!==t}var Ry=Uy,Fy=9007199254740991;function Vy(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Fy}var By=Vy;var FK=Object.prototype;var qy="[object Arguments]";function Gy(e){return Uo(e)&&wr(e)==qy}var bs=Gy,Ls=Object.prototype,Yy=Ls.hasOwnProperty,Hy=Ls.propertyIsEnumerable,VK=bs(function(){return arguments}())?bs:function(e){return Uo(e)&&Yy.call(e,"callee")&&!Hy.call(e,"callee")};var Ts=typeof exports=="object"&&exports&&!exports.nodeType&&exports,hs=Ts&&typeof module=="object"&&module&&!module.nodeType&&module,Zy=hs&&hs.exports===Ts,vs=Zy?K.Buffer:void 0,BK=vs?vs.isBuffer:void 0;var Qy="[object Arguments]",Wy="[object Array]",Ky="[object Boolean]",Jy="[object Date]",Xy="[object Error]",em="[object Function]",tm="[object Map]",rm="[object Number]",im="[object Object]",nm="[object RegExp]",om="[object Set]",am="[object String]",lm="[object WeakMap]",sm="[object ArrayBuffer]",um="[object DataView]",cm="[object Float32Array]",dm="[object Float64Array]",pm="[object Int8Array]",gm="[object Int16Array]",fm="[object Int32Array]",ym="[object Uint8Array]",mm="[object Uint8ClampedArray]",bm="[object Uint16Array]",hm="[object Uint32Array]",L={};L[cm]=L[dm]=L[pm]=L[gm]=L[fm]=L[ym]=L[mm]=L[bm]=L[hm]=!0;L[Qy]=L[Wy]=L[sm]=L[Ky]=L[um]=L[Jy]=L[Xy]=L[em]=L[tm]=L[rm]=L[im]=L[nm]=L[om]=L[am]=L[lm]=!1;function vm(e){return Uo(e)&&By(e.length)&&!!L[wr(e)]}var wm=vm;function km(e){return function(t){return e(t)}}var xm=km,Os=typeof exports=="object"&&exports&&!exports.nodeType&&exports,br=Os&&typeof module=="object"&&module&&!module.nodeType&&module,Im=br&&br.exports===Os,To=Im&&$s.process,Cm=function(){try{var e=br&&br.require&&br.require("util").types;return e||To&&To.binding&&To.binding("util")}catch{}}(),ws=Cm,ks=ws&&ws.isTypedArray,qK=ks?xm(ks):wm;var Am=Object.prototype,GK=Am.hasOwnProperty;function Sm(e,t){return function(r){return e(t(r))}}var Mm=Sm,YK=Mm(Object.keys,Object);var jm=Object.prototype,HK=jm.hasOwnProperty;var $m=Ze(Object,"create"),hr=$m;function Em(){this.__data__=hr?hr(null):{},this.size=0}var _m=Em;function Lm(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Tm=Lm,Om="__lodash_hash_undefined__",Nm=Object.prototype,Dm=Nm.hasOwnProperty;function Pm(e){var t=this.__data__;if(hr){var r=t[e];return r===Om?void 0:r}return Dm.call(t,e)?t[e]:void 0}var zm=Pm,Um=Object.prototype,Rm=Um.hasOwnProperty;function Fm(e){var t=this.__data__;return hr?t[e]!==void 0:Rm.call(t,e)}var Vm=Fm,Bm="__lodash_hash_undefined__";function qm(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=hr&&t===void 0?Bm:t,this}var Gm=qm;function Qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Qe.prototype.clear=_m;Qe.prototype.delete=Tm;Qe.prototype.get=zm;Qe.prototype.has=Vm;Qe.prototype.set=Gm;var xs=Qe;function Ym(){this.__data__=[],this.size=0}var Hm=Ym;function Zm(e,t){for(var r=e.length;r--;)if(Ry(e[r][0],t))return r;return-1}var hn=Zm,Qm=Array.prototype,Wm=Qm.splice;function Km(e){var t=this.__data__,r=hn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Wm.call(t,r,1),--this.size,!0}var Jm=Km;function Xm(e){var t=this.__data__,r=hn(t,e);return r<0?void 0:t[r][1]}var eb=Xm;function tb(e){return hn(this.__data__,e)>-1}var rb=tb;function ib(e,t){var r=this.__data__,i=hn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var nb=ib;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}We.prototype.clear=Hm;We.prototype.delete=Jm;We.prototype.get=eb;We.prototype.has=rb;We.prototype.set=nb;var vn=We,ob=Ze(K,"Map"),vr=ob;function ab(){this.size=0,this.__data__={hash:new xs,map:new(vr||vn),string:new xs}}var lb=ab;function sb(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var ub=sb;function cb(e,t){var r=e.__data__;return ub(t)?r[typeof t=="string"?"string":"hash"]:r.map}var wn=cb;function db(e){var t=wn(this,e).delete(e);return this.size-=t?1:0,t}var pb=db;function gb(e){return wn(this,e).get(e)}var fb=gb;function yb(e){return wn(this,e).has(e)}var mb=yb;function bb(e,t){var r=wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var hb=bb;function Ke(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ke.prototype.clear=lb;Ke.prototype.delete=pb;Ke.prototype.get=fb;Ke.prototype.has=mb;Ke.prototype.set=hb;var Ns=Ke;function vb(){this.__data__=new vn,this.size=0}var wb=vb;function kb(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var xb=kb;function Ib(e){return this.__data__.get(e)}var Cb=Ib;function Ab(e){return this.__data__.has(e)}var Sb=Ab,Mb=200;function jb(e,t){var r=this.__data__;if(r instanceof vn){var i=r.__data__;if(!vr||i.length<Mb-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ns(i)}return r.set(e,t),this.size=r.size,this}var $b=jb;function kr(e){var t=this.__data__=new vn(e);this.size=t.size}kr.prototype.clear=wb;kr.prototype.delete=xb;kr.prototype.get=Cb;kr.prototype.has=Sb;kr.prototype.set=$b;var Eb=Object.prototype,ZK=Eb.propertyIsEnumerable;var _b=Ze(K,"DataView"),No=_b,Lb=Ze(K,"Promise"),Do=Lb,Tb=Ze(K,"Set"),Po=Tb,Is="[object Map]",Ob="[object Object]",Cs="[object Promise]",As="[object Set]",Ss="[object WeakMap]",Ms="[object DataView]",Nb=$e(No),Db=$e(vr),Pb=$e(Do),zb=$e(Po),Ub=$e(Oo),Ye=wr;(No&&Ye(new No(new ArrayBuffer(1)))!=Ms||vr&&Ye(new vr)!=Is||Do&&Ye(Do.resolve())!=Cs||Po&&Ye(new Po)!=As||Oo&&Ye(new Oo)!=Ss)&&(Ye=function(e){var t=wr(e),r=t==Ob?e.constructor:void 0,i=r?$e(r):"";if(i)switch(i){case Nb:return Ms;case Db:return Is;case Pb:return Cs;case zb:return As;case Ub:return Ss}return t});var QK=K.Uint8Array;var Rb="__lodash_hash_undefined__";function Fb(e){return this.__data__.set(e,Rb),this}var Vb=Fb;function Bb(e){return this.__data__.has(e)}var qb=Bb;function zo(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Ns;++t<r;)this.add(e[t])}zo.prototype.add=zo.prototype.push=Vb;zo.prototype.has=qb;var js=He?He.prototype:void 0,WK=js?js.valueOf:void 0;var Gb=Object.prototype,KK=Gb.hasOwnProperty;var Yb=Object.prototype,JK=Yb.hasOwnProperty;var XK=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),eJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),tJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Hb(e){return e!==void 0}var Ds=Hb;var Zb=typeof global=="object"&&global&&global.Object===Object&&global,Ks=Zb,Qb=typeof self=="object"&&self&&self.Object===Object&&self,Wb=Ks||Qb||Function("return this")(),J=Wb,Kb=J.Symbol,Xe=Kb,Js=Object.prototype,Jb=Js.hasOwnProperty,Xb=Js.toString,xr=Xe?Xe.toStringTag:void 0;function eh(e){var t=Jb.call(e,xr),r=e[xr];try{e[xr]=void 0;var i=!0}catch{}var n=Xb.call(e);return i&&(t?e[xr]=r:delete e[xr]),n}var th=eh,rh=Object.prototype,ih=rh.toString;function nh(e){return ih.call(e)}var oh=nh,ah="[object Null]",lh="[object Undefined]",Ps=Xe?Xe.toStringTag:void 0;function sh(e){return e==null?e===void 0?lh:ah:Ps&&Ps in Object(e)?th(e):oh(e)}var Sr=sh;function uh(e){return e!=null&&typeof e=="object"}var Zo=uh,iJ=Array.isArray;function ch(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xs=ch,dh="[object AsyncFunction]",ph="[object Function]",gh="[object GeneratorFunction]",fh="[object Proxy]";function yh(e){if(!Xs(e))return!1;var t=Sr(e);return t==ph||t==gh||t==dh||t==fh}var mh=yh,bh=J["__core-js_shared__"],Ro=bh,zs=function(){var e=/[^.]+$/.exec(Ro&&Ro.keys&&Ro.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function hh(e){return!!zs&&zs in e}var vh=hh,wh=Function.prototype,kh=wh.toString;function xh(e){if(e!=null){try{return kh.call(e)}catch{}try{return e+""}catch{}}return""}var Ee=xh,Ih=/[\\^$.*+?()[\]{}|]/g,Ch=/^\[object .+?Constructor\]$/,Ah=Function.prototype,Sh=Object.prototype,Mh=Ah.toString,jh=Sh.hasOwnProperty,$h=RegExp("^"+Mh.call(jh).replace(Ih,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Eh(e){if(!Xs(e)||vh(e))return!1;var t=mh(e)?$h:Ch;return t.test(Ee(e))}var _h=Eh;function Lh(e,t){return e?.[t]}var Th=Lh;function Oh(e,t){var r=Th(e,t);return _h(r)?r:void 0}var et=Oh,Nh=et(J,"WeakMap"),Bo=Nh;function Dh(e,t){return e===t||e!==e&&t!==t}var Ph=Dh,zh=9007199254740991;function Uh(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=zh}var Rh=Uh,nJ=Object.prototype,Fh="[object Arguments]";function Vh(e){return Zo(e)&&Sr(e)==Fh}var Us=Vh,eu=Object.prototype,Bh=eu.hasOwnProperty,qh=eu.propertyIsEnumerable,oJ=Us(function(){return arguments}())?Us:function(e){return Zo(e)&&Bh.call(e,"callee")&&!qh.call(e,"callee")},tu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rs=tu&&typeof module=="object"&&module&&!module.nodeType&&module,Gh=Rs&&Rs.exports===tu,Fs=Gh?J.Buffer:void 0,aJ=Fs?Fs.isBuffer:void 0,Yh="[object Arguments]",Hh="[object Array]",Zh="[object Boolean]",Qh="[object Date]",Wh="[object Error]",Kh="[object Function]",Jh="[object Map]",Xh="[object Number]",e0="[object Object]",t0="[object RegExp]",r0="[object Set]",i0="[object String]",n0="[object WeakMap]",o0="[object ArrayBuffer]",a0="[object DataView]",l0="[object Float32Array]",s0="[object Float64Array]",u0="[object Int8Array]",c0="[object Int16Array]",d0="[object Int32Array]",p0="[object Uint8Array]",g0="[object Uint8ClampedArray]",f0="[object Uint16Array]",y0="[object Uint32Array]",T={};T[l0]=T[s0]=T[u0]=T[c0]=T[d0]=T[p0]=T[g0]=T[f0]=T[y0]=!0;T[Yh]=T[Hh]=T[o0]=T[Zh]=T[a0]=T[Qh]=T[Wh]=T[Kh]=T[Jh]=T[Xh]=T[e0]=T[t0]=T[r0]=T[i0]=T[n0]=!1;function m0(e){return Zo(e)&&Rh(e.length)&&!!T[Sr(e)]}var b0=m0;function h0(e){return function(t){return e(t)}}var v0=h0,ru=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ir=ru&&typeof module=="object"&&module&&!module.nodeType&&module,w0=Ir&&Ir.exports===ru,Fo=w0&&Ks.process,k0=function(){try{var e=Ir&&Ir.require&&Ir.require("util").types;return e||Fo&&Fo.binding&&Fo.binding("util")}catch{}}(),Vs=k0,Bs=Vs&&Vs.isTypedArray,lJ=Bs?v0(Bs):b0,x0=Object.prototype,sJ=x0.hasOwnProperty;function I0(e,t){return function(r){return e(t(r))}}var C0=I0,uJ=C0(Object.keys,Object),A0=Object.prototype,cJ=A0.hasOwnProperty,S0=et(Object,"create"),Cr=S0;function M0(){this.__data__=Cr?Cr(null):{},this.size=0}var j0=M0;function $0(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var E0=$0,_0="__lodash_hash_undefined__",L0=Object.prototype,T0=L0.hasOwnProperty;function O0(e){var t=this.__data__;if(Cr){var r=t[e];return r===_0?void 0:r}return T0.call(t,e)?t[e]:void 0}var N0=O0,D0=Object.prototype,P0=D0.hasOwnProperty;function z0(e){var t=this.__data__;return Cr?t[e]!==void 0:P0.call(t,e)}var U0=z0,R0="__lodash_hash_undefined__";function F0(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Cr&&t===void 0?R0:t,this}var V0=F0;function tt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tt.prototype.clear=j0;tt.prototype.delete=E0;tt.prototype.get=N0;tt.prototype.has=U0;tt.prototype.set=V0;var qs=tt;function B0(){this.__data__=[],this.size=0}var q0=B0;function G0(e,t){for(var r=e.length;r--;)if(Ph(e[r][0],t))return r;return-1}var kn=G0,Y0=Array.prototype,H0=Y0.splice;function Z0(e){var t=this.__data__,r=kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():H0.call(t,r,1),--this.size,!0}var Q0=Z0;function W0(e){var t=this.__data__,r=kn(t,e);return r<0?void 0:t[r][1]}var K0=W0;function J0(e){return kn(this.__data__,e)>-1}var X0=J0;function e2(e,t){var r=this.__data__,i=kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var t2=e2;function rt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rt.prototype.clear=q0;rt.prototype.delete=Q0;rt.prototype.get=K0;rt.prototype.has=X0;rt.prototype.set=t2;var xn=rt,r2=et(J,"Map"),Ar=r2;function i2(){this.size=0,this.__data__={hash:new qs,map:new(Ar||xn),string:new qs}}var n2=i2;function o2(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var a2=o2;function l2(e,t){var r=e.__data__;return a2(t)?r[typeof t=="string"?"string":"hash"]:r.map}var In=l2;function s2(e){var t=In(this,e).delete(e);return this.size-=t?1:0,t}var u2=s2;function c2(e){return In(this,e).get(e)}var d2=c2;function p2(e){return In(this,e).has(e)}var g2=p2;function f2(e,t){var r=In(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var y2=f2;function it(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}it.prototype.clear=n2;it.prototype.delete=u2;it.prototype.get=d2;it.prototype.has=g2;it.prototype.set=y2;var iu=it;function m2(){this.__data__=new xn,this.size=0}var b2=m2;function h2(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var v2=h2;function w2(e){return this.__data__.get(e)}var k2=w2;function x2(e){return this.__data__.has(e)}var I2=x2,C2=200;function A2(e,t){var r=this.__data__;if(r instanceof xn){var i=r.__data__;if(!Ar||i.length<C2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new iu(i)}return r.set(e,t),this.size=r.size,this}var S2=A2;function Mr(e){var t=this.__data__=new xn(e);this.size=t.size}Mr.prototype.clear=b2;Mr.prototype.delete=v2;Mr.prototype.get=k2;Mr.prototype.has=I2;Mr.prototype.set=S2;var M2=Object.prototype,dJ=M2.propertyIsEnumerable,j2=et(J,"DataView"),qo=j2,$2=et(J,"Promise"),Go=$2,E2=et(J,"Set"),Yo=E2,Gs="[object Map]",_2="[object Object]",Ys="[object Promise]",Hs="[object Set]",Zs="[object WeakMap]",Qs="[object DataView]",L2=Ee(qo),T2=Ee(Ar),O2=Ee(Go),N2=Ee(Yo),D2=Ee(Bo),Je=Sr;(qo&&Je(new qo(new ArrayBuffer(1)))!=Qs||Ar&&Je(new Ar)!=Gs||Go&&Je(Go.resolve())!=Ys||Yo&&Je(new Yo)!=Hs||Bo&&Je(new Bo)!=Zs)&&(Je=function(e){var t=Sr(e),r=t==_2?e.constructor:void 0,i=r?Ee(r):"";if(i)switch(i){case L2:return Qs;case T2:return Gs;case O2:return Ys;case N2:return Hs;case D2:return Zs}return t});var pJ=J.Uint8Array,P2="__lodash_hash_undefined__";function z2(e){return this.__data__.set(e,P2),this}var U2=z2;function R2(e){return this.__data__.has(e)}var F2=R2;function Ho(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new iu;++t<r;)this.add(e[t])}Ho.prototype.add=Ho.prototype.push=U2;Ho.prototype.has=F2;var Ws=Xe?Xe.prototype:void 0,gJ=Ws?Ws.valueOf:void 0,V2=Object.prototype,fJ=V2.hasOwnProperty,B2=Object.prototype,yJ=B2.hasOwnProperty,mJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),bJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),hJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");function nu(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}var Cn=class ou{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ou),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}};var q2="ly.img.ai";function au(e){return`${q2}.${e}`}function lu(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
2
2
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
3
3
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
4
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Ro="@imgly/plugin-ai-generation",fJ=`
4
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}var Vo="@imgly/plugin-ai-generation",vJ=`
5
5
  <svg>
6
6
  <symbol
7
7
  fill="none"
@@ -19,7 +19,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
19
19
  fill="none"
20
20
  xmlns="http://www.w3.org/2000/svg"
21
21
  viewBox="0 0 24 24"
22
- id="${Ro}/image"
22
+ id="${Vo}/image"
23
23
  >
24
24
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
25
25
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -31,7 +31,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
31
31
  fill="none"
32
32
  xmlns="http://www.w3.org/2000/svg"
33
33
  viewBox="0 0 24 24"
34
- id="${Ro}/video"
34
+ id="${Vo}/video"
35
35
  >
36
36
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
37
37
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -42,7 +42,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
42
42
  fill="none"
43
43
  xmlns="http://www.w3.org/2000/svg"
44
44
  viewBox="0 0 24 24"
45
- id="${Ro}/audio"
45
+ id="${Vo}/audio"
46
46
  >
47
47
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
48
48
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -62,10 +62,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
62
62
 
63
63
  </symbol>
64
64
  </svg>
65
- `;var iu={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var F2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var V2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},B2=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Qu=B2,q2=typeof global=="object"&&global&&global.Object===Object&&global,Wu=q2,G2=typeof self=="object"&&self&&self.Object===Object&&self,Y2=Wu||G2||Function("return this")(),X=Y2,H2=X.Symbol,lt=H2,Ku=Object.prototype,Z2=Ku.hasOwnProperty,Q2=Ku.toString,jr=lt?lt.toStringTag:void 0;function W2(e){var t=Z2.call(e,jr),r=e[jr];try{e[jr]=void 0;var i=!0}catch{}var n=Q2.call(e);return i&&(t?e[jr]=r:delete e[jr]),n}var K2=W2,J2=Object.prototype,X2=J2.toString;function e4(e){return X2.call(e)}var t4=e4,r4="[object Null]",i4="[object Undefined]",nu=lt?lt.toStringTag:void 0;function n4(e){return e==null?e===void 0?i4:r4:nu&&nu in Object(e)?K2(e):t4(e)}var Vr=n4;function o4(e){return e!=null&&typeof e=="object"}var fa=o4,bJ=Array.isArray;function a4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ju=a4,l4="[object AsyncFunction]",s4="[object Function]",u4="[object GeneratorFunction]",c4="[object Proxy]";function d4(e){if(!Ju(e))return!1;var t=Vr(e);return t==s4||t==u4||t==l4||t==c4}var p4=d4,g4=X["__core-js_shared__"],Ho=g4,ou=function(){var e=/[^.]+$/.exec(Ho&&Ho.keys&&Ho.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function f4(e){return!!ou&&ou in e}var y4=f4,m4=Function.prototype,b4=m4.toString;function h4(e){if(e!=null){try{return b4.call(e)}catch{}try{return e+""}catch{}}return""}var Le=h4,v4=/[\\^$.*+?()[\]{}|]/g,w4=/^\[object .+?Constructor\]$/,k4=Function.prototype,x4=Object.prototype,I4=k4.toString,C4=x4.hasOwnProperty,A4=RegExp("^"+I4.call(C4).replace(v4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function S4(e){if(!Ju(e)||y4(e))return!1;var t=p4(e)?A4:w4;return t.test(Le(e))}var M4=S4;function j4(e,t){return e?.[t]}var $4=j4;function E4(e,t){var r=$4(e,t);return M4(r)?r:void 0}var ut=E4,_4=ut(X,"WeakMap"),ra=_4;function L4(e,t){return e===t||e!==e&&t!==t}var T4=L4,O4=9007199254740991;function N4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=O4}var D4=N4,hJ=Object.prototype,P4="[object Arguments]";function z4(e){return fa(e)&&Vr(e)==P4}var au=z4,Xu=Object.prototype,U4=Xu.hasOwnProperty,R4=Xu.propertyIsEnumerable,vJ=au(function(){return arguments}())?au:function(e){return fa(e)&&U4.call(e,"callee")&&!R4.call(e,"callee")},ec=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lu=ec&&typeof module=="object"&&module&&!module.nodeType&&module,F4=lu&&lu.exports===ec,su=F4?X.Buffer:void 0,wJ=su?su.isBuffer:void 0,V4="[object Arguments]",B4="[object Array]",q4="[object Boolean]",G4="[object Date]",Y4="[object Error]",H4="[object Function]",Z4="[object Map]",Q4="[object Number]",W4="[object Object]",K4="[object RegExp]",J4="[object Set]",X4="[object String]",e5="[object WeakMap]",t5="[object ArrayBuffer]",r5="[object DataView]",i5="[object Float32Array]",n5="[object Float64Array]",o5="[object Int8Array]",a5="[object Int16Array]",l5="[object Int32Array]",s5="[object Uint8Array]",u5="[object Uint8ClampedArray]",c5="[object Uint16Array]",d5="[object Uint32Array]",O={};O[i5]=O[n5]=O[o5]=O[a5]=O[l5]=O[s5]=O[u5]=O[c5]=O[d5]=!0;O[V4]=O[B4]=O[t5]=O[q4]=O[r5]=O[G4]=O[Y4]=O[H4]=O[Z4]=O[Q4]=O[W4]=O[K4]=O[J4]=O[X4]=O[e5]=!1;function p5(e){return fa(e)&&D4(e.length)&&!!O[Vr(e)]}var g5=p5;function f5(e){return function(t){return e(t)}}var y5=f5,tc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=tc&&typeof module=="object"&&module&&!module.nodeType&&module,m5=Dr&&Dr.exports===tc,Zo=m5&&Wu.process,b5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Zo&&Zo.binding&&Zo.binding("util")}catch{}}(),uu=b5,cu=uu&&uu.isTypedArray,kJ=cu?y5(cu):g5,h5=Object.prototype,xJ=h5.hasOwnProperty;function v5(e,t){return function(r){return e(t(r))}}var w5=v5,IJ=w5(Object.keys,Object),k5=Object.prototype,CJ=k5.hasOwnProperty,x5=ut(Object,"create"),zr=x5;function I5(){this.__data__=zr?zr(null):{},this.size=0}var C5=I5;function A5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var S5=A5,M5="__lodash_hash_undefined__",j5=Object.prototype,$5=j5.hasOwnProperty;function E5(e){var t=this.__data__;if(zr){var r=t[e];return r===M5?void 0:r}return $5.call(t,e)?t[e]:void 0}var _5=E5,L5=Object.prototype,T5=L5.hasOwnProperty;function O5(e){var t=this.__data__;return zr?t[e]!==void 0:T5.call(t,e)}var N5=O5,D5="__lodash_hash_undefined__";function P5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?D5:t,this}var z5=P5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=C5;ct.prototype.delete=S5;ct.prototype.get=_5;ct.prototype.has=N5;ct.prototype.set=z5;var du=ct;function U5(){this.__data__=[],this.size=0}var R5=U5;function F5(e,t){for(var r=e.length;r--;)if(T4(e[r][0],t))return r;return-1}var _n=F5,V5=Array.prototype,B5=V5.splice;function q5(e){var t=this.__data__,r=_n(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():B5.call(t,r,1),--this.size,!0}var G5=q5;function Y5(e){var t=this.__data__,r=_n(t,e);return r<0?void 0:t[r][1]}var H5=Y5;function Z5(e){return _n(this.__data__,e)>-1}var Q5=Z5;function W5(e,t){var r=this.__data__,i=_n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var K5=W5;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=R5;dt.prototype.delete=G5;dt.prototype.get=H5;dt.prototype.has=Q5;dt.prototype.set=K5;var Ln=dt,J5=ut(X,"Map"),Ur=J5;function X5(){this.size=0,this.__data__={hash:new du,map:new(Ur||Ln),string:new du}}var e9=X5;function t9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var r9=t9;function i9(e,t){var r=e.__data__;return r9(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Tn=i9;function n9(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t}var o9=n9;function a9(e){return Tn(this,e).get(e)}var l9=a9;function s9(e){return Tn(this,e).has(e)}var u9=s9;function c9(e,t){var r=Tn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var d9=c9;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=e9;pt.prototype.delete=o9;pt.prototype.get=l9;pt.prototype.has=u9;pt.prototype.set=d9;var rc=pt;function p9(){this.__data__=new Ln,this.size=0}var g9=p9;function f9(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var y9=f9;function m9(e){return this.__data__.get(e)}var b9=m9;function h9(e){return this.__data__.has(e)}var v9=h9,w9=200;function k9(e,t){var r=this.__data__;if(r instanceof Ln){var i=r.__data__;if(!Ur||i.length<w9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new rc(i)}return r.set(e,t),this.size=r.size,this}var x9=k9;function Br(e){var t=this.__data__=new Ln(e);this.size=t.size}Br.prototype.clear=g9;Br.prototype.delete=y9;Br.prototype.get=b9;Br.prototype.has=v9;Br.prototype.set=x9;var I9=Object.prototype,AJ=I9.propertyIsEnumerable,C9=ut(X,"DataView"),ia=C9,A9=ut(X,"Promise"),na=A9,S9=ut(X,"Set"),oa=S9,pu="[object Map]",M9="[object Object]",gu="[object Promise]",fu="[object Set]",yu="[object WeakMap]",mu="[object DataView]",j9=Le(ia),$9=Le(Ur),E9=Le(na),_9=Le(oa),L9=Le(ra),nt=Vr;(ia&&nt(new ia(new ArrayBuffer(1)))!=mu||Ur&&nt(new Ur)!=pu||na&&nt(na.resolve())!=gu||oa&&nt(new oa)!=fu||ra&&nt(new ra)!=yu)&&(nt=function(e){var t=Vr(e),r=t==M9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case j9:return mu;case $9:return pu;case E9:return gu;case _9:return fu;case L9:return yu}return t});var SJ=X.Uint8Array,T9="__lodash_hash_undefined__";function O9(e){return this.__data__.set(e,T9),this}var N9=O9;function D9(e){return this.__data__.has(e)}var P9=D9;function aa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new rc;++t<r;)this.add(e[t])}aa.prototype.add=aa.prototype.push=N9;aa.prototype.has=P9;var bu=lt?lt.prototype:void 0,MJ=bu?bu.valueOf:void 0,z9=Object.prototype,jJ=z9.hasOwnProperty,U9=Object.prototype,$J=U9.hasOwnProperty,EJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),_J=new RegExp(/[A-Fa-f0-9]{1}/,"g"),LJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function ic(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function la(e,t){let r=await ic(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function R9(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return ic(i,t)}function F9(e){return e!==void 0}var On=F9;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function qr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Gr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ya=class nc{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new nc),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},oc=class ac{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new ac),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function V9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function B9({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var q9=B9,Qo="ly.img.ai.temp";async function G9(e,t){return e.engine.asset.findAllSources().includes(Qo)||e.engine.asset.addLocalSource(Qo),e.engine.asset.apply(Qo,t)}function Y9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function lc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function H9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function Z9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ma(e){return e instanceof Error&&e.name==="AbortError"}function Q9(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function W9(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
65
+ `;var su={en:{"common.generate":"Generate","panel.ly.img.ai.generation.confirmCancel.content":"Are you sure you want to cancel the generation?","panel.ly.img.ai.generation.confirmCancel.confirm":"Cancel Generation","panel.ly.img.ai.apps":"AI","ly.img.ai.apps.dock.label":"AI","panel.ly.img.ai.demo.video":"Generate Video","panel.ly.img.ai.demo.image":"Generate Image","libraries.ly.img.ai.image-generation.history.label":"AI Generated Images","libraries.ly.img.ai.video-generation.history.label":"AI Generated Videos","libraries.ly.img.ai.audio-generation.history.label":"AI Generated Audio","libraries.ly.img.ai.sticker-generation.history.label":"AI Generated Stickers"}};var Y2=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;at(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{at(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return at(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),at(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function at(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=at(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=at(n,t,a)}return e}var H2=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},Z2=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},ec=Z2,Q2=typeof global=="object"&&global&&global.Object===Object&&global,tc=Q2,W2=typeof self=="object"&&self&&self.Object===Object&&self,K2=tc||W2||Function("return this")(),X=K2,J2=X.Symbol,lt=J2,rc=Object.prototype,X2=rc.hasOwnProperty,e4=rc.toString,jr=lt?lt.toStringTag:void 0;function t4(e){var t=X2.call(e,jr),r=e[jr];try{e[jr]=void 0;var i=!0}catch{}var n=e4.call(e);return i&&(t?e[jr]=r:delete e[jr]),n}var r4=t4,i4=Object.prototype,n4=i4.toString;function o4(e){return n4.call(e)}var a4=o4,l4="[object Null]",s4="[object Undefined]",uu=lt?lt.toStringTag:void 0;function u4(e){return e==null?e===void 0?s4:l4:uu&&uu in Object(e)?r4(e):a4(e)}var Br=u4;function c4(e){return e!=null&&typeof e=="object"}var ma=c4,xJ=Array.isArray;function d4(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var ic=d4,p4="[object AsyncFunction]",g4="[object Function]",f4="[object GeneratorFunction]",y4="[object Proxy]";function m4(e){if(!ic(e))return!1;var t=Br(e);return t==g4||t==f4||t==p4||t==y4}var b4=m4,h4=X["__core-js_shared__"],Qo=h4,cu=function(){var e=/[^.]+$/.exec(Qo&&Qo.keys&&Qo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function v4(e){return!!cu&&cu in e}var w4=v4,k4=Function.prototype,x4=k4.toString;function I4(e){if(e!=null){try{return x4.call(e)}catch{}try{return e+""}catch{}}return""}var Le=I4,C4=/[\\^$.*+?()[\]{}|]/g,A4=/^\[object .+?Constructor\]$/,S4=Function.prototype,M4=Object.prototype,j4=S4.toString,$4=M4.hasOwnProperty,E4=RegExp("^"+j4.call($4).replace(C4,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _4(e){if(!ic(e)||w4(e))return!1;var t=b4(e)?E4:A4;return t.test(Le(e))}var L4=_4;function T4(e,t){return e?.[t]}var O4=T4;function N4(e,t){var r=O4(e,t);return L4(r)?r:void 0}var ut=N4,D4=ut(X,"WeakMap"),na=D4;function P4(e,t){return e===t||e!==e&&t!==t}var z4=P4,U4=9007199254740991;function R4(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=U4}var F4=R4,IJ=Object.prototype,V4="[object Arguments]";function B4(e){return ma(e)&&Br(e)==V4}var du=B4,nc=Object.prototype,q4=nc.hasOwnProperty,G4=nc.propertyIsEnumerable,CJ=du(function(){return arguments}())?du:function(e){return ma(e)&&q4.call(e,"callee")&&!G4.call(e,"callee")},oc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,pu=oc&&typeof module=="object"&&module&&!module.nodeType&&module,Y4=pu&&pu.exports===oc,gu=Y4?X.Buffer:void 0,AJ=gu?gu.isBuffer:void 0,H4="[object Arguments]",Z4="[object Array]",Q4="[object Boolean]",W4="[object Date]",K4="[object Error]",J4="[object Function]",X4="[object Map]",e5="[object Number]",t5="[object Object]",r5="[object RegExp]",i5="[object Set]",n5="[object String]",o5="[object WeakMap]",a5="[object ArrayBuffer]",l5="[object DataView]",s5="[object Float32Array]",u5="[object Float64Array]",c5="[object Int8Array]",d5="[object Int16Array]",p5="[object Int32Array]",g5="[object Uint8Array]",f5="[object Uint8ClampedArray]",y5="[object Uint16Array]",m5="[object Uint32Array]",O={};O[s5]=O[u5]=O[c5]=O[d5]=O[p5]=O[g5]=O[f5]=O[y5]=O[m5]=!0;O[H4]=O[Z4]=O[a5]=O[Q4]=O[l5]=O[W4]=O[K4]=O[J4]=O[X4]=O[e5]=O[t5]=O[r5]=O[i5]=O[n5]=O[o5]=!1;function b5(e){return ma(e)&&F4(e.length)&&!!O[Br(e)]}var h5=b5;function v5(e){return function(t){return e(t)}}var w5=v5,ac=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=ac&&typeof module=="object"&&module&&!module.nodeType&&module,k5=Dr&&Dr.exports===ac,Wo=k5&&tc.process,x5=function(){try{var e=Dr&&Dr.require&&Dr.require("util").types;return e||Wo&&Wo.binding&&Wo.binding("util")}catch{}}(),fu=x5,yu=fu&&fu.isTypedArray,SJ=yu?w5(yu):h5,I5=Object.prototype,MJ=I5.hasOwnProperty;function C5(e,t){return function(r){return e(t(r))}}var A5=C5,jJ=A5(Object.keys,Object),S5=Object.prototype,$J=S5.hasOwnProperty,M5=ut(Object,"create"),zr=M5;function j5(){this.__data__=zr?zr(null):{},this.size=0}var $5=j5;function E5(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var _5=E5,L5="__lodash_hash_undefined__",T5=Object.prototype,O5=T5.hasOwnProperty;function N5(e){var t=this.__data__;if(zr){var r=t[e];return r===L5?void 0:r}return O5.call(t,e)?t[e]:void 0}var D5=N5,P5=Object.prototype,z5=P5.hasOwnProperty;function U5(e){var t=this.__data__;return zr?t[e]!==void 0:z5.call(t,e)}var R5=U5,F5="__lodash_hash_undefined__";function V5(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=zr&&t===void 0?F5:t,this}var B5=V5;function ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ct.prototype.clear=$5;ct.prototype.delete=_5;ct.prototype.get=D5;ct.prototype.has=R5;ct.prototype.set=B5;var mu=ct;function q5(){this.__data__=[],this.size=0}var G5=q5;function Y5(e,t){for(var r=e.length;r--;)if(z4(e[r][0],t))return r;return-1}var Tn=Y5,H5=Array.prototype,Z5=H5.splice;function Q5(e){var t=this.__data__,r=Tn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Z5.call(t,r,1),--this.size,!0}var W5=Q5;function K5(e){var t=this.__data__,r=Tn(t,e);return r<0?void 0:t[r][1]}var J5=K5;function X5(e){return Tn(this.__data__,e)>-1}var e9=X5;function t9(e,t){var r=this.__data__,i=Tn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var r9=t9;function dt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dt.prototype.clear=G5;dt.prototype.delete=W5;dt.prototype.get=J5;dt.prototype.has=e9;dt.prototype.set=r9;var On=dt,i9=ut(X,"Map"),Ur=i9;function n9(){this.size=0,this.__data__={hash:new mu,map:new(Ur||On),string:new mu}}var o9=n9;function a9(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var l9=a9;function s9(e,t){var r=e.__data__;return l9(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Nn=s9;function u9(e){var t=Nn(this,e).delete(e);return this.size-=t?1:0,t}var c9=u9;function d9(e){return Nn(this,e).get(e)}var p9=d9;function g9(e){return Nn(this,e).has(e)}var f9=g9;function y9(e,t){var r=Nn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var m9=y9;function pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}pt.prototype.clear=o9;pt.prototype.delete=c9;pt.prototype.get=p9;pt.prototype.has=f9;pt.prototype.set=m9;var lc=pt;function b9(){this.__data__=new On,this.size=0}var h9=b9;function v9(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var w9=v9;function k9(e){return this.__data__.get(e)}var x9=k9;function I9(e){return this.__data__.has(e)}var C9=I9,A9=200;function S9(e,t){var r=this.__data__;if(r instanceof On){var i=r.__data__;if(!Ur||i.length<A9-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new lc(i)}return r.set(e,t),this.size=r.size,this}var M9=S9;function qr(e){var t=this.__data__=new On(e);this.size=t.size}qr.prototype.clear=h9;qr.prototype.delete=w9;qr.prototype.get=x9;qr.prototype.has=C9;qr.prototype.set=M9;var j9=Object.prototype,EJ=j9.propertyIsEnumerable,$9=ut(X,"DataView"),oa=$9,E9=ut(X,"Promise"),aa=E9,_9=ut(X,"Set"),la=_9,bu="[object Map]",L9="[object Object]",hu="[object Promise]",vu="[object Set]",wu="[object WeakMap]",ku="[object DataView]",T9=Le(oa),O9=Le(Ur),N9=Le(aa),D9=Le(la),P9=Le(na),nt=Br;(oa&&nt(new oa(new ArrayBuffer(1)))!=ku||Ur&&nt(new Ur)!=bu||aa&&nt(aa.resolve())!=hu||la&&nt(new la)!=vu||na&&nt(new na)!=wu)&&(nt=function(e){var t=Br(e),r=t==L9?e.constructor:void 0,i=r?Le(r):"";if(i)switch(i){case T9:return ku;case O9:return bu;case N9:return hu;case D9:return vu;case P9:return wu}return t});var _J=X.Uint8Array,z9="__lodash_hash_undefined__";function U9(e){return this.__data__.set(e,z9),this}var R9=U9;function F9(e){return this.__data__.has(e)}var V9=F9;function sa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new lc;++t<r;)this.add(e[t])}sa.prototype.add=sa.prototype.push=R9;sa.prototype.has=V9;var xu=lt?lt.prototype:void 0,LJ=xu?xu.valueOf:void 0,B9=Object.prototype,TJ=B9.hasOwnProperty,q9=Object.prototype,OJ=q9.hasOwnProperty,NJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),DJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),PJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function sc(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ua(e,t){let r=await sc(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function G9(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return sc(i,t)}function Y9(e){return e!==void 0}var Dn=Y9;function H(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Gr(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Yr(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var ba=class uc{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new uc),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},cc=class dc{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new dc),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function H9(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Z9({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Q9=Z9,Ko="ly.img.ai.temp";async function W9(e,t){return e.engine.asset.findAllSources().includes(Ko)||e.engine.asset.addLocalSource(Ko),e.engine.asset.apply(Ko,t)}function K9(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function pc(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function J9(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function X9(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ha(e){return e instanceof Error&&e.name==="AbortError"}function e3(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function t3(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
66
66
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
67
67
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
68
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function K9(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var J9=K9;function X9(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Yr=X9;function ev(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),tv(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Y9(e)}))}function tv(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var hu=ev,rv="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ba=rv;function iv(e,t,r){switch(t){case"image":return nv(e,r[t]);case"video":return ov(e,r[t]);case"sticker":return av(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function nv(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ba,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function ov(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ba,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function av(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ba,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var lv=iv;async function sv(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return uv(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return cv(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return dv(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return pv(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function uv(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function cv(e,t,r){let i=t.width,n=t.height,a=await H9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function dv(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function pv(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var sc=sv;function gv(e){switch(e.userFlow){case"placeholder":return yv(e);case"generation-only":return fv(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function fv(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=lc(),c=await sc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function yv(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=lc(),c=lv(s,a,o);if(i=await G9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await sc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ma(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var mv=gv;function ha(e){return`${e}.generating`}function bv(e){return`${e}.abort`}function hv(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(bv(d),()=>{}),y=c.global(ha(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await mv({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){hu(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;vv(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(ma(b))return;hu(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function vv(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var uc=hv;async function wv({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ha(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return uc(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var kv=wv;function cc(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Tr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=cc(e,t.$ref),n={...Tr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Tr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Tr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Tr(e,t[n],r));return i}return t}function xv(e){return Tr(e,{...e})}function Iv(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function Cv(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return Av(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function Av(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=Sv(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Sv(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var dc=Cv;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function pc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function gc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?Mv(e,c,r,i,n,a,o,s):fc(e,c,r,i,n,a,o,s);case"boolean":return yc(e,c,r,i,n,a,o,s);case"number":case"integer":return mc(e,c,r,i,n,a,o,s);case"object":return sa(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return jv(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function sa(e,t,r,i,n,a,o,s){let c=dc(t.schema??{},i).reduce((l,u)=>{let d=gc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function fc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=me(t,r,o,"placeholder"),f=qr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Gr(d,m,f,t.schema.default,""),k=l(p,v),w=$v(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function Mv(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),{labels:y,icons:f}=pc(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),v=qr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Gr(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function yc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=qr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Gr(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function mc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=qr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Gr(d,v,m,k,k),x=l(p,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function jv(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=pc(t.schema),x=qr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:fc,boolean:yc,integer:mc,object:sa},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:me(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>sa(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Gr(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function $v(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var Ev=gc,_v={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function vu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function wu(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||vu(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||vu(g);n[a(l.id,g)]=y}})}});let c={..._v,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function ku(e){return typeof e.document=="function"?e.document():e.document}function xu(e,t,r){let i=xv(e),n=cc(i,t.inputReference);if(!Iv(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=dc(a,t);return{inputSchema:a,properties:o}}function Iu(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=Ev(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});uc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function Lv(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=ku(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=xu(c,s,a.debug);return wu(y,i,r,i.kind),Iu(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(ku(s)).then(g=>{let{inputSchema:y,properties:f}=xu(g,s,a.debug);wu(f,i,r,i.kind),u=Iu(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var Tv=Lv;async function Ov(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return kv(e,t);case"schema":return Tv(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var Nv=Ov;function Dv(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new F2(o,r)),o}return i}var Pv=Dv;function zv(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var Uv=zv,Wo="@imgly/plugin-ai-generation",Rv=`
68
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function r3(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var i3=r3;function n3(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var Hr=n3;function o3(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),a3(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:K9(e)}))}function a3(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Iu=o3,l3="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",va=l3;function s3(e,t,r){switch(t){case"image":return u3(e,r[t]);case"video":return c3(e,r[t]);case"sticker":return d3(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function u3(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:va,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function c3(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:va,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function d3(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:va,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var p3=s3;async function g3(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return f3(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return y3(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return m3(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return b3(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function f3(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function y3(e,t,r){let i=t.width,n=t.height,a=await J9(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function m3(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function b3(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var gc=g3;function h3(e){switch(e.userFlow){case"placeholder":return w3(e);case"generation-only":return v3(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function v3(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ye(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ye(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=pc(),c=await gc(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function w3(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ye(t,r))return{status:"aborted"};let s=pc(),c=p3(s,a,o);if(i=await W9(t,c),ye(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ye(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await gc(s,a,o,l.output);if(ye(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ye(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ha(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ye(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var k3=h3;function wa(e){return`${e}.generating`}function x3(e){return`${e}.abort`}function I3(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(x3(d),()=>{}),y=c.global(wa(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await k3({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Iu(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;C3(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(ha(b))return;Iu(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function C3(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var fc=I3;function Rr(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function A3({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(wa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return fc(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var S3=A3;function yc(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Tr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=yc(e,t.$ref),n={...Tr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Tr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Tr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Tr(e,t[n],r));return i}return t}function M3(e){return Tr(e,{...e})}function j3(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function $3(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return E3(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function E3(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=_3(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function _3(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var mc=$3;function me(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function bc(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function hc(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?L3(e,c,r,i,n,a,o,s):vc(e,c,r,i,n,a,o,s);case"boolean":return wc(e,c,r,i,n,a,o,s);case"number":case"integer":return kc(e,c,r,i,n,a,o,s);case"object":return ca(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return T3(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ca(e,t,r,i,n,a,o,s){let c=mc(t.schema??{},i).reduce((l,u)=>{let d=hc(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function vc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=me(t,r,o,"placeholder"),f=Gr(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Yr(d,m,f,t.schema.default,""),k=l(g,v),w=O3(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function L3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),{labels:y,icons:f}=bc(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:me(t,r,o,I),icon:f[I]})),v=Gr(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Yr(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function wc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=Gr(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Yr(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function kc(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Gr(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Yr(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function T3(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=me(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=bc(t.schema),x=Gr(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:vc,boolean:wc,integer:kc,object:ca},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:me(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>ca(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Yr(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function O3(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var N3=hc,D3={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Cu(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Au(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Cu(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Cu(p);n[a(l.id,p)]=y}})}});let c={...D3,...n};Object.keys(c).length>0&&H(r.cesdk,{en:c})}function Su(e){return typeof e.document=="function"?e.document():e.document}function Mu(e,t,r){let i=M3(e),n=yc(i,t.inputReference);if(!j3(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=mc(a,t);return{inputSchema:a,properties:o}}function ju(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=N3(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});fc(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function P3(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Su(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=Mu(c,s,a.debug);return Au(y,i,r,i.kind),ju(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Su(s)).then(p=>{let{inputSchema:y,properties:f}=Mu(p,s,a.debug);Au(f,i,r,i.kind),u=ju(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var z3=P3;async function U3(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return S3(e,t);case"schema":return z3(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var R3=U3;function F3(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new Y2(o,r)),o}return i}var V3=F3;function B3(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var q3=B3,Jo="@imgly/plugin-ai-generation",G3=`
69
69
  <svg>
70
70
  <symbol
71
71
  fill="none"
@@ -83,7 +83,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
83
83
  fill="none"
84
84
  xmlns="http://www.w3.org/2000/svg"
85
85
  viewBox="0 0 24 24"
86
- id="${Wo}/image"
86
+ id="${Jo}/image"
87
87
  >
88
88
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
89
89
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -95,7 +95,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
95
95
  fill="none"
96
96
  xmlns="http://www.w3.org/2000/svg"
97
97
  viewBox="0 0 24 24"
98
- id="${Wo}/video"
98
+ id="${Jo}/video"
99
99
  >
100
100
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
101
101
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -106,7 +106,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
106
106
  fill="none"
107
107
  xmlns="http://www.w3.org/2000/svg"
108
108
  viewBox="0 0 24 24"
109
- id="${Wo}/audio"
109
+ id="${Jo}/audio"
110
110
  >
111
111
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
112
112
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -126,8 +126,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
126
126
 
127
127
  </symbol>
128
128
  </svg>
129
- `,Fv=Rv;function Vv(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await bc(2e3),await Bv(t,e,r)):i(t,r)}async function Bv(e,t,r){switch(t.kind){case"image":return qv(e,t,r);case"video":return Gv(e,t,r);case"text":return Yv(e,t,r);case"audio":return Zv(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function qv(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await R9(s,r),l=await la(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
- `,"+")}`}}async function Gv(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Yv(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=$r(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=$r(n,o)}else"customPrompt"in e?a=$r(n,"custom"):a=$r(n,"improved");else a=$r(n,"generated");return Hv(a,r.abortSignal)}async function*Hv(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await bc(100)}return{kind:"text",text:e}}function $r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function Zv(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:Qv(220,i),duration:i,thumbnailUrl:void 0}}function Qv(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return Wv(i,44100)}function Wv(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function bc(e){return new Promise(t=>{setTimeout(t,e)})}var Kv=Vv,hc="USER_CANCEL";function Jv(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=V9([...e.provider.output.middleware??[],...r?.middlewares??[],q9({enable:r?.debug}),Kv({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Z9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ma(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===hc?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var Xv=Jv;async function e3(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=ya.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=Pv(a),s=Uv(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=Xv({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Nv(a,c);Q9(r.cesdk,"@imgly/plugin-ai-generation",Fv);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return oc.get().register(u),u}var Ko=e3;function t3(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new V2(n,r,i);return r.engine.asset.addSource(a),a.id}var r3=t3;function Or(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function i3(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ko(e,u,r,i)));o.push(...l),a=o3({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ko(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ko(e,d,r,i)));o.push(...u),a=n3({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=r3({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(On)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function n3({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&Cu(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&Cu(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function o3({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Cu(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ha(r.id),!1).value)}var a3=i3,Nn="ly.img.ai.editMode",vc="ly.img.ai.metadata";async function l3(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Qu(n,vc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var s3=l3;function u3(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var c3=u3;function d3(e){return`ly.img.ai.${e}.canvasMenu`}var p3=d3;function g3(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=p3(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var f3=g3;function y3(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return m3(e,t);case"image":return b3(e,t);case"video":return h3(e,t);case"audio":return v3(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function m3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function b3(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await la(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await la(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(p-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function h3(e,t){throw new Error("Function not implemented.")}async function v3(e,t){throw new Error("Function not implemented.")}var w3=y3;function k3(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var x3=k3,I3=class wc{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new wc),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},_e=I3;function C3(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(On)),c=new Qu(e.cesdk.engine,vc),l=e.lock??!0?x3({engine:e.cesdk.engine,editModeToLockTo:Nn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(hc),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await w3(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Au=C3;function A3(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Nn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=f3({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=S3(s).filter(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=oc.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(On);return S=c3(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:b.provider.name??b.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=g?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:j.provider.name??j.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Au({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Au({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function S3(e){return e.map(t=>t==="ly.img.separator"?t:ya.get().getBy({id:t,type:"quick"})[0]).filter(On)}var M3=A3;async function j3(e){let t=await M3({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await s3({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Nn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{_e.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var $3=j3,E3="@imgly/plugin-ai-image-generation",_3=`
129
+ `,Y3=G3;function H3(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await xc(2e3),await Z3(t,e,r)):i(t,r)}async function Z3(e,t,r){switch(t.kind){case"image":return Q3(e,t,r);case"video":return W3(e,t,r);case"text":return K3(e,t,r);case"audio":return X3(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Q3(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await G9(s,r),l=await ua(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
130
+ `,"+")}`}}async function W3(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function K3(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=$r(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=$r(n,o)}else"customPrompt"in e?a=$r(n,"custom"):a=$r(n,"improved");else a=$r(n,"generated");return J3(a,r.abortSignal)}async function*J3(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await xc(100)}return{kind:"text",text:e}}function $r(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function X3(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:ev(220,i),duration:i,thumbnailUrl:void 0}}function ev(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return tv(i,44100)}function tv(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function xc(e){return new Promise(t=>{setTimeout(t,e)})}var rv=H3,Ic="USER_CANCEL";function iv(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=H9([...e.provider.output.middleware??[],...r?.middlewares??[],Q9({enable:r?.debug}),rv({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:X9(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ha(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===Ic?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var nv=iv;async function ov(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=ba.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=V3(a),s=q3(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=nv({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await R3(a,c);e3(r.cesdk,"@imgly/plugin-ai-generation",Y3);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return cc.get().register(u),u}var Xo=ov;function av(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new H2(n,r,i);return r.engine.asset.addSource(a),a.id}var lv=av;function Or(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function sv(e,t,r,i){let{cesdk:n}=r;H(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Xo(e,u,r,i)));o.push(...l),a=cv({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Xo(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Xo(e,d,r,i)));o.push(...u),a=uv({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=lv({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(Dn)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function uv({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Rr(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Or(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Or(e,"fromText.label"),icon:f.value!=="fromText"&&$u(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Or(e,"fromImage.label"),icon:f.value!=="fromImage"&&$u(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function cv({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:Rr(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Or(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function $u(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(wa(r.id),!1).value)}var dv=sv,Pn="ly.img.ai.editMode",Cc="ly.img.ai.metadata";async function pv(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&H(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new ec(n,Cc),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var gv=pv;function fv(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var yv=fv;function mv(e){return`ly.img.ai.${e}.canvasMenu`}var bv=mv;function hv(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=bv(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var vv=hv;function wv(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return kv(e,t);case"image":return xv(e,t);case"video":return Iv(e,t);case"audio":return Cv(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function kv(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function xv(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await ua(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await ua(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(g-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function Iv(e,t){throw new Error("Function not implemented.")}async function Cv(e,t){throw new Error("Function not implemented.")}var Av=wv;function Sv(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var Mv=Sv,jv=class Ac{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Ac),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},_e=jv;function $v(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(Dn)),c=new ec(e.cesdk.engine,Cc),l=e.lock??!0?Mv({engine:e.cesdk.engine,editModeToLockTo:Pn,blockIdsToLock:i}):()=>{};i.forEach(u=>{_e.get().register(u,{onCancelGeneration:()=>{o.abort(Ic),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:g}=await Av(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{_e.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Eu=$v;function Ev(e){let t=`ly.img.ai.${e.kind}}`;H(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===Pn)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=vv({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=_v(s).filter(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=cc.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(Dn);return S=yv(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Rr(b.provider)})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===g.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=p?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Rr(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Eu({blockIds:n,providerInitializationResult:I.providerInitializationResult??p?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Eu({blockIds:n,providerInitializationResult:A.providerInitializationResult??p?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function _v(e){return e.map(t=>t==="ly.img.separator"?t:ba.get().getBy({id:t,type:"quick"})[0]).filter(Dn)}var Lv=Ev;async function Tv(e){let t=await Lv({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await gv({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===Pn){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{_e.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{_e.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Ov=Tv,Nv="@imgly/plugin-ai-image-generation",Dv=`
131
131
  <svg>
132
132
  <symbol
133
133
  fill="none"
@@ -141,10 +141,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
141
141
 
142
142
  </symbol>
143
143
  </svg>
144
- `,L3=_3,T3=typeof global=="object"&&global&&global.Object===Object&&global,kc=T3,O3=typeof self=="object"&&self&&self.Object===Object&&self,N3=kc||O3||Function("return this")(),ee=N3,D3=ee.Symbol,st=D3,xc=Object.prototype,P3=xc.hasOwnProperty,z3=xc.toString,Er=st?st.toStringTag:void 0;function U3(e){var t=P3.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=z3.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var R3=U3,F3=Object.prototype,V3=F3.toString;function B3(e){return V3.call(e)}var q3=B3,G3="[object Null]",Y3="[object Undefined]",Su=st?st.toStringTag:void 0;function H3(e){return e==null?e===void 0?Y3:G3:Su&&Su in Object(e)?R3(e):q3(e)}var Hr=H3;function Z3(e){return e!=null&&typeof e=="object"}var va=Z3,TJ=Array.isArray;function Q3(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ic=Q3,W3="[object AsyncFunction]",K3="[object Function]",J3="[object GeneratorFunction]",X3="[object Proxy]";function e7(e){if(!Ic(e))return!1;var t=Hr(e);return t==K3||t==J3||t==W3||t==X3}var t7=e7,r7=ee["__core-js_shared__"],Jo=r7,Mu=function(){var e=/[^.]+$/.exec(Jo&&Jo.keys&&Jo.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function i7(e){return!!Mu&&Mu in e}var n7=i7,o7=Function.prototype,a7=o7.toString;function l7(e){if(e!=null){try{return a7.call(e)}catch{}try{return e+""}catch{}}return""}var Te=l7,s7=/[\\^$.*+?()[\]{}|]/g,u7=/^\[object .+?Constructor\]$/,c7=Function.prototype,d7=Object.prototype,p7=c7.toString,g7=d7.hasOwnProperty,f7=RegExp("^"+p7.call(g7).replace(s7,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function y7(e){if(!Ic(e)||n7(e))return!1;var t=t7(e)?f7:u7;return t.test(Te(e))}var m7=y7;function b7(e,t){return e?.[t]}var h7=b7;function v7(e,t){var r=h7(e,t);return m7(r)?r:void 0}var gt=v7,w7=gt(ee,"WeakMap"),ua=w7;function k7(e,t){return e===t||e!==e&&t!==t}var x7=k7,I7=9007199254740991;function C7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=I7}var A7=C7,OJ=Object.prototype,S7="[object Arguments]";function M7(e){return va(e)&&Hr(e)==S7}var ju=M7,Cc=Object.prototype,j7=Cc.hasOwnProperty,$7=Cc.propertyIsEnumerable,NJ=ju(function(){return arguments}())?ju:function(e){return va(e)&&j7.call(e,"callee")&&!$7.call(e,"callee")},Ac=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$u=Ac&&typeof module=="object"&&module&&!module.nodeType&&module,E7=$u&&$u.exports===Ac,Eu=E7?ee.Buffer:void 0,DJ=Eu?Eu.isBuffer:void 0,_7="[object Arguments]",L7="[object Array]",T7="[object Boolean]",O7="[object Date]",N7="[object Error]",D7="[object Function]",P7="[object Map]",z7="[object Number]",U7="[object Object]",R7="[object RegExp]",F7="[object Set]",V7="[object String]",B7="[object WeakMap]",q7="[object ArrayBuffer]",G7="[object DataView]",Y7="[object Float32Array]",H7="[object Float64Array]",Z7="[object Int8Array]",Q7="[object Int16Array]",W7="[object Int32Array]",K7="[object Uint8Array]",J7="[object Uint8ClampedArray]",X7="[object Uint16Array]",e8="[object Uint32Array]",N={};N[Y7]=N[H7]=N[Z7]=N[Q7]=N[W7]=N[K7]=N[J7]=N[X7]=N[e8]=!0;N[_7]=N[L7]=N[q7]=N[T7]=N[G7]=N[O7]=N[N7]=N[D7]=N[P7]=N[z7]=N[U7]=N[R7]=N[F7]=N[V7]=N[B7]=!1;function t8(e){return va(e)&&A7(e.length)&&!!N[Hr(e)]}var r8=t8;function i8(e){return function(t){return e(t)}}var n8=i8,Sc=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=Sc&&typeof module=="object"&&module&&!module.nodeType&&module,o8=Pr&&Pr.exports===Sc,Xo=o8&&kc.process,a8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||Xo&&Xo.binding&&Xo.binding("util")}catch{}}(),_u=a8,Lu=_u&&_u.isTypedArray,PJ=Lu?n8(Lu):r8,l8=Object.prototype,zJ=l8.hasOwnProperty;function s8(e,t){return function(r){return e(t(r))}}var u8=s8,UJ=u8(Object.keys,Object),c8=Object.prototype,RJ=c8.hasOwnProperty,d8=gt(Object,"create"),Rr=d8;function p8(){this.__data__=Rr?Rr(null):{},this.size=0}var g8=p8;function f8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var y8=f8,m8="__lodash_hash_undefined__",b8=Object.prototype,h8=b8.hasOwnProperty;function v8(e){var t=this.__data__;if(Rr){var r=t[e];return r===m8?void 0:r}return h8.call(t,e)?t[e]:void 0}var w8=v8,k8=Object.prototype,x8=k8.hasOwnProperty;function I8(e){var t=this.__data__;return Rr?t[e]!==void 0:x8.call(t,e)}var C8=I8,A8="__lodash_hash_undefined__";function S8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Rr&&t===void 0?A8:t,this}var M8=S8;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=g8;ft.prototype.delete=y8;ft.prototype.get=w8;ft.prototype.has=C8;ft.prototype.set=M8;var Tu=ft;function j8(){this.__data__=[],this.size=0}var $8=j8;function E8(e,t){for(var r=e.length;r--;)if(x7(e[r][0],t))return r;return-1}var Dn=E8,_8=Array.prototype,L8=_8.splice;function T8(e){var t=this.__data__,r=Dn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():L8.call(t,r,1),--this.size,!0}var O8=T8;function N8(e){var t=this.__data__,r=Dn(t,e);return r<0?void 0:t[r][1]}var D8=N8;function P8(e){return Dn(this.__data__,e)>-1}var z8=P8;function U8(e,t){var r=this.__data__,i=Dn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var R8=U8;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=$8;yt.prototype.delete=O8;yt.prototype.get=D8;yt.prototype.has=z8;yt.prototype.set=R8;var Pn=yt,F8=gt(ee,"Map"),Fr=F8;function V8(){this.size=0,this.__data__={hash:new Tu,map:new(Fr||Pn),string:new Tu}}var B8=V8;function q8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var G8=q8;function Y8(e,t){var r=e.__data__;return G8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var zn=Y8;function H8(e){var t=zn(this,e).delete(e);return this.size-=t?1:0,t}var Z8=H8;function Q8(e){return zn(this,e).get(e)}var W8=Q8;function K8(e){return zn(this,e).has(e)}var J8=K8;function X8(e,t){var r=zn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var e6=X8;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=B8;mt.prototype.delete=Z8;mt.prototype.get=W8;mt.prototype.has=J8;mt.prototype.set=e6;var Mc=mt;function t6(){this.__data__=new Pn,this.size=0}var r6=t6;function i6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var n6=i6;function o6(e){return this.__data__.get(e)}var a6=o6;function l6(e){return this.__data__.has(e)}var s6=l6,u6=200;function c6(e,t){var r=this.__data__;if(r instanceof Pn){var i=r.__data__;if(!Fr||i.length<u6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Mc(i)}return r.set(e,t),this.size=r.size,this}var d6=c6;function Zr(e){var t=this.__data__=new Pn(e);this.size=t.size}Zr.prototype.clear=r6;Zr.prototype.delete=n6;Zr.prototype.get=a6;Zr.prototype.has=s6;Zr.prototype.set=d6;var p6=Object.prototype,FJ=p6.propertyIsEnumerable,g6=gt(ee,"DataView"),ca=g6,f6=gt(ee,"Promise"),da=f6,y6=gt(ee,"Set"),pa=y6,Ou="[object Map]",m6="[object Object]",Nu="[object Promise]",Du="[object Set]",Pu="[object WeakMap]",zu="[object DataView]",b6=Te(ca),h6=Te(Fr),v6=Te(da),w6=Te(pa),k6=Te(ua),ot=Hr;(ca&&ot(new ca(new ArrayBuffer(1)))!=zu||Fr&&ot(new Fr)!=Ou||da&&ot(da.resolve())!=Nu||pa&&ot(new pa)!=Du||ua&&ot(new ua)!=Pu)&&(ot=function(e){var t=Hr(e),r=t==m6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case b6:return zu;case h6:return Ou;case v6:return Nu;case w6:return Du;case k6:return Pu}return t});var VJ=ee.Uint8Array,x6="__lodash_hash_undefined__";function I6(e){return this.__data__.set(e,x6),this}var C6=I6;function A6(e){return this.__data__.has(e)}var S6=A6;function ga(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Mc;++t<r;)this.add(e[t])}ga.prototype.add=ga.prototype.push=C6;ga.prototype.has=S6;var Uu=st?st.prototype:void 0,BJ=Uu?Uu.valueOf:void 0,M6=Object.prototype,qJ=M6.hasOwnProperty,j6=Object.prototype,GJ=j6.hasOwnProperty,YJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),HJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),ZJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function bt(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return $6(i,t)}function E6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Ru=E6;function _6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function L6(e){return typeof e?.translate=="function"}function T6(e,t,r){return e&&_6(e)&&L6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",O6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Un="editImage",ue=`ly.img.${Un}`,Fu=`ly.img.plugin-ai-image-generation-web.quickAction.${Un}`,In=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Un}`;function Cn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Un}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var N6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${In}`]:"Edit Image...",[`${In}.description`]:"Change image based on description",[`${In}.prompt`]:"Edit Image...",[`${Fu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${In}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Fu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Cn(l,"prompt"),placeholder:Cn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Cn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(p,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Cn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),D6=N6,Rn="swapBackground",ce=`ly.img.${Rn}`,Vu=`ly.img.plugin-ai-image-generation-web.quickAction.${Rn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Rn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Rn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var P6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${An}`]:"Swap Background...",[`${An}.description`]:"Change the background of the image",[`${An}.prompt`]:"Swap Background...",[`${Vu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${An}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Vu}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await bt(p,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),z6=P6,Fn="styleTransfer",_r=`ly.img.${Fn}`,U6=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Bu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var R6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],F6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${U6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Bu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{R6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Bu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),V6=F6,Vn="artistTransfer",Lr=`ly.img.${Vn}`,B6=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function qu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var q6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],G6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Lr,type:"quick",kind:"image",label:`${B6}`,enable:Yr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:qu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{q6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:qu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),Y6=G6,Bn="createVariant",de=`ly.img.${Bn}`,Gu=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var H6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${Mn}`]:"Create Variant...",[`${Mn}.description`]:"Create a variation of the image",[`${Mn}.prompt`]:"Create Variant...",[`${Gu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${Mn}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Gu}`,enable:t=>{if(!Yr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getType(p),y=o.block.duplicate(p);g==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(v=>{o.block.destroy(v)}),o.block.setSelected(p,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&g!=="//ly.img.ubq/page"){let v=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(v,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await bt(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:jn(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),Z6=H6,qn="combineImages",pe=`ly.img.${qn}`,Yu=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,ea=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function $n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Q6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ea}.apply`]:"Combine",[`${ea}`]:"Combine Images...",[`${ea}.prompt`]:"Image Combination Instructions",[`${Yu}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Yu}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:$n(l,"prompt"),placeholder:$n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:$n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=o.block.findAllSelected(),g=o.block.duplicate(p[0]);p.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(g,!0);let y=o.block.getParent(g);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),v=o.block.getHeight(y),k=.02*Math.min(m,v)*f;o.block.setPositionX(g,o.block.getPositionX(g)+k),o.block.setPositionY(g,o.block.getPositionY(g)+k);let w=await Promise.all(p.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:p},{blockIds:[g]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:$n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),W6=Q6,Gn="remixPage",Hu=`ly.img.${Gn}`,K6=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,J6=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function X6(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ew=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${J6}`]:"Turn Page into Image"}}),{id:Hu,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${K6}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Hu}.button`,{label:X6(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(v=>{i.block.destroy(v)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),p=i.block.getPositionX(o),g=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,p),i.block.setPositionY(f,g);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),tw=ew,Yn="remixPageWithPrompt",ge=`ly.img.${Yn}`,Zu=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ta=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var rw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ta}`]:"Remix Page...",[`${ta}.prompt`]:"Remix Page Prompt",[`${Zu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ta}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Zu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=await o.block.export(p),y=URL.createObjectURL(g),f=o.block.duplicate(p);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(p,!1);let m=o.block.getFrameWidth(p),v=o.block.getFrameHeight(p),k=o.block.getPositionX(p),w=o.block.getPositionY(p),x=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,x),o.block.appendChild(f,b),o.block.setWidth(b,m),o.block.setHeight(b,v),o.block.setPositionX(b,k),o.block.setPositionY(b,w);let I=o.block.createFill("image");o.block.setFill(b,I),o.block.setString(I,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:En(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),iw=rw,fe="ly.img.ai.image-generation";function nw(e){return{async initialize({cesdk:t}){if(t==null)return;W9(t,Nr,"1.73.0-rc.1"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ya.get(),i=`${Nr}.action.label`;t.ui.addIconSet(E3,L3),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:T6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});ow(e),r.register(D6({cesdk:t})),r.register(z6({cesdk:t})),r.register(V6({cesdk:t})),r.register(Y6({cesdk:t})),r.register(Z6({cesdk:t})),r.register(W6({cesdk:t})),r.register(tw({cesdk:t})),r.register(iw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Ru(a).map(d=>d({cesdk:t}))),c=await Promise.all(Ru(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await a3("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await $3({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:O6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Nn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),J9({cesdk:t,panelId:fe})):n()}}}function ow(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var aw=nw,lw=e=>({name:Nr,version:"1.73.0-rc.1",...aw(e)}),jc=lw;var sw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var uw=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},cw=typeof global=="object"&&global&&global.Object===Object&&global,yd=cw,dw=typeof self=="object"&&self&&self.Object===Object&&self,pw=yd||dw||Function("return this")(),te=pw,gw=te.Symbol,kt=gw,md=Object.prototype,fw=md.hasOwnProperty,yw=md.toString,Qr=kt?kt.toStringTag:void 0;function mw(e){var t=fw.call(e,Qr),r=e[Qr];try{e[Qr]=void 0;var i=!0}catch{}var n=yw.call(e);return i&&(t?e[Qr]=r:delete e[Qr]),n}var bw=mw,hw=Object.prototype,vw=hw.toString;function ww(e){return vw.call(e)}var kw=ww,xw="[object Null]",Iw="[object Undefined]",$c=kt?kt.toStringTag:void 0;function Cw(e){return e==null?e===void 0?Iw:xw:$c&&$c in Object(e)?bw(e):kw(e)}var li=Cw;function Aw(e){return e!=null&&typeof e=="object"}var za=Aw,XJ=Array.isArray;function Sw(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bd=Sw,Mw="[object AsyncFunction]",jw="[object Function]",$w="[object GeneratorFunction]",Ew="[object Proxy]";function _w(e){if(!bd(e))return!1;var t=li(e);return t==jw||t==$w||t==Mw||t==Ew}var Lw=_w,Tw=te["__core-js_shared__"],wa=Tw,Ec=function(){var e=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Ow(e){return!!Ec&&Ec in e}var Nw=Ow,Dw=Function.prototype,Pw=Dw.toString;function zw(e){if(e!=null){try{return Pw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=zw,Uw=/[\\^$.*+?()[\]{}|]/g,Rw=/^\[object .+?Constructor\]$/,Fw=Function.prototype,Vw=Object.prototype,Bw=Fw.toString,qw=Vw.hasOwnProperty,Gw=RegExp("^"+Bw.call(qw).replace(Uw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yw(e){if(!bd(e)||Nw(e))return!1;var t=Lw(e)?Gw:Rw;return t.test(Oe(e))}var Hw=Yw;function Zw(e,t){return e?.[t]}var Qw=Zw;function Ww(e,t){var r=Qw(e,t);return Hw(r)?r:void 0}var It=Ww,Kw=It(te,"WeakMap"),Ma=Kw;function Jw(e,t){return e===t||e!==e&&t!==t}var Xw=Jw,ek=9007199254740991;function tk(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ek}var rk=tk,eX=Object.prototype,ik="[object Arguments]";function nk(e){return za(e)&&li(e)==ik}var _c=nk,hd=Object.prototype,ok=hd.hasOwnProperty,ak=hd.propertyIsEnumerable,tX=_c(function(){return arguments}())?_c:function(e){return za(e)&&ok.call(e,"callee")&&!ak.call(e,"callee")},vd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Lc=vd&&typeof module=="object"&&module&&!module.nodeType&&module,lk=Lc&&Lc.exports===vd,Tc=lk?te.Buffer:void 0,rX=Tc?Tc.isBuffer:void 0,sk="[object Arguments]",uk="[object Array]",ck="[object Boolean]",dk="[object Date]",pk="[object Error]",gk="[object Function]",fk="[object Map]",yk="[object Number]",mk="[object Object]",bk="[object RegExp]",hk="[object Set]",vk="[object String]",wk="[object WeakMap]",kk="[object ArrayBuffer]",xk="[object DataView]",Ik="[object Float32Array]",Ck="[object Float64Array]",Ak="[object Int8Array]",Sk="[object Int16Array]",Mk="[object Int32Array]",jk="[object Uint8Array]",$k="[object Uint8ClampedArray]",Ek="[object Uint16Array]",_k="[object Uint32Array]",D={};D[Ik]=D[Ck]=D[Ak]=D[Sk]=D[Mk]=D[jk]=D[$k]=D[Ek]=D[_k]=!0;D[sk]=D[uk]=D[kk]=D[ck]=D[xk]=D[dk]=D[pk]=D[gk]=D[fk]=D[yk]=D[mk]=D[bk]=D[hk]=D[vk]=D[wk]=!1;function Lk(e){return za(e)&&rk(e.length)&&!!D[li(e)]}var Tk=Lk;function Ok(e){return function(t){return e(t)}}var Nk=Ok,wd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ti=wd&&typeof module=="object"&&module&&!module.nodeType&&module,Dk=ti&&ti.exports===wd,ka=Dk&&yd.process,Pk=function(){try{var e=ti&&ti.require&&ti.require("util").types;return e||ka&&ka.binding&&ka.binding("util")}catch{}}(),Oc=Pk,Nc=Oc&&Oc.isTypedArray,iX=Nc?Nk(Nc):Tk,zk=Object.prototype,nX=zk.hasOwnProperty;function Uk(e,t){return function(r){return e(t(r))}}var Rk=Uk,oX=Rk(Object.keys,Object),Fk=Object.prototype,aX=Fk.hasOwnProperty,Vk=It(Object,"create"),ii=Vk;function Bk(){this.__data__=ii?ii(null):{},this.size=0}var qk=Bk;function Gk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Yk=Gk,Hk="__lodash_hash_undefined__",Zk=Object.prototype,Qk=Zk.hasOwnProperty;function Wk(e){var t=this.__data__;if(ii){var r=t[e];return r===Hk?void 0:r}return Qk.call(t,e)?t[e]:void 0}var Kk=Wk,Jk=Object.prototype,Xk=Jk.hasOwnProperty;function ex(e){var t=this.__data__;return ii?t[e]!==void 0:Xk.call(t,e)}var tx=ex,rx="__lodash_hash_undefined__";function ix(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ii&&t===void 0?rx:t,this}var nx=ix;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=qk;Ct.prototype.delete=Yk;Ct.prototype.get=Kk;Ct.prototype.has=tx;Ct.prototype.set=nx;var Dc=Ct;function ox(){this.__data__=[],this.size=0}var ax=ox;function lx(e,t){for(var r=e.length;r--;)if(Xw(e[r][0],t))return r;return-1}var Zn=lx,sx=Array.prototype,ux=sx.splice;function cx(e){var t=this.__data__,r=Zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ux.call(t,r,1),--this.size,!0}var dx=cx;function px(e){var t=this.__data__,r=Zn(t,e);return r<0?void 0:t[r][1]}var gx=px;function fx(e){return Zn(this.__data__,e)>-1}var yx=fx;function mx(e,t){var r=this.__data__,i=Zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var bx=mx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=ax;At.prototype.delete=dx;At.prototype.get=gx;At.prototype.has=yx;At.prototype.set=bx;var Qn=At,hx=It(te,"Map"),ni=hx;function vx(){this.size=0,this.__data__={hash:new Dc,map:new(ni||Qn),string:new Dc}}var wx=vx;function kx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var xx=kx;function Ix(e,t){var r=e.__data__;return xx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Wn=Ix;function Cx(e){var t=Wn(this,e).delete(e);return this.size-=t?1:0,t}var Ax=Cx;function Sx(e){return Wn(this,e).get(e)}var Mx=Sx;function jx(e){return Wn(this,e).has(e)}var $x=jx;function Ex(e,t){var r=Wn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var _x=Ex;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=wx;St.prototype.delete=Ax;St.prototype.get=Mx;St.prototype.has=$x;St.prototype.set=_x;var kd=St;function Lx(){this.__data__=new Qn,this.size=0}var Tx=Lx;function Ox(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Nx=Ox;function Dx(e){return this.__data__.get(e)}var Px=Dx;function zx(e){return this.__data__.has(e)}var Ux=zx,Rx=200;function Fx(e,t){var r=this.__data__;if(r instanceof Qn){var i=r.__data__;if(!ni||i.length<Rx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new kd(i)}return r.set(e,t),this.size=r.size,this}var Vx=Fx;function si(e){var t=this.__data__=new Qn(e);this.size=t.size}si.prototype.clear=Tx;si.prototype.delete=Nx;si.prototype.get=Px;si.prototype.has=Ux;si.prototype.set=Vx;var Bx=Object.prototype,lX=Bx.propertyIsEnumerable,qx=It(te,"DataView"),ja=qx,Gx=It(te,"Promise"),$a=Gx,Yx=It(te,"Set"),Ea=Yx,Pc="[object Map]",Hx="[object Object]",zc="[object Promise]",Uc="[object Set]",Rc="[object WeakMap]",Fc="[object DataView]",Zx=Oe(ja),Qx=Oe(ni),Wx=Oe($a),Kx=Oe(Ea),Jx=Oe(Ma),ht=li;(ja&&ht(new ja(new ArrayBuffer(1)))!=Fc||ni&&ht(new ni)!=Pc||$a&&ht($a.resolve())!=zc||Ea&&ht(new Ea)!=Uc||Ma&&ht(new Ma)!=Rc)&&(ht=function(e){var t=li(e),r=t==Hx?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Zx:return Fc;case Qx:return Pc;case Wx:return zc;case Kx:return Uc;case Jx:return Rc}return t});var sX=te.Uint8Array,Xx="__lodash_hash_undefined__";function eI(e){return this.__data__.set(e,Xx),this}var tI=eI;function rI(e){return this.__data__.has(e)}var iI=rI;function _a(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new kd;++t<r;)this.add(e[t])}_a.prototype.add=_a.prototype.push=tI;_a.prototype.has=iI;var Vc=kt?kt.prototype:void 0,uX=Vc?Vc.valueOf:void 0,nI=Object.prototype,cX=nI.hasOwnProperty,oI=Object.prototype,dX=oI.hasOwnProperty,pX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),gX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),fX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function xd(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function aI(e,t){let r=await xd(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function lI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return xd(i,t)}function sI(e){return e!==void 0}var uI=sI;function ui(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ci(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function di(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Hn=class Id{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Id),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},cI=class Cd{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Cd),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function dI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function pI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var gI=pI,xa="ly.img.ai.temp";async function fI(e,t){return e.engine.asset.findAllSources().includes(xa)||e.engine.asset.addLocalSource(xa),e.engine.asset.apply(xa,t)}function yI(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Ad(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function mI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function bI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Ua(e){return e instanceof Error&&e.name==="AbortError"}function hI(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function vI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
144
+ `,Pv=Dv,zv=typeof global=="object"&&global&&global.Object===Object&&global,Sc=zv,Uv=typeof self=="object"&&self&&self.Object===Object&&self,Rv=Sc||Uv||Function("return this")(),ee=Rv,Fv=ee.Symbol,st=Fv,Mc=Object.prototype,Vv=Mc.hasOwnProperty,Bv=Mc.toString,Er=st?st.toStringTag:void 0;function qv(e){var t=Vv.call(e,Er),r=e[Er];try{e[Er]=void 0;var i=!0}catch{}var n=Bv.call(e);return i&&(t?e[Er]=r:delete e[Er]),n}var Gv=qv,Yv=Object.prototype,Hv=Yv.toString;function Zv(e){return Hv.call(e)}var Qv=Zv,Wv="[object Null]",Kv="[object Undefined]",_u=st?st.toStringTag:void 0;function Jv(e){return e==null?e===void 0?Kv:Wv:_u&&_u in Object(e)?Gv(e):Qv(e)}var Zr=Jv;function Xv(e){return e!=null&&typeof e=="object"}var ka=Xv,zJ=Array.isArray;function e7(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var jc=e7,t7="[object AsyncFunction]",r7="[object Function]",i7="[object GeneratorFunction]",n7="[object Proxy]";function o7(e){if(!jc(e))return!1;var t=Zr(e);return t==r7||t==i7||t==t7||t==n7}var a7=o7,l7=ee["__core-js_shared__"],ea=l7,Lu=function(){var e=/[^.]+$/.exec(ea&&ea.keys&&ea.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function s7(e){return!!Lu&&Lu in e}var u7=s7,c7=Function.prototype,d7=c7.toString;function p7(e){if(e!=null){try{return d7.call(e)}catch{}try{return e+""}catch{}}return""}var Te=p7,g7=/[\\^$.*+?()[\]{}|]/g,f7=/^\[object .+?Constructor\]$/,y7=Function.prototype,m7=Object.prototype,b7=y7.toString,h7=m7.hasOwnProperty,v7=RegExp("^"+b7.call(h7).replace(g7,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function w7(e){if(!jc(e)||u7(e))return!1;var t=a7(e)?v7:f7;return t.test(Te(e))}var k7=w7;function x7(e,t){return e?.[t]}var I7=x7;function C7(e,t){var r=I7(e,t);return k7(r)?r:void 0}var gt=C7,A7=gt(ee,"WeakMap"),da=A7;function S7(e,t){return e===t||e!==e&&t!==t}var M7=S7,j7=9007199254740991;function $7(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=j7}var E7=$7,UJ=Object.prototype,_7="[object Arguments]";function L7(e){return ka(e)&&Zr(e)==_7}var Tu=L7,$c=Object.prototype,T7=$c.hasOwnProperty,O7=$c.propertyIsEnumerable,RJ=Tu(function(){return arguments}())?Tu:function(e){return ka(e)&&T7.call(e,"callee")&&!O7.call(e,"callee")},Ec=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ou=Ec&&typeof module=="object"&&module&&!module.nodeType&&module,N7=Ou&&Ou.exports===Ec,Nu=N7?ee.Buffer:void 0,FJ=Nu?Nu.isBuffer:void 0,D7="[object Arguments]",P7="[object Array]",z7="[object Boolean]",U7="[object Date]",R7="[object Error]",F7="[object Function]",V7="[object Map]",B7="[object Number]",q7="[object Object]",G7="[object RegExp]",Y7="[object Set]",H7="[object String]",Z7="[object WeakMap]",Q7="[object ArrayBuffer]",W7="[object DataView]",K7="[object Float32Array]",J7="[object Float64Array]",X7="[object Int8Array]",e8="[object Int16Array]",t8="[object Int32Array]",r8="[object Uint8Array]",i8="[object Uint8ClampedArray]",n8="[object Uint16Array]",o8="[object Uint32Array]",N={};N[K7]=N[J7]=N[X7]=N[e8]=N[t8]=N[r8]=N[i8]=N[n8]=N[o8]=!0;N[D7]=N[P7]=N[Q7]=N[z7]=N[W7]=N[U7]=N[R7]=N[F7]=N[V7]=N[B7]=N[q7]=N[G7]=N[Y7]=N[H7]=N[Z7]=!1;function a8(e){return ka(e)&&E7(e.length)&&!!N[Zr(e)]}var l8=a8;function s8(e){return function(t){return e(t)}}var u8=s8,_c=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pr=_c&&typeof module=="object"&&module&&!module.nodeType&&module,c8=Pr&&Pr.exports===_c,ta=c8&&Sc.process,d8=function(){try{var e=Pr&&Pr.require&&Pr.require("util").types;return e||ta&&ta.binding&&ta.binding("util")}catch{}}(),Du=d8,Pu=Du&&Du.isTypedArray,VJ=Pu?u8(Pu):l8,p8=Object.prototype,BJ=p8.hasOwnProperty;function g8(e,t){return function(r){return e(t(r))}}var f8=g8,qJ=f8(Object.keys,Object),y8=Object.prototype,GJ=y8.hasOwnProperty,m8=gt(Object,"create"),Fr=m8;function b8(){this.__data__=Fr?Fr(null):{},this.size=0}var h8=b8;function v8(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var w8=v8,k8="__lodash_hash_undefined__",x8=Object.prototype,I8=x8.hasOwnProperty;function C8(e){var t=this.__data__;if(Fr){var r=t[e];return r===k8?void 0:r}return I8.call(t,e)?t[e]:void 0}var A8=C8,S8=Object.prototype,M8=S8.hasOwnProperty;function j8(e){var t=this.__data__;return Fr?t[e]!==void 0:M8.call(t,e)}var $8=j8,E8="__lodash_hash_undefined__";function _8(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fr&&t===void 0?E8:t,this}var L8=_8;function ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ft.prototype.clear=h8;ft.prototype.delete=w8;ft.prototype.get=A8;ft.prototype.has=$8;ft.prototype.set=L8;var zu=ft;function T8(){this.__data__=[],this.size=0}var O8=T8;function N8(e,t){for(var r=e.length;r--;)if(M7(e[r][0],t))return r;return-1}var zn=N8,D8=Array.prototype,P8=D8.splice;function z8(e){var t=this.__data__,r=zn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():P8.call(t,r,1),--this.size,!0}var U8=z8;function R8(e){var t=this.__data__,r=zn(t,e);return r<0?void 0:t[r][1]}var F8=R8;function V8(e){return zn(this.__data__,e)>-1}var B8=V8;function q8(e,t){var r=this.__data__,i=zn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var G8=q8;function yt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yt.prototype.clear=O8;yt.prototype.delete=U8;yt.prototype.get=F8;yt.prototype.has=B8;yt.prototype.set=G8;var Un=yt,Y8=gt(ee,"Map"),Vr=Y8;function H8(){this.size=0,this.__data__={hash:new zu,map:new(Vr||Un),string:new zu}}var Z8=H8;function Q8(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var W8=Q8;function K8(e,t){var r=e.__data__;return W8(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Rn=K8;function J8(e){var t=Rn(this,e).delete(e);return this.size-=t?1:0,t}var X8=J8;function e6(e){return Rn(this,e).get(e)}var t6=e6;function r6(e){return Rn(this,e).has(e)}var i6=r6;function n6(e,t){var r=Rn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var o6=n6;function mt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}mt.prototype.clear=Z8;mt.prototype.delete=X8;mt.prototype.get=t6;mt.prototype.has=i6;mt.prototype.set=o6;var Lc=mt;function a6(){this.__data__=new Un,this.size=0}var l6=a6;function s6(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var u6=s6;function c6(e){return this.__data__.get(e)}var d6=c6;function p6(e){return this.__data__.has(e)}var g6=p6,f6=200;function y6(e,t){var r=this.__data__;if(r instanceof Un){var i=r.__data__;if(!Vr||i.length<f6-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Lc(i)}return r.set(e,t),this.size=r.size,this}var m6=y6;function Qr(e){var t=this.__data__=new Un(e);this.size=t.size}Qr.prototype.clear=l6;Qr.prototype.delete=u6;Qr.prototype.get=d6;Qr.prototype.has=g6;Qr.prototype.set=m6;var b6=Object.prototype,YJ=b6.propertyIsEnumerable,h6=gt(ee,"DataView"),pa=h6,v6=gt(ee,"Promise"),ga=v6,w6=gt(ee,"Set"),fa=w6,Uu="[object Map]",k6="[object Object]",Ru="[object Promise]",Fu="[object Set]",Vu="[object WeakMap]",Bu="[object DataView]",x6=Te(pa),I6=Te(Vr),C6=Te(ga),A6=Te(fa),S6=Te(da),ot=Zr;(pa&&ot(new pa(new ArrayBuffer(1)))!=Bu||Vr&&ot(new Vr)!=Uu||ga&&ot(ga.resolve())!=Ru||fa&&ot(new fa)!=Fu||da&&ot(new da)!=Vu)&&(ot=function(e){var t=Zr(e),r=t==k6?e.constructor:void 0,i=r?Te(r):"";if(i)switch(i){case x6:return Bu;case I6:return Uu;case C6:return Ru;case A6:return Fu;case S6:return Vu}return t});var HJ=ee.Uint8Array,M6="__lodash_hash_undefined__";function j6(e){return this.__data__.set(e,M6),this}var $6=j6;function E6(e){return this.__data__.has(e)}var _6=E6;function ya(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Lc;++t<r;)this.add(e[t])}ya.prototype.add=ya.prototype.push=$6;ya.prototype.has=_6;var qu=st?st.prototype:void 0,ZJ=qu?qu.valueOf:void 0,L6=Object.prototype,QJ=L6.hasOwnProperty,T6=Object.prototype,WJ=T6.hasOwnProperty,KJ=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),JJ=new RegExp(/[A-Fa-f0-9]{1}/,"g"),XJ=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function O6(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function bt(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return O6(i,t)}function N6(e){return e==null?[]:Array.isArray(e)?e:[e]}var Gu=N6;function D6(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function P6(e){return typeof e?.translate=="function"}function z6(e,t,r){return e&&D6(e)&&P6(e.i18n)?e.i18n.translate(t):r}var Nr="@imgly/plugin-ai-image-generation-web",U6=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo","ly.img.animateBetweenImages"],Fn="editImage",ue=`ly.img.${Fn}`,Yu=`ly.img.plugin-ai-image-generation-web.quickAction.${Fn}`,An=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Fn}`;function Sn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Fn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var R6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.editImage",!0),H(e,{en:{[`${An}`]:"Edit Image...",[`${An}.description`]:"Change image based on description",[`${An}.prompt`]:"Edit Image...",[`${Yu}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${An}.apply`]:"Change"}}),{id:ue,type:"quick",kind:"image",label:`${Yu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ue}.prompt`,"");t.TextArea(`${ue}.prompt`,{inputLabel:Sn(l,"prompt"),placeholder:Sn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ue}.separator`),r.builder.ButtonRow(`${ue}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ue}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ue}.footer.apply`,{label:Sn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await bt(g,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ue}.button`,{label:Sn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),F6=R6,Vn="swapBackground",ce=`ly.img.${Vn}`,Hu=`ly.img.plugin-ai-image-generation-web.quickAction.${Vn}`,Mn=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Vn}`;function jn(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Vn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var V6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.swapBackground",!0),H(e,{en:{[`${Mn}`]:"Swap Background...",[`${Mn}.description`]:"Change the background of the image",[`${Mn}.prompt`]:"Swap Background...",[`${Hu}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${Mn}.apply`]:"Change"}}),{id:ce,type:"quick",kind:"image",label:`${Hu}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ce}.prompt`,"");t.TextArea(`${ce}.prompt`,{inputLabel:jn(l,"prompt"),placeholder:jn(l,"prompt.placeholder")[1],...u}),t.Separator(`${ce}.separator`),r.builder.ButtonRow(`${ce}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ce}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ce}.footer.apply`,{label:jn(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await bt(g,o,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:p}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ce}.button`,{label:jn(l),icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:n})}}),B6=V6,Bn="styleTransfer",_r=`ly.img.${Bn}`,q6=`ly.img.plugin-ai-image-generation-web.quickAction.${Bn}`,W=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Bn}`;function Zu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Bn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var G6=[{id:"water",prompt:"Convert to watercolor painting."},{id:"oil",prompt:"Render in oil painting style."},{id:"charcoal",prompt:"Transform into a charcoal sketch."},{id:"pencil",prompt:"Apply pencil drawing effect."},{id:"pastel",prompt:"Make it look like a pastel artwork."},{id:"ink",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",prompt:"Stylize as a stained glass window."},{id:"japanese",prompt:"Repaint as a traditional Japanese woodblock print."}],Y6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.styleTransfer",!0),H(e,{en:{[`${W}`]:"Change Art Style",[`${W}.description`]:"Transform image into different art styles",[`${W}.water`]:"Watercolor Painting",[`${W}.oil`]:"Oil Painting",[`${W}.charcoal`]:"Charcoal Sketch",[`${W}.pencil`]:"Pencil Drawing",[`${W}.pastel`]:"Pastel Artwork",[`${W}.ink`]:"Ink Wash",[`${W}.stained-glass`]:"Stained Glass Window",[`${W}.japanese`]:"Japanese Woodblock Print"}}),{id:_r,type:"quick",kind:"image",label:`${q6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${_r}.popover`,{label:Zu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${_r}.popover.section`,{children:()=>{r.builder.Menu(`${_r}.popover.menu`,{children:()=>{G6.forEach(s=>{t.Button(`${_r}.popover.menu.${s.id}`,{label:Zu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({style:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),H6=Y6,qn="artistTransfer",Lr=`ly.img.${qn}`,Z6=`ly.img.plugin-ai-image-generation-web.quickAction.${qn}`,G=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${qn}`;function Qu(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${qn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var Q6=[{id:"van-gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],W6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.artistTransfer",!0),H(e,{en:{[`${G}`]:"Painted By",[`${G}.description`]:"Transform image in the style of famous artists",[`${G}.van-gogh`]:"Van Gogh",[`${G}.monet`]:"Monet",[`${G}.picasso`]:"Picasso",[`${G}.dali`]:"Dal\xED",[`${G}.matisse`]:"Matisse",[`${G}.warhol`]:"Warhol",[`${G}.michelangelo`]:"Michelangelo",[`${G}.da-vinci`]:"Da Vinci",[`${G}.rembrandt`]:"Rembrandt",[`${G}.mondrian`]:"Mondrian",[`${G}.kahlo`]:"Frida Kahlo",[`${G}.hokusai`]:"Hokusai"}}),{id:Lr,type:"quick",kind:"image",label:`${Z6}`,enable:Hr(),scopes:["fill/change"],render:({builder:t,experimental:r,generate:i,engine:n,close:a,providerId:o})=>{r.builder.Popover(`${Lr}.popover`,{label:Qu(o),icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Lr}.popover.section`,{children:()=>{r.builder.Menu(`${Lr}.popover.menu`,{children:()=>{Q6.forEach(s=>{t.Button(`${Lr}.popover.menu.${s.id}`,{label:Qu(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=n.block.findAllSelected(),l=await bt(c,n,{throwErrorIfSvg:!0});await i({artist:s.prompt,uri:l}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),K6=W6,Gn="createVariant",de=`ly.img.${Gn}`,Wu=`ly.img.plugin-ai-image-generation-web.quickAction.${Gn}`,$n=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Gn}`;function En(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Gn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var J6=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVariant",!0),H(e,{en:{[`${$n}`]:"Create Variant...",[`${$n}.description`]:"Create a variation of the image",[`${$n}.prompt`]:"Create Variant...",[`${Wu}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${$n}.apply`]:"Create"}}),{id:de,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Wu}`,enable:t=>{if(!Hr()(t))return!1;let[r]=t.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(r,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${de}.prompt`,"");t.TextArea(`${de}.prompt`,{inputLabel:En(l,"prompt"),placeholder:En(l,"prompt.placeholder")[1],...u}),t.Separator(`${de}.separator`),r.builder.ButtonRow(`${de}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${de}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${de}.footer.apply`,{label:En(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=o.block.getType(g),y=o.block.duplicate(g);p==="//ly.img.ubq/page"&&o.block.getChildren(y).forEach(v=>{o.block.destroy(v)}),o.block.setSelected(g,!1),o.block.setSelected(y,!0);let f=o.block.getParent(y);if(f==null)throw new Error("Parent not found");if(!(f!=null&&o.block.getType(f)==="//ly.img.ubq/track"&&o.block.isPageDurationSource(f))&&p!=="//ly.img.ubq/page"){let v=o.block.getWidth(f),k=o.block.getHeight(f),w=.02*Math.min(v,k)*1;o.block.setPositionX(y,o.block.getPositionX(y)+w),o.block.setPositionY(y,o.block.getPositionY(y)+w)}let m=await bt(y,o,{throwErrorIfSvg:!0});await a({prompt:d,uri:m},{blockIds:[y]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else t.Button(`${de}.button`,{label:En(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),X6=J6,Yn="combineImages",pe=`ly.img.${Yn}`,Ku=`ly.img.plugin-ai-image-generation-web.quickAction.${Yn}`,ra=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Yn}`;function _n(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Yn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ew=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.combineImages",!0),H(e,{en:{[`${ra}.apply`]:"Combine",[`${ra}`]:"Combine Images...",[`${ra}.prompt`]:"Image Combination Instructions",[`${Ku}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:pe,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Ku}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length<2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);if(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:t.engine})||!t.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))return!1;let a=t.engine.block.getParent(i);return!(a!=null&&t.engine.block.getType(a)==="//ly.img.ubq/track"&&t.engine.block.isPageDurationSource(a)||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${pe}.prompt`,"");t.TextArea(`${pe}.prompt`,{inputLabel:_n(l,"prompt"),placeholder:_n(l,"prompt.placeholder")[1],...u}),t.Separator(`${pe}.separator`),r.builder.ButtonRow(`${pe}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${pe}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${pe}.footer.apply`,{label:_n(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let g=o.block.findAllSelected(),p=o.block.duplicate(g[0]);g.forEach(x=>{o.block.setSelected(x,!1)}),o.block.setSelected(p,!0);let y=o.block.getParent(p);if(y==null)throw new Error("Parent not found");let f=1,m=o.block.getWidth(y),v=o.block.getHeight(y),k=.02*Math.min(m,v)*f;o.block.setPositionX(p,o.block.getPositionX(p)+k),o.block.setPositionY(p,o.block.getPositionY(p)+k);let w=await Promise.all(g.map(x=>bt(x,o,{throwErrorIfSvg:!0})));await a({prompt:d,uris:w,exportFromBlockIds:g},{blockIds:[p]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else t.Button(`${pe}.button`,{label:_n(l),icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:n})}}),tw=ew,Hn="remixPage",Ju=`ly.img.${Hn}`,rw=`ly.img.plugin-ai-image-generation-web.quickAction.${Hn}`,iw=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Hn}`;function nw(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Hn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var ow=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPage",!0),H(e,{en:{[`${iw}`]:"Turn Page into Image"}}),{id:Ju,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${rw}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Ju}.button`,{label:nw(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=await i.block.export(o),c=URL.createObjectURL(s),l=i.block.duplicate(o);i.block.getChildren(l).forEach(v=>{i.block.destroy(v)}),i.block.setSelected(o,!1);let u=i.block.getFrameWidth(o),d=i.block.getFrameHeight(o),g=i.block.getPositionX(o),p=i.block.getPositionY(o),y=i.block.createShape("rect"),f=i.block.create("graphic");i.block.setShape(f,y),i.block.appendChild(l,f),i.block.setWidth(f,u),i.block.setHeight(f,d),i.block.setPositionX(f,g),i.block.setPositionY(f,p);let m=i.block.createFill("image");i.block.setFill(f,m),i.block.setString(m,"fill/image/imageFileURI",c),i.block.setSelected(f,!0),i.scene.zoomToBlock(f),await r({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[f]}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),aw=ow,Zn="remixPageWithPrompt",ge=`ly.img.${Zn}`,Xu=`ly.img.plugin-ai-image-generation-web.quickAction.${Zn}`,ia=`ly.img.plugin-ai-image-generation-web.defaults.quickAction.${Zn}`;function Ln(e,t){let r="ly.img.plugin-ai-image-generation-web",i=`quickAction.${Zn}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var lw=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.remixPageWithPrompt",!0),H(e,{en:{[`${ia}`]:"Remix Page...",[`${ia}.prompt`]:"Remix Page Prompt",[`${Xu}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${ia}.apply`]:"Remix"}}),{id:ge,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${Xu}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r.length!==1)return!1;let i=r[0];return t.block.getType(i)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${ge}.prompt`,"");t.TextArea(`${ge}.prompt`,{inputLabel:Ln(l,"prompt"),placeholder:Ln(l,"prompt.placeholder")[1],...u}),t.Separator(`${ge}.separator`),r.builder.ButtonRow(`${ge}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${ge}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${ge}.footer.apply`,{label:Ln(l,"apply"),icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=await o.block.export(g),y=URL.createObjectURL(p),f=o.block.duplicate(g);o.block.getChildren(f).forEach(S=>{o.block.destroy(S)}),o.block.setSelected(g,!1);let m=o.block.getFrameWidth(g),v=o.block.getFrameHeight(g),k=o.block.getPositionX(g),w=o.block.getPositionY(g),x=o.block.createShape("rect"),b=o.block.create("graphic");o.block.setShape(b,x),o.block.appendChild(f,b),o.block.setWidth(b,m),o.block.setHeight(b,v),o.block.setPositionX(b,k),o.block.setPositionY(b,w);let I=o.block.createFill("image");o.block.setFill(b,I),o.block.setString(I,"fill/image/imageFileURI",y),o.block.setSelected(b,!0),o.scene.zoomToBlock(b),await a({prompt:d,uri:y},{blockIds:[b]}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else t.Button(`${ge}.button`,{label:Ln(l),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:n})}}),sw=lw,fe="ly.img.ai.image-generation";function uw(e){return{async initialize({cesdk:t}){if(t==null)return;t3(t,Nr,"1.73.0-rc.3"),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.providerSelect",!0);let r=ba.get(),i=`${Nr}.action.label`;t.ui.addIconSet(Nv,Pv),H(t,{en:{[`panel.${fe}`]:"Image Generation",[`${fe}.dock.label`]:"AI Image",[i]:"Generate Image"}});let n=r.register({type:"plugin",sceneMode:"Design",id:Nr,pluginId:Nr,label:z6(t,i,"Generate Image"),labelKey:i,meta:{panelId:fe},execute:()=>{t.ui.isPanelOpen(fe)?t.ui.closePanel(fe):t.ui.openPanel(fe)}});cw(e),r.register(F6({cesdk:t})),r.register(B6({cesdk:t})),r.register(H6({cesdk:t})),r.register(K6({cesdk:t})),r.register(X6({cesdk:t})),r.register(tw({cesdk:t})),r.register(aw({cesdk:t})),r.register(sw({cesdk:t}));let a=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,s=await Promise.all(Gu(a).map(d=>d({cesdk:t}))),c=await Promise.all(Gu(o).map(d=>d({cesdk:t})));if(!(s.length>0||c.length>0)){n();return}let l=await dv("image",{fromText:s,fromImage:c},{cesdk:t},e),u=await Ov({kind:"image",providerInitializationResults:l.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:U6});l.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:Pn})),l.panel.builderRenderFunction!=null?(t.ui.registerPanel(fe,l.panel.builderRenderFunction),i3({cesdk:t,panelId:fe})):n()}}}function cw(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var dw=uw,pw=e=>({name:Nr,version:"1.73.0-rc.3",...dw(e)}),Tc=pw;var gw=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;wt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{wt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return wt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),wt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function wt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=wt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=wt(n,t,a)}return e}var fw=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},yw=typeof global=="object"&&global&&global.Object===Object&&global,wd=yw,mw=typeof self=="object"&&self&&self.Object===Object&&self,bw=wd||mw||Function("return this")(),te=bw,hw=te.Symbol,kt=hw,kd=Object.prototype,vw=kd.hasOwnProperty,ww=kd.toString,Wr=kt?kt.toStringTag:void 0;function kw(e){var t=vw.call(e,Wr),r=e[Wr];try{e[Wr]=void 0;var i=!0}catch{}var n=ww.call(e);return i&&(t?e[Wr]=r:delete e[Wr]),n}var xw=kw,Iw=Object.prototype,Cw=Iw.toString;function Aw(e){return Cw.call(e)}var Sw=Aw,Mw="[object Null]",jw="[object Undefined]",Oc=kt?kt.toStringTag:void 0;function $w(e){return e==null?e===void 0?jw:Mw:Oc&&Oc in Object(e)?xw(e):Sw(e)}var si=$w;function Ew(e){return e!=null&&typeof e=="object"}var Fa=Ew,nX=Array.isArray;function _w(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var xd=_w,Lw="[object AsyncFunction]",Tw="[object Function]",Ow="[object GeneratorFunction]",Nw="[object Proxy]";function Dw(e){if(!xd(e))return!1;var t=si(e);return t==Tw||t==Ow||t==Lw||t==Nw}var Pw=Dw,zw=te["__core-js_shared__"],xa=zw,Nc=function(){var e=/[^.]+$/.exec(xa&&xa.keys&&xa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Uw(e){return!!Nc&&Nc in e}var Rw=Uw,Fw=Function.prototype,Vw=Fw.toString;function Bw(e){if(e!=null){try{return Vw.call(e)}catch{}try{return e+""}catch{}}return""}var Oe=Bw,qw=/[\\^$.*+?()[\]{}|]/g,Gw=/^\[object .+?Constructor\]$/,Yw=Function.prototype,Hw=Object.prototype,Zw=Yw.toString,Qw=Hw.hasOwnProperty,Ww=RegExp("^"+Zw.call(Qw).replace(qw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Kw(e){if(!xd(e)||Rw(e))return!1;var t=Pw(e)?Ww:Gw;return t.test(Oe(e))}var Jw=Kw;function Xw(e,t){return e?.[t]}var ek=Xw;function tk(e,t){var r=ek(e,t);return Jw(r)?r:void 0}var It=tk,rk=It(te,"WeakMap"),$a=rk;function ik(e,t){return e===t||e!==e&&t!==t}var nk=ik,ok=9007199254740991;function ak(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ok}var lk=ak,oX=Object.prototype,sk="[object Arguments]";function uk(e){return Fa(e)&&si(e)==sk}var Dc=uk,Id=Object.prototype,ck=Id.hasOwnProperty,dk=Id.propertyIsEnumerable,aX=Dc(function(){return arguments}())?Dc:function(e){return Fa(e)&&ck.call(e,"callee")&&!dk.call(e,"callee")},Cd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pc=Cd&&typeof module=="object"&&module&&!module.nodeType&&module,pk=Pc&&Pc.exports===Cd,zc=pk?te.Buffer:void 0,lX=zc?zc.isBuffer:void 0,gk="[object Arguments]",fk="[object Array]",yk="[object Boolean]",mk="[object Date]",bk="[object Error]",hk="[object Function]",vk="[object Map]",wk="[object Number]",kk="[object Object]",xk="[object RegExp]",Ik="[object Set]",Ck="[object String]",Ak="[object WeakMap]",Sk="[object ArrayBuffer]",Mk="[object DataView]",jk="[object Float32Array]",$k="[object Float64Array]",Ek="[object Int8Array]",_k="[object Int16Array]",Lk="[object Int32Array]",Tk="[object Uint8Array]",Ok="[object Uint8ClampedArray]",Nk="[object Uint16Array]",Dk="[object Uint32Array]",D={};D[jk]=D[$k]=D[Ek]=D[_k]=D[Lk]=D[Tk]=D[Ok]=D[Nk]=D[Dk]=!0;D[gk]=D[fk]=D[Sk]=D[yk]=D[Mk]=D[mk]=D[bk]=D[hk]=D[vk]=D[wk]=D[kk]=D[xk]=D[Ik]=D[Ck]=D[Ak]=!1;function Pk(e){return Fa(e)&&lk(e.length)&&!!D[si(e)]}var zk=Pk;function Uk(e){return function(t){return e(t)}}var Rk=Uk,Ad=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Ad&&typeof module=="object"&&module&&!module.nodeType&&module,Fk=ri&&ri.exports===Ad,Ia=Fk&&wd.process,Vk=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Ia&&Ia.binding&&Ia.binding("util")}catch{}}(),Uc=Vk,Rc=Uc&&Uc.isTypedArray,sX=Rc?Rk(Rc):zk,Bk=Object.prototype,uX=Bk.hasOwnProperty;function qk(e,t){return function(r){return e(t(r))}}var Gk=qk,cX=Gk(Object.keys,Object),Yk=Object.prototype,dX=Yk.hasOwnProperty,Hk=It(Object,"create"),ni=Hk;function Zk(){this.__data__=ni?ni(null):{},this.size=0}var Qk=Zk;function Wk(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Kk=Wk,Jk="__lodash_hash_undefined__",Xk=Object.prototype,ex=Xk.hasOwnProperty;function tx(e){var t=this.__data__;if(ni){var r=t[e];return r===Jk?void 0:r}return ex.call(t,e)?t[e]:void 0}var rx=tx,ix=Object.prototype,nx=ix.hasOwnProperty;function ox(e){var t=this.__data__;return ni?t[e]!==void 0:nx.call(t,e)}var ax=ox,lx="__lodash_hash_undefined__";function sx(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ni&&t===void 0?lx:t,this}var ux=sx;function Ct(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ct.prototype.clear=Qk;Ct.prototype.delete=Kk;Ct.prototype.get=rx;Ct.prototype.has=ax;Ct.prototype.set=ux;var Fc=Ct;function cx(){this.__data__=[],this.size=0}var dx=cx;function px(e,t){for(var r=e.length;r--;)if(nk(e[r][0],t))return r;return-1}var Wn=px,gx=Array.prototype,fx=gx.splice;function yx(e){var t=this.__data__,r=Wn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():fx.call(t,r,1),--this.size,!0}var mx=yx;function bx(e){var t=this.__data__,r=Wn(t,e);return r<0?void 0:t[r][1]}var hx=bx;function vx(e){return Wn(this.__data__,e)>-1}var wx=vx;function kx(e,t){var r=this.__data__,i=Wn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var xx=kx;function At(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}At.prototype.clear=dx;At.prototype.delete=mx;At.prototype.get=hx;At.prototype.has=wx;At.prototype.set=xx;var Kn=At,Ix=It(te,"Map"),oi=Ix;function Cx(){this.size=0,this.__data__={hash:new Fc,map:new(oi||Kn),string:new Fc}}var Ax=Cx;function Sx(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Mx=Sx;function jx(e,t){var r=e.__data__;return Mx(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Jn=jx;function $x(e){var t=Jn(this,e).delete(e);return this.size-=t?1:0,t}var Ex=$x;function _x(e){return Jn(this,e).get(e)}var Lx=_x;function Tx(e){return Jn(this,e).has(e)}var Ox=Tx;function Nx(e,t){var r=Jn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Dx=Nx;function St(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}St.prototype.clear=Ax;St.prototype.delete=Ex;St.prototype.get=Lx;St.prototype.has=Ox;St.prototype.set=Dx;var Sd=St;function Px(){this.__data__=new Kn,this.size=0}var zx=Px;function Ux(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Rx=Ux;function Fx(e){return this.__data__.get(e)}var Vx=Fx;function Bx(e){return this.__data__.has(e)}var qx=Bx,Gx=200;function Yx(e,t){var r=this.__data__;if(r instanceof Kn){var i=r.__data__;if(!oi||i.length<Gx-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sd(i)}return r.set(e,t),this.size=r.size,this}var Hx=Yx;function ui(e){var t=this.__data__=new Kn(e);this.size=t.size}ui.prototype.clear=zx;ui.prototype.delete=Rx;ui.prototype.get=Vx;ui.prototype.has=qx;ui.prototype.set=Hx;var Zx=Object.prototype,pX=Zx.propertyIsEnumerable,Qx=It(te,"DataView"),Ea=Qx,Wx=It(te,"Promise"),_a=Wx,Kx=It(te,"Set"),La=Kx,Vc="[object Map]",Jx="[object Object]",Bc="[object Promise]",qc="[object Set]",Gc="[object WeakMap]",Yc="[object DataView]",Xx=Oe(Ea),eI=Oe(oi),tI=Oe(_a),rI=Oe(La),iI=Oe($a),ht=si;(Ea&&ht(new Ea(new ArrayBuffer(1)))!=Yc||oi&&ht(new oi)!=Vc||_a&&ht(_a.resolve())!=Bc||La&&ht(new La)!=qc||$a&&ht(new $a)!=Gc)&&(ht=function(e){var t=si(e),r=t==Jx?e.constructor:void 0,i=r?Oe(r):"";if(i)switch(i){case Xx:return Yc;case eI:return Vc;case tI:return Bc;case rI:return qc;case iI:return Gc}return t});var gX=te.Uint8Array,nI="__lodash_hash_undefined__";function oI(e){return this.__data__.set(e,nI),this}var aI=oI;function lI(e){return this.__data__.has(e)}var sI=lI;function Ta(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sd;++t<r;)this.add(e[t])}Ta.prototype.add=Ta.prototype.push=aI;Ta.prototype.has=sI;var Hc=kt?kt.prototype:void 0,fX=Hc?Hc.valueOf:void 0,uI=Object.prototype,yX=uI.hasOwnProperty,cI=Object.prototype,mX=cI.hasOwnProperty,bX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),hX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),vX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Md(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function dI(e,t){let r=await Md(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function pI(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Md(i,t)}function gI(e){return e!==void 0}var fI=gI;function ci(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function di(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Qn=class jd{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new jd),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},yI=class $d{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new $d),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function mI(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function bI({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var hI=bI,Ca="ly.img.ai.temp";async function vI(e,t){return e.engine.asset.findAllSources().includes(Ca)||e.engine.asset.addLocalSource(Ca),e.engine.asset.apply(Ca,t)}function wI(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Ed(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function kI(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function xI(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Va(e){return e instanceof Error&&e.name==="AbortError"}function II(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function CI(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
145
145
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
146
146
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
147
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function wI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var kI=wI;function xI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var II=xI;function CI(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),AI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:yI(e)}))}function AI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Bc=CI,SI="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ra=SI;function MI(e,t,r){switch(t){case"image":return jI(e,r[t]);case"video":return $I(e,r[t]);case"sticker":return EI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function jI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function $I(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ra,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function EI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ra,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var _I=MI;async function LI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return TI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return OI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return NI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return DI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function OI(e,t,r){let i=t.width,n=t.height,a=await mI(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function NI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function DI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Sd=LI;function PI(e){switch(e.userFlow){case"placeholder":return UI(e);case"generation-only":return zI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function zI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Ad(),c=await Sd(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function UI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=Ad(),c=_I(s,a,o);if(i=await fI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Sd(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ua(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var RI=PI;function Fa(e){return`${e}.generating`}function FI(e){return`${e}.abort`}function VI(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(FI(d),()=>{}),y=c.global(Fa(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await RI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Bc(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;BI(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Ua(b))return;Bc(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function BI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Md=VI;async function qI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Fa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Md(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var GI=qI;function jd(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Jr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=jd(e,t.$ref),n={...Jr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Jr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Jr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Jr(e,t[n],r));return i}return t}function YI(e){return Jr(e,{...e})}function HI(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function ZI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return QI(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function QI(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=WI(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function WI(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var $d=ZI;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Ed(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function _d(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?KI(e,c,r,i,n,a,o,s):Ld(e,c,r,i,n,a,o,s);case"boolean":return Td(e,c,r,i,n,a,o,s);case"number":case"integer":return Od(e,c,r,i,n,a,o,s);case"object":return La(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return JI(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function La(e,t,r,i,n,a,o,s){let c=$d(t.schema??{},i).reduce((l,u)=>{let d=_d(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Ld(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=ci(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=di(d,m,f,t.schema.default,""),k=l(p,v),w=XI(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function KI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),{labels:y,icons:f}=Ed(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),v=ci(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=di(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Td(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=ci(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!di(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Od(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ci(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=di(d,v,m,k,k),x=l(p,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function JI(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Ed(t.schema),x=ci(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Ld,boolean:Td,integer:Od,object:La},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:ve(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>La(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=di(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function XI(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var eC=_d,tC={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function qc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Gc(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||qc(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||qc(g);n[a(l.id,g)]=y}})}});let c={...tC,...n};Object.keys(c).length>0&&ui(r.cesdk,{en:c})}function Yc(e){return typeof e.document=="function"?e.document():e.document}function Hc(e,t,r){let i=YI(e),n=jd(i,t.inputReference);if(!HI(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=$d(a,t);return{inputSchema:a,properties:o}}function Zc(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=eC(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});Md(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function rC(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Yc(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Hc(c,s,a.debug);return Gc(y,i,r,i.kind),Zc(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Yc(s)).then(g=>{let{inputSchema:y,properties:f}=Hc(g,s,a.debug);Gc(f,i,r,i.kind),u=Zc(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var iC=rC;async function nC(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return GI(e,t);case"schema":return iC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var oC=nC;function aC(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new sw(o,r)),o}return i}var lC=aC;function sC(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var uC=sC,Ia="@imgly/plugin-ai-generation",cC=`
147
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function AI(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var SI=AI;function MI(){return({engine:e})=>{let t=e.block.findAllSelected();if(t==null||t.length!==1)return!1;let[r]=t;if(!e.block.supportsFill(r)||e.block.getKind(r)==="sticker"||!["//ly.img.ubq/graphic","//ly.img.ubq/page"].includes(e.block.getType(r)))return!1;let i=e.block.getFill(r);return e.block.getType(i)==="//ly.img.ubq/fill/image"}}var jI=MI;function $I(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),EI(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:wI(e)}))}function EI(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Zc=$I,_I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Ba=_I;function LI(e,t,r){switch(t){case"image":return TI(e,r[t]);case"video":return OI(e,r[t]);case"sticker":return NI(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function TI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ba,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function OI(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Ba,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function NI(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Ba,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var DI=LI;async function PI(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return zI(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return UI(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return RI(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return FI(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function zI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function UI(e,t,r){let i=t.width,n=t.height,a=await kI(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function RI(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function FI(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var _d=PI;function VI(e){switch(e.userFlow){case"placeholder":return qI(e);case"generation-only":return BI(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function BI(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(he(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(he(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Ed(),c=await _d(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function qI(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(he(t,r))return{status:"aborted"};let s=Ed(),c=DI(s,a,o);if(i=await vI(t,c),he(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(he(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await _d(s,a,o,l.output);if(he(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),he(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Va(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function he(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var GI=VI;function qa(e){return`${e}.generating`}function YI(e){return`${e}.abort`}function HI(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(YI(d),()=>{}),y=c.global(qa(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await GI({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Zc(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;ZI(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Va(b))return;Zc(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function ZI(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Ld=HI;function Oa(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function QI({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(qa(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Ld(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var WI=QI;function Td(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xr(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Td(e,t.$ref),n={...Xr(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xr(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xr(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xr(e,t[n],r));return i}return t}function KI(e){return Xr(e,{...e})}function JI(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function XI(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return eC(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function eC(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=tC(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function tC(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Od=XI;function ve(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Nd(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Dd(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?rC(e,c,r,i,n,a,o,s):Pd(e,c,r,i,n,a,o,s);case"boolean":return zd(e,c,r,i,n,a,o,s);case"number":case"integer":return Ud(e,c,r,i,n,a,o,s);case"object":return Na(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return iC(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Na(e,t,r,i,n,a,o,s){let c=Od(t.schema??{},i).reduce((l,u)=>{let d=Dd(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Pd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=ve(t,r,o,"placeholder"),f=di(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=pi(d,m,f,t.schema.default,""),k=l(g,v),w=nC(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function rC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),{labels:y,icons:f}=Nd(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:ve(t,r,o,I),icon:f[I]})),v=di(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function zd(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=di(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pi(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Ud(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=di(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pi(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function iC(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=ve(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Nd(t.schema),x=di(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Pd,boolean:zd,integer:Ud,object:Na},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:ve(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>Na(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=pi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function nC(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var oC=Dd,aC={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Qc(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Wc(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Qc(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Qc(p);n[a(l.id,p)]=y}})}});let c={...aC,...n};Object.keys(c).length>0&&ci(r.cesdk,{en:c})}function Kc(e){return typeof e.document=="function"?e.document():e.document}function Jc(e,t,r){let i=KI(e),n=Td(i,t.inputReference);if(!JI(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Od(a,t);return{inputSchema:a,properties:o}}function Xc(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=oC(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Ld(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function lC(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Kc(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=Jc(c,s,a.debug);return Wc(y,i,r,i.kind),Xc(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Kc(s)).then(p=>{let{inputSchema:y,properties:f}=Jc(p,s,a.debug);Wc(f,i,r,i.kind),u=Xc(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var sC=lC;async function uC(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return WI(e,t);case"schema":return sC(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var cC=uC;function dC(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new gw(o,r)),o}return i}var pC=dC;function gC(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var fC=gC,Aa="@imgly/plugin-ai-generation",yC=`
148
148
  <svg>
149
149
  <symbol
150
150
  fill="none"
@@ -162,7 +162,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
162
162
  fill="none"
163
163
  xmlns="http://www.w3.org/2000/svg"
164
164
  viewBox="0 0 24 24"
165
- id="${Ia}/image"
165
+ id="${Aa}/image"
166
166
  >
167
167
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
168
168
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -174,7 +174,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
174
174
  fill="none"
175
175
  xmlns="http://www.w3.org/2000/svg"
176
176
  viewBox="0 0 24 24"
177
- id="${Ia}/video"
177
+ id="${Aa}/video"
178
178
  >
179
179
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
180
180
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -185,7 +185,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
185
185
  fill="none"
186
186
  xmlns="http://www.w3.org/2000/svg"
187
187
  viewBox="0 0 24 24"
188
- id="${Ia}/audio"
188
+ id="${Aa}/audio"
189
189
  >
190
190
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
191
191
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -205,11 +205,11 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
205
205
 
206
206
  </symbol>
207
207
  </svg>
208
- `,dC=cC;function pC(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Nd(2e3),await gC(t,e,r)):i(t,r)}async function gC(e,t,r){switch(t.kind){case"image":return fC(e,t,r);case"video":return yC(e,t,r);case"text":return mC(e,t,r);case"audio":return hC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function fC(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await lI(s,r),l=await aI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
- `,"+")}`}}async function yC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function mC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Wr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Wr(n,o)}else"customPrompt"in e?a=Wr(n,"custom"):a=Wr(n,"improved");else a=Wr(n,"generated");return bC(a,r.abortSignal)}async function*bC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Nd(100)}return{kind:"text",text:e}}function Wr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function hC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:vC(220,i),duration:i,thumbnailUrl:void 0}}function vC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return wC(i,44100)}function wC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Nd(e){return new Promise(t=>{setTimeout(t,e)})}var kC=pC,xC="USER_CANCEL";function IC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=dI([...e.provider.output.middleware??[],...r?.middlewares??[],gI({enable:r?.debug}),kC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:bI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ua(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===xC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var CC=IC;async function AC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Hn.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=lC(a),s=uC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=CC({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await oC(a,c);hI(r.cesdk,"@imgly/plugin-ai-generation",dC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return cI.get().register(u),u}var Ca=AC;function SC(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new uw(n,r,i);return r.engine.asset.addSource(a),a.id}var MC=SC;function Xr(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function jC(e,t,r,i){let{cesdk:n}=r;ui(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ca(e,u,r,i)));o.push(...l),a=EC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ca(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ca(e,d,r,i)));o.push(...u),a=$C({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=MC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(uI)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function $C({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Xr(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Xr(e,"fromText.label"),icon:f.value!=="fromText"&&Qc(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Xr(e,"fromImage.label"),icon:f.value!=="fromImage"&&Qc(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function EC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Xr(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Qc(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fa(r.id),!1).value)}var _C=jC,LC=typeof global=="object"&&global&&global.Object===Object&&global,Dd=LC,TC=typeof self=="object"&&self&&self.Object===Object&&self,OC=Dd||TC||Function("return this")(),re=OC,NC=re.Symbol,xt=NC,Pd=Object.prototype,DC=Pd.hasOwnProperty,PC=Pd.toString,Kr=xt?xt.toStringTag:void 0;function zC(e){var t=DC.call(e,Kr),r=e[Kr];try{e[Kr]=void 0;var i=!0}catch{}var n=PC.call(e);return i&&(t?e[Kr]=r:delete e[Kr]),n}var UC=zC,RC=Object.prototype,FC=RC.toString;function VC(e){return FC.call(e)}var BC=VC,qC="[object Null]",GC="[object Undefined]",Wc=xt?xt.toStringTag:void 0;function YC(e){return e==null?e===void 0?GC:qC:Wc&&Wc in Object(e)?UC(e):BC(e)}var pi=YC;function HC(e){return e!=null&&typeof e=="object"}var Va=HC,yX=Array.isArray;function ZC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zd=ZC,QC="[object AsyncFunction]",WC="[object Function]",KC="[object GeneratorFunction]",JC="[object Proxy]";function XC(e){if(!zd(e))return!1;var t=pi(e);return t==WC||t==KC||t==QC||t==JC}var eA=XC,tA=re["__core-js_shared__"],Aa=tA,Kc=function(){var e=/[^.]+$/.exec(Aa&&Aa.keys&&Aa.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rA(e){return!!Kc&&Kc in e}var iA=rA,nA=Function.prototype,oA=nA.toString;function aA(e){if(e!=null){try{return oA.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=aA,lA=/[\\^$.*+?()[\]{}|]/g,sA=/^\[object .+?Constructor\]$/,uA=Function.prototype,cA=Object.prototype,dA=uA.toString,pA=cA.hasOwnProperty,gA=RegExp("^"+dA.call(pA).replace(lA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fA(e){if(!zd(e)||iA(e))return!1;var t=eA(e)?gA:sA;return t.test(Ne(e))}var yA=fA;function mA(e,t){return e?.[t]}var bA=mA;function hA(e,t){var r=bA(e,t);return yA(r)?r:void 0}var Mt=hA,vA=Mt(re,"WeakMap"),Ta=vA;function wA(e,t){return e===t||e!==e&&t!==t}var kA=wA,xA=9007199254740991;function IA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xA}var CA=IA,mX=Object.prototype,AA="[object Arguments]";function SA(e){return Va(e)&&pi(e)==AA}var Jc=SA,Ud=Object.prototype,MA=Ud.hasOwnProperty,jA=Ud.propertyIsEnumerable,bX=Jc(function(){return arguments}())?Jc:function(e){return Va(e)&&MA.call(e,"callee")&&!jA.call(e,"callee")},Rd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xc=Rd&&typeof module=="object"&&module&&!module.nodeType&&module,$A=Xc&&Xc.exports===Rd,ed=$A?re.Buffer:void 0,hX=ed?ed.isBuffer:void 0,EA="[object Arguments]",_A="[object Array]",LA="[object Boolean]",TA="[object Date]",OA="[object Error]",NA="[object Function]",DA="[object Map]",PA="[object Number]",zA="[object Object]",UA="[object RegExp]",RA="[object Set]",FA="[object String]",VA="[object WeakMap]",BA="[object ArrayBuffer]",qA="[object DataView]",GA="[object Float32Array]",YA="[object Float64Array]",HA="[object Int8Array]",ZA="[object Int16Array]",QA="[object Int32Array]",WA="[object Uint8Array]",KA="[object Uint8ClampedArray]",JA="[object Uint16Array]",XA="[object Uint32Array]",P={};P[GA]=P[YA]=P[HA]=P[ZA]=P[QA]=P[WA]=P[KA]=P[JA]=P[XA]=!0;P[EA]=P[_A]=P[BA]=P[LA]=P[qA]=P[TA]=P[OA]=P[NA]=P[DA]=P[PA]=P[zA]=P[UA]=P[RA]=P[FA]=P[VA]=!1;function eS(e){return Va(e)&&CA(e.length)&&!!P[pi(e)]}var tS=eS;function rS(e){return function(t){return e(t)}}var iS=rS,Fd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ri=Fd&&typeof module=="object"&&module&&!module.nodeType&&module,nS=ri&&ri.exports===Fd,Sa=nS&&Dd.process,oS=function(){try{var e=ri&&ri.require&&ri.require("util").types;return e||Sa&&Sa.binding&&Sa.binding("util")}catch{}}(),td=oS,rd=td&&td.isTypedArray,vX=rd?iS(rd):tS,aS=Object.prototype,wX=aS.hasOwnProperty;function lS(e,t){return function(r){return e(t(r))}}var sS=lS,kX=sS(Object.keys,Object),uS=Object.prototype,xX=uS.hasOwnProperty,cS=Mt(Object,"create"),oi=cS;function dS(){this.__data__=oi?oi(null):{},this.size=0}var pS=dS;function gS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fS=gS,yS="__lodash_hash_undefined__",mS=Object.prototype,bS=mS.hasOwnProperty;function hS(e){var t=this.__data__;if(oi){var r=t[e];return r===yS?void 0:r}return bS.call(t,e)?t[e]:void 0}var vS=hS,wS=Object.prototype,kS=wS.hasOwnProperty;function xS(e){var t=this.__data__;return oi?t[e]!==void 0:kS.call(t,e)}var IS=xS,CS="__lodash_hash_undefined__";function AS(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=oi&&t===void 0?CS:t,this}var SS=AS;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=pS;jt.prototype.delete=fS;jt.prototype.get=vS;jt.prototype.has=IS;jt.prototype.set=SS;var id=jt;function MS(){this.__data__=[],this.size=0}var jS=MS;function $S(e,t){for(var r=e.length;r--;)if(kA(e[r][0],t))return r;return-1}var Kn=$S,ES=Array.prototype,_S=ES.splice;function LS(e){var t=this.__data__,r=Kn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():_S.call(t,r,1),--this.size,!0}var TS=LS;function OS(e){var t=this.__data__,r=Kn(t,e);return r<0?void 0:t[r][1]}var NS=OS;function DS(e){return Kn(this.__data__,e)>-1}var PS=DS;function zS(e,t){var r=this.__data__,i=Kn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var US=zS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=jS;$t.prototype.delete=TS;$t.prototype.get=NS;$t.prototype.has=PS;$t.prototype.set=US;var Jn=$t,RS=Mt(re,"Map"),ai=RS;function FS(){this.size=0,this.__data__={hash:new id,map:new(ai||Jn),string:new id}}var VS=FS;function BS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qS=BS;function GS(e,t){var r=e.__data__;return qS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Xn=GS;function YS(e){var t=Xn(this,e).delete(e);return this.size-=t?1:0,t}var HS=YS;function ZS(e){return Xn(this,e).get(e)}var QS=ZS;function WS(e){return Xn(this,e).has(e)}var KS=WS;function JS(e,t){var r=Xn(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var XS=JS;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=VS;Et.prototype.delete=HS;Et.prototype.get=QS;Et.prototype.has=KS;Et.prototype.set=XS;var Vd=Et;function eM(){this.__data__=new Jn,this.size=0}var tM=eM;function rM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var iM=rM;function nM(e){return this.__data__.get(e)}var oM=nM;function aM(e){return this.__data__.has(e)}var lM=aM,sM=200;function uM(e,t){var r=this.__data__;if(r instanceof Jn){var i=r.__data__;if(!ai||i.length<sM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vd(i)}return r.set(e,t),this.size=r.size,this}var cM=uM;function gi(e){var t=this.__data__=new Jn(e);this.size=t.size}gi.prototype.clear=tM;gi.prototype.delete=iM;gi.prototype.get=oM;gi.prototype.has=lM;gi.prototype.set=cM;var dM=Object.prototype,IX=dM.propertyIsEnumerable,pM=Mt(re,"DataView"),Oa=pM,gM=Mt(re,"Promise"),Na=gM,fM=Mt(re,"Set"),Da=fM,nd="[object Map]",yM="[object Object]",od="[object Promise]",ad="[object Set]",ld="[object WeakMap]",sd="[object DataView]",mM=Ne(Oa),bM=Ne(ai),hM=Ne(Na),vM=Ne(Da),wM=Ne(Ta),vt=pi;(Oa&&vt(new Oa(new ArrayBuffer(1)))!=sd||ai&&vt(new ai)!=nd||Na&&vt(Na.resolve())!=od||Da&&vt(new Da)!=ad||Ta&&vt(new Ta)!=ld)&&(vt=function(e){var t=pi(e),r=t==yM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case mM:return sd;case bM:return nd;case hM:return od;case vM:return ad;case wM:return ld}return t});var CX=re.Uint8Array,kM="__lodash_hash_undefined__";function xM(e){return this.__data__.set(e,kM),this}var IM=xM;function CM(e){return this.__data__.has(e)}var AM=CM;function Pa(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vd;++t<r;)this.add(e[t])}Pa.prototype.add=Pa.prototype.push=IM;Pa.prototype.has=AM;var ud=xt?xt.prototype:void 0,AX=ud?ud.valueOf:void 0,SM=Object.prototype,SX=SM.hasOwnProperty,MM=Object.prototype,MX=MM.hasOwnProperty,jX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$X=new RegExp(/[A-Fa-f0-9]{1}/,"g"),EX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function jM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Bd(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return jM(i,t)}function $M(e){return e==null?[]:Array.isArray(e)?e:[e]}var cd=$M;function EM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function _M(e){return typeof e?.translate=="function"}function LM(e,t,r){return e&&EM(e)&&_M(e.i18n)?e.i18n.translate(t):r}var ei="@imgly/plugin-ai-video-generation-web";var eo="createVideo",dd=`ly.img.${eo}`,TM=`ly.img.plugin-ai-video-generation-web.quickAction.${eo}`,pd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${eo}`;function OM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${eo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var NM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ui(e,{en:{[`${pd}`]:"Create Video...",[`${pd}.description`]:"Create a video from the image"}}),{id:dd,type:"quick",kind:"image",label:`${TM}`,enable:II(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${dd}.button`,{label:OM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Bd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),DM=NM,to="animateBetweenImages",gd=`ly.img.${to}`,PM=`ly.img.plugin-ai-video-generation-web.quickAction.${to}`,fd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${to}`;function zM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${to}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var UM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ui(e,{en:{[`${fd}`]:"Animate Between Images...",[`${fd}.description`]:"Create a video transitioning between two images"}}),{id:gd,type:"quick",kind:"image",label:`${PM}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${gd}.button`,{label:zM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Bd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),RM=UM,be="ly.img.ai.video-generation";function FM(e){return{async initialize({cesdk:t}){if(t==null)return;vI(t,ei,"1.73.0-rc.1"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ei}.action.label`;ui(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),VM(e);let i=Hn.get().register({type:"plugin",sceneMode:"Video",id:ei,pluginId:ei,label:LM(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(cd(n).map(l=>l({cesdk:t}))),s=await Promise.all(cd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await _C("video",{fromText:o,fromImage:s},{cesdk:t},e);Hn.get().register(DM({cesdk:t})),Hn.get().register(RM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),kI({cesdk:t,panelId:be})):i()}}}function VM(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var BM=FM,qM=e=>({name:ei,version:"1.73.0-rc.1",...BM(e)}),qd=qM;var GM=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Tt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Tt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Tt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Tt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Tt(n,t,a)}return e}var YM=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},HM=typeof global=="object"&&global&&global.Object===Object&&global,Ep=HM,ZM=typeof self=="object"&&self&&self.Object===Object&&self,QM=Ep||ZM||Function("return this")(),ie=QM,WM=ie.Symbol,Ot=WM,_p=Object.prototype,KM=_p.hasOwnProperty,JM=_p.toString,fi=Ot?Ot.toStringTag:void 0;function XM(e){var t=KM.call(e,fi),r=e[fi];try{e[fi]=void 0;var i=!0}catch{}var n=JM.call(e);return i&&(t?e[fi]=r:delete e[fi]),n}var ej=XM,tj=Object.prototype,rj=tj.toString;function ij(e){return rj.call(e)}var nj=ij,oj="[object Null]",aj="[object Undefined]",Gd=Ot?Ot.toStringTag:void 0;function lj(e){return e==null?e===void 0?aj:oj:Gd&&Gd in Object(e)?ej(e):nj(e)}var Ai=lj;function sj(e){return e!=null&&typeof e=="object"}var ll=sj,OX=Array.isArray;function uj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Lp=uj,cj="[object AsyncFunction]",dj="[object Function]",pj="[object GeneratorFunction]",gj="[object Proxy]";function fj(e){if(!Lp(e))return!1;var t=Ai(e);return t==dj||t==pj||t==cj||t==gj}var yj=fj,mj=ie["__core-js_shared__"],Ba=mj,Yd=function(){var e=/[^.]+$/.exec(Ba&&Ba.keys&&Ba.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function bj(e){return!!Yd&&Yd in e}var hj=bj,vj=Function.prototype,wj=vj.toString;function kj(e){if(e!=null){try{return wj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=kj,xj=/[\\^$.*+?()[\]{}|]/g,Ij=/^\[object .+?Constructor\]$/,Cj=Function.prototype,Aj=Object.prototype,Sj=Cj.toString,Mj=Aj.hasOwnProperty,jj=RegExp("^"+Sj.call(Mj).replace(xj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $j(e){if(!Lp(e)||hj(e))return!1;var t=yj(e)?jj:Ij;return t.test(ze(e))}var Ej=$j;function _j(e,t){return e?.[t]}var Lj=_j;function Tj(e,t){var r=Lj(e,t);return Ej(r)?r:void 0}var Dt=Tj,Oj=Dt(ie,"WeakMap"),Wa=Oj;function Nj(e,t){return e===t||e!==e&&t!==t}var Dj=Nj,Pj=9007199254740991;function zj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Pj}var Uj=zj,NX=Object.prototype,Rj="[object Arguments]";function Fj(e){return ll(e)&&Ai(e)==Rj}var Hd=Fj,Tp=Object.prototype,Vj=Tp.hasOwnProperty,Bj=Tp.propertyIsEnumerable,DX=Hd(function(){return arguments}())?Hd:function(e){return ll(e)&&Vj.call(e,"callee")&&!Bj.call(e,"callee")},Op=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zd=Op&&typeof module=="object"&&module&&!module.nodeType&&module,qj=Zd&&Zd.exports===Op,Qd=qj?ie.Buffer:void 0,PX=Qd?Qd.isBuffer:void 0,Gj="[object Arguments]",Yj="[object Array]",Hj="[object Boolean]",Zj="[object Date]",Qj="[object Error]",Wj="[object Function]",Kj="[object Map]",Jj="[object Number]",Xj="[object Object]",e$="[object RegExp]",t$="[object Set]",r$="[object String]",i$="[object WeakMap]",n$="[object ArrayBuffer]",o$="[object DataView]",a$="[object Float32Array]",l$="[object Float64Array]",s$="[object Int8Array]",u$="[object Int16Array]",c$="[object Int32Array]",d$="[object Uint8Array]",p$="[object Uint8ClampedArray]",g$="[object Uint16Array]",f$="[object Uint32Array]",z={};z[a$]=z[l$]=z[s$]=z[u$]=z[c$]=z[d$]=z[p$]=z[g$]=z[f$]=!0;z[Gj]=z[Yj]=z[n$]=z[Hj]=z[o$]=z[Zj]=z[Qj]=z[Wj]=z[Kj]=z[Jj]=z[Xj]=z[e$]=z[t$]=z[r$]=z[i$]=!1;function y$(e){return ll(e)&&Uj(e.length)&&!!z[Ai(e)]}var m$=y$;function b$(e){return function(t){return e(t)}}var h$=b$,Np=typeof exports=="object"&&exports&&!exports.nodeType&&exports,vi=Np&&typeof module=="object"&&module&&!module.nodeType&&module,v$=vi&&vi.exports===Np,qa=v$&&Ep.process,w$=function(){try{var e=vi&&vi.require&&vi.require("util").types;return e||qa&&qa.binding&&qa.binding("util")}catch{}}(),Wd=w$,Kd=Wd&&Wd.isTypedArray,zX=Kd?h$(Kd):m$,k$=Object.prototype,UX=k$.hasOwnProperty;function x$(e,t){return function(r){return e(t(r))}}var I$=x$,RX=I$(Object.keys,Object),C$=Object.prototype,FX=C$.hasOwnProperty,A$=Dt(Object,"create"),ki=A$;function S$(){this.__data__=ki?ki(null):{},this.size=0}var M$=S$;function j$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var $$=j$,E$="__lodash_hash_undefined__",_$=Object.prototype,L$=_$.hasOwnProperty;function T$(e){var t=this.__data__;if(ki){var r=t[e];return r===E$?void 0:r}return L$.call(t,e)?t[e]:void 0}var O$=T$,N$=Object.prototype,D$=N$.hasOwnProperty;function P$(e){var t=this.__data__;return ki?t[e]!==void 0:D$.call(t,e)}var z$=P$,U$="__lodash_hash_undefined__";function R$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ki&&t===void 0?U$:t,this}var F$=R$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=M$;Pt.prototype.delete=$$;Pt.prototype.get=O$;Pt.prototype.has=z$;Pt.prototype.set=F$;var Jd=Pt;function V$(){this.__data__=[],this.size=0}var B$=V$;function q$(e,t){for(var r=e.length;r--;)if(Dj(e[r][0],t))return r;return-1}var ro=q$,G$=Array.prototype,Y$=G$.splice;function H$(e){var t=this.__data__,r=ro(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Y$.call(t,r,1),--this.size,!0}var Z$=H$;function Q$(e){var t=this.__data__,r=ro(t,e);return r<0?void 0:t[r][1]}var W$=Q$;function K$(e){return ro(this.__data__,e)>-1}var J$=K$;function X$(e,t){var r=this.__data__,i=ro(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var eE=X$;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=B$;zt.prototype.delete=Z$;zt.prototype.get=W$;zt.prototype.has=J$;zt.prototype.set=eE;var io=zt,tE=Dt(ie,"Map"),xi=tE;function rE(){this.size=0,this.__data__={hash:new Jd,map:new(xi||io),string:new Jd}}var iE=rE;function nE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var oE=nE;function aE(e,t){var r=e.__data__;return oE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var no=aE;function lE(e){var t=no(this,e).delete(e);return this.size-=t?1:0,t}var sE=lE;function uE(e){return no(this,e).get(e)}var cE=uE;function dE(e){return no(this,e).has(e)}var pE=dE;function gE(e,t){var r=no(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var fE=gE;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=iE;Ut.prototype.delete=sE;Ut.prototype.get=cE;Ut.prototype.has=pE;Ut.prototype.set=fE;var Dp=Ut;function yE(){this.__data__=new io,this.size=0}var mE=yE;function bE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var hE=bE;function vE(e){return this.__data__.get(e)}var wE=vE;function kE(e){return this.__data__.has(e)}var xE=kE,IE=200;function CE(e,t){var r=this.__data__;if(r instanceof io){var i=r.__data__;if(!xi||i.length<IE-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Dp(i)}return r.set(e,t),this.size=r.size,this}var AE=CE;function Si(e){var t=this.__data__=new io(e);this.size=t.size}Si.prototype.clear=mE;Si.prototype.delete=hE;Si.prototype.get=wE;Si.prototype.has=xE;Si.prototype.set=AE;var SE=Object.prototype,VX=SE.propertyIsEnumerable,ME=Dt(ie,"DataView"),Ka=ME,jE=Dt(ie,"Promise"),Ja=jE,$E=Dt(ie,"Set"),Xa=$E,Xd="[object Map]",EE="[object Object]",ep="[object Promise]",tp="[object Set]",rp="[object WeakMap]",ip="[object DataView]",_E=ze(Ka),LE=ze(xi),TE=ze(Ja),OE=ze(Xa),NE=ze(Wa),_t=Ai;(Ka&&_t(new Ka(new ArrayBuffer(1)))!=ip||xi&&_t(new xi)!=Xd||Ja&&_t(Ja.resolve())!=ep||Xa&&_t(new Xa)!=tp||Wa&&_t(new Wa)!=rp)&&(_t=function(e){var t=Ai(e),r=t==EE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case _E:return ip;case LE:return Xd;case TE:return ep;case OE:return tp;case NE:return rp}return t});var BX=ie.Uint8Array,DE="__lodash_hash_undefined__";function PE(e){return this.__data__.set(e,DE),this}var zE=PE;function UE(e){return this.__data__.has(e)}var RE=UE;function el(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Dp;++t<r;)this.add(e[t])}el.prototype.add=el.prototype.push=zE;el.prototype.has=RE;var np=Ot?Ot.prototype:void 0,qX=np?np.valueOf:void 0,FE=Object.prototype,GX=FE.hasOwnProperty,VE=Object.prototype,YX=VE.hasOwnProperty,HX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),ZX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),QX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Pp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function BE(e,t){let r=await Pp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function qE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Pp(i,t)}function GE(e){return e!==void 0}var YE=GE;function sl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Mi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function ji(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var zp=class Up{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Up),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},HE=class Rp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Rp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function ZE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function QE({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var WE=QE,Ga="ly.img.ai.temp";async function KE(e,t){return e.engine.asset.findAllSources().includes(Ga)||e.engine.asset.addLocalSource(Ga),e.engine.asset.apply(Ga,t)}function JE(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Fp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function XE(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function e_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function ul(e){return e instanceof Error&&e.name==="AbortError"}function t_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function r_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
208
+ `,mC=yC;function bC(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Rd(2e3),await hC(t,e,r)):i(t,r)}async function hC(e,t,r){switch(t.kind){case"image":return vC(e,t,r);case"video":return wC(e,t,r);case"text":return kC(e,t,r);case"audio":return IC(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function vC(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await pI(s,r),l=await dI(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
209
+ `,"+")}`}}async function wC(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function kC(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Kr(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Kr(n,o)}else"customPrompt"in e?a=Kr(n,"custom"):a=Kr(n,"improved");else a=Kr(n,"generated");return xC(a,r.abortSignal)}async function*xC(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Rd(100)}return{kind:"text",text:e}}function Kr(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function IC(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:CC(220,i),duration:i,thumbnailUrl:void 0}}function CC(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return AC(i,44100)}function AC(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Rd(e){return new Promise(t=>{setTimeout(t,e)})}var SC=bC,MC="USER_CANCEL";function jC(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=mI([...e.provider.output.middleware??[],...r?.middlewares??[],hI({enable:r?.debug}),SC({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:xI(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Va(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===MC?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var $C=jC;async function EC(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Qn.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=pC(a),s=fC(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=$C({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await cC(a,c);II(r.cesdk,"@imgly/plugin-ai-generation",mC);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return yI.get().register(u),u}var Sa=EC;function _C(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new fw(n,r,i);return r.engine.asset.addSource(a),a.id}var LC=_C;function ei(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function TC(e,t,r,i){let{cesdk:n}=r;ci(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Sa(e,u,r,i)));o.push(...l),a=NC({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Sa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Sa(e,d,r,i)));o.push(...u),a=OC({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=LC({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fI)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function OC({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Oa(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:ei(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:ei(e,"fromText.label"),icon:f.value!=="fromText"&&ed(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:ei(e,"fromImage.label"),icon:f.value!=="fromImage"&&ed(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function NC({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:Oa(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:ei(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function ed(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(qa(r.id),!1).value)}var DC=TC,PC=typeof global=="object"&&global&&global.Object===Object&&global,Fd=PC,zC=typeof self=="object"&&self&&self.Object===Object&&self,UC=Fd||zC||Function("return this")(),re=UC,RC=re.Symbol,xt=RC,Vd=Object.prototype,FC=Vd.hasOwnProperty,VC=Vd.toString,Jr=xt?xt.toStringTag:void 0;function BC(e){var t=FC.call(e,Jr),r=e[Jr];try{e[Jr]=void 0;var i=!0}catch{}var n=VC.call(e);return i&&(t?e[Jr]=r:delete e[Jr]),n}var qC=BC,GC=Object.prototype,YC=GC.toString;function HC(e){return YC.call(e)}var ZC=HC,QC="[object Null]",WC="[object Undefined]",td=xt?xt.toStringTag:void 0;function KC(e){return e==null?e===void 0?WC:QC:td&&td in Object(e)?qC(e):ZC(e)}var gi=KC;function JC(e){return e!=null&&typeof e=="object"}var Ga=JC,wX=Array.isArray;function XC(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bd=XC,eA="[object AsyncFunction]",tA="[object Function]",rA="[object GeneratorFunction]",iA="[object Proxy]";function nA(e){if(!Bd(e))return!1;var t=gi(e);return t==tA||t==rA||t==eA||t==iA}var oA=nA,aA=re["__core-js_shared__"],Ma=aA,rd=function(){var e=/[^.]+$/.exec(Ma&&Ma.keys&&Ma.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function lA(e){return!!rd&&rd in e}var sA=lA,uA=Function.prototype,cA=uA.toString;function dA(e){if(e!=null){try{return cA.call(e)}catch{}try{return e+""}catch{}}return""}var Ne=dA,pA=/[\\^$.*+?()[\]{}|]/g,gA=/^\[object .+?Constructor\]$/,fA=Function.prototype,yA=Object.prototype,mA=fA.toString,bA=yA.hasOwnProperty,hA=RegExp("^"+mA.call(bA).replace(pA,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function vA(e){if(!Bd(e)||sA(e))return!1;var t=oA(e)?hA:gA;return t.test(Ne(e))}var wA=vA;function kA(e,t){return e?.[t]}var xA=kA;function IA(e,t){var r=xA(e,t);return wA(r)?r:void 0}var Mt=IA,CA=Mt(re,"WeakMap"),Da=CA;function AA(e,t){return e===t||e!==e&&t!==t}var SA=AA,MA=9007199254740991;function jA(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=MA}var $A=jA,kX=Object.prototype,EA="[object Arguments]";function _A(e){return Ga(e)&&gi(e)==EA}var id=_A,qd=Object.prototype,LA=qd.hasOwnProperty,TA=qd.propertyIsEnumerable,xX=id(function(){return arguments}())?id:function(e){return Ga(e)&&LA.call(e,"callee")&&!TA.call(e,"callee")},Gd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nd=Gd&&typeof module=="object"&&module&&!module.nodeType&&module,OA=nd&&nd.exports===Gd,od=OA?re.Buffer:void 0,IX=od?od.isBuffer:void 0,NA="[object Arguments]",DA="[object Array]",PA="[object Boolean]",zA="[object Date]",UA="[object Error]",RA="[object Function]",FA="[object Map]",VA="[object Number]",BA="[object Object]",qA="[object RegExp]",GA="[object Set]",YA="[object String]",HA="[object WeakMap]",ZA="[object ArrayBuffer]",QA="[object DataView]",WA="[object Float32Array]",KA="[object Float64Array]",JA="[object Int8Array]",XA="[object Int16Array]",eS="[object Int32Array]",tS="[object Uint8Array]",rS="[object Uint8ClampedArray]",iS="[object Uint16Array]",nS="[object Uint32Array]",P={};P[WA]=P[KA]=P[JA]=P[XA]=P[eS]=P[tS]=P[rS]=P[iS]=P[nS]=!0;P[NA]=P[DA]=P[ZA]=P[PA]=P[QA]=P[zA]=P[UA]=P[RA]=P[FA]=P[VA]=P[BA]=P[qA]=P[GA]=P[YA]=P[HA]=!1;function oS(e){return Ga(e)&&$A(e.length)&&!!P[gi(e)]}var aS=oS;function lS(e){return function(t){return e(t)}}var sS=lS,Yd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ii=Yd&&typeof module=="object"&&module&&!module.nodeType&&module,uS=ii&&ii.exports===Yd,ja=uS&&Fd.process,cS=function(){try{var e=ii&&ii.require&&ii.require("util").types;return e||ja&&ja.binding&&ja.binding("util")}catch{}}(),ad=cS,ld=ad&&ad.isTypedArray,CX=ld?sS(ld):aS,dS=Object.prototype,AX=dS.hasOwnProperty;function pS(e,t){return function(r){return e(t(r))}}var gS=pS,SX=gS(Object.keys,Object),fS=Object.prototype,MX=fS.hasOwnProperty,yS=Mt(Object,"create"),ai=yS;function mS(){this.__data__=ai?ai(null):{},this.size=0}var bS=mS;function hS(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var vS=hS,wS="__lodash_hash_undefined__",kS=Object.prototype,xS=kS.hasOwnProperty;function IS(e){var t=this.__data__;if(ai){var r=t[e];return r===wS?void 0:r}return xS.call(t,e)?t[e]:void 0}var CS=IS,AS=Object.prototype,SS=AS.hasOwnProperty;function MS(e){var t=this.__data__;return ai?t[e]!==void 0:SS.call(t,e)}var jS=MS,$S="__lodash_hash_undefined__";function ES(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ai&&t===void 0?$S:t,this}var _S=ES;function jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}jt.prototype.clear=bS;jt.prototype.delete=vS;jt.prototype.get=CS;jt.prototype.has=jS;jt.prototype.set=_S;var sd=jt;function LS(){this.__data__=[],this.size=0}var TS=LS;function OS(e,t){for(var r=e.length;r--;)if(SA(e[r][0],t))return r;return-1}var Xn=OS,NS=Array.prototype,DS=NS.splice;function PS(e){var t=this.__data__,r=Xn(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():DS.call(t,r,1),--this.size,!0}var zS=PS;function US(e){var t=this.__data__,r=Xn(t,e);return r<0?void 0:t[r][1]}var RS=US;function FS(e){return Xn(this.__data__,e)>-1}var VS=FS;function BS(e,t){var r=this.__data__,i=Xn(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var qS=BS;function $t(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}$t.prototype.clear=TS;$t.prototype.delete=zS;$t.prototype.get=RS;$t.prototype.has=VS;$t.prototype.set=qS;var eo=$t,GS=Mt(re,"Map"),li=GS;function YS(){this.size=0,this.__data__={hash:new sd,map:new(li||eo),string:new sd}}var HS=YS;function ZS(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var QS=ZS;function WS(e,t){var r=e.__data__;return QS(t)?r[typeof t=="string"?"string":"hash"]:r.map}var to=WS;function KS(e){var t=to(this,e).delete(e);return this.size-=t?1:0,t}var JS=KS;function XS(e){return to(this,e).get(e)}var eM=XS;function tM(e){return to(this,e).has(e)}var rM=tM;function iM(e,t){var r=to(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var nM=iM;function Et(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Et.prototype.clear=HS;Et.prototype.delete=JS;Et.prototype.get=eM;Et.prototype.has=rM;Et.prototype.set=nM;var Hd=Et;function oM(){this.__data__=new eo,this.size=0}var aM=oM;function lM(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var sM=lM;function uM(e){return this.__data__.get(e)}var cM=uM;function dM(e){return this.__data__.has(e)}var pM=dM,gM=200;function fM(e,t){var r=this.__data__;if(r instanceof eo){var i=r.__data__;if(!li||i.length<gM-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Hd(i)}return r.set(e,t),this.size=r.size,this}var yM=fM;function fi(e){var t=this.__data__=new eo(e);this.size=t.size}fi.prototype.clear=aM;fi.prototype.delete=sM;fi.prototype.get=cM;fi.prototype.has=pM;fi.prototype.set=yM;var mM=Object.prototype,jX=mM.propertyIsEnumerable,bM=Mt(re,"DataView"),Pa=bM,hM=Mt(re,"Promise"),za=hM,vM=Mt(re,"Set"),Ua=vM,ud="[object Map]",wM="[object Object]",cd="[object Promise]",dd="[object Set]",pd="[object WeakMap]",gd="[object DataView]",kM=Ne(Pa),xM=Ne(li),IM=Ne(za),CM=Ne(Ua),AM=Ne(Da),vt=gi;(Pa&&vt(new Pa(new ArrayBuffer(1)))!=gd||li&&vt(new li)!=ud||za&&vt(za.resolve())!=cd||Ua&&vt(new Ua)!=dd||Da&&vt(new Da)!=pd)&&(vt=function(e){var t=gi(e),r=t==wM?e.constructor:void 0,i=r?Ne(r):"";if(i)switch(i){case kM:return gd;case xM:return ud;case IM:return cd;case CM:return dd;case AM:return pd}return t});var $X=re.Uint8Array,SM="__lodash_hash_undefined__";function MM(e){return this.__data__.set(e,SM),this}var jM=MM;function $M(e){return this.__data__.has(e)}var EM=$M;function Ra(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Hd;++t<r;)this.add(e[t])}Ra.prototype.add=Ra.prototype.push=jM;Ra.prototype.has=EM;var fd=xt?xt.prototype:void 0,EX=fd?fd.valueOf:void 0,_M=Object.prototype,_X=_M.hasOwnProperty,LM=Object.prototype,LX=LM.hasOwnProperty,TX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),OX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),NX=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function TM(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Zd(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return TM(i,t)}function OM(e){return e==null?[]:Array.isArray(e)?e:[e]}var yd=OM;function NM(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function DM(e){return typeof e?.translate=="function"}function PM(e,t,r){return e&&NM(e)&&DM(e.i18n)?e.i18n.translate(t):r}var ti="@imgly/plugin-ai-video-generation-web";var ro="createVideo",md=`ly.img.${ro}`,zM=`ly.img.plugin-ai-video-generation-web.quickAction.${ro}`,bd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${ro}`;function UM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${ro}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var RM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.createVideo",!0),ci(e,{en:{[`${bd}`]:"Create Video...",[`${bd}.description`]:"Create a video from the image"}}),{id:md,type:"quick",kind:"image",label:`${zM}`,enable:jI(),scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${md}.button`,{label:UM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=r.block.findAllSelected(),o=await Zd(a,r,{throwErrorIfSvg:!0});e.ui.openPanel("ly.img.ai.video-generation"),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.experimental.setGlobalStateValue(`${n}.image_urls`,o),i()}catch(a){console.error("Error opening video generation panel:",a)}}})}}),FM=RM,io="animateBetweenImages",hd=`ly.img.${io}`,VM=`ly.img.plugin-ai-video-generation-web.quickAction.${io}`,vd=`ly.img.plugin-ai-video-generation-web.defaults.quickAction.${io}`;function BM(e,t){let r="ly.img.plugin-ai-video-generation-web",i=`quickAction.${io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qM=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-image-generation-web.quickAction.animateBetweenImages",!0),ci(e,{en:{[`${vd}`]:"Animate Between Images...",[`${vd}.description`]:"Create a video transitioning between two images"}}),{id:hd,type:"quick",kind:"image",label:`${VM}`,enable:t=>{let r=t.engine.block.findAllSelected();return r==null||r.length!==2?!1:r.every(i=>{if(t.engine.block.getType(i)!=="//ly.img.ubq/graphic"&&!t.engine.block.supportsFill(i))return!1;let n=t.engine.block.getFill(i);return!(t.engine.block.getType(n)!=="//ly.img.ubq/fill/image"||t.engine.block.getType(i)==="//ly.img.ubq/page")})},scopes:[],render:({builder:t,engine:r,close:i,providerId:n})=>{t.Button(`${hd}.button`,{label:BM(n),icon:"@imgly/plugin-ai-generation/video",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let a=r.block.findAllSelected();if(a.length!==2)throw new Error("Exactly 2 images must be selected");let[o,s]=await Promise.all(a.map(l=>Zd(l,r,{throwErrorIfSvg:!0}))),c="fal-ai/veo3.1/fast/first-last-frame-to-video";e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.selectedProvider.fromImage",c),e.ui.experimental.setGlobalStateValue(`${c}.first_frame_url`,o),e.ui.experimental.setGlobalStateValue(`${c}.last_frame_url`,s),e.ui.experimental.setGlobalStateValue("ly.img.ai.video-generation.fromType","fromImage"),e.ui.openPanel("ly.img.ai.video-generation"),i()}catch(a){console.error("Error opening video generation panel:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to open video generation panel. Please try again.",duration:"medium"})}}})}}),GM=qM,be="ly.img.ai.video-generation";function YM(e){return{async initialize({cesdk:t}){if(t==null)return;CI(t,ti,"1.73.0-rc.3"),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.fromImage",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-video-generation-web.quickAction.providerSelect",!0);let r=`${ti}.action.label`;ci(t,{en:{[`panel.${be}`]:"Video Generation",[`${be}.dock.label`]:"AI Video",[r]:"Generate Video","ly.img.ai.video.generation.hint":"Video generation may take up to a few minutes. This panel can be closed and you'll be notified when it's ready."}}),HM(e);let i=Qn.get().register({type:"plugin",sceneMode:"Video",id:ti,pluginId:ti,label:PM(t,r,"Generate Video"),labelKey:r,meta:{panelId:be},execute:()=>{t.ui.isPanelOpen(be)?t.ui.closePanel(be):t.ui.openPanel(be)}}),n=e.providers?.text2video??e.text2video,a=e.providers?.image2video??e.image2video,o=await Promise.all(yd(n).map(l=>l({cesdk:t}))),s=await Promise.all(yd(a).map(l=>l({cesdk:t})));if(!(o.length>0||s.length>0)){i();return}let c=await DC("video",{fromText:o,fromImage:s},{cesdk:t},e);Qn.get().register(FM({cesdk:t})),Qn.get().register(GM({cesdk:t})),c.panel.builderRenderFunction!=null?(t.ui.registerPanel(be,c.panel.builderRenderFunction),SI({cesdk:t,panelId:be})):i()}}}function HM(e){e.debug&&(e.providers?.text2video!=null&&e.text2video!=null&&console.warn("[VideoGeneration]: Both `providers.text2video` and `text2video` configuration is provided. Since `text2video` is deprecated, only `providers.text2video` will be used."),e.providers?.image2video!=null&&e.image2video!=null&&console.warn("[VideoGeneration]: Both `providers.image2video` and `image2video` configuration is provided. Since `image2video` is deprecated, only `providers.image2video` will be used."))}var ZM=YM,QM=e=>({name:ti,version:"1.73.0-rc.3",...ZM(e)}),Qd=QM;var WM=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Tt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Tt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Tt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Tt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Tt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Tt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Tt(n,t,a)}return e}var KM=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},JM=typeof global=="object"&&global&&global.Object===Object&&global,Np=JM,XM=typeof self=="object"&&self&&self.Object===Object&&self,ej=Np||XM||Function("return this")(),ie=ej,tj=ie.Symbol,Ot=tj,Dp=Object.prototype,rj=Dp.hasOwnProperty,ij=Dp.toString,yi=Ot?Ot.toStringTag:void 0;function nj(e){var t=rj.call(e,yi),r=e[yi];try{e[yi]=void 0;var i=!0}catch{}var n=ij.call(e);return i&&(t?e[yi]=r:delete e[yi]),n}var oj=nj,aj=Object.prototype,lj=aj.toString;function sj(e){return lj.call(e)}var uj=sj,cj="[object Null]",dj="[object Undefined]",Wd=Ot?Ot.toStringTag:void 0;function pj(e){return e==null?e===void 0?dj:cj:Wd&&Wd in Object(e)?oj(e):uj(e)}var Si=pj;function gj(e){return e!=null&&typeof e=="object"}var dl=gj,UX=Array.isArray;function fj(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Pp=fj,yj="[object AsyncFunction]",mj="[object Function]",bj="[object GeneratorFunction]",hj="[object Proxy]";function vj(e){if(!Pp(e))return!1;var t=Si(e);return t==mj||t==bj||t==yj||t==hj}var wj=vj,kj=ie["__core-js_shared__"],Ya=kj,Kd=function(){var e=/[^.]+$/.exec(Ya&&Ya.keys&&Ya.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function xj(e){return!!Kd&&Kd in e}var Ij=xj,Cj=Function.prototype,Aj=Cj.toString;function Sj(e){if(e!=null){try{return Aj.call(e)}catch{}try{return e+""}catch{}}return""}var ze=Sj,Mj=/[\\^$.*+?()[\]{}|]/g,jj=/^\[object .+?Constructor\]$/,$j=Function.prototype,Ej=Object.prototype,_j=$j.toString,Lj=Ej.hasOwnProperty,Tj=RegExp("^"+_j.call(Lj).replace(Mj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Oj(e){if(!Pp(e)||Ij(e))return!1;var t=wj(e)?Tj:jj;return t.test(ze(e))}var Nj=Oj;function Dj(e,t){return e?.[t]}var Pj=Dj;function zj(e,t){var r=Pj(e,t);return Nj(r)?r:void 0}var Dt=zj,Uj=Dt(ie,"WeakMap"),Xa=Uj;function Rj(e,t){return e===t||e!==e&&t!==t}var Fj=Rj,Vj=9007199254740991;function Bj(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Vj}var qj=Bj,RX=Object.prototype,Gj="[object Arguments]";function Yj(e){return dl(e)&&Si(e)==Gj}var Jd=Yj,zp=Object.prototype,Hj=zp.hasOwnProperty,Zj=zp.propertyIsEnumerable,FX=Jd(function(){return arguments}())?Jd:function(e){return dl(e)&&Hj.call(e,"callee")&&!Zj.call(e,"callee")},Up=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xd=Up&&typeof module=="object"&&module&&!module.nodeType&&module,Qj=Xd&&Xd.exports===Up,ep=Qj?ie.Buffer:void 0,VX=ep?ep.isBuffer:void 0,Wj="[object Arguments]",Kj="[object Array]",Jj="[object Boolean]",Xj="[object Date]",e$="[object Error]",t$="[object Function]",r$="[object Map]",i$="[object Number]",n$="[object Object]",o$="[object RegExp]",a$="[object Set]",l$="[object String]",s$="[object WeakMap]",u$="[object ArrayBuffer]",c$="[object DataView]",d$="[object Float32Array]",p$="[object Float64Array]",g$="[object Int8Array]",f$="[object Int16Array]",y$="[object Int32Array]",m$="[object Uint8Array]",b$="[object Uint8ClampedArray]",h$="[object Uint16Array]",v$="[object Uint32Array]",z={};z[d$]=z[p$]=z[g$]=z[f$]=z[y$]=z[m$]=z[b$]=z[h$]=z[v$]=!0;z[Wj]=z[Kj]=z[u$]=z[Jj]=z[c$]=z[Xj]=z[e$]=z[t$]=z[r$]=z[i$]=z[n$]=z[o$]=z[a$]=z[l$]=z[s$]=!1;function w$(e){return dl(e)&&qj(e.length)&&!!z[Si(e)]}var k$=w$;function x$(e){return function(t){return e(t)}}var I$=x$,Rp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=Rp&&typeof module=="object"&&module&&!module.nodeType&&module,C$=wi&&wi.exports===Rp,Ha=C$&&Np.process,A$=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Ha&&Ha.binding&&Ha.binding("util")}catch{}}(),tp=A$,rp=tp&&tp.isTypedArray,BX=rp?I$(rp):k$,S$=Object.prototype,qX=S$.hasOwnProperty;function M$(e,t){return function(r){return e(t(r))}}var j$=M$,GX=j$(Object.keys,Object),$$=Object.prototype,YX=$$.hasOwnProperty,E$=Dt(Object,"create"),xi=E$;function _$(){this.__data__=xi?xi(null):{},this.size=0}var L$=_$;function T$(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var O$=T$,N$="__lodash_hash_undefined__",D$=Object.prototype,P$=D$.hasOwnProperty;function z$(e){var t=this.__data__;if(xi){var r=t[e];return r===N$?void 0:r}return P$.call(t,e)?t[e]:void 0}var U$=z$,R$=Object.prototype,F$=R$.hasOwnProperty;function V$(e){var t=this.__data__;return xi?t[e]!==void 0:F$.call(t,e)}var B$=V$,q$="__lodash_hash_undefined__";function G$(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=xi&&t===void 0?q$:t,this}var Y$=G$;function Pt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Pt.prototype.clear=L$;Pt.prototype.delete=O$;Pt.prototype.get=U$;Pt.prototype.has=B$;Pt.prototype.set=Y$;var ip=Pt;function H$(){this.__data__=[],this.size=0}var Z$=H$;function Q$(e,t){for(var r=e.length;r--;)if(Fj(e[r][0],t))return r;return-1}var no=Q$,W$=Array.prototype,K$=W$.splice;function J$(e){var t=this.__data__,r=no(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():K$.call(t,r,1),--this.size,!0}var X$=J$;function eE(e){var t=this.__data__,r=no(t,e);return r<0?void 0:t[r][1]}var tE=eE;function rE(e){return no(this.__data__,e)>-1}var iE=rE;function nE(e,t){var r=this.__data__,i=no(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var oE=nE;function zt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}zt.prototype.clear=Z$;zt.prototype.delete=X$;zt.prototype.get=tE;zt.prototype.has=iE;zt.prototype.set=oE;var oo=zt,aE=Dt(ie,"Map"),Ii=aE;function lE(){this.size=0,this.__data__={hash:new ip,map:new(Ii||oo),string:new ip}}var sE=lE;function uE(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var cE=uE;function dE(e,t){var r=e.__data__;return cE(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ao=dE;function pE(e){var t=ao(this,e).delete(e);return this.size-=t?1:0,t}var gE=pE;function fE(e){return ao(this,e).get(e)}var yE=fE;function mE(e){return ao(this,e).has(e)}var bE=mE;function hE(e,t){var r=ao(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var vE=hE;function Ut(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ut.prototype.clear=sE;Ut.prototype.delete=gE;Ut.prototype.get=yE;Ut.prototype.has=bE;Ut.prototype.set=vE;var Fp=Ut;function wE(){this.__data__=new oo,this.size=0}var kE=wE;function xE(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var IE=xE;function CE(e){return this.__data__.get(e)}var AE=CE;function SE(e){return this.__data__.has(e)}var ME=SE,jE=200;function $E(e,t){var r=this.__data__;if(r instanceof oo){var i=r.__data__;if(!Ii||i.length<jE-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Fp(i)}return r.set(e,t),this.size=r.size,this}var EE=$E;function Mi(e){var t=this.__data__=new oo(e);this.size=t.size}Mi.prototype.clear=kE;Mi.prototype.delete=IE;Mi.prototype.get=AE;Mi.prototype.has=ME;Mi.prototype.set=EE;var _E=Object.prototype,HX=_E.propertyIsEnumerable,LE=Dt(ie,"DataView"),el=LE,TE=Dt(ie,"Promise"),tl=TE,OE=Dt(ie,"Set"),rl=OE,np="[object Map]",NE="[object Object]",op="[object Promise]",ap="[object Set]",lp="[object WeakMap]",sp="[object DataView]",DE=ze(el),PE=ze(Ii),zE=ze(tl),UE=ze(rl),RE=ze(Xa),_t=Si;(el&&_t(new el(new ArrayBuffer(1)))!=sp||Ii&&_t(new Ii)!=np||tl&&_t(tl.resolve())!=op||rl&&_t(new rl)!=ap||Xa&&_t(new Xa)!=lp)&&(_t=function(e){var t=Si(e),r=t==NE?e.constructor:void 0,i=r?ze(r):"";if(i)switch(i){case DE:return sp;case PE:return np;case zE:return op;case UE:return ap;case RE:return lp}return t});var ZX=ie.Uint8Array,FE="__lodash_hash_undefined__";function VE(e){return this.__data__.set(e,FE),this}var BE=VE;function qE(e){return this.__data__.has(e)}var GE=qE;function il(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Fp;++t<r;)this.add(e[t])}il.prototype.add=il.prototype.push=BE;il.prototype.has=GE;var up=Ot?Ot.prototype:void 0,QX=up?up.valueOf:void 0,YE=Object.prototype,WX=YE.hasOwnProperty,HE=Object.prototype,KX=HE.hasOwnProperty,JX=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),XX=new RegExp(/[A-Fa-f0-9]{1}/,"g"),eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Vp(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function ZE(e,t){let r=await Vp(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function QE(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Vp(i,t)}function WE(e){return e!==void 0}var KE=WE;function pl(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function ji(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function $i(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Bp=class qp{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new qp),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},JE=class Gp{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Gp),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function XE(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function e_({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var t_=e_,Za="ly.img.ai.temp";async function r_(e,t){return e.engine.asset.findAllSources().includes(Za)||e.engine.asset.addLocalSource(Za),e.engine.asset.apply(Za,t)}function i_(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Yp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function n_(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function o_(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function gl(e){return e instanceof Error&&e.name==="AbortError"}function a_(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function l_(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
210
210
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
211
211
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
212
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function i_(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var op=i_;function n_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),o_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:JE(e)}))}function o_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var ap=n_,a_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",cl=a_;function l_(e,t,r){switch(t){case"image":return s_(e,r[t]);case"video":return u_(e,r[t]);case"sticker":return c_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function s_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function u_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:cl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function c_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:cl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var d_=l_;async function p_(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return g_(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return f_(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return y_(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return m_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function g_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function f_(e,t,r){let i=t.width,n=t.height,a=await XE(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function y_(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function m_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Vp=p_;function b_(e){switch(e.userFlow){case"placeholder":return v_(e);case"generation-only":return h_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function h_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Fp(),c=await Vp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function v_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=Fp(),c=d_(s,a,o);if(i=await KE(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Vp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var w_=b_;function dl(e){return`${e}.generating`}function k_(e){return`${e}.abort`}function x_(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(k_(d),()=>{}),y=c.global(dl(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await w_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){ap(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;I_(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(ul(b))return;ap(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function I_(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Bp=x_;async function C_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(dl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Bp(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var A_=C_;function qp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function bi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=qp(e,t.$ref),n={...bi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=bi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>bi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=bi(e,t[n],r));return i}return t}function S_(e){return bi(e,{...e})}function M_(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function j_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return $_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function $_(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=E_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function E_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Gp=j_;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Yp(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Hp(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?__(e,c,r,i,n,a,o,s):Zp(e,c,r,i,n,a,o,s);case"boolean":return Qp(e,c,r,i,n,a,o,s);case"number":case"integer":return Wp(e,c,r,i,n,a,o,s);case"object":return tl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return L_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function tl(e,t,r,i,n,a,o,s){let c=Gp(t.schema??{},i).reduce((l,u)=>{let d=Hp(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Zp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=Mi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=ji(d,m,f,t.schema.default,""),k=l(p,v),w=T_(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function __(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),{labels:y,icons:f}=Yp(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),v=Mi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=ji(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Qp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=Mi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!ji(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Wp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Mi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=ji(d,v,m,k,k),x=l(p,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function L_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Yp(t.schema),x=Mi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Zp,boolean:Qp,integer:Wp,object:tl},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:xe(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>tl(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=ji(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function T_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var O_=Hp,N_={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function lp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function sp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||lp(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||lp(g);n[a(l.id,g)]=y}})}});let c={...N_,...n};Object.keys(c).length>0&&sl(r.cesdk,{en:c})}function up(e){return typeof e.document=="function"?e.document():e.document}function cp(e,t,r){let i=S_(e),n=qp(i,t.inputReference);if(!M_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Gp(a,t);return{inputSchema:a,properties:o}}function dp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=O_(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});Bp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function D_(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=up(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=cp(c,s,a.debug);return sp(y,i,r,i.kind),dp(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(up(s)).then(g=>{let{inputSchema:y,properties:f}=cp(g,s,a.debug);sp(f,i,r,i.kind),u=dp(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var P_=D_;async function z_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return A_(e,t);case"schema":return P_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var U_=z_;function R_(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new GM(o,r)),o}return i}var F_=R_;function V_(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var B_=V_,Ya="@imgly/plugin-ai-generation",q_=`
212
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function s_(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var cp=s_;function u_(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),c_(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:i_(e)}))}function c_(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var dp=u_,d_="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",fl=d_;function p_(e,t,r){switch(t){case"image":return g_(e,r[t]);case"video":return f_(e,r[t]);case"sticker":return y_(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function g_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function f_(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:fl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function y_(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:fl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var m_=p_;async function b_(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return h_(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return v_(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return w_(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return k_(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function h_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function v_(e,t,r){let i=t.width,n=t.height,a=await n_(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function w_(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function k_(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Hp=b_;function x_(e){switch(e.userFlow){case"placeholder":return C_(e);case"generation-only":return I_(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function I_(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(ke(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(ke(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Yp(),c=await Hp(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function C_(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(ke(t,r))return{status:"aborted"};let s=Yp(),c=m_(s,a,o);if(i=await r_(t,c),ke(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(ke(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Hp(s,a,o,l.output);if(ke(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),ke(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(gl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function ke(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var A_=x_;function yl(e){return`${e}.generating`}function S_(e){return`${e}.abort`}function M_(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(S_(d),()=>{}),y=c.global(yl(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await A_({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){dp(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;j_(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(gl(b))return;dp(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function j_(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Zp=M_;function nl(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function $_({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(yl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Zp(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var E_=$_;function Qp(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function hi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Qp(e,t.$ref),n={...hi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=hi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>hi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=hi(e,t[n],r));return i}return t}function __(e){return hi(e,{...e})}function L_(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function T_(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return O_(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function O_(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=N_(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function N_(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Wp=T_;function xe(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Kp(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Jp(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?D_(e,c,r,i,n,a,o,s):Xp(e,c,r,i,n,a,o,s);case"boolean":return eg(e,c,r,i,n,a,o,s);case"number":case"integer":return tg(e,c,r,i,n,a,o,s);case"object":return ol(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return P_(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function ol(e,t,r,i,n,a,o,s){let c=Wp(t.schema??{},i).reduce((l,u)=>{let d=Jp(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Xp(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=xe(t,r,o,"placeholder"),f=ji(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=$i(d,m,f,t.schema.default,""),k=l(g,v),w=z_(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function D_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),{labels:y,icons:f}=Kp(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:xe(t,r,o,I),icon:f[I]})),v=ji(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=$i(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function eg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=ji(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!$i(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function tg(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=ji(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=$i(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function P_(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=xe(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Kp(t.schema),x=ji(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Xp,boolean:eg,integer:tg,object:ol},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:xe(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>ol(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=$i(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function z_(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var U_=Jp,R_={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function pp(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function gp(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||pp(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||pp(p);n[a(l.id,p)]=y}})}});let c={...R_,...n};Object.keys(c).length>0&&pl(r.cesdk,{en:c})}function fp(e){return typeof e.document=="function"?e.document():e.document}function yp(e,t,r){let i=__(e),n=Qp(i,t.inputReference);if(!L_(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Wp(a,t);return{inputSchema:a,properties:o}}function mp(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=U_(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Zp(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function F_(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=fp(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=yp(c,s,a.debug);return gp(y,i,r,i.kind),mp(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(fp(s)).then(p=>{let{inputSchema:y,properties:f}=yp(p,s,a.debug);gp(f,i,r,i.kind),u=mp(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var V_=F_;async function B_(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return E_(e,t);case"schema":return V_(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var q_=B_;function G_(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new WM(o,r)),o}return i}var Y_=G_;function H_(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var Z_=H_,Qa="@imgly/plugin-ai-generation",Q_=`
213
213
  <svg>
214
214
  <symbol
215
215
  fill="none"
@@ -227,7 +227,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
227
227
  fill="none"
228
228
  xmlns="http://www.w3.org/2000/svg"
229
229
  viewBox="0 0 24 24"
230
- id="${Ya}/image"
230
+ id="${Qa}/image"
231
231
  >
232
232
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
233
233
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -239,7 +239,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
239
239
  fill="none"
240
240
  xmlns="http://www.w3.org/2000/svg"
241
241
  viewBox="0 0 24 24"
242
- id="${Ya}/video"
242
+ id="${Qa}/video"
243
243
  >
244
244
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
245
245
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -250,7 +250,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
250
250
  fill="none"
251
251
  xmlns="http://www.w3.org/2000/svg"
252
252
  viewBox="0 0 24 24"
253
- id="${Ya}/audio"
253
+ id="${Qa}/audio"
254
254
  >
255
255
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
256
256
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -270,8 +270,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
270
270
 
271
271
  </symbol>
272
272
  </svg>
273
- `,G_=q_;function Y_(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Kp(2e3),await H_(t,e,r)):i(t,r)}async function H_(e,t,r){switch(t.kind){case"image":return Z_(e,t,r);case"video":return Q_(e,t,r);case"text":return W_(e,t,r);case"audio":return J_(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Z_(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await qE(s,r),l=await BE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
- `,"+")}`}}async function Q_(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function W_(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=yi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=yi(n,o)}else"customPrompt"in e?a=yi(n,"custom"):a=yi(n,"improved");else a=yi(n,"generated");return K_(a,r.abortSignal)}async function*K_(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Kp(100)}return{kind:"text",text:e}}function yi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function J_(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:X_(220,i),duration:i,thumbnailUrl:void 0}}function X_(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return eL(i,44100)}function eL(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Kp(e){return new Promise(t=>{setTimeout(t,e)})}var tL=Y_,rL="USER_CANCEL";function iL(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=ZE([...e.provider.output.middleware??[],...r?.middlewares??[],WE({enable:r?.debug}),tL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:e_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===rL?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var nL=iL;async function oL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=zp.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=F_(a),s=B_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=nL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await U_(a,c);t_(r.cesdk,"@imgly/plugin-ai-generation",G_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return HE.get().register(u),u}var Ha=oL;function aL(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new YM(n,r,i);return r.engine.asset.addSource(a),a.id}var lL=aL;function hi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function sL(e,t,r,i){let{cesdk:n}=r;sl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Ha(e,u,r,i)));o.push(...l),a=cL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Ha(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Ha(e,d,r,i)));o.push(...u),a=uL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=lL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(YE)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function uL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:hi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:hi(e,"fromText.label"),icon:f.value!=="fromText"&&pp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:hi(e,"fromImage.label"),icon:f.value!=="fromImage"&&pp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function cL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:hi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function pp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(dl(r.id),!1).value)}var gp=sL,dL=typeof global=="object"&&global&&global.Object===Object&&global,Jp=dL,pL=typeof self=="object"&&self&&self.Object===Object&&self,gL=Jp||pL||Function("return this")(),ne=gL,fL=ne.Symbol,Nt=fL,Xp=Object.prototype,yL=Xp.hasOwnProperty,mL=Xp.toString,mi=Nt?Nt.toStringTag:void 0;function bL(e){var t=yL.call(e,mi),r=e[mi];try{e[mi]=void 0;var i=!0}catch{}var n=mL.call(e);return i&&(t?e[mi]=r:delete e[mi]),n}var hL=bL,vL=Object.prototype,wL=vL.toString;function kL(e){return wL.call(e)}var xL=kL,IL="[object Null]",CL="[object Undefined]",fp=Nt?Nt.toStringTag:void 0;function AL(e){return e==null?e===void 0?CL:IL:fp&&fp in Object(e)?hL(e):xL(e)}var $i=AL;function SL(e){return e!=null&&typeof e=="object"}var pl=SL,WX=Array.isArray;function ML(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var eg=ML,jL="[object AsyncFunction]",$L="[object Function]",EL="[object GeneratorFunction]",_L="[object Proxy]";function LL(e){if(!eg(e))return!1;var t=$i(e);return t==$L||t==EL||t==jL||t==_L}var TL=LL,OL=ne["__core-js_shared__"],Za=OL,yp=function(){var e=/[^.]+$/.exec(Za&&Za.keys&&Za.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function NL(e){return!!yp&&yp in e}var DL=NL,PL=Function.prototype,zL=PL.toString;function UL(e){if(e!=null){try{return zL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=UL,RL=/[\\^$.*+?()[\]{}|]/g,FL=/^\[object .+?Constructor\]$/,VL=Function.prototype,BL=Object.prototype,qL=VL.toString,GL=BL.hasOwnProperty,YL=RegExp("^"+qL.call(GL).replace(RL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function HL(e){if(!eg(e)||DL(e))return!1;var t=TL(e)?YL:FL;return t.test(Ue(e))}var ZL=HL;function QL(e,t){return e?.[t]}var WL=QL;function KL(e,t){var r=WL(e,t);return ZL(r)?r:void 0}var Rt=KL,JL=Rt(ne,"WeakMap"),rl=JL;function XL(e,t){return e===t||e!==e&&t!==t}var eT=XL,tT=9007199254740991;function rT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=tT}var iT=rT,KX=Object.prototype,nT="[object Arguments]";function oT(e){return pl(e)&&$i(e)==nT}var mp=oT,tg=Object.prototype,aT=tg.hasOwnProperty,lT=tg.propertyIsEnumerable,JX=mp(function(){return arguments}())?mp:function(e){return pl(e)&&aT.call(e,"callee")&&!lT.call(e,"callee")},rg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bp=rg&&typeof module=="object"&&module&&!module.nodeType&&module,sT=bp&&bp.exports===rg,hp=sT?ne.Buffer:void 0,XX=hp?hp.isBuffer:void 0,uT="[object Arguments]",cT="[object Array]",dT="[object Boolean]",pT="[object Date]",gT="[object Error]",fT="[object Function]",yT="[object Map]",mT="[object Number]",bT="[object Object]",hT="[object RegExp]",vT="[object Set]",wT="[object String]",kT="[object WeakMap]",xT="[object ArrayBuffer]",IT="[object DataView]",CT="[object Float32Array]",AT="[object Float64Array]",ST="[object Int8Array]",MT="[object Int16Array]",jT="[object Int32Array]",$T="[object Uint8Array]",ET="[object Uint8ClampedArray]",_T="[object Uint16Array]",LT="[object Uint32Array]",U={};U[CT]=U[AT]=U[ST]=U[MT]=U[jT]=U[$T]=U[ET]=U[_T]=U[LT]=!0;U[uT]=U[cT]=U[xT]=U[dT]=U[IT]=U[pT]=U[gT]=U[fT]=U[yT]=U[mT]=U[bT]=U[hT]=U[vT]=U[wT]=U[kT]=!1;function TT(e){return pl(e)&&iT(e.length)&&!!U[$i(e)]}var OT=TT;function NT(e){return function(t){return e(t)}}var DT=NT,ig=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wi=ig&&typeof module=="object"&&module&&!module.nodeType&&module,PT=wi&&wi.exports===ig,Qa=PT&&Jp.process,zT=function(){try{var e=wi&&wi.require&&wi.require("util").types;return e||Qa&&Qa.binding&&Qa.binding("util")}catch{}}(),vp=zT,wp=vp&&vp.isTypedArray,eee=wp?DT(wp):OT,UT=Object.prototype,tee=UT.hasOwnProperty;function RT(e,t){return function(r){return e(t(r))}}var FT=RT,ree=FT(Object.keys,Object),VT=Object.prototype,iee=VT.hasOwnProperty,BT=Rt(Object,"create"),Ii=BT;function qT(){this.__data__=Ii?Ii(null):{},this.size=0}var GT=qT;function YT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var HT=YT,ZT="__lodash_hash_undefined__",QT=Object.prototype,WT=QT.hasOwnProperty;function KT(e){var t=this.__data__;if(Ii){var r=t[e];return r===ZT?void 0:r}return WT.call(t,e)?t[e]:void 0}var JT=KT,XT=Object.prototype,eO=XT.hasOwnProperty;function tO(e){var t=this.__data__;return Ii?t[e]!==void 0:eO.call(t,e)}var rO=tO,iO="__lodash_hash_undefined__";function nO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ii&&t===void 0?iO:t,this}var oO=nO;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=GT;Ft.prototype.delete=HT;Ft.prototype.get=JT;Ft.prototype.has=rO;Ft.prototype.set=oO;var kp=Ft;function aO(){this.__data__=[],this.size=0}var lO=aO;function sO(e,t){for(var r=e.length;r--;)if(eT(e[r][0],t))return r;return-1}var oo=sO,uO=Array.prototype,cO=uO.splice;function dO(e){var t=this.__data__,r=oo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():cO.call(t,r,1),--this.size,!0}var pO=dO;function gO(e){var t=this.__data__,r=oo(t,e);return r<0?void 0:t[r][1]}var fO=gO;function yO(e){return oo(this.__data__,e)>-1}var mO=yO;function bO(e,t){var r=this.__data__,i=oo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var hO=bO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=lO;Vt.prototype.delete=pO;Vt.prototype.get=fO;Vt.prototype.has=mO;Vt.prototype.set=hO;var ao=Vt,vO=Rt(ne,"Map"),Ci=vO;function wO(){this.size=0,this.__data__={hash:new kp,map:new(Ci||ao),string:new kp}}var kO=wO;function xO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var IO=xO;function CO(e,t){var r=e.__data__;return IO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var lo=CO;function AO(e){var t=lo(this,e).delete(e);return this.size-=t?1:0,t}var SO=AO;function MO(e){return lo(this,e).get(e)}var jO=MO;function $O(e){return lo(this,e).has(e)}var EO=$O;function _O(e,t){var r=lo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var LO=_O;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=kO;Bt.prototype.delete=SO;Bt.prototype.get=jO;Bt.prototype.has=EO;Bt.prototype.set=LO;var ng=Bt;function TO(){this.__data__=new ao,this.size=0}var OO=TO;function NO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var DO=NO;function PO(e){return this.__data__.get(e)}var zO=PO;function UO(e){return this.__data__.has(e)}var RO=UO,FO=200;function VO(e,t){var r=this.__data__;if(r instanceof ao){var i=r.__data__;if(!Ci||i.length<FO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ng(i)}return r.set(e,t),this.size=r.size,this}var BO=VO;function Ei(e){var t=this.__data__=new ao(e);this.size=t.size}Ei.prototype.clear=OO;Ei.prototype.delete=DO;Ei.prototype.get=zO;Ei.prototype.has=RO;Ei.prototype.set=BO;var qO=Object.prototype,nee=qO.propertyIsEnumerable,GO=Rt(ne,"DataView"),il=GO,YO=Rt(ne,"Promise"),nl=YO,HO=Rt(ne,"Set"),ol=HO,xp="[object Map]",ZO="[object Object]",Ip="[object Promise]",Cp="[object Set]",Ap="[object WeakMap]",Sp="[object DataView]",QO=Ue(il),WO=Ue(Ci),KO=Ue(nl),JO=Ue(ol),XO=Ue(rl),Lt=$i;(il&&Lt(new il(new ArrayBuffer(1)))!=Sp||Ci&&Lt(new Ci)!=xp||nl&&Lt(nl.resolve())!=Ip||ol&&Lt(new ol)!=Cp||rl&&Lt(new rl)!=Ap)&&(Lt=function(e){var t=$i(e),r=t==ZO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case QO:return Sp;case WO:return xp;case KO:return Ip;case JO:return Cp;case XO:return Ap}return t});var oee=ne.Uint8Array,eN="__lodash_hash_undefined__";function tN(e){return this.__data__.set(e,eN),this}var rN=tN;function iN(e){return this.__data__.has(e)}var nN=iN;function al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ng;++t<r;)this.add(e[t])}al.prototype.add=al.prototype.push=rN;al.prototype.has=nN;var Mp=Nt?Nt.prototype:void 0,aee=Mp?Mp.valueOf:void 0,oN=Object.prototype,lee=oN.hasOwnProperty,aN=Object.prototype,see=aN.hasOwnProperty,uee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),cee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),dee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function lN(e){return e==null?[]:Array.isArray(e)?e:[e]}var jp=lN;function sN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function uN(e){return typeof e?.translate=="function"}function $p(e,t,r){return e&&sN(e)&&uN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function cN(e){return{async initialize({cesdk:t}){if(t==null)return;r_(t,we,"1.73.0-rc.1"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;sl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),dN(e);let n=zp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:$p(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:$p(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(jp(s).map(f=>f({cesdk:t}))),u=await Promise.all(jp(c).map(f=>f({cesdk:t}))),d=l.length>0,p=u.length>0;if(!d&&!p){a(),o();return}p||a(),d||o();let g=await gp("audio",l,{cesdk:t},e),y=await gp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),op({cesdk:t,panelId:Pe})):a(),g.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,g.panel.builderRenderFunction),op({cesdk:t,panelId:De})):o()}}}function dN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var pN=cN,gN=e=>({name:we,version:"1.73.0-rc.1",...pN(e)}),og=gN;var fN="@imgly/plugin-ai-text-generation",yN=`
273
+ `,W_=Q_;function K_(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await rg(2e3),await J_(t,e,r)):i(t,r)}async function J_(e,t,r){switch(t.kind){case"image":return X_(e,t,r);case"video":return eL(e,t,r);case"text":return tL(e,t,r);case"audio":return iL(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function X_(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await QE(s,r),l=await ZE(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
274
+ `,"+")}`}}async function eL(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function tL(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=mi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=mi(n,o)}else"customPrompt"in e?a=mi(n,"custom"):a=mi(n,"improved");else a=mi(n,"generated");return rL(a,r.abortSignal)}async function*rL(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await rg(100)}return{kind:"text",text:e}}function mi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function iL(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:nL(220,i),duration:i,thumbnailUrl:void 0}}function nL(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return oL(i,44100)}function oL(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function rg(e){return new Promise(t=>{setTimeout(t,e)})}var aL=K_,lL="USER_CANCEL";function sL(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=XE([...e.provider.output.middleware??[],...r?.middlewares??[],t_({enable:r?.debug}),aL({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:o_(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return gl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===lL?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var uL=sL;async function cL(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Bp.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=Y_(a),s=Z_(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=uL({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await q_(a,c);a_(r.cesdk,"@imgly/plugin-ai-generation",W_);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return JE.get().register(u),u}var Wa=cL;function dL(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new KM(n,r,i);return r.engine.asset.addSource(a),a.id}var pL=dL;function vi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function gL(e,t,r,i){let{cesdk:n}=r;pl(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Wa(e,u,r,i)));o.push(...l),a=yL({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Wa(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Wa(e,d,r,i)));o.push(...u),a=fL({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=pL({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(KE)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function fL({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:nl(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:vi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:vi(e,"fromText.label"),icon:f.value!=="fromText"&&bp(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:vi(e,"fromImage.label"),icon:f.value!=="fromImage"&&bp(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function yL({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:nl(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:vi(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function bp(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(yl(r.id),!1).value)}var hp=gL,mL=typeof global=="object"&&global&&global.Object===Object&&global,ig=mL,bL=typeof self=="object"&&self&&self.Object===Object&&self,hL=ig||bL||Function("return this")(),ne=hL,vL=ne.Symbol,Nt=vL,ng=Object.prototype,wL=ng.hasOwnProperty,kL=ng.toString,bi=Nt?Nt.toStringTag:void 0;function xL(e){var t=wL.call(e,bi),r=e[bi];try{e[bi]=void 0;var i=!0}catch{}var n=kL.call(e);return i&&(t?e[bi]=r:delete e[bi]),n}var IL=xL,CL=Object.prototype,AL=CL.toString;function SL(e){return AL.call(e)}var ML=SL,jL="[object Null]",$L="[object Undefined]",vp=Nt?Nt.toStringTag:void 0;function EL(e){return e==null?e===void 0?$L:jL:vp&&vp in Object(e)?IL(e):ML(e)}var Ei=EL;function _L(e){return e!=null&&typeof e=="object"}var ml=_L,tee=Array.isArray;function LL(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var og=LL,TL="[object AsyncFunction]",OL="[object Function]",NL="[object GeneratorFunction]",DL="[object Proxy]";function PL(e){if(!og(e))return!1;var t=Ei(e);return t==OL||t==NL||t==TL||t==DL}var zL=PL,UL=ne["__core-js_shared__"],Ka=UL,wp=function(){var e=/[^.]+$/.exec(Ka&&Ka.keys&&Ka.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function RL(e){return!!wp&&wp in e}var FL=RL,VL=Function.prototype,BL=VL.toString;function qL(e){if(e!=null){try{return BL.call(e)}catch{}try{return e+""}catch{}}return""}var Ue=qL,GL=/[\\^$.*+?()[\]{}|]/g,YL=/^\[object .+?Constructor\]$/,HL=Function.prototype,ZL=Object.prototype,QL=HL.toString,WL=ZL.hasOwnProperty,KL=RegExp("^"+QL.call(WL).replace(GL,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function JL(e){if(!og(e)||FL(e))return!1;var t=zL(e)?KL:YL;return t.test(Ue(e))}var XL=JL;function eT(e,t){return e?.[t]}var tT=eT;function rT(e,t){var r=tT(e,t);return XL(r)?r:void 0}var Rt=rT,iT=Rt(ne,"WeakMap"),al=iT;function nT(e,t){return e===t||e!==e&&t!==t}var oT=nT,aT=9007199254740991;function lT(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=aT}var sT=lT,ree=Object.prototype,uT="[object Arguments]";function cT(e){return ml(e)&&Ei(e)==uT}var kp=cT,ag=Object.prototype,dT=ag.hasOwnProperty,pT=ag.propertyIsEnumerable,iee=kp(function(){return arguments}())?kp:function(e){return ml(e)&&dT.call(e,"callee")&&!pT.call(e,"callee")},lg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xp=lg&&typeof module=="object"&&module&&!module.nodeType&&module,gT=xp&&xp.exports===lg,Ip=gT?ne.Buffer:void 0,nee=Ip?Ip.isBuffer:void 0,fT="[object Arguments]",yT="[object Array]",mT="[object Boolean]",bT="[object Date]",hT="[object Error]",vT="[object Function]",wT="[object Map]",kT="[object Number]",xT="[object Object]",IT="[object RegExp]",CT="[object Set]",AT="[object String]",ST="[object WeakMap]",MT="[object ArrayBuffer]",jT="[object DataView]",$T="[object Float32Array]",ET="[object Float64Array]",_T="[object Int8Array]",LT="[object Int16Array]",TT="[object Int32Array]",OT="[object Uint8Array]",NT="[object Uint8ClampedArray]",DT="[object Uint16Array]",PT="[object Uint32Array]",U={};U[$T]=U[ET]=U[_T]=U[LT]=U[TT]=U[OT]=U[NT]=U[DT]=U[PT]=!0;U[fT]=U[yT]=U[MT]=U[mT]=U[jT]=U[bT]=U[hT]=U[vT]=U[wT]=U[kT]=U[xT]=U[IT]=U[CT]=U[AT]=U[ST]=!1;function zT(e){return ml(e)&&sT(e.length)&&!!U[Ei(e)]}var UT=zT;function RT(e){return function(t){return e(t)}}var FT=RT,sg=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ki=sg&&typeof module=="object"&&module&&!module.nodeType&&module,VT=ki&&ki.exports===sg,Ja=VT&&ig.process,BT=function(){try{var e=ki&&ki.require&&ki.require("util").types;return e||Ja&&Ja.binding&&Ja.binding("util")}catch{}}(),Cp=BT,Ap=Cp&&Cp.isTypedArray,oee=Ap?FT(Ap):UT,qT=Object.prototype,aee=qT.hasOwnProperty;function GT(e,t){return function(r){return e(t(r))}}var YT=GT,lee=YT(Object.keys,Object),HT=Object.prototype,see=HT.hasOwnProperty,ZT=Rt(Object,"create"),Ci=ZT;function QT(){this.__data__=Ci?Ci(null):{},this.size=0}var WT=QT;function KT(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var JT=KT,XT="__lodash_hash_undefined__",eO=Object.prototype,tO=eO.hasOwnProperty;function rO(e){var t=this.__data__;if(Ci){var r=t[e];return r===XT?void 0:r}return tO.call(t,e)?t[e]:void 0}var iO=rO,nO=Object.prototype,oO=nO.hasOwnProperty;function aO(e){var t=this.__data__;return Ci?t[e]!==void 0:oO.call(t,e)}var lO=aO,sO="__lodash_hash_undefined__";function uO(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ci&&t===void 0?sO:t,this}var cO=uO;function Ft(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ft.prototype.clear=WT;Ft.prototype.delete=JT;Ft.prototype.get=iO;Ft.prototype.has=lO;Ft.prototype.set=cO;var Sp=Ft;function dO(){this.__data__=[],this.size=0}var pO=dO;function gO(e,t){for(var r=e.length;r--;)if(oT(e[r][0],t))return r;return-1}var lo=gO,fO=Array.prototype,yO=fO.splice;function mO(e){var t=this.__data__,r=lo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():yO.call(t,r,1),--this.size,!0}var bO=mO;function hO(e){var t=this.__data__,r=lo(t,e);return r<0?void 0:t[r][1]}var vO=hO;function wO(e){return lo(this.__data__,e)>-1}var kO=wO;function xO(e,t){var r=this.__data__,i=lo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var IO=xO;function Vt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Vt.prototype.clear=pO;Vt.prototype.delete=bO;Vt.prototype.get=vO;Vt.prototype.has=kO;Vt.prototype.set=IO;var so=Vt,CO=Rt(ne,"Map"),Ai=CO;function AO(){this.size=0,this.__data__={hash:new Sp,map:new(Ai||so),string:new Sp}}var SO=AO;function MO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var jO=MO;function $O(e,t){var r=e.__data__;return jO(t)?r[typeof t=="string"?"string":"hash"]:r.map}var uo=$O;function EO(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var _O=EO;function LO(e){return uo(this,e).get(e)}var TO=LO;function OO(e){return uo(this,e).has(e)}var NO=OO;function DO(e,t){var r=uo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var PO=DO;function Bt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=SO;Bt.prototype.delete=_O;Bt.prototype.get=TO;Bt.prototype.has=NO;Bt.prototype.set=PO;var ug=Bt;function zO(){this.__data__=new so,this.size=0}var UO=zO;function RO(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var FO=RO;function VO(e){return this.__data__.get(e)}var BO=VO;function qO(e){return this.__data__.has(e)}var GO=qO,YO=200;function HO(e,t){var r=this.__data__;if(r instanceof so){var i=r.__data__;if(!Ai||i.length<YO-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new ug(i)}return r.set(e,t),this.size=r.size,this}var ZO=HO;function _i(e){var t=this.__data__=new so(e);this.size=t.size}_i.prototype.clear=UO;_i.prototype.delete=FO;_i.prototype.get=BO;_i.prototype.has=GO;_i.prototype.set=ZO;var QO=Object.prototype,uee=QO.propertyIsEnumerable,WO=Rt(ne,"DataView"),ll=WO,KO=Rt(ne,"Promise"),sl=KO,JO=Rt(ne,"Set"),ul=JO,Mp="[object Map]",XO="[object Object]",jp="[object Promise]",$p="[object Set]",Ep="[object WeakMap]",_p="[object DataView]",eN=Ue(ll),tN=Ue(Ai),rN=Ue(sl),iN=Ue(ul),nN=Ue(al),Lt=Ei;(ll&&Lt(new ll(new ArrayBuffer(1)))!=_p||Ai&&Lt(new Ai)!=Mp||sl&&Lt(sl.resolve())!=jp||ul&&Lt(new ul)!=$p||al&&Lt(new al)!=Ep)&&(Lt=function(e){var t=Ei(e),r=t==XO?e.constructor:void 0,i=r?Ue(r):"";if(i)switch(i){case eN:return _p;case tN:return Mp;case rN:return jp;case iN:return $p;case nN:return Ep}return t});var cee=ne.Uint8Array,oN="__lodash_hash_undefined__";function aN(e){return this.__data__.set(e,oN),this}var lN=aN;function sN(e){return this.__data__.has(e)}var uN=sN;function cl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new ug;++t<r;)this.add(e[t])}cl.prototype.add=cl.prototype.push=lN;cl.prototype.has=uN;var Lp=Nt?Nt.prototype:void 0,dee=Lp?Lp.valueOf:void 0,cN=Object.prototype,pee=cN.hasOwnProperty,dN=Object.prototype,gee=dN.hasOwnProperty,fee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),yee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),mee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function pN(e){return e==null?[]:Array.isArray(e)?e:[e]}var Tp=pN;function gN(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function fN(e){return typeof e?.translate=="function"}function Op(e,t,r){return e&&gN(e)&&fN(e.i18n)?e.i18n.translate(t):r}var we="@imgly/plugin-ai-audio-generation-web",De="ly.img.ai.audio-generation.speech",Pe="ly.img.ai.audio-generation.sound";function yN(e){return{async initialize({cesdk:t}){if(t==null)return;l_(t,we,"1.73.0-rc.3"),t.feature.enable("ly.img.plugin-ai-audio-generation-web.speech.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-audio-generation-web.sound.providerSelect",!0);let r=`${we}.sound.action.label`,i=`${we}.speech.action.label`;pl(t,{en:{[`panel.${De}`]:"AI Voice",[`panel.${Pe}`]:"Sound Generation",[r]:"Generate Sound",[i]:"AI Voice"}}),mN(e);let n=Bp.get(),a=n.register({type:"plugin",sceneMode:"Video",id:`${we}/sound`,pluginId:we,label:Op(t,r,"Generate Sound"),labelKey:r,meta:{panelId:Pe},execute:()=>{t.ui.isPanelOpen(Pe)?t.ui.closePanel(Pe):t.ui.openPanel(Pe)}}),o=n.register({type:"plugin",sceneMode:"Video",id:`${we}/speech`,pluginId:we,label:Op(t,i,"AI Voice"),labelKey:i,meta:{panelId:De},execute:()=>{t.ui.isPanelOpen(De)?t.ui.closePanel(De):t.ui.openPanel(De)}}),s=e.providers?.text2speech??e.text2speech,c=e.providers?.text2sound??e.text2sound,l=await Promise.all(Tp(s).map(f=>f({cesdk:t}))),u=await Promise.all(Tp(c).map(f=>f({cesdk:t}))),d=l.length>0,g=u.length>0;if(!d&&!g){a(),o();return}g||a(),d||o();let p=await hp("audio",l,{cesdk:t},e),y=await hp("audio",u,{cesdk:t},e);y.panel.builderRenderFunction!=null?(t.ui.registerPanel(Pe,y.panel.builderRenderFunction),cp({cesdk:t,panelId:Pe})):a(),p.panel.builderRenderFunction!=null?(t.ui.registerPanel(De,p.panel.builderRenderFunction),cp({cesdk:t,panelId:De})):o()}}}function mN(e){e.debug&&(e.providers?.text2speech!=null&&e.text2speech!=null&&console.warn("[AudioGeneration]: Both `providers.text2speech` and `text2speech` configuration is provided. Since `text2speech` is deprecated, only `providers.text2speech` will be used."),e.providers?.text2sound!=null&&e.text2sound!=null&&console.warn("[AudioGeneration]: Both `providers.text2sound` and `text2sound` configuration is provided. Since `text2sound` is deprecated, only `providers.text2sound` will be used."))}var bN=yN,hN=e=>({name:we,version:"1.73.0-rc.3",...bN(e)}),cg=hN;var vN="@imgly/plugin-ai-text-generation",wN=`
275
275
  <svg>
276
276
  <symbol
277
277
  fill="none"
@@ -347,10 +347,10 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
347
347
  <path d="M3.72318 6.44728C3.63105 6.26302 3.3681 6.26302 3.27597 6.44728L3.03684 6.92554C3.01265 6.97392 2.97343 7.01314 2.92505 7.03733L2.44677 7.27652C2.26252 7.36866 2.26254 7.63161 2.44681 7.72373L2.92503 7.9628C2.97342 7.98699 3.01266 8.02622 3.03685 8.07461L3.27597 8.55285C3.3681 8.73711 3.63105 8.73711 3.72318 8.55285L3.96231 8.0746C3.9865 8.02622 4.02573 7.98699 4.07411 7.9628L4.55236 7.72367C4.73663 7.63154 4.73663 7.36859 4.55236 7.27646L4.07411 7.03733C4.02573 7.01314 3.9865 6.97391 3.96231 6.92553L3.72318 6.44728Z" fill="currentColor"/>
348
348
  </symbol>
349
349
  </svg>
350
- `,mN=yN,bN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var hN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},vN=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},Wg=vN,wN=typeof global=="object"&&global&&global.Object===Object&&global,Kg=wN,kN=typeof self=="object"&&self&&self.Object===Object&&self,xN=Kg||kN||Function("return this")(),oe=xN,IN=oe.Symbol,Ht=IN,Jg=Object.prototype,CN=Jg.hasOwnProperty,AN=Jg.toString,_i=Ht?Ht.toStringTag:void 0;function SN(e){var t=CN.call(e,_i),r=e[_i];try{e[_i]=void 0;var i=!0}catch{}var n=AN.call(e);return i&&(t?e[_i]=r:delete e[_i]),n}var MN=SN,jN=Object.prototype,$N=jN.toString;function EN(e){return $N.call(e)}var _N=EN,LN="[object Null]",TN="[object Undefined]",ag=Ht?Ht.toStringTag:void 0;function ON(e){return e==null?e===void 0?TN:LN:ag&&ag in Object(e)?MN(e):_N(e)}var qi=ON;function NN(e){return e!=null&&typeof e=="object"}var Tl=NN,yee=Array.isArray;function DN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Xg=DN,PN="[object AsyncFunction]",zN="[object Function]",UN="[object GeneratorFunction]",RN="[object Proxy]";function FN(e){if(!Xg(e))return!1;var t=qi(e);return t==zN||t==UN||t==PN||t==RN}var VN=FN,BN=oe["__core-js_shared__"],gl=BN,lg=function(){var e=/[^.]+$/.exec(gl&&gl.keys&&gl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function qN(e){return!!lg&&lg in e}var GN=qN,YN=Function.prototype,HN=YN.toString;function ZN(e){if(e!=null){try{return HN.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=ZN,QN=/[\\^$.*+?()[\]{}|]/g,WN=/^\[object .+?Constructor\]$/,KN=Function.prototype,JN=Object.prototype,XN=KN.toString,eD=JN.hasOwnProperty,tD=RegExp("^"+XN.call(eD).replace(QN,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function rD(e){if(!Xg(e)||GN(e))return!1;var t=VN(e)?tD:WN;return t.test(Ve(e))}var iD=rD;function nD(e,t){return e?.[t]}var oD=nD;function aD(e,t){var r=oD(e,t);return iD(r)?r:void 0}var Qt=aD,lD=Qt(oe,"WeakMap"),kl=lD;function sD(e,t){return e===t||e!==e&&t!==t}var uD=sD,cD=9007199254740991;function dD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=cD}var pD=dD,mee=Object.prototype,gD="[object Arguments]";function fD(e){return Tl(e)&&qi(e)==gD}var sg=fD,e1=Object.prototype,yD=e1.hasOwnProperty,mD=e1.propertyIsEnumerable,bee=sg(function(){return arguments}())?sg:function(e){return Tl(e)&&yD.call(e,"callee")&&!mD.call(e,"callee")},t1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ug=t1&&typeof module=="object"&&module&&!module.nodeType&&module,bD=ug&&ug.exports===t1,cg=bD?oe.Buffer:void 0,hee=cg?cg.isBuffer:void 0,hD="[object Arguments]",vD="[object Array]",wD="[object Boolean]",kD="[object Date]",xD="[object Error]",ID="[object Function]",CD="[object Map]",AD="[object Number]",SD="[object Object]",MD="[object RegExp]",jD="[object Set]",$D="[object String]",ED="[object WeakMap]",_D="[object ArrayBuffer]",LD="[object DataView]",TD="[object Float32Array]",OD="[object Float64Array]",ND="[object Int8Array]",DD="[object Int16Array]",PD="[object Int32Array]",zD="[object Uint8Array]",UD="[object Uint8ClampedArray]",RD="[object Uint16Array]",FD="[object Uint32Array]",R={};R[TD]=R[OD]=R[ND]=R[DD]=R[PD]=R[zD]=R[UD]=R[RD]=R[FD]=!0;R[hD]=R[vD]=R[_D]=R[wD]=R[LD]=R[kD]=R[xD]=R[ID]=R[CD]=R[AD]=R[SD]=R[MD]=R[jD]=R[$D]=R[ED]=!1;function VD(e){return Tl(e)&&pD(e.length)&&!!R[qi(e)]}var BD=VD;function qD(e){return function(t){return e(t)}}var GD=qD,r1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zi=r1&&typeof module=="object"&&module&&!module.nodeType&&module,YD=zi&&zi.exports===r1,fl=YD&&Kg.process,HD=function(){try{var e=zi&&zi.require&&zi.require("util").types;return e||fl&&fl.binding&&fl.binding("util")}catch{}}(),dg=HD,pg=dg&&dg.isTypedArray,vee=pg?GD(pg):BD,ZD=Object.prototype,wee=ZD.hasOwnProperty;function QD(e,t){return function(r){return e(t(r))}}var WD=QD,kee=WD(Object.keys,Object),KD=Object.prototype,xee=KD.hasOwnProperty,JD=Qt(Object,"create"),Ri=JD;function XD(){this.__data__=Ri?Ri(null):{},this.size=0}var eP=XD;function tP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var rP=tP,iP="__lodash_hash_undefined__",nP=Object.prototype,oP=nP.hasOwnProperty;function aP(e){var t=this.__data__;if(Ri){var r=t[e];return r===iP?void 0:r}return oP.call(t,e)?t[e]:void 0}var lP=aP,sP=Object.prototype,uP=sP.hasOwnProperty;function cP(e){var t=this.__data__;return Ri?t[e]!==void 0:uP.call(t,e)}var dP=cP,pP="__lodash_hash_undefined__";function gP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ri&&t===void 0?pP:t,this}var fP=gP;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=eP;Wt.prototype.delete=rP;Wt.prototype.get=lP;Wt.prototype.has=dP;Wt.prototype.set=fP;var gg=Wt;function yP(){this.__data__=[],this.size=0}var mP=yP;function bP(e,t){for(var r=e.length;r--;)if(uD(e[r][0],t))return r;return-1}var so=bP,hP=Array.prototype,vP=hP.splice;function wP(e){var t=this.__data__,r=so(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():vP.call(t,r,1),--this.size,!0}var kP=wP;function xP(e){var t=this.__data__,r=so(t,e);return r<0?void 0:t[r][1]}var IP=xP;function CP(e){return so(this.__data__,e)>-1}var AP=CP;function SP(e,t){var r=this.__data__,i=so(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var MP=SP;function Kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Kt.prototype.clear=mP;Kt.prototype.delete=kP;Kt.prototype.get=IP;Kt.prototype.has=AP;Kt.prototype.set=MP;var uo=Kt,jP=Qt(oe,"Map"),Fi=jP;function $P(){this.size=0,this.__data__={hash:new gg,map:new(Fi||uo),string:new gg}}var EP=$P;function _P(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var LP=_P;function TP(e,t){var r=e.__data__;return LP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var co=TP;function OP(e){var t=co(this,e).delete(e);return this.size-=t?1:0,t}var NP=OP;function DP(e){return co(this,e).get(e)}var PP=DP;function zP(e){return co(this,e).has(e)}var UP=zP;function RP(e,t){var r=co(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var FP=RP;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=EP;Jt.prototype.delete=NP;Jt.prototype.get=PP;Jt.prototype.has=UP;Jt.prototype.set=FP;var i1=Jt;function VP(){this.__data__=new uo,this.size=0}var BP=VP;function qP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var GP=qP;function YP(e){return this.__data__.get(e)}var HP=YP;function ZP(e){return this.__data__.has(e)}var QP=ZP,WP=200;function KP(e,t){var r=this.__data__;if(r instanceof uo){var i=r.__data__;if(!Fi||i.length<WP-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new i1(i)}return r.set(e,t),this.size=r.size,this}var JP=KP;function Gi(e){var t=this.__data__=new uo(e);this.size=t.size}Gi.prototype.clear=BP;Gi.prototype.delete=GP;Gi.prototype.get=HP;Gi.prototype.has=QP;Gi.prototype.set=JP;var XP=Object.prototype,Iee=XP.propertyIsEnumerable,ez=Qt(oe,"DataView"),xl=ez,tz=Qt(oe,"Promise"),Il=tz,rz=Qt(oe,"Set"),Cl=rz,fg="[object Map]",iz="[object Object]",yg="[object Promise]",mg="[object Set]",bg="[object WeakMap]",hg="[object DataView]",nz=Ve(xl),oz=Ve(Fi),az=Ve(Il),lz=Ve(Cl),sz=Ve(kl),qt=qi;(xl&&qt(new xl(new ArrayBuffer(1)))!=hg||Fi&&qt(new Fi)!=fg||Il&&qt(Il.resolve())!=yg||Cl&&qt(new Cl)!=mg||kl&&qt(new kl)!=bg)&&(qt=function(e){var t=qi(e),r=t==iz?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case nz:return hg;case oz:return fg;case az:return yg;case lz:return mg;case sz:return bg}return t});var Cee=oe.Uint8Array,uz="__lodash_hash_undefined__";function cz(e){return this.__data__.set(e,uz),this}var dz=cz;function pz(e){return this.__data__.has(e)}var gz=pz;function Al(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new i1;++t<r;)this.add(e[t])}Al.prototype.add=Al.prototype.push=dz;Al.prototype.has=gz;var vg=Ht?Ht.prototype:void 0,Aee=vg?vg.valueOf:void 0,fz=Object.prototype,See=fz.hasOwnProperty,yz=Object.prototype,Mee=yz.hasOwnProperty,jee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),$ee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Eee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function n1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function Sl(e,t){let r=await n1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function mz(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return n1(i,t)}function bz(e){return e!==void 0}var po=bz;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Yi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Hi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Ol=class o1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new o1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},a1=class l1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new l1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function hz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function vz({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var wz=vz,yl="ly.img.ai.temp";async function kz(e,t){return e.engine.asset.findAllSources().includes(yl)||e.engine.asset.addLocalSource(yl),e.engine.asset.apply(yl,t)}function xz(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function s1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Iz(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function Cz(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Nl(e){return e instanceof Error&&e.name==="AbortError"}function Az(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function Sz(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
350
+ `,kN=wN,xN=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;Yt(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{Yt(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return Yt(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),Yt(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function Yt(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=Yt(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=Yt(n,t,a)}return e}var IN=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},CN=class{constructor(e,t){this.engine=e,this.key=t}hasData(e){return this.engine.block.isValid(e)&&this.engine.block.hasMetadata(e,this.key)}get(e){if(this.hasData(e))return JSON.parse(this.engine.block.getMetadata(e,this.key))}set(e,t){this.engine.block.setMetadata(e,this.key,JSON.stringify(t))}clear(e){this.engine.block.hasMetadata(e,this.key)&&this.engine.block.removeMetadata(e,this.key)}},t1=CN,AN=typeof global=="object"&&global&&global.Object===Object&&global,r1=AN,SN=typeof self=="object"&&self&&self.Object===Object&&self,MN=r1||SN||Function("return this")(),oe=MN,jN=oe.Symbol,Ht=jN,i1=Object.prototype,$N=i1.hasOwnProperty,EN=i1.toString,Li=Ht?Ht.toStringTag:void 0;function _N(e){var t=$N.call(e,Li),r=e[Li];try{e[Li]=void 0;var i=!0}catch{}var n=EN.call(e);return i&&(t?e[Li]=r:delete e[Li]),n}var LN=_N,TN=Object.prototype,ON=TN.toString;function NN(e){return ON.call(e)}var DN=NN,PN="[object Null]",zN="[object Undefined]",dg=Ht?Ht.toStringTag:void 0;function UN(e){return e==null?e===void 0?zN:PN:dg&&dg in Object(e)?LN(e):DN(e)}var Yi=UN;function RN(e){return e!=null&&typeof e=="object"}var Pl=RN,wee=Array.isArray;function FN(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var n1=FN,VN="[object AsyncFunction]",BN="[object Function]",qN="[object GeneratorFunction]",GN="[object Proxy]";function YN(e){if(!n1(e))return!1;var t=Yi(e);return t==BN||t==qN||t==VN||t==GN}var HN=YN,ZN=oe["__core-js_shared__"],bl=ZN,pg=function(){var e=/[^.]+$/.exec(bl&&bl.keys&&bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function QN(e){return!!pg&&pg in e}var WN=QN,KN=Function.prototype,JN=KN.toString;function XN(e){if(e!=null){try{return JN.call(e)}catch{}try{return e+""}catch{}}return""}var Ve=XN,eD=/[\\^$.*+?()[\]{}|]/g,tD=/^\[object .+?Constructor\]$/,rD=Function.prototype,iD=Object.prototype,nD=rD.toString,oD=iD.hasOwnProperty,aD=RegExp("^"+nD.call(oD).replace(eD,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function lD(e){if(!n1(e)||WN(e))return!1;var t=HN(e)?aD:tD;return t.test(Ve(e))}var sD=lD;function uD(e,t){return e?.[t]}var cD=uD;function dD(e,t){var r=cD(e,t);return sD(r)?r:void 0}var Qt=dD,pD=Qt(oe,"WeakMap"),Al=pD;function gD(e,t){return e===t||e!==e&&t!==t}var fD=gD,yD=9007199254740991;function mD(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=yD}var bD=mD,kee=Object.prototype,hD="[object Arguments]";function vD(e){return Pl(e)&&Yi(e)==hD}var gg=vD,o1=Object.prototype,wD=o1.hasOwnProperty,kD=o1.propertyIsEnumerable,xee=gg(function(){return arguments}())?gg:function(e){return Pl(e)&&wD.call(e,"callee")&&!kD.call(e,"callee")},a1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fg=a1&&typeof module=="object"&&module&&!module.nodeType&&module,xD=fg&&fg.exports===a1,yg=xD?oe.Buffer:void 0,Iee=yg?yg.isBuffer:void 0,ID="[object Arguments]",CD="[object Array]",AD="[object Boolean]",SD="[object Date]",MD="[object Error]",jD="[object Function]",$D="[object Map]",ED="[object Number]",_D="[object Object]",LD="[object RegExp]",TD="[object Set]",OD="[object String]",ND="[object WeakMap]",DD="[object ArrayBuffer]",PD="[object DataView]",zD="[object Float32Array]",UD="[object Float64Array]",RD="[object Int8Array]",FD="[object Int16Array]",VD="[object Int32Array]",BD="[object Uint8Array]",qD="[object Uint8ClampedArray]",GD="[object Uint16Array]",YD="[object Uint32Array]",R={};R[zD]=R[UD]=R[RD]=R[FD]=R[VD]=R[BD]=R[qD]=R[GD]=R[YD]=!0;R[ID]=R[CD]=R[DD]=R[AD]=R[PD]=R[SD]=R[MD]=R[jD]=R[$D]=R[ED]=R[_D]=R[LD]=R[TD]=R[OD]=R[ND]=!1;function HD(e){return Pl(e)&&bD(e.length)&&!!R[Yi(e)]}var ZD=HD;function QD(e){return function(t){return e(t)}}var WD=QD,l1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=l1&&typeof module=="object"&&module&&!module.nodeType&&module,KD=Ui&&Ui.exports===l1,hl=KD&&r1.process,JD=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||hl&&hl.binding&&hl.binding("util")}catch{}}(),mg=JD,bg=mg&&mg.isTypedArray,Cee=bg?WD(bg):ZD,XD=Object.prototype,Aee=XD.hasOwnProperty;function eP(e,t){return function(r){return e(t(r))}}var tP=eP,See=tP(Object.keys,Object),rP=Object.prototype,Mee=rP.hasOwnProperty,iP=Qt(Object,"create"),Fi=iP;function nP(){this.__data__=Fi?Fi(null):{},this.size=0}var oP=nP;function aP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var lP=aP,sP="__lodash_hash_undefined__",uP=Object.prototype,cP=uP.hasOwnProperty;function dP(e){var t=this.__data__;if(Fi){var r=t[e];return r===sP?void 0:r}return cP.call(t,e)?t[e]:void 0}var pP=dP,gP=Object.prototype,fP=gP.hasOwnProperty;function yP(e){var t=this.__data__;return Fi?t[e]!==void 0:fP.call(t,e)}var mP=yP,bP="__lodash_hash_undefined__";function hP(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Fi&&t===void 0?bP:t,this}var vP=hP;function Wt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Wt.prototype.clear=oP;Wt.prototype.delete=lP;Wt.prototype.get=pP;Wt.prototype.has=mP;Wt.prototype.set=vP;var hg=Wt;function wP(){this.__data__=[],this.size=0}var kP=wP;function xP(e,t){for(var r=e.length;r--;)if(fD(e[r][0],t))return r;return-1}var co=xP,IP=Array.prototype,CP=IP.splice;function AP(e){var t=this.__data__,r=co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():CP.call(t,r,1),--this.size,!0}var SP=AP;function MP(e){var t=this.__data__,r=co(t,e);return r<0?void 0:t[r][1]}var jP=MP;function $P(e){return co(this.__data__,e)>-1}var EP=$P;function _P(e,t){var r=this.__data__,i=co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var LP=_P;function Kt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Kt.prototype.clear=kP;Kt.prototype.delete=SP;Kt.prototype.get=jP;Kt.prototype.has=EP;Kt.prototype.set=LP;var po=Kt,TP=Qt(oe,"Map"),Vi=TP;function OP(){this.size=0,this.__data__={hash:new hg,map:new(Vi||po),string:new hg}}var NP=OP;function DP(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var PP=DP;function zP(e,t){var r=e.__data__;return PP(t)?r[typeof t=="string"?"string":"hash"]:r.map}var go=zP;function UP(e){var t=go(this,e).delete(e);return this.size-=t?1:0,t}var RP=UP;function FP(e){return go(this,e).get(e)}var VP=FP;function BP(e){return go(this,e).has(e)}var qP=BP;function GP(e,t){var r=go(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var YP=GP;function Jt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Jt.prototype.clear=NP;Jt.prototype.delete=RP;Jt.prototype.get=VP;Jt.prototype.has=qP;Jt.prototype.set=YP;var s1=Jt;function HP(){this.__data__=new po,this.size=0}var ZP=HP;function QP(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var WP=QP;function KP(e){return this.__data__.get(e)}var JP=KP;function XP(e){return this.__data__.has(e)}var ez=XP,tz=200;function rz(e,t){var r=this.__data__;if(r instanceof po){var i=r.__data__;if(!Vi||i.length<tz-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new s1(i)}return r.set(e,t),this.size=r.size,this}var iz=rz;function Hi(e){var t=this.__data__=new po(e);this.size=t.size}Hi.prototype.clear=ZP;Hi.prototype.delete=WP;Hi.prototype.get=JP;Hi.prototype.has=ez;Hi.prototype.set=iz;var nz=Object.prototype,jee=nz.propertyIsEnumerable,oz=Qt(oe,"DataView"),Sl=oz,az=Qt(oe,"Promise"),Ml=az,lz=Qt(oe,"Set"),jl=lz,vg="[object Map]",sz="[object Object]",wg="[object Promise]",kg="[object Set]",xg="[object WeakMap]",Ig="[object DataView]",uz=Ve(Sl),cz=Ve(Vi),dz=Ve(Ml),pz=Ve(jl),gz=Ve(Al),qt=Yi;(Sl&&qt(new Sl(new ArrayBuffer(1)))!=Ig||Vi&&qt(new Vi)!=vg||Ml&&qt(Ml.resolve())!=wg||jl&&qt(new jl)!=kg||Al&&qt(new Al)!=xg)&&(qt=function(e){var t=Yi(e),r=t==sz?e.constructor:void 0,i=r?Ve(r):"";if(i)switch(i){case uz:return Ig;case cz:return vg;case dz:return wg;case pz:return kg;case gz:return xg}return t});var $ee=oe.Uint8Array,fz="__lodash_hash_undefined__";function yz(e){return this.__data__.set(e,fz),this}var mz=yz;function bz(e){return this.__data__.has(e)}var hz=bz;function $l(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new s1;++t<r;)this.add(e[t])}$l.prototype.add=$l.prototype.push=mz;$l.prototype.has=hz;var Cg=Ht?Ht.prototype:void 0,Eee=Cg?Cg.valueOf:void 0,vz=Object.prototype,_ee=vz.hasOwnProperty,wz=Object.prototype,Lee=wz.hasOwnProperty,Tee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Oee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Nee=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function u1(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function El(e,t){let r=await u1(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function kz(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return u1(i,t)}function xz(e){return e!==void 0}var fo=xz;function Z(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function Zi(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function Qi(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var zl=class c1{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new c1),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},d1=class p1{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new p1),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function Iz(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function Cz({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var Az=Cz,vl="ly.img.ai.temp";async function Sz(e,t){return e.engine.asset.findAllSources().includes(vl)||e.engine.asset.addLocalSource(vl),e.engine.asset.apply(vl,t)}function Mz(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function g1(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function jz(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function $z(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function Ul(e){return e instanceof Error&&e.name==="AbortError"}function Ez(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function _z(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
351
351
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
352
352
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
353
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function Mz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),jz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:xz(e)}))}function jz(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var wg=Mz,$z="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Dl=$z;function Ez(e,t,r){switch(t){case"image":return _z(e,r[t]);case"video":return Lz(e,r[t]);case"sticker":return Tz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function _z(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Dl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Lz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Dl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function Tz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Dl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Oz=Ez;async function Nz(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return Dz(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return Pz(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return zz(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return Uz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Dz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Pz(e,t,r){let i=t.width,n=t.height,a=await Iz(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function zz(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function Uz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var u1=Nz;function Rz(e){switch(e.userFlow){case"placeholder":return Vz(e);case"generation-only":return Fz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Fz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ce(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ce(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=s1(),c=await u1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Vz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ce(t,r))return{status:"aborted"};let s=s1(),c=Oz(s,a,o);if(i=await kz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await u1(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Nl(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Bz=Rz;function Pl(e){return`${e}.generating`}function qz(e){return`${e}.abort`}function Gz(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(qz(d),()=>{}),y=c.global(Pl(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await Bz({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){wg(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Yz(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Nl(b))return;wg(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Yz(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var c1=Gz;async function Hz({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Pl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return c1(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Zz=Hz;function d1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Di(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=d1(e,t.$ref),n={...Di(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Di(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Di(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Di(e,t[n],r));return i}return t}function Qz(e){return Di(e,{...e})}function Wz(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function Kz(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return Jz(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function Jz(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=Xz(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function Xz(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var p1=Kz;function Ae(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function g1(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function f1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?eU(e,c,r,i,n,a,o,s):y1(e,c,r,i,n,a,o,s);case"boolean":return m1(e,c,r,i,n,a,o,s);case"number":case"integer":return b1(e,c,r,i,n,a,o,s);case"object":return Ml(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return tU(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Ml(e,t,r,i,n,a,o,s){let c=p1(t.schema??{},i).reduce((l,u)=>{let d=f1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function y1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=Ae(t,r,o,"placeholder"),f=Yi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Hi(d,m,f,t.schema.default,""),k=l(p,v),w=rU(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function eU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),{labels:y,icons:f}=g1(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),v=Yi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Hi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function m1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=Yi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Hi(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function b1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Yi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Hi(d,v,m,k,k),x=l(p,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function tU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=Ae(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=g1(t.schema),x=Yi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:y1,boolean:m1,integer:b1,object:Ml},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:Ae(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>Ml(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Hi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function rU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var iU=f1,nU={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function kg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function xg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||kg(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||kg(g);n[a(l.id,g)]=y}})}});let c={...nU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function Ig(e){return typeof e.document=="function"?e.document():e.document}function Cg(e,t,r){let i=Qz(e),n=d1(i,t.inputReference);if(!Wz(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=p1(a,t);return{inputSchema:a,properties:o}}function Ag(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=iU(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});c1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function oU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Ig(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=Cg(c,s,a.debug);return xg(y,i,r,i.kind),Ag(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Ig(s)).then(g=>{let{inputSchema:y,properties:f}=Cg(g,s,a.debug);xg(f,i,r,i.kind),u=Ag(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var aU=oU;async function lU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Zz(e,t);case"schema":return aU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var sU=lU;function uU(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new bN(o,r)),o}return i}var cU=uU;function dU(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var pU=dU,ml="@imgly/plugin-ai-generation",gU=`
353
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function Lz(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),Tz(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:Mz(e)}))}function Tz(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Ag=Lz,Oz="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",Rl=Oz;function Nz(e,t,r){switch(t){case"image":return Dz(e,r[t]);case"video":return Pz(e,r[t]);case"sticker":return zz(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Dz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function Pz(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:Rl,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function zz(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:Rl,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var Uz=Nz;async function Rz(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return Fz(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return Vz(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return Bz(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return qz(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function Fz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function Vz(e,t,r){let i=t.width,n=t.height,a=await jz(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function Bz(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function qz(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var f1=Rz;function Gz(e){switch(e.userFlow){case"placeholder":return Hz(e);case"generation-only":return Yz(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function Yz(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Ce(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Ce(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=g1(),c=await f1(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function Hz(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Ce(t,r))return{status:"aborted"};let s=g1(),c=Uz(s,a,o);if(i=await Sz(t,c),Ce(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Ce(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await f1(s,a,o,l.output);if(Ce(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Ce(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(Ul(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Ce(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var Zz=Gz;function Fl(e){return`${e}.generating`}function Qz(e){return`${e}.abort`}function Wz(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(Qz(d),()=>{}),y=c.global(Fl(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await Zz({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Ag(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;Kz(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(Ul(b))return;Ag(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function Kz(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var y1=Wz;function Bi(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function Jz({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(Fl(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return y1(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var Xz=Jz;function m1(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Pi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=m1(e,t.$ref),n={...Pi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Pi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Pi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Pi(e,t[n],r));return i}return t}function eU(e){return Pi(e,{...e})}function tU(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function rU(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return iU(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function iU(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=nU(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function nU(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var b1=rU;function Ae(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function h1(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function v1(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?oU(e,c,r,i,n,a,o,s):w1(e,c,r,i,n,a,o,s);case"boolean":return k1(e,c,r,i,n,a,o,s);case"number":case"integer":return x1(e,c,r,i,n,a,o,s);case"object":return _l(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return aU(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function _l(e,t,r,i,n,a,o,s){let c=b1(t.schema??{},i).reduce((l,u)=>{let d=v1(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function w1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=Ae(t,r,o,"placeholder"),f=Zi(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=Qi(d,m,f,t.schema.default,""),k=l(g,v),w=lU(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function oU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),{labels:y,icons:f}=h1(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:Ae(t,r,o,I),icon:f[I]})),v=Zi(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=Qi(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function k1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=Zi(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!Qi(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function x1(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=Zi(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=Qi(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function aU(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=Ae(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=h1(t.schema),x=Zi(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:w1,boolean:k1,integer:x1,object:_l},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:Ae(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>_l(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=Qi(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function lU(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var sU=v1,uU={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function Sg(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Mg(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||Sg(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||Sg(p);n[a(l.id,p)]=y}})}});let c={...uU,...n};Object.keys(c).length>0&&Z(r.cesdk,{en:c})}function jg(e){return typeof e.document=="function"?e.document():e.document}function $g(e,t,r){let i=eU(e),n=m1(i,t.inputReference);if(!tU(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=b1(a,t);return{inputSchema:a,properties:o}}function Eg(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=sU(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});y1(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function cU(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=jg(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=$g(c,s,a.debug);return Mg(y,i,r,i.kind),Eg(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(jg(s)).then(p=>{let{inputSchema:y,properties:f}=$g(p,s,a.debug);Mg(f,i,r,i.kind),u=Eg(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var dU=cU;async function pU(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return Xz(e,t);case"schema":return dU(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var gU=pU;function fU(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new xN(o,r)),o}return i}var yU=fU;function mU(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var bU=mU,wl="@imgly/plugin-ai-generation",hU=`
354
354
  <svg>
355
355
  <symbol
356
356
  fill="none"
@@ -368,7 +368,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
368
368
  fill="none"
369
369
  xmlns="http://www.w3.org/2000/svg"
370
370
  viewBox="0 0 24 24"
371
- id="${ml}/image"
371
+ id="${wl}/image"
372
372
  >
373
373
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
374
374
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -380,7 +380,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
380
380
  fill="none"
381
381
  xmlns="http://www.w3.org/2000/svg"
382
382
  viewBox="0 0 24 24"
383
- id="${ml}/video"
383
+ id="${wl}/video"
384
384
  >
385
385
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
386
386
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -391,7 +391,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
391
391
  fill="none"
392
392
  xmlns="http://www.w3.org/2000/svg"
393
393
  viewBox="0 0 24 24"
394
- id="${ml}/audio"
394
+ id="${wl}/audio"
395
395
  >
396
396
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
397
397
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -411,8 +411,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
411
411
 
412
412
  </symbol>
413
413
  </svg>
414
- `,fU=gU;function yU(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await h1(2e3),await mU(t,e,r)):i(t,r)}async function mU(e,t,r){switch(t.kind){case"image":return bU(e,t,r);case"video":return hU(e,t,r);case"text":return vU(e,t,r);case"audio":return kU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function bU(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await mz(s,r),l=await Sl(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
415
- `,"+")}`}}async function hU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function vU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Li(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Li(n,o)}else"customPrompt"in e?a=Li(n,"custom"):a=Li(n,"improved");else a=Li(n,"generated");return wU(a,r.abortSignal)}async function*wU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await h1(100)}return{kind:"text",text:e}}function Li(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function kU(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:xU(220,i),duration:i,thumbnailUrl:void 0}}function xU(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return IU(i,44100)}function IU(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function h1(e){return new Promise(t=>{setTimeout(t,e)})}var CU=yU,v1="USER_CANCEL";function AU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=hz([...e.provider.output.middleware??[],...r?.middlewares??[],wz({enable:r?.debug}),CU({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:Cz(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Nl(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===v1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var SU=AU;async function MU(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=Ol.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=cU(a),s=pU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=SU({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await sU(a,c);Az(r.cesdk,"@imgly/plugin-ai-generation",fU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return a1.get().register(u),u}var bl=MU;function jU(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new hN(n,r,i);return r.engine.asset.addSource(a),a.id}var $U=jU;function Pi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function EU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>bl(e,u,r,i)));o.push(...l),a=LU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>bl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>bl(e,d,r,i)));o.push(...u),a=_U({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=$U({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(po)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function _U({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:Pi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:Pi(e,"fromText.label"),icon:f.value!=="fromText"&&Sg(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:Pi(e,"fromImage.label"),icon:f.value!=="fromImage"&&Sg(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function LU({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:Pi(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function Sg(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Pl(r.id),!1).value)}var TU=EU,go="ly.img.ai.editMode",w1="ly.img.ai.metadata";async function OU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new Wg(n,w1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{l.clear(p)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{y(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{f(),p.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var NU=OU;function DU(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var PU=DU;function zU(e){return`ly.img.ai.${e}.canvasMenu`}var UU=zU;function RU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=UU(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var FU=RU;function VU(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return BU(e,t);case"image":return qU(e,t);case"video":return GU(e,t);case"audio":return YU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function BU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function qU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await Sl(c?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await Sl(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(p-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function GU(e,t){throw new Error("Function not implemented.")}async function YU(e,t){throw new Error("Function not implemented.")}var HU=VU;function ZU(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var QU=ZU,WU=class k1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new k1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Fe=WU;function KU(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(po)),c=new Wg(e.cesdk.engine,w1),l=e.lock??!0?QU({engine:e.cesdk.engine,editModeToLockTo:go,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(v1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await HU(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Mg=KU;function JU(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===go)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=FU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=XU(s).filter(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=a1.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(po);return S=PU(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:b.provider.name??b.provider.id})),p=i.experimental.global(`${t}.currentProvider`,d[0]),g=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===p.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=g?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:j.provider.name??j.provider.id})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...p})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Mg({blockIds:n,providerInitializationResult:I.providerInitializationResult??g?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:p.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...p})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{g?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Mg({blockIds:n,providerInitializationResult:A.providerInitializationResult??g?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:p.value.id})})}})}})}}})};return Promise.resolve(r)}function XU(e){return e.map(t=>t==="ly.img.separator"?t:Ol.get().getBy({id:t,type:"quick"})[0]).filter(po)}var eR=JU;async function tR(e){let t=await eR({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await NU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===go){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var rR=tR,iR=typeof global=="object"&&global&&global.Object===Object&&global,x1=iR,nR=typeof self=="object"&&self&&self.Object===Object&&self,oR=x1||nR||Function("return this")(),ae=oR,aR=ae.Symbol,Zt=aR,I1=Object.prototype,lR=I1.hasOwnProperty,sR=I1.toString,Ti=Zt?Zt.toStringTag:void 0;function uR(e){var t=lR.call(e,Ti),r=e[Ti];try{e[Ti]=void 0;var i=!0}catch{}var n=sR.call(e);return i&&(t?e[Ti]=r:delete e[Ti]),n}var cR=uR,dR=Object.prototype,pR=dR.toString;function gR(e){return pR.call(e)}var fR=gR,yR="[object Null]",mR="[object Undefined]",jg=Zt?Zt.toStringTag:void 0;function bR(e){return e==null?e===void 0?mR:yR:jg&&jg in Object(e)?cR(e):fR(e)}var Zi=bR;function hR(e){return e!=null&&typeof e=="object"}var zl=hR,_ee=Array.isArray;function vR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var C1=vR,wR="[object AsyncFunction]",kR="[object Function]",xR="[object GeneratorFunction]",IR="[object Proxy]";function CR(e){if(!C1(e))return!1;var t=Zi(e);return t==kR||t==xR||t==wR||t==IR}var AR=CR,SR=ae["__core-js_shared__"],hl=SR,$g=function(){var e=/[^.]+$/.exec(hl&&hl.keys&&hl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function MR(e){return!!$g&&$g in e}var jR=MR,$R=Function.prototype,ER=$R.toString;function _R(e){if(e!=null){try{return ER.call(e)}catch{}try{return e+""}catch{}}return""}var Be=_R,LR=/[\\^$.*+?()[\]{}|]/g,TR=/^\[object .+?Constructor\]$/,OR=Function.prototype,NR=Object.prototype,DR=OR.toString,PR=NR.hasOwnProperty,zR=RegExp("^"+DR.call(PR).replace(LR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function UR(e){if(!C1(e)||jR(e))return!1;var t=AR(e)?zR:TR;return t.test(Be(e))}var RR=UR;function FR(e,t){return e?.[t]}var VR=FR;function BR(e,t){var r=VR(e,t);return RR(r)?r:void 0}var Xt=BR,qR=Xt(ae,"WeakMap"),jl=qR;function GR(e,t){return e===t||e!==e&&t!==t}var YR=GR,HR=9007199254740991;function ZR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=HR}var QR=ZR,Lee=Object.prototype,WR="[object Arguments]";function KR(e){return zl(e)&&Zi(e)==WR}var Eg=KR,A1=Object.prototype,JR=A1.hasOwnProperty,XR=A1.propertyIsEnumerable,Tee=Eg(function(){return arguments}())?Eg:function(e){return zl(e)&&JR.call(e,"callee")&&!XR.call(e,"callee")},S1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_g=S1&&typeof module=="object"&&module&&!module.nodeType&&module,eF=_g&&_g.exports===S1,Lg=eF?ae.Buffer:void 0,Oee=Lg?Lg.isBuffer:void 0,tF="[object Arguments]",rF="[object Array]",iF="[object Boolean]",nF="[object Date]",oF="[object Error]",aF="[object Function]",lF="[object Map]",sF="[object Number]",uF="[object Object]",cF="[object RegExp]",dF="[object Set]",pF="[object String]",gF="[object WeakMap]",fF="[object ArrayBuffer]",yF="[object DataView]",mF="[object Float32Array]",bF="[object Float64Array]",hF="[object Int8Array]",vF="[object Int16Array]",wF="[object Int32Array]",kF="[object Uint8Array]",xF="[object Uint8ClampedArray]",IF="[object Uint16Array]",CF="[object Uint32Array]",F={};F[mF]=F[bF]=F[hF]=F[vF]=F[wF]=F[kF]=F[xF]=F[IF]=F[CF]=!0;F[tF]=F[rF]=F[fF]=F[iF]=F[yF]=F[nF]=F[oF]=F[aF]=F[lF]=F[sF]=F[uF]=F[cF]=F[dF]=F[pF]=F[gF]=!1;function AF(e){return zl(e)&&QR(e.length)&&!!F[Zi(e)]}var SF=AF;function MF(e){return function(t){return e(t)}}var jF=MF,M1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ui=M1&&typeof module=="object"&&module&&!module.nodeType&&module,$F=Ui&&Ui.exports===M1,vl=$F&&x1.process,EF=function(){try{var e=Ui&&Ui.require&&Ui.require("util").types;return e||vl&&vl.binding&&vl.binding("util")}catch{}}(),Tg=EF,Og=Tg&&Tg.isTypedArray,Nee=Og?jF(Og):SF,_F=Object.prototype,Dee=_F.hasOwnProperty;function LF(e,t){return function(r){return e(t(r))}}var TF=LF,Pee=TF(Object.keys,Object),OF=Object.prototype,zee=OF.hasOwnProperty,NF=Xt(Object,"create"),Vi=NF;function DF(){this.__data__=Vi?Vi(null):{},this.size=0}var PF=DF;function zF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var UF=zF,RF="__lodash_hash_undefined__",FF=Object.prototype,VF=FF.hasOwnProperty;function BF(e){var t=this.__data__;if(Vi){var r=t[e];return r===RF?void 0:r}return VF.call(t,e)?t[e]:void 0}var qF=BF,GF=Object.prototype,YF=GF.hasOwnProperty;function HF(e){var t=this.__data__;return Vi?t[e]!==void 0:YF.call(t,e)}var ZF=HF,QF="__lodash_hash_undefined__";function WF(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Vi&&t===void 0?QF:t,this}var KF=WF;function er(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}er.prototype.clear=PF;er.prototype.delete=UF;er.prototype.get=qF;er.prototype.has=ZF;er.prototype.set=KF;var Ng=er;function JF(){this.__data__=[],this.size=0}var XF=JF;function eV(e,t){for(var r=e.length;r--;)if(YR(e[r][0],t))return r;return-1}var fo=eV,tV=Array.prototype,rV=tV.splice;function iV(e){var t=this.__data__,r=fo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():rV.call(t,r,1),--this.size,!0}var nV=iV;function oV(e){var t=this.__data__,r=fo(t,e);return r<0?void 0:t[r][1]}var aV=oV;function lV(e){return fo(this.__data__,e)>-1}var sV=lV;function uV(e,t){var r=this.__data__,i=fo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var cV=uV;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=XF;tr.prototype.delete=nV;tr.prototype.get=aV;tr.prototype.has=sV;tr.prototype.set=cV;var yo=tr,dV=Xt(ae,"Map"),Bi=dV;function pV(){this.size=0,this.__data__={hash:new Ng,map:new(Bi||yo),string:new Ng}}var gV=pV;function fV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var yV=fV;function mV(e,t){var r=e.__data__;return yV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var mo=mV;function bV(e){var t=mo(this,e).delete(e);return this.size-=t?1:0,t}var hV=bV;function vV(e){return mo(this,e).get(e)}var wV=vV;function kV(e){return mo(this,e).has(e)}var xV=kV;function IV(e,t){var r=mo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var CV=IV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=gV;rr.prototype.delete=hV;rr.prototype.get=wV;rr.prototype.has=xV;rr.prototype.set=CV;var j1=rr;function AV(){this.__data__=new yo,this.size=0}var SV=AV;function MV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var jV=MV;function $V(e){return this.__data__.get(e)}var EV=$V;function _V(e){return this.__data__.has(e)}var LV=_V,TV=200;function OV(e,t){var r=this.__data__;if(r instanceof yo){var i=r.__data__;if(!Bi||i.length<TV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new j1(i)}return r.set(e,t),this.size=r.size,this}var NV=OV;function Qi(e){var t=this.__data__=new yo(e);this.size=t.size}Qi.prototype.clear=SV;Qi.prototype.delete=jV;Qi.prototype.get=EV;Qi.prototype.has=LV;Qi.prototype.set=NV;var DV=Object.prototype,Uee=DV.propertyIsEnumerable,PV=Xt(ae,"DataView"),$l=PV,zV=Xt(ae,"Promise"),El=zV,UV=Xt(ae,"Set"),_l=UV,Dg="[object Map]",RV="[object Object]",Pg="[object Promise]",zg="[object Set]",Ug="[object WeakMap]",Rg="[object DataView]",FV=Be($l),VV=Be(Bi),BV=Be(El),qV=Be(_l),GV=Be(jl),Gt=Zi;($l&&Gt(new $l(new ArrayBuffer(1)))!=Rg||Bi&&Gt(new Bi)!=Dg||El&&Gt(El.resolve())!=Pg||_l&&Gt(new _l)!=zg||jl&&Gt(new jl)!=Ug)&&(Gt=function(e){var t=Zi(e),r=t==RV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case FV:return Rg;case VV:return Dg;case BV:return Pg;case qV:return zg;case GV:return Ug}return t});var Ree=ae.Uint8Array,YV="__lodash_hash_undefined__";function HV(e){return this.__data__.set(e,YV),this}var ZV=HV;function QV(e){return this.__data__.has(e)}var WV=QV;function Ll(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new j1;++t<r;)this.add(e[t])}Ll.prototype.add=Ll.prototype.push=ZV;Ll.prototype.has=WV;var Fg=Zt?Zt.prototype:void 0,Fee=Fg?Fg.valueOf:void 0,KV=Object.prototype,Vee=KV.hasOwnProperty,JV=Object.prototype,Bee=JV.hasOwnProperty,qee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Gee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Yee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function XV(e){return e==null?[]:Array.isArray(e)?e:[e]}var eB=XV;function tB(e){return`
414
+ `,vU=hU;function wU(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await I1(2e3),await kU(t,e,r)):i(t,r)}async function kU(e,t,r){switch(t.kind){case"image":return xU(e,t,r);case"video":return IU(e,t,r);case"text":return CU(e,t,r);case"audio":return SU(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function xU(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await kz(s,r),l=await El(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
415
+ `,"+")}`}}async function IU(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function CU(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Ti(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ti(n,o)}else"customPrompt"in e?a=Ti(n,"custom"):a=Ti(n,"improved");else a=Ti(n,"generated");return AU(a,r.abortSignal)}async function*AU(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await I1(100)}return{kind:"text",text:e}}function Ti(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function SU(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:MU(220,i),duration:i,thumbnailUrl:void 0}}function MU(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return jU(i,44100)}function jU(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function I1(e){return new Promise(t=>{setTimeout(t,e)})}var $U=wU,C1="USER_CANCEL";function EU(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Iz([...e.provider.output.middleware??[],...r?.middlewares??[],Az({enable:r?.debug}),$U({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:$z(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return Ul(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===C1?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var _U=EU;async function LU(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=zl.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=yU(a),s=bU(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=_U({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await gU(a,c);Ez(r.cesdk,"@imgly/plugin-ai-generation",vU);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return d1.get().register(u),u}var kl=LU;function TU(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new IN(n,r,i);return r.engine.asset.addSource(a),a.id}var OU=TU;function zi(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function NU(e,t,r,i){let{cesdk:n}=r;Z(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>kl(e,u,r,i)));o.push(...l),a=PU({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>kl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>kl(e,d,r,i)));o.push(...u),a=DU({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=OU({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(fo)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function DU({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:Bi(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:zi(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:zi(e,"fromText.label"),icon:f.value!=="fromText"&&_g(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:zi(e,"fromImage.label"),icon:f.value!=="fromImage"&&_g(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function PU({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:Bi(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:zi(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function _g(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Fl(r.id),!1).value)}var zU=NU,yo="ly.img.ai.editMode",A1="ly.img.ai.metadata";async function UU(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk&&Z(e.cesdk,{en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:a,state:o,payload:s}=i;if(s==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let l=new t1(n,A1),u=l.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(g=>{l.clear(g)})};switch(u.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let g=o(`${t}.comparing`,"after"),p=s.applyCallbacks?.onCancel;p!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{p(),d()}});let y=s.applyCallbacks?.onBefore,f=s.applyCallbacks?.onAfter;y!=null&&f!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:g.value==="before",onClick:()=>{y(),g.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:g.value==="after",onClick:()=>{f(),g.setValue("after")}})}});let m=s.applyCallbacks?.onApply;m!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:g.value!=="after",onClick:()=>{d();let v=e.cesdk.engine.editor;typeof v._update=="function"&&v._update(),m()}});break}default:}};return Promise.resolve(r)}var RU=UU;function FU(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var VU=FU;function BU(e){return`ly.img.ai.${e}.canvasMenu`}var qU=BU;function GU(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=qU(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var YU=GU;function HU(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return ZU(e,t);case"image":return QU(e,t);case"video":return WU(e,t);case"audio":return KU(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function ZU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?l=u:u.kind==="text"&&(l=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},c=()=>{t.blockIds.forEach((l,u)=>{t.cesdk.engine.block.setString(l,"text/text",a[u])})};return{applyCallbacks:{onBefore:c,onAfter:s,onCancel:c,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function QU(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[c]=s,l;c==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??l),d=await El(c?.uri??l,t.cesdk.engine),g=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let p=r.engine.block.getCropScaleX(a),y=r.engine.block.getCropScaleY(a),f=r.engine.block.getCropTranslationX(a),m=r.engine.block.getCropTranslationY(a),v=r.engine.block.getCropRotation(a),k=()=>{r.engine.block.setCropScaleX(a,p),r.engine.block.setCropScaleY(a,y),r.engine.block.setCropTranslationX(a,f),r.engine.block.setCropTranslationY(a,m),r.engine.block.setCropRotation(a,v)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let w=e.output.url,x=await El(w,t.cesdk.engine),b=x.width/x.height,I=Math.abs(g-b)>.001,S=c?[{uri:w,width:x.width,height:x.height}]:void 0,A=w;S==null?r.engine.block.setString(o,"fill/image/imageFileURI",A):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",S)),await r.engine.block.forceLoadResources([o]),I?r.engine.block.setContentFillMode(a,"Cover"):k();let _=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);k()},j=()=>{if(S==null){if(A==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",A)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",S);I?r.engine.block.setContentFillMode(a,"Cover"):k()};return{applyCallbacks:{onBefore:_,onAfter:j,onCancel:()=>{_()},onApply:()=>{j(),t.cesdk.engine.editor.addUndoStep()}}}}async function WU(e,t){throw new Error("Function not implemented.")}async function KU(e,t){throw new Error("Function not implemented.")}var JU=HU;function XU(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(l=>c.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var eR=XU,tR=class S1{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new S1),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},Fe=tR;function rR(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(fo)),c=new t1(e.cesdk.engine,A1),l=e.lock??!0?eR({engine:e.cesdk.engine,editModeToLockTo:yo,blockIdsToLock:i}):()=>{};i.forEach(u=>{Fe.get().register(u,{onCancelGeneration:()=>{o.abort(C1),l(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(a(t),{blockIds:i,middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=u.status;switch(d){case"success":{let{applyCallbacks:g}=await JU(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&e.cesdk.engine.block.setState(p,{type:"Ready"})}),e.confirmation){i.forEach(y=>{c.set(y,{status:"confirmation",quickActionId:e.quickAction.id})});let p={...g,onApply:async()=>{g.onApply(),l()},onCancel:()=>{g.onCancel(),l()}};i.forEach(y=>{Fe.get().register(y,{applyCallbacks:p})})}else i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),g.onApply(),l();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u;case"error":return l(),i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),u.middlewareOptions?.defaultPrevented()||console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var Lg=rR;function iR(e){let t=`ly.img.ai.${e.kind}}`;Z(e.cesdk,{en:{"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label":"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===yo)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let a=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction`;if(!e.cesdk.feature.isEnabled(a,{engine:e.engine}))return;let{payload:o}=i,s=YU({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(s.length===0)return;let c=nR(s).filter(b=>{if(b==="ly.img.separator")return!0;let I=b.id.replace("ly.img.",""),S=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.${I}`;if(!e.cesdk.feature.isEnabled(S,{engine:e.engine}))return!1;let A=b.scopes;if(A!=null&&A.length>0&&!n.every(_=>A.every(j=>e.engine.block.isAllowedByScope(_,j))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),l=[],u=e.providerInitializationResults.reduce((b,I)=>{if(I.provider.kind!==e.kind)return b;let S=c.map(A=>{if(A==="ly.img.separator")return A;if(I.provider.input?.quickActions?.supported?.[A.id]!=null)return{definition:A};{let _=d1.get().getAll().filter(j=>j.provider.kind!==e.kind&&j.provider.id!==I.provider.id).find(j=>j.provider.input?.quickActions?.supported?.[A.id]!=null);if(_!=null){let j={definition:A,providerInitializationResult:_};return l.push(j),j}else return}}).filter(fo);return S=VU(S),S.length===0||S.every(A=>A==="ly.img.separator")||S.every(A=>A==="ly.img.separator"||A.providerInitializationResult!=null)||b.push({providerInitializationResult:I,quickActions:S}),b},[]);if(u.length===0)if(l.length>0){let b=new Map;l.forEach(S=>{let A=S.definition.id;b.has(A)||b.set(A,S)});let I=Array.from(b.values());u.push({providerInitializationResult:I[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:I})}else return;let d=u.map(({providerInitializationResult:b})=>({id:b.provider.id,label:Bi(b.provider)})),g=i.experimental.global(`${t}.currentProvider`,d[0]),p=u.find(({providerInitializationResult:{provider:{id:b}}})=>b===g.value?.id),y=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:f,experimental:m,state:v}=i,k=v(`${t}.isGenerating`,!1),w=v(`${t}.toggleExpandedState`,void 0),x=async(b,I,S)=>{k.setValue(!0);try{return await S(b,I)}finally{k.setValue(!1)}};m.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!y,isLoading:k.value,trailingIcon:null,children:({close:b})=>{if(w.value!==void 0){let I=p?.quickActions.find(j=>j!=="ly.img.separator"&&j.definition.id===w.value);if(I==null||I.definition.render==null)return;let S=u.filter(({quickActions:j})=>j.some(E=>E!=="ly.img.separator"&&E.definition.id===I.definition.id)).map(({providerInitializationResult:j})=>({id:j.provider.id,label:Bi(j.provider)})),A=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,_=e.cesdk.feature.isEnabled(A,{engine:e.engine});S.length>1&&_&&f.Section(`${t}.popover.expanded.header`,{children:()=>{f.Select(`${t}.expanded.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:S,...g})}}),f.Section(`${t}.popover.expanded.section`,{children:()=>I.definition.render({...i,toggleExpand:()=>{w.setValue(void 0)},isExpanded:!0,generate:Lg({blockIds:n,providerInitializationResult:I.providerInitializationResult??p?.providerInitializationResult,quickAction:I.definition,middlewares:[x],confirmation:I.definition.defaults?.confirmation??!0,lock:I.definition.defaults?.lock??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}else{let I=`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect`,S=e.cesdk.feature.isEnabled(I,{engine:e.engine});d.length>1&&S&&f.Section(`${t}.popover.header`,{children:()=>{f.Select(`${t}.providerSelect.select`,{inputLabel:[`ly.img.plugin-ai-${e.kind}-generation-web.quickAction.providerSelect.label`,"ly.img.plugin-ai-generation-web.defaults.quickAction.providerSelect.label"],values:d,...g})}}),f.Section(`${t}.popover.section`,{children:()=>{m.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(A=>{if(A==="ly.img.separator"){f.Separator(`${t}.separator.${Math.random().toString()}`);return}A.definition.render!=null&&A.definition.render({...i,toggleExpand:()=>{w.setValue(A.definition.id)},isExpanded:!1,generate:Lg({blockIds:n,providerInitializationResult:A.providerInitializationResult??p?.providerInitializationResult,quickAction:A.definition,middlewares:[x],confirmation:A.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:g.value.id})})}})}})}}})};return Promise.resolve(r)}function nR(e){return e.map(t=>t==="ly.img.separator"?t:zl.get().getBy({id:t,type:"quick"})[0]).filter(fo)}var oR=iR;async function aR(e){let t=await oR({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await RU({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===yo){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{Fe.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{Fe.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var lR=aR,sR=typeof global=="object"&&global&&global.Object===Object&&global,M1=sR,uR=typeof self=="object"&&self&&self.Object===Object&&self,cR=M1||uR||Function("return this")(),ae=cR,dR=ae.Symbol,Zt=dR,j1=Object.prototype,pR=j1.hasOwnProperty,gR=j1.toString,Oi=Zt?Zt.toStringTag:void 0;function fR(e){var t=pR.call(e,Oi),r=e[Oi];try{e[Oi]=void 0;var i=!0}catch{}var n=gR.call(e);return i&&(t?e[Oi]=r:delete e[Oi]),n}var yR=fR,mR=Object.prototype,bR=mR.toString;function hR(e){return bR.call(e)}var vR=hR,wR="[object Null]",kR="[object Undefined]",Tg=Zt?Zt.toStringTag:void 0;function xR(e){return e==null?e===void 0?kR:wR:Tg&&Tg in Object(e)?yR(e):vR(e)}var Wi=xR;function IR(e){return e!=null&&typeof e=="object"}var Vl=IR,Dee=Array.isArray;function CR(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var $1=CR,AR="[object AsyncFunction]",SR="[object Function]",MR="[object GeneratorFunction]",jR="[object Proxy]";function $R(e){if(!$1(e))return!1;var t=Wi(e);return t==SR||t==MR||t==AR||t==jR}var ER=$R,_R=ae["__core-js_shared__"],xl=_R,Og=function(){var e=/[^.]+$/.exec(xl&&xl.keys&&xl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function LR(e){return!!Og&&Og in e}var TR=LR,OR=Function.prototype,NR=OR.toString;function DR(e){if(e!=null){try{return NR.call(e)}catch{}try{return e+""}catch{}}return""}var Be=DR,PR=/[\\^$.*+?()[\]{}|]/g,zR=/^\[object .+?Constructor\]$/,UR=Function.prototype,RR=Object.prototype,FR=UR.toString,VR=RR.hasOwnProperty,BR=RegExp("^"+FR.call(VR).replace(PR,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qR(e){if(!$1(e)||TR(e))return!1;var t=ER(e)?BR:zR;return t.test(Be(e))}var GR=qR;function YR(e,t){return e?.[t]}var HR=YR;function ZR(e,t){var r=HR(e,t);return GR(r)?r:void 0}var Xt=ZR,QR=Xt(ae,"WeakMap"),Ll=QR;function WR(e,t){return e===t||e!==e&&t!==t}var KR=WR,JR=9007199254740991;function XR(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=JR}var eF=XR,Pee=Object.prototype,tF="[object Arguments]";function rF(e){return Vl(e)&&Wi(e)==tF}var Ng=rF,E1=Object.prototype,iF=E1.hasOwnProperty,nF=E1.propertyIsEnumerable,zee=Ng(function(){return arguments}())?Ng:function(e){return Vl(e)&&iF.call(e,"callee")&&!nF.call(e,"callee")},_1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dg=_1&&typeof module=="object"&&module&&!module.nodeType&&module,oF=Dg&&Dg.exports===_1,Pg=oF?ae.Buffer:void 0,Uee=Pg?Pg.isBuffer:void 0,aF="[object Arguments]",lF="[object Array]",sF="[object Boolean]",uF="[object Date]",cF="[object Error]",dF="[object Function]",pF="[object Map]",gF="[object Number]",fF="[object Object]",yF="[object RegExp]",mF="[object Set]",bF="[object String]",hF="[object WeakMap]",vF="[object ArrayBuffer]",wF="[object DataView]",kF="[object Float32Array]",xF="[object Float64Array]",IF="[object Int8Array]",CF="[object Int16Array]",AF="[object Int32Array]",SF="[object Uint8Array]",MF="[object Uint8ClampedArray]",jF="[object Uint16Array]",$F="[object Uint32Array]",F={};F[kF]=F[xF]=F[IF]=F[CF]=F[AF]=F[SF]=F[MF]=F[jF]=F[$F]=!0;F[aF]=F[lF]=F[vF]=F[sF]=F[wF]=F[uF]=F[cF]=F[dF]=F[pF]=F[gF]=F[fF]=F[yF]=F[mF]=F[bF]=F[hF]=!1;function EF(e){return Vl(e)&&eF(e.length)&&!!F[Wi(e)]}var _F=EF;function LF(e){return function(t){return e(t)}}var TF=LF,L1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ri=L1&&typeof module=="object"&&module&&!module.nodeType&&module,OF=Ri&&Ri.exports===L1,Il=OF&&M1.process,NF=function(){try{var e=Ri&&Ri.require&&Ri.require("util").types;return e||Il&&Il.binding&&Il.binding("util")}catch{}}(),zg=NF,Ug=zg&&zg.isTypedArray,Ree=Ug?TF(Ug):_F,DF=Object.prototype,Fee=DF.hasOwnProperty;function PF(e,t){return function(r){return e(t(r))}}var zF=PF,Vee=zF(Object.keys,Object),UF=Object.prototype,Bee=UF.hasOwnProperty,RF=Xt(Object,"create"),qi=RF;function FF(){this.__data__=qi?qi(null):{},this.size=0}var VF=FF;function BF(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qF=BF,GF="__lodash_hash_undefined__",YF=Object.prototype,HF=YF.hasOwnProperty;function ZF(e){var t=this.__data__;if(qi){var r=t[e];return r===GF?void 0:r}return HF.call(t,e)?t[e]:void 0}var QF=ZF,WF=Object.prototype,KF=WF.hasOwnProperty;function JF(e){var t=this.__data__;return qi?t[e]!==void 0:KF.call(t,e)}var XF=JF,eV="__lodash_hash_undefined__";function tV(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=qi&&t===void 0?eV:t,this}var rV=tV;function er(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}er.prototype.clear=VF;er.prototype.delete=qF;er.prototype.get=QF;er.prototype.has=XF;er.prototype.set=rV;var Rg=er;function iV(){this.__data__=[],this.size=0}var nV=iV;function oV(e,t){for(var r=e.length;r--;)if(KR(e[r][0],t))return r;return-1}var mo=oV,aV=Array.prototype,lV=aV.splice;function sV(e){var t=this.__data__,r=mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():lV.call(t,r,1),--this.size,!0}var uV=sV;function cV(e){var t=this.__data__,r=mo(t,e);return r<0?void 0:t[r][1]}var dV=cV;function pV(e){return mo(this.__data__,e)>-1}var gV=pV;function fV(e,t){var r=this.__data__,i=mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var yV=fV;function tr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}tr.prototype.clear=nV;tr.prototype.delete=uV;tr.prototype.get=dV;tr.prototype.has=gV;tr.prototype.set=yV;var bo=tr,mV=Xt(ae,"Map"),Gi=mV;function bV(){this.size=0,this.__data__={hash:new Rg,map:new(Gi||bo),string:new Rg}}var hV=bV;function vV(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var wV=vV;function kV(e,t){var r=e.__data__;return wV(t)?r[typeof t=="string"?"string":"hash"]:r.map}var ho=kV;function xV(e){var t=ho(this,e).delete(e);return this.size-=t?1:0,t}var IV=xV;function CV(e){return ho(this,e).get(e)}var AV=CV;function SV(e){return ho(this,e).has(e)}var MV=SV;function jV(e,t){var r=ho(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var $V=jV;function rr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}rr.prototype.clear=hV;rr.prototype.delete=IV;rr.prototype.get=AV;rr.prototype.has=MV;rr.prototype.set=$V;var T1=rr;function EV(){this.__data__=new bo,this.size=0}var _V=EV;function LV(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var TV=LV;function OV(e){return this.__data__.get(e)}var NV=OV;function DV(e){return this.__data__.has(e)}var PV=DV,zV=200;function UV(e,t){var r=this.__data__;if(r instanceof bo){var i=r.__data__;if(!Gi||i.length<zV-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new T1(i)}return r.set(e,t),this.size=r.size,this}var RV=UV;function Ki(e){var t=this.__data__=new bo(e);this.size=t.size}Ki.prototype.clear=_V;Ki.prototype.delete=TV;Ki.prototype.get=NV;Ki.prototype.has=PV;Ki.prototype.set=RV;var FV=Object.prototype,qee=FV.propertyIsEnumerable,VV=Xt(ae,"DataView"),Tl=VV,BV=Xt(ae,"Promise"),Ol=BV,qV=Xt(ae,"Set"),Nl=qV,Fg="[object Map]",GV="[object Object]",Vg="[object Promise]",Bg="[object Set]",qg="[object WeakMap]",Gg="[object DataView]",YV=Be(Tl),HV=Be(Gi),ZV=Be(Ol),QV=Be(Nl),WV=Be(Ll),Gt=Wi;(Tl&&Gt(new Tl(new ArrayBuffer(1)))!=Gg||Gi&&Gt(new Gi)!=Fg||Ol&&Gt(Ol.resolve())!=Vg||Nl&&Gt(new Nl)!=Bg||Ll&&Gt(new Ll)!=qg)&&(Gt=function(e){var t=Wi(e),r=t==GV?e.constructor:void 0,i=r?Be(r):"";if(i)switch(i){case YV:return Gg;case HV:return Fg;case ZV:return Vg;case QV:return Bg;case WV:return qg}return t});var Gee=ae.Uint8Array,KV="__lodash_hash_undefined__";function JV(e){return this.__data__.set(e,KV),this}var XV=JV;function eB(e){return this.__data__.has(e)}var tB=eB;function Dl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new T1;++t<r;)this.add(e[t])}Dl.prototype.add=Dl.prototype.push=XV;Dl.prototype.has=tB;var Yg=Zt?Zt.prototype:void 0,Yee=Yg?Yg.valueOf:void 0,rB=Object.prototype,Hee=rB.hasOwnProperty,iB=Object.prototype,Zee=iB.hasOwnProperty,Qee=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Wee=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Kee=new RegExp(/[A-Fa-f0-9]{2}/,"g");function nB(e){return e==null?[]:Array.isArray(e)?e:[e]}var oB=nB;function aB(e){return`
416
416
  You are an AI writing assistant tasked with improving a given text based on a specific type of improvement requested. Your goal is to enhance the text while maintaining its original meaning and intent.
417
417
 
418
418
  Here is the original text you will be working with:
@@ -436,7 +436,7 @@ Please follow these steps to improve the text:
436
436
  7. If you cannot make any meaningful improvements, return the original text as is.
437
437
 
438
438
  Once you have made the improvements, only return the improved text and nothing else.
439
- `}var rB=tB,bo="improve",Vg=`ly.img.${bo}`,iB=`ly.img.plugin-ai-text-generation-web.quickAction.${bo}`,nB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${bo}`;function oB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${bo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var aB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${nB}`]:"Improve Writing"}}),{id:Vg,type:"quick",kind:"text",scopes:["text/edit"],label:`${iB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Vg}.button`,{label:oB(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:rB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to improve text. Please try again.",duration:"medium"})}}})}}),lB=aB;function sB(e){return`
439
+ `}var lB=aB,vo="improve",Hg=`ly.img.${vo}`,sB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,uB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function cB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var dB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.improve",!0),Z(e,{en:{[`${uB}`]:"Improve Writing"}}),{id:Hg,type:"quick",kind:"text",scopes:["text/edit"],label:`${sB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Hg}.button`,{label:cB(a),icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:lB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to improve text. Please try again.",duration:"medium"})}}})}}),pB=dB;function gB(e){return`
440
440
  You are tasked with fixing spelling and grammar errors in a given text. Your goal is to improve the text while maintaining its original meaning and style. Here is the text you need to correct:
441
441
 
442
442
  <original_text>
@@ -466,7 +466,7 @@ Please follow these steps to complete the task:
466
466
  After making the necessary corrections, please provide only the improved output and nothing else.
467
467
 
468
468
  Remember to preserve the original structure and formatting of the text as much as possible while making your corrections.
469
- `}var uB=sB,ho="fix",Bg=`ly.img.${ho}`,cB=`ly.img.plugin-ai-text-generation-web.quickAction.${ho}`,dB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ho}`;function pB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ho}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var gB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${dB}`]:"Fix Spelling & Grammar"}}),{id:Bg,type:"quick",kind:"text",scopes:["text/edit"],label:`${cB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Bg}.button`,{label:pB(a),icon:"@imgly/CheckmarkAll",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:uB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to fix text. Please try again.",duration:"medium"})}}})}}),fB=gB;function yB(e){return`
469
+ `}var fB=gB,wo="fix",Zg=`ly.img.${wo}`,yB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,mB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function bB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var hB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.fix",!0),Z(e,{en:{[`${mB}`]:"Fix Spelling & Grammar"}}),{id:Zg,type:"quick",kind:"text",scopes:["text/edit"],label:`${yB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Zg}.button`,{label:bB(a),icon:"@imgly/CheckmarkAll",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:fB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to fix text. Please try again.",duration:"medium"})}}})}}),vB=hB;function wB(e){return`
470
470
  You will be given a text to shorten. Your task is to reduce the length of the text by 30% to 50% while maintaining its original voice, perspective, and key information. This is not a summary - you should preserve the style and tone of the original text.
471
471
 
472
472
  Here is the original text:
@@ -497,7 +497,7 @@ To complete this task, follow these steps:
497
497
  6. Once you've finished shortening, review the text to ensure it still reads smoothly and retains the essence of the original.
498
498
 
499
499
  Provide only the shortened version of the text in your response, without any additional comments, tags or explanations.
500
- `}var mB=yB,vo="shorter",qg=`ly.img.${vo}`,bB=`ly.img.plugin-ai-text-generation-web.quickAction.${vo}`,hB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${vo}`;function vB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${vo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var wB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${hB}`]:"Make Shorter"}}),{id:qg,type:"quick",kind:"text",scopes:["text/edit"],label:`${bB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${qg}.button`,{label:vB(a),icon:"@imgly/TextShorter",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:mB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text shorter. Please try again.",duration:"medium"})}}})}}),kB=wB;function xB(e){return`
500
+ `}var kB=wB,ko="shorter",Qg=`ly.img.${ko}`,xB=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,IB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function CB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var AB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.shorter",!0),Z(e,{en:{[`${IB}`]:"Make Shorter"}}),{id:Qg,type:"quick",kind:"text",scopes:["text/edit"],label:`${xB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Qg}.button`,{label:CB(a),icon:"@imgly/TextShorter",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:kB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text shorter. Please try again.",duration:"medium"})}}})}}),SB=AB;function MB(e){return`
501
501
  You are tasked with expanding a given text to make it longer. Here's how to proceed:
502
502
 
503
503
  First, you will be provided with the original text:
@@ -531,7 +531,7 @@ Only return the longer text and nothing else.
531
531
  Make sure to only return the expanded text and nothing else. Do not include any additional information or comments in your response about what you have done.
532
532
 
533
533
  Do not add the original text or the original_text tags to the response.
534
- `}var IB=xB,wo="longer",Gg=`ly.img.${wo}`,CB=`ly.img.plugin-ai-text-generation-web.quickAction.${wo}`,AB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${wo}`;function SB(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${wo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var MB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${AB}`]:"Make Longer"}}),{id:Gg,type:"quick",kind:"text",scopes:["text/edit"],label:`${CB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Gg}.button`,{label:SB(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:IB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),jB=MB;function $B(e,t){return`
534
+ `}var jB=MB,xo="longer",Wg=`ly.img.${xo}`,$B=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,EB=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function _B(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var LB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.longer",!0),Z(e,{en:{[`${EB}`]:"Make Longer"}}),{id:Wg,type:"quick",kind:"text",scopes:["text/edit"],label:`${$B}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,providerId:a})=>{t.Button(`${Wg}.button`,{label:_B(a),icon:"@imgly/TextLonger",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[o]=i.block.findAllSelected(),s=i.block.getString(o,"text/text");await r({prompt:jB(s)}),n()}catch(o){console.error("Generation error:",o),e.ui.showNotification({type:"error",message:o.message||"Failed to make text longer. Please try again.",duration:"medium"})}}})}}),TB=LB;function OB(e,t){return`
535
535
  You will be given a piece of text and a desired tone. Your task is to rewrite the text to match the desired tone while preserving the original meaning and key information. Here's how to proceed:
536
536
 
537
537
  First, you will be provided with the original text:
@@ -553,7 +553,7 @@ To change the tone of the text:
553
553
  6. Only return the rewritten text without any additional commentary, tags or explanation.
554
554
 
555
555
  Now, rewrite the text to match the desired tone. Your response should contain only the rewritten text, without any additional explanations or comments. Do not use any tags in your response.
556
- `}var EB=$B,ko="changeTone",Oi=`ly.img.${ko}`,_B=`ly.img.plugin-ai-text-generation-web.quickAction.${ko}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${ko}`;function Yg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${ko}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var LB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],TB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Re}`]:"Change Tone",[`${Re}.professional`]:"Professional",[`${Re}.casual`]:"Casual",[`${Re}.friendly`]:"Friendly",[`${Re}.serious`]:"Serious",[`${Re}.humorous`]:"Humorous",[`${Re}.optimistic`]:"Optimistic"}}),{id:Oi,type:"quick",kind:"text",scopes:["text/edit"],label:`${_B}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Oi}.popover`,{label:Yg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Oi}.popover.section`,{children:()=>{a.builder.Menu(`${Oi}.popover.menu`,{children:()=>{LB.forEach(s=>{t.Button(`${Oi}.popover.menu.${s.id}`,{label:Yg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:EB(l,s.id),type:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to change tone. Please try again.",duration:"medium"})}}})})}})}})}})}}),OB=TB,$1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},NB=Object.keys($1);function DB(e,t){let r=$1[t]||t;return`
556
+ `}var NB=OB,Io="changeTone",Ni=`ly.img.${Io}`,DB=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Re=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function Kg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var PB=[{id:"professional"},{id:"casual"},{id:"friendly"},{id:"serious"},{id:"humorous"},{id:"optimistic"}],zB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTone",!0),Z(e,{en:{[`${Re}`]:"Change Tone",[`${Re}.professional`]:"Professional",[`${Re}.casual`]:"Casual",[`${Re}.friendly`]:"Friendly",[`${Re}.serious`]:"Serious",[`${Re}.humorous`]:"Humorous",[`${Re}.optimistic`]:"Optimistic"}}),{id:Ni,type:"quick",kind:"text",scopes:["text/edit"],label:`${DB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ni}.popover`,{label:Kg(o),icon:"@imgly/Microphone",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ni}.popover.section`,{children:()=>{a.builder.Menu(`${Ni}.popover.menu`,{children:()=>{PB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:Kg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:NB(l,s.id),type:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to change tone. Please try again.",duration:"medium"})}}})})}})}})}})}}),UB=zB,O1={en_US:"English (US)",en_UK:"English (UK)",es:"Spanish",fr:"French",de:"German",pt:"Portuguese",it:"Italian",ru:"Russian",zh:"Mandarin Chinese",ja:"Japanese"},RB=Object.keys(O1);function FB(e,t){let r=O1[t]||t;return`
557
557
  You are a translation AI. Your task is to translate the given text into the specified target language. Follow these steps:
558
558
 
559
559
  1. Here is the source text to be translated:
@@ -569,7 +569,7 @@ ${r}
569
569
  3. Translate the source text into the target language. Ensure that you maintain the original meaning, tone, and style as closely as possible while adapting to the linguistic and cultural norms of the target language.
570
570
 
571
571
  4. Return only the translated text, without any additional comments, explanations, or metadata. Do not include the original text or any other information in your response.
572
- `}var PB=DB,xo="translate",Ni=`ly.img.${xo}`,zB=`ly.img.plugin-ai-text-generation-web.quickAction.${xo}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${xo}`;function Hg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${xo}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var UB=NB.map(e=>({id:e})),RB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Ni,type:"quick",kind:"text",scopes:["text/edit"],label:`${zB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Ni}.popover`,{label:Hg(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Ni}.popover.section`,{children:()=>{a.builder.Menu(`${Ni}.popover.menu`,{children:()=>{UB.forEach(s=>{t.Button(`${Ni}.popover.menu.${s.id}`,{label:Hg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:PB(l,s.id),language:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to translate text. Please try again.",duration:"medium"})}}})})}})}})}})}}),FB=RB;function VB(e,t){return`
572
+ `}var VB=FB,Co="translate",Di=`ly.img.${Co}`,BB=`ly.img.plugin-ai-text-generation-web.quickAction.${Co}`,Q=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Co}`;function Jg(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Co}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=RB.map(e=>({id:e})),GB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.translate",!0),Z(e,{en:{[`${Q}`]:"Translate",[`${Q}.en_US`]:"English (US)",[`${Q}.en_UK`]:"English (UK)",[`${Q}.es`]:"Spanish",[`${Q}.fr`]:"French",[`${Q}.de`]:"German",[`${Q}.pt`]:"Portuguese",[`${Q}.it`]:"Italian",[`${Q}.ru`]:"Russian",[`${Q}.zh`]:"Mandarin Chinese",[`${Q}.ja`]:"Japanese"}}),{id:Di,type:"quick",kind:"text",scopes:["text/edit"],label:`${BB}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,generate:r,engine:i,close:n,experimental:a,providerId:o})=>{a.builder.Popover(`${Di}.popover`,{label:Jg(o),icon:"@imgly/Language",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{t.Section(`${Di}.popover.section`,{children:()=>{a.builder.Menu(`${Di}.popover.menu`,{children:()=>{qB.forEach(s=>{t.Button(`${Di}.popover.menu.${s.id}`,{label:Jg(o,s.id),labelAlignment:"left",variant:"plain",onClick:async()=>{try{n();let[c]=i.block.findAllSelected(),l=i.block.getString(c,"text/text");await r({prompt:VB(l,s.id),language:s.id})}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to translate text. Please try again.",duration:"medium"})}}})})}})}})}})}}),YB=GB;function HB(e,t){return`
573
573
  You will be given an original text and a custom prompt addition that specifies how to change the text. Your task is to modify the original text according to the prompt and return only the new, modified text.
574
574
 
575
575
  Here is the original text:
@@ -583,10 +583,10 @@ ${t}
583
583
  </change_text_to>
584
584
 
585
585
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
586
- `}var BB=VB,Io="changeTextTo",Ie=`ly.img.${Io}`,Zg=`ly.img.plugin-ai-text-generation-web.quickAction.${Io}`,Qg=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Io}`;function wl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Io}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var qB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${Qg}`]:"Change Text to...",[`${Qg}.prompt`]:"Change Text to...",[`${Zg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Zg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:wl(l,"prompt"),placeholder:wl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=o.block.findAllSelected(),g=o.block.getString(p,"text/text");await a({prompt:BB(g,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:wl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),GB=qB,E1="@imgly/plugin-ai-text-generation-web",YB=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function HB(e){return{async initialize({cesdk:t}){if(t==null)return;Sz(t,E1,"1.73.0-rc.1"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(fN,mN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),ZB(e);let r=Ol.get();r.register(lB({cesdk:t})),r.register(fB({cesdk:t})),r.register(kB({cesdk:t})),r.register(jB({cesdk:t})),r.register(OB({cesdk:t})),r.register(FB({cesdk:t})),r.register(GB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(eB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await TU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await rR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:YB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:go}))}}}function ZB(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var QB=HB,WB=e=>({name:E1,version:"1.73.0-rc.1",...QB(e)}),_1=WB;var KB=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",p=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(p=l.tags[u]);let g={...l,label:d,tags:p};return this.filterAsset(g,e)&&c.push(g),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var JB=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let p=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-p});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},XB=typeof global=="object"&&global&&global.Object===Object&&global,ff=XB,eq=typeof self=="object"&&self&&self.Object===Object&&self,tq=ff||eq||Function("return this")(),le=tq,rq=le.Symbol,ar=rq,yf=Object.prototype,iq=yf.hasOwnProperty,nq=yf.toString,Wi=ar?ar.toStringTag:void 0;function oq(e){var t=iq.call(e,Wi),r=e[Wi];try{e[Wi]=void 0;var i=!0}catch{}var n=nq.call(e);return i&&(t?e[Wi]=r:delete e[Wi]),n}var aq=oq,lq=Object.prototype,sq=lq.toString;function uq(e){return sq.call(e)}var cq=uq,dq="[object Null]",pq="[object Undefined]",L1=ar?ar.toStringTag:void 0;function gq(e){return e==null?e===void 0?pq:dq:L1&&L1 in Object(e)?aq(e):cq(e)}var un=gq;function fq(e){return e!=null&&typeof e=="object"}var is=fq,Kee=Array.isArray;function yq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var mf=yq,mq="[object AsyncFunction]",bq="[object Function]",hq="[object GeneratorFunction]",vq="[object Proxy]";function wq(e){if(!mf(e))return!1;var t=un(e);return t==bq||t==hq||t==mq||t==vq}var kq=wq,xq=le["__core-js_shared__"],Ul=xq,T1=function(){var e=/[^.]+$/.exec(Ul&&Ul.keys&&Ul.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Iq(e){return!!T1&&T1 in e}var Cq=Iq,Aq=Function.prototype,Sq=Aq.toString;function Mq(e){if(e!=null){try{return Sq.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Mq,jq=/[\\^$.*+?()[\]{}|]/g,$q=/^\[object .+?Constructor\]$/,Eq=Function.prototype,_q=Object.prototype,Lq=Eq.toString,Tq=_q.hasOwnProperty,Oq=RegExp("^"+Lq.call(Tq).replace(jq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Nq(e){if(!mf(e)||Cq(e))return!1;var t=kq(e)?Oq:$q;return t.test(qe(e))}var Dq=Nq;function Pq(e,t){return e?.[t]}var zq=Pq;function Uq(e,t){var r=zq(e,t);return Dq(r)?r:void 0}var sr=Uq,Rq=sr(le,"WeakMap"),Yl=Rq;function Fq(e,t){return e===t||e!==e&&t!==t}var Vq=Fq,Bq=9007199254740991;function qq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Bq}var Gq=qq,Jee=Object.prototype,Yq="[object Arguments]";function Hq(e){return is(e)&&un(e)==Yq}var O1=Hq,bf=Object.prototype,Zq=bf.hasOwnProperty,Qq=bf.propertyIsEnumerable,Xee=O1(function(){return arguments}())?O1:function(e){return is(e)&&Zq.call(e,"callee")&&!Qq.call(e,"callee")},hf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,N1=hf&&typeof module=="object"&&module&&!module.nodeType&&module,Wq=N1&&N1.exports===hf,D1=Wq?le.Buffer:void 0,ete=D1?D1.isBuffer:void 0,Kq="[object Arguments]",Jq="[object Array]",Xq="[object Boolean]",eG="[object Date]",tG="[object Error]",rG="[object Function]",iG="[object Map]",nG="[object Number]",oG="[object Object]",aG="[object RegExp]",lG="[object Set]",sG="[object String]",uG="[object WeakMap]",cG="[object ArrayBuffer]",dG="[object DataView]",pG="[object Float32Array]",gG="[object Float64Array]",fG="[object Int8Array]",yG="[object Int16Array]",mG="[object Int32Array]",bG="[object Uint8Array]",hG="[object Uint8ClampedArray]",vG="[object Uint16Array]",wG="[object Uint32Array]",V={};V[pG]=V[gG]=V[fG]=V[yG]=V[mG]=V[bG]=V[hG]=V[vG]=V[wG]=!0;V[Kq]=V[Jq]=V[cG]=V[Xq]=V[dG]=V[eG]=V[tG]=V[rG]=V[iG]=V[nG]=V[oG]=V[aG]=V[lG]=V[sG]=V[uG]=!1;function kG(e){return is(e)&&Gq(e.length)&&!!V[un(e)]}var xG=kG;function IG(e){return function(t){return e(t)}}var CG=IG,vf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rn=vf&&typeof module=="object"&&module&&!module.nodeType&&module,AG=rn&&rn.exports===vf,Rl=AG&&ff.process,SG=function(){try{var e=rn&&rn.require&&rn.require("util").types;return e||Rl&&Rl.binding&&Rl.binding("util")}catch{}}(),P1=SG,z1=P1&&P1.isTypedArray,tte=z1?CG(z1):xG,MG=Object.prototype,rte=MG.hasOwnProperty;function jG(e,t){return function(r){return e(t(r))}}var $G=jG,ite=$G(Object.keys,Object),EG=Object.prototype,nte=EG.hasOwnProperty,_G=sr(Object,"create"),on=_G;function LG(){this.__data__=on?on(null):{},this.size=0}var TG=LG;function OG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var NG=OG,DG="__lodash_hash_undefined__",PG=Object.prototype,zG=PG.hasOwnProperty;function UG(e){var t=this.__data__;if(on){var r=t[e];return r===DG?void 0:r}return zG.call(t,e)?t[e]:void 0}var RG=UG,FG=Object.prototype,VG=FG.hasOwnProperty;function BG(e){var t=this.__data__;return on?t[e]!==void 0:VG.call(t,e)}var qG=BG,GG="__lodash_hash_undefined__";function YG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=on&&t===void 0?GG:t,this}var HG=YG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=TG;ur.prototype.delete=NG;ur.prototype.get=RG;ur.prototype.has=qG;ur.prototype.set=HG;var U1=ur;function ZG(){this.__data__=[],this.size=0}var QG=ZG;function WG(e,t){for(var r=e.length;r--;)if(Vq(e[r][0],t))return r;return-1}var Co=WG,KG=Array.prototype,JG=KG.splice;function XG(e){var t=this.__data__,r=Co(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():JG.call(t,r,1),--this.size,!0}var eY=XG;function tY(e){var t=this.__data__,r=Co(t,e);return r<0?void 0:t[r][1]}var rY=tY;function iY(e){return Co(this.__data__,e)>-1}var nY=iY;function oY(e,t){var r=this.__data__,i=Co(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var aY=oY;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=QG;cr.prototype.delete=eY;cr.prototype.get=rY;cr.prototype.has=nY;cr.prototype.set=aY;var Ao=cr,lY=sr(le,"Map"),an=lY;function sY(){this.size=0,this.__data__={hash:new U1,map:new(an||Ao),string:new U1}}var uY=sY;function cY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var dY=cY;function pY(e,t){var r=e.__data__;return dY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var So=pY;function gY(e){var t=So(this,e).delete(e);return this.size-=t?1:0,t}var fY=gY;function yY(e){return So(this,e).get(e)}var mY=yY;function bY(e){return So(this,e).has(e)}var hY=bY;function vY(e,t){var r=So(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var wY=vY;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=uY;dr.prototype.delete=fY;dr.prototype.get=mY;dr.prototype.has=hY;dr.prototype.set=wY;var wf=dr;function kY(){this.__data__=new Ao,this.size=0}var xY=kY;function IY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var CY=IY;function AY(e){return this.__data__.get(e)}var SY=AY;function MY(e){return this.__data__.has(e)}var jY=MY,$Y=200;function EY(e,t){var r=this.__data__;if(r instanceof Ao){var i=r.__data__;if(!an||i.length<$Y-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new wf(i)}return r.set(e,t),this.size=r.size,this}var _Y=EY;function cn(e){var t=this.__data__=new Ao(e);this.size=t.size}cn.prototype.clear=xY;cn.prototype.delete=CY;cn.prototype.get=SY;cn.prototype.has=jY;cn.prototype.set=_Y;var LY=Object.prototype,ote=LY.propertyIsEnumerable,TY=sr(le,"DataView"),Hl=TY,OY=sr(le,"Promise"),Zl=OY,NY=sr(le,"Set"),Ql=NY,R1="[object Map]",DY="[object Object]",F1="[object Promise]",V1="[object Set]",B1="[object WeakMap]",q1="[object DataView]",PY=qe(Hl),zY=qe(an),UY=qe(Zl),RY=qe(Ql),FY=qe(Yl),ir=un;(Hl&&ir(new Hl(new ArrayBuffer(1)))!=q1||an&&ir(new an)!=R1||Zl&&ir(Zl.resolve())!=F1||Ql&&ir(new Ql)!=V1||Yl&&ir(new Yl)!=B1)&&(ir=function(e){var t=un(e),r=t==DY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case PY:return q1;case zY:return R1;case UY:return F1;case RY:return V1;case FY:return B1}return t});var ate=le.Uint8Array,VY="__lodash_hash_undefined__";function BY(e){return this.__data__.set(e,VY),this}var qY=BY;function GY(e){return this.__data__.has(e)}var YY=GY;function Wl(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new wf;++t<r;)this.add(e[t])}Wl.prototype.add=Wl.prototype.push=qY;Wl.prototype.has=YY;var G1=ar?ar.prototype:void 0,lte=G1?G1.valueOf:void 0,HY=Object.prototype,ste=HY.hasOwnProperty,ZY=Object.prototype,ute=ZY.hasOwnProperty,cte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),dte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),pte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function kf(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function QY(e,t){let r=await kf(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function WY(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return kf(i,t)}function KY(e){return e!==void 0}var JY=KY;function ns(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function dn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function pn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var xf=class If{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new If),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},XY=class Cf{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Cf),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function eH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let p=t[l],g=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return p(u,y,g)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function tH({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var rH=tH,Fl="ly.img.ai.temp";async function iH(e,t){return e.engine.asset.findAllSources().includes(Fl)||e.engine.asset.addLocalSource(Fl),e.engine.asset.apply(Fl,t)}function nH(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Af(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function oH(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function aH(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function os(e){return e instanceof Error&&e.name==="AbortError"}function lH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function sH(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
586
+ `}var ZB=HB,Ao="changeTextTo",Ie=`ly.img.${Ao}`,Xg=`ly.img.plugin-ai-text-generation-web.quickAction.${Ao}`,e1=`ly.img.plugin-ai-text-generation-web.defaults.quickAction.${Ao}`;function Cl(e,t){let r="ly.img.plugin-ai-text-generation-web",i=`quickAction.${Ao}`,n=t?`${i}.${t}`:i;return[`${r}.${e}.${n}`,`${r}.${n}`,`${r}.${e}.defaults.${n}`,`${r}.defaults.${n}`]}var QB=({cesdk:e})=>(e.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.changeTextTo",!0),Z(e,{en:{[`${e1}`]:"Change Text to...",[`${e1}.prompt`]:"Change Text to...",[`${Xg}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:Ie,type:"quick",kind:"text",scopes:["text/edit"],label:`${Xg}`,enable:({engine:t})=>{let r=t.block.findAllSelected();if(r==null||r.length!==1)return!1;let[i]=r;return t.block.getType(i)==="//ly.img.ubq/text"},render:({builder:t,experimental:r,isExpanded:i,toggleExpand:n,generate:a,engine:o,state:s,close:c,providerId:l})=>{if(i){let u=s(`${Ie}.prompt`,"");t.TextArea(`${Ie}.prompt`,{inputLabel:Cl(l,"prompt"),placeholder:Cl(l,"prompt.placeholder")[1],...u}),t.Separator(`${Ie}.separator`),r.builder.ButtonRow(`${Ie}.footer`,{justifyContent:"space-between",children:()=>{t.Button(`${Ie}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:n}),t.Button(`${Ie}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[g]=o.block.findAllSelected(),p=o.block.getString(g,"text/text");await a({prompt:ZB(p,d),customPrompt:d}),n(),c()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else t.Button(`${Ie}.button`,{label:Cl(l),icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:n})}}),WB=QB,N1="@imgly/plugin-ai-text-generation-web",KB=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function JB(e){return{async initialize({cesdk:t}){if(t==null)return;_z(t,N1,"1.73.0-rc.3"),t.feature.enable("ly.img.plugin-ai-text-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction",!0),t.feature.enable("ly.img.plugin-ai-text-generation-web.quickAction.providerSelect",!0),t.ui.addIconSet(vN,kN),Z(t,{en:{"common.apply":"Apply","common.back":"Back"}}),XB(e);let r=zl.get();r.register(pB({cesdk:t})),r.register(vB({cesdk:t})),r.register(SB({cesdk:t})),r.register(TB({cesdk:t})),r.register(UB({cesdk:t})),r.register(YB({cesdk:t})),r.register(WB({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(oB(i).map(s=>s({cesdk:t})));if(!(n.length>0))return;let a=await zU("text",{fromText:n,fromImage:[]},{cesdk:t},e),o=await lR({kind:"text",providerInitializationResults:a.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:KB});o.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",o.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:yo}))}}}function XB(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var eq=JB,tq=e=>({name:N1,version:"1.73.0-rc.3",...eq(e)}),D1=tq;var rq=class{constructor(e,t,r){this.assetStoreName="assets",this.blobStoreName="blobs",this.db=null,this.id=e,this.engine=t,this.dbName=r?.dbName??`ly.img.assetSource/${e}`,this.dbVersion=r?.dbVersion??1}async initialize(){if(!this.db)return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onerror=i=>{t(new Error(`Failed to open IndexedDB: ${i.target.error}`))},r.onupgradeneeded=i=>{let n=i.target.result;n.objectStoreNames.contains(this.assetStoreName)||n.createObjectStore(this.assetStoreName,{keyPath:"id"}),n.objectStoreNames.contains(this.blobStoreName)||n.createObjectStore(this.blobStoreName,{keyPath:"id"})},r.onsuccess=i=>{this.db=i.target.result,e()}})}close(){this.db&&(this.db.close(),this.db=null)}async findAssets(e){if(await this.initialize(),!this.db)throw new Error("Database not initialized");try{let t=(await this.getAllAssets("asc")).reduce((c,l)=>{let u=e.locale??"en",d="",g=[];l.label!=null&&typeof l.label=="object"&&l.label[u]&&(d=l.label[u]),l.tags!=null&&typeof l.tags=="object"&&l.tags[u]&&(g=l.tags[u]);let p={...l,label:d,tags:g};return this.filterAsset(p,e)&&c.push(p),c},[]);t=await this.restoreBlobUrls(t),t=this.sortAssets(t,e);let{page:r,perPage:i}=e,n=r*i,a=n+i,o=t.slice(n,a),s=a<t.length?r+1:void 0;return{assets:o,currentPage:r,nextPage:s,total:t.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){if(await this.initialize(),!this.db)throw new Error("Database not initialized");return new Promise((e,t)=>{let r=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();r.onsuccess=()=>{let i=new Set;r.result.forEach(a=>{a.groups&&Array.isArray(a.groups)&&a.groups.forEach(o=>i.add(o))});let n=[...i];e(n)},r.onerror=()=>{t(new Error(`Failed to get groups: ${r.error}`))}})}addAsset(e){this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.assetStoreName,"readwrite"),r=t.objectStore(this.assetStoreName),i=new Set;or(e,a=>{i.add(a)}),setTimeout(()=>{this.storeBlobUrls([...i])});let n={...e,meta:{...e.meta,insertedAt:e.meta?.insertedAt||Date.now()}};r.put(n),t.oncomplete=()=>{this.engine.asset.assetSourceContentsChanged(this.id)},t.onerror=()=>{console.error(`Failed to add asset: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async removeAsset(e){let t=await this.getAsset(e);return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.assetStoreName,"readwrite");r.objectStore(this.assetStoreName).delete(e),r.oncomplete=()=>{or(t,i=>{this.removeBlob(i)}),this.engine.asset.assetSourceContentsChanged(this.id)},r.onerror=()=>{console.error(`Failed to remove asset: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async removeBlob(e){return this.initialize().then(()=>{if(!this.db)throw new Error("Database not initialized");let t=this.db.transaction(this.blobStoreName,"readwrite");t.objectStore(this.blobStoreName).delete(e),t.onerror=()=>{console.error(`Failed to remove blob: ${t.error}`)}}).catch(t=>{console.error("Error initializing database:",t)})}async getAllAssets(e="desc"){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).getAll();i.onsuccess=()=>{let n=i.result;n.sort((a,o)=>{let s=a.meta?.insertedAt||a._insertedAt||Date.now(),c=o.meta?.insertedAt||o._insertedAt||Date.now();return e==="asc"?s-c:c-s}),t(n)},i.onerror=()=>{r(new Error(`Failed to get assets: ${i.error}`))}})}async getAsset(e){return new Promise((t,r)=>{let i=this.db.transaction(this.assetStoreName,"readonly").objectStore(this.assetStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async getBlob(e){return new Promise((t,r)=>{let i=this.db.transaction(this.blobStoreName,"readonly").objectStore(this.blobStoreName).get(e);i.onsuccess=()=>{t(i.result)},i.onerror=()=>{r(new Error(`Failed to get blob: ${i.error}`))}})}async createBlobUrlFromStore(e){let t=await this.getBlob(e);return t!=null?URL.createObjectURL(t.blob):e}async storeBlobUrls(e){let t={};return await Promise.all(e.map(async r=>{let i=await(await fetch(r)).blob();t[r]=i})),this.initialize().then(async()=>{if(!this.db)throw new Error("Database not initialized");let r=this.db.transaction(this.blobStoreName,"readwrite"),i=r.objectStore(this.blobStoreName);Object.entries(t).forEach(([n,a])=>{let o={id:n,blob:a};i.put(o)}),r.onerror=()=>{console.error(`Failed to add blobs: ${r.error}`)}}).catch(r=>{console.error("Error initializing database:",r)})}async restoreBlobUrls(e){let t={},r=new Set;return or(e,i=>{r.add(i)}),await Promise.all([...r].map(async i=>{let n=await this.createBlobUrlFromStore(i);t[i]=n})),or(e,i=>t[i]??i)}filterAsset(e,t){let{query:r,tags:i,groups:n,excludeGroups:a}=t;if(r&&r.trim()!==""){let o=r.trim().toLowerCase().split(" "),s=e.label?.toLowerCase()??"",c=e.tags?.map(l=>l.toLowerCase())??[];if(!o.every(l=>s.includes(l)||c.some(u=>u.includes(l))))return!1}if(i){let o=Array.isArray(i)?i:[i];if(o.length>0&&(!e.tags||!o.every(s=>e.tags?.includes(s))))return!1}return!(n&&n.length>0&&(!e.groups||!n.some(o=>e.groups?.includes(o)))||a&&a.length>0&&e.groups&&e.groups.some(o=>a.includes(o)))}sortAssets(e,t){let{sortingOrder:r,sortKey:i,sortActiveFirst:n}=t,a=[...e];return!r||r==="None"||(i?a.sort((o,s)=>{let c,l;return i==="id"?(c=o.id,l=s.id):(c=o.meta?.[i]??null,l=s.meta?.[i]??null),c==null?r==="Ascending"?-1:1:l==null?r==="Ascending"?1:-1:typeof c=="string"&&typeof l=="string"?r==="Ascending"?c.localeCompare(l):l.localeCompare(c):r==="Ascending"?c<l?-1:c>l?1:0:c>l?-1:c<l?1:0}):r==="Descending"&&a.reverse(),n&&a.sort((o,s)=>o.active&&!s.active?-1:!o.active&&s.active?1:0)),a}};function or(e,t,r=""){if(e===null||typeof e!="object")return e;if(Array.isArray(e)){for(let i=0;i<e.length;i++){let n=r?`${r}[${i}]`:`[${i}]`;if(typeof e[i]=="string"&&e[i].startsWith("blob:")){let a=t(e[i],n);typeof a=="string"&&(e[i]=a)}else e[i]=or(e[i],t,n)}return e}for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let n=e[i],a=r?`${r}.${i}`:i;if(typeof n=="string"&&n.startsWith("blob:")){let o=t(n,a);typeof o=="string"&&(e[i]=o)}else e[i]=or(n,t,a)}return e}var iq=class{constructor(e,t,r){this.id=e,this.cesdk=t,this.assetSourceIds=r}async findAssets(e){try{let t=this.assetSourceIds.map(u=>this.cesdk.engine.asset.findAssets(u,{...e,perPage:9999,page:0})),r=await Promise.all(t),i=[];r.forEach(u=>{u?.assets&&(i=i.concat(u.assets))}),i.sort((u,d)=>{let g=u.meta?.insertedAt||0;return(d.meta?.insertedAt||0)-g});let{page:n,perPage:a}=e,o=n*a,s=o+a,c=i.slice(o,s),l=s<i.length?n+1:void 0;return{assets:c,currentPage:n,nextPage:l,total:i.length}}catch(t){console.error("Error finding assets:",t);return}}async getGroups(){let e=this.assetSourceIds.map(i=>this.cesdk.engine.asset.getGroups(i)),t=await Promise.all(e),r=new Set;return t.forEach(i=>{i.forEach(n=>r.add(n))}),Array.from(r)}addAsset(e){throw new Error("AggregatedAssetSource does not support adding assets")}removeAsset(e){throw new Error("AggregatedAssetSource does not support removing assets")}},nq=typeof global=="object"&&global&&global.Object===Object&&global,vf=nq,oq=typeof self=="object"&&self&&self.Object===Object&&self,aq=vf||oq||Function("return this")(),le=aq,lq=le.Symbol,ar=lq,wf=Object.prototype,sq=wf.hasOwnProperty,uq=wf.toString,Ji=ar?ar.toStringTag:void 0;function cq(e){var t=sq.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=uq.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var dq=cq,pq=Object.prototype,gq=pq.toString;function fq(e){return gq.call(e)}var yq=fq,mq="[object Null]",bq="[object Undefined]",P1=ar?ar.toStringTag:void 0;function hq(e){return e==null?e===void 0?bq:mq:P1&&P1 in Object(e)?dq(e):yq(e)}var dn=hq;function vq(e){return e!=null&&typeof e=="object"}var ss=vq,rte=Array.isArray;function wq(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var kf=wq,kq="[object AsyncFunction]",xq="[object Function]",Iq="[object GeneratorFunction]",Cq="[object Proxy]";function Aq(e){if(!kf(e))return!1;var t=dn(e);return t==xq||t==Iq||t==kq||t==Cq}var Sq=Aq,Mq=le["__core-js_shared__"],Bl=Mq,z1=function(){var e=/[^.]+$/.exec(Bl&&Bl.keys&&Bl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function jq(e){return!!z1&&z1 in e}var $q=jq,Eq=Function.prototype,_q=Eq.toString;function Lq(e){if(e!=null){try{return _q.call(e)}catch{}try{return e+""}catch{}}return""}var qe=Lq,Tq=/[\\^$.*+?()[\]{}|]/g,Oq=/^\[object .+?Constructor\]$/,Nq=Function.prototype,Dq=Object.prototype,Pq=Nq.toString,zq=Dq.hasOwnProperty,Uq=RegExp("^"+Pq.call(zq).replace(Tq,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Rq(e){if(!kf(e)||$q(e))return!1;var t=Sq(e)?Uq:Oq;return t.test(qe(e))}var Fq=Rq;function Vq(e,t){return e?.[t]}var Bq=Vq;function qq(e,t){var r=Bq(e,t);return Fq(r)?r:void 0}var sr=qq,Gq=sr(le,"WeakMap"),Wl=Gq;function Yq(e,t){return e===t||e!==e&&t!==t}var Hq=Yq,Zq=9007199254740991;function Qq(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Zq}var Wq=Qq,ite=Object.prototype,Kq="[object Arguments]";function Jq(e){return ss(e)&&dn(e)==Kq}var U1=Jq,xf=Object.prototype,Xq=xf.hasOwnProperty,eG=xf.propertyIsEnumerable,nte=U1(function(){return arguments}())?U1:function(e){return ss(e)&&Xq.call(e,"callee")&&!eG.call(e,"callee")},If=typeof exports=="object"&&exports&&!exports.nodeType&&exports,R1=If&&typeof module=="object"&&module&&!module.nodeType&&module,tG=R1&&R1.exports===If,F1=tG?le.Buffer:void 0,ote=F1?F1.isBuffer:void 0,rG="[object Arguments]",iG="[object Array]",nG="[object Boolean]",oG="[object Date]",aG="[object Error]",lG="[object Function]",sG="[object Map]",uG="[object Number]",cG="[object Object]",dG="[object RegExp]",pG="[object Set]",gG="[object String]",fG="[object WeakMap]",yG="[object ArrayBuffer]",mG="[object DataView]",bG="[object Float32Array]",hG="[object Float64Array]",vG="[object Int8Array]",wG="[object Int16Array]",kG="[object Int32Array]",xG="[object Uint8Array]",IG="[object Uint8ClampedArray]",CG="[object Uint16Array]",AG="[object Uint32Array]",V={};V[bG]=V[hG]=V[vG]=V[wG]=V[kG]=V[xG]=V[IG]=V[CG]=V[AG]=!0;V[rG]=V[iG]=V[yG]=V[nG]=V[mG]=V[oG]=V[aG]=V[lG]=V[sG]=V[uG]=V[cG]=V[dG]=V[pG]=V[gG]=V[fG]=!1;function SG(e){return ss(e)&&Wq(e.length)&&!!V[dn(e)]}var MG=SG;function jG(e){return function(t){return e(t)}}var $G=jG,Cf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,on=Cf&&typeof module=="object"&&module&&!module.nodeType&&module,EG=on&&on.exports===Cf,ql=EG&&vf.process,_G=function(){try{var e=on&&on.require&&on.require("util").types;return e||ql&&ql.binding&&ql.binding("util")}catch{}}(),V1=_G,B1=V1&&V1.isTypedArray,ate=B1?$G(B1):MG,LG=Object.prototype,lte=LG.hasOwnProperty;function TG(e,t){return function(r){return e(t(r))}}var OG=TG,ste=OG(Object.keys,Object),NG=Object.prototype,ute=NG.hasOwnProperty,DG=sr(Object,"create"),ln=DG;function PG(){this.__data__=ln?ln(null):{},this.size=0}var zG=PG;function UG(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var RG=UG,FG="__lodash_hash_undefined__",VG=Object.prototype,BG=VG.hasOwnProperty;function qG(e){var t=this.__data__;if(ln){var r=t[e];return r===FG?void 0:r}return BG.call(t,e)?t[e]:void 0}var GG=qG,YG=Object.prototype,HG=YG.hasOwnProperty;function ZG(e){var t=this.__data__;return ln?t[e]!==void 0:HG.call(t,e)}var QG=ZG,WG="__lodash_hash_undefined__";function KG(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?WG:t,this}var JG=KG;function ur(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ur.prototype.clear=zG;ur.prototype.delete=RG;ur.prototype.get=GG;ur.prototype.has=QG;ur.prototype.set=JG;var q1=ur;function XG(){this.__data__=[],this.size=0}var eY=XG;function tY(e,t){for(var r=e.length;r--;)if(Hq(e[r][0],t))return r;return-1}var So=tY,rY=Array.prototype,iY=rY.splice;function nY(e){var t=this.__data__,r=So(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():iY.call(t,r,1),--this.size,!0}var oY=nY;function aY(e){var t=this.__data__,r=So(t,e);return r<0?void 0:t[r][1]}var lY=aY;function sY(e){return So(this.__data__,e)>-1}var uY=sY;function cY(e,t){var r=this.__data__,i=So(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var dY=cY;function cr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}cr.prototype.clear=eY;cr.prototype.delete=oY;cr.prototype.get=lY;cr.prototype.has=uY;cr.prototype.set=dY;var Mo=cr,pY=sr(le,"Map"),sn=pY;function gY(){this.size=0,this.__data__={hash:new q1,map:new(sn||Mo),string:new q1}}var fY=gY;function yY(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var mY=yY;function bY(e,t){var r=e.__data__;return mY(t)?r[typeof t=="string"?"string":"hash"]:r.map}var jo=bY;function hY(e){var t=jo(this,e).delete(e);return this.size-=t?1:0,t}var vY=hY;function wY(e){return jo(this,e).get(e)}var kY=wY;function xY(e){return jo(this,e).has(e)}var IY=xY;function CY(e,t){var r=jo(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var AY=CY;function dr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}dr.prototype.clear=fY;dr.prototype.delete=vY;dr.prototype.get=kY;dr.prototype.has=IY;dr.prototype.set=AY;var Af=dr;function SY(){this.__data__=new Mo,this.size=0}var MY=SY;function jY(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var $Y=jY;function EY(e){return this.__data__.get(e)}var _Y=EY;function LY(e){return this.__data__.has(e)}var TY=LY,OY=200;function NY(e,t){var r=this.__data__;if(r instanceof Mo){var i=r.__data__;if(!sn||i.length<OY-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Af(i)}return r.set(e,t),this.size=r.size,this}var DY=NY;function pn(e){var t=this.__data__=new Mo(e);this.size=t.size}pn.prototype.clear=MY;pn.prototype.delete=$Y;pn.prototype.get=_Y;pn.prototype.has=TY;pn.prototype.set=DY;var PY=Object.prototype,cte=PY.propertyIsEnumerable,zY=sr(le,"DataView"),Kl=zY,UY=sr(le,"Promise"),Jl=UY,RY=sr(le,"Set"),Xl=RY,G1="[object Map]",FY="[object Object]",Y1="[object Promise]",H1="[object Set]",Z1="[object WeakMap]",Q1="[object DataView]",VY=qe(Kl),BY=qe(sn),qY=qe(Jl),GY=qe(Xl),YY=qe(Wl),ir=dn;(Kl&&ir(new Kl(new ArrayBuffer(1)))!=Q1||sn&&ir(new sn)!=G1||Jl&&ir(Jl.resolve())!=Y1||Xl&&ir(new Xl)!=H1||Wl&&ir(new Wl)!=Z1)&&(ir=function(e){var t=dn(e),r=t==FY?e.constructor:void 0,i=r?qe(r):"";if(i)switch(i){case VY:return Q1;case BY:return G1;case qY:return Y1;case GY:return H1;case YY:return Z1}return t});var dte=le.Uint8Array,HY="__lodash_hash_undefined__";function ZY(e){return this.__data__.set(e,HY),this}var QY=ZY;function WY(e){return this.__data__.has(e)}var KY=WY;function es(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Af;++t<r;)this.add(e[t])}es.prototype.add=es.prototype.push=QY;es.prototype.has=KY;var W1=ar?ar.prototype:void 0,pte=W1?W1.valueOf:void 0,JY=Object.prototype,gte=JY.hasOwnProperty,XY=Object.prototype,fte=XY.hasOwnProperty,yte=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),mte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),bte=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function Sf(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),a=new Uint8Array(n),o=new Blob([a],{type:r});return URL.createObjectURL(o)}else return e}async function eH(e,t){let r=await Sf(e,t);return new Promise((i,n)=>{let a=new Image;a.onload=()=>{i({width:a.width,height:a.height})},a.onerror=n,a.src=r})}async function tH(e,t,r){let i,n=t.block.getFill(e),a=t.block.getSourceSet(n,"fill/image/sourceSet"),[o]=a;if(o==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=o.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return Sf(i,t)}function rH(e){return e!==void 0}var iH=rH;function us(e,t){if(typeof e.i18n?.getTranslations!="function"){e.i18n.setTranslations(t);return}let r=Object.keys(t),i=e.i18n.getTranslations(r),n={};for(let a of r){let o=t[a];if(!o)continue;let s=i[a]??{},c={};for(let[l,u]of Object.entries(o))!(l in s)&&u!==void 0&&(c[l]=u);Object.keys(c).length>0&&(n[a]=c)}Object.keys(n).length>0&&e.i18n.setTranslations(n)}function gn(e,t){let r=t?.i18n?.getLocale?.()||"en";return{engine:e,cesdk:t,locale:r}}function fn(e,t,r,i,n){if(t?.default!==void 0){let a=t.default;return typeof a!="function"?a:a(r)}return i!==void 0?i:n}var Mf=class jf{constructor(){this.actions=new Map,this.subscribers=new Map}static get(){let t="__imgly_action_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new jf),r[t]}register(t){return this.actions.set(t.id,t),this.notifySubscribers(t,"registered"),()=>{this.actions.get(t.id)===t&&(this.actions.delete(t.id),this.notifySubscribers(t,"unregistered"))}}getAll(){return Array.from(this.actions.values())}getBy(t){return this.getAll().filter(r=>this.matchesFilters(r,t))}subscribe(t){return this.subscribers.set(t,null),()=>{this.subscribers.delete(t)}}subscribeBy(t,r){return this.subscribers.set(r,t),()=>{this.subscribers.delete(r)}}notifySubscribers(t,r){this.subscribers.forEach((i,n)=>{if(i===null){n(t,r);return}this.matchesFilters(t,i)&&n(t,r)})}matchesFilters(t,r){return!(r.type&&t.type!==r.type||r.pluginId&&t.type==="plugin"&&t.pluginId!==r.pluginId||r.id&&t.id!==r.id||r.kind&&(t.type!=="quick"||t.kind!==r.kind))}},nH=class $f{constructor(){this.providers=new Map}static get(){let t="__imgly_provider_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new $f),r[t]}register(t){return this.providers.has(t.provider.id)&&console.warn(`Provider with ID "${t.provider.id}" is already registered`),this.providers.set(t.provider.id,t),()=>{this.providers.get(t.provider.id)===t&&this.providers.delete(t.provider.id)}}getAll(){return Array.from(this.providers.values())}getById(t){return this.providers.get(t)}getByKind(t){return this.getAll().filter(({provider:r})=>r.kind===t)}};function oH(e){let t=e.filter(r=>!!r);return r=>async(i,n)=>{let a=[],o=l=>{a.push(l)},s=async(l,u,d)=>{if(l>=t.length)return r(u,d);let g=t[l],p=async(f,m)=>s(l+1,f,m),y={...d,addDisposer:o};return g(u,y,p)},c={...n,addDisposer:o};return{result:await s(0,i,c),dispose:async()=>{for(let l=a.length-1;l>=0;l--)try{await a[l]()}catch(u){console.error("Error in disposer:",u)}a.length=0}}}}function aH({enable:e=!0}){return async(t,r,i)=>{if(!e)return i(t,r);console.group("[GENERATION]"),console.log("Generating with input:",JSON.stringify(t,null,2));let n,a=Date.now();try{return n=await i(t,r),n}finally{n!=null&&(console.log(`Generation took ${Date.now()-a}ms`),console.log("Generation result:",JSON.stringify(n,null,2))),console.groupEnd()}}}var lH=aH,Gl="ly.img.ai.temp";async function sH(e,t){return e.engine.asset.findAllSources().includes(Gl)||e.engine.asset.addLocalSource(Gl),e.engine.asset.apply(Gl,t)}function uH(e,t="We encountered an unknown error while generating the asset. Please try again."){if(e===null)return t;if(e instanceof Error)return e.message;if(typeof e=="object"){let r=e;return"message"in r&&typeof r.message=="string"?r.message:"cause"in r&&typeof r.cause=="string"?r.cause:"detail"in r&&typeof r.detail=="object"&&r.detail!==null&&"message"in r.detail&&typeof r.detail.message=="string"?r.detail.message:"error"in r&&typeof r.error=="object"&&r.error!==null&&"message"in r.error&&typeof r.error.message=="string"?r.error.message:t}return typeof e=="string"?e:String(e)||t}function Ef(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function cH(e,t=0,r="image/jpeg",i=.8){return new Promise((n,a)=>{try{let o=document.createElement("video");o.crossOrigin="anonymous",o.style.display="none",o.addEventListener("loadedmetadata",()=>{o.currentTime=Math.min(t,o.duration),o.addEventListener("seeked",()=>{let s=document.createElement("canvas");s.width=o.videoWidth,s.height=o.videoHeight;let c=s.getContext("2d");if(!c){document.body.removeChild(o),a(new Error("Failed to create canvas context"));return}c.drawImage(o,0,0,s.width,s.height);try{let l=s.toDataURL(r,i);document.body.removeChild(o),n(l)}catch(l){document.body.removeChild(o),a(new Error(`Failed to create thumbnail: ${l instanceof Error?l.message:String(l)}`))}},{once:!0})}),o.addEventListener("error",()=>{document.body.removeChild(o),a(new Error(`Failed to load video from ${e}`))}),o.src=e,document.body.appendChild(o)}catch(o){a(o)}})}function dH(e){return typeof e=="object"&&e!==null&&"next"in e&&"return"in e&&"throw"in e&&typeof e.next=="function"&&typeof e.return=="function"&&typeof e.throw=="function"&&Symbol.asyncIterator in e&&typeof e[Symbol.asyncIterator]=="function"}function cs(e){return e instanceof Error&&e.name==="AbortError"}function pH(e,t,r){let i=`${t}.iconSetAdded`;e.ui.experimental.hasGlobalStateValue(i)||(e.ui.addIconSet(t,r),e.ui.experimental.setGlobalStateValue(i,!0))}function gH(e,t,r){let i="ai-plugin-version",n="ai-plugin-version-warning-shown";try{let a=e.ui.experimental.getGlobalStateValue(i);a?a!==r&&(e.ui.experimental.getGlobalStateValue(n,!1)||(console.warn(`[IMG.LY AI Plugins] Version mismatch detected!
587
587
  Plugin "${t}" is using version ${r}, but other AI plugins are using version ${a}.
588
588
  This may cause compatibility issues. Please ensure all AI plugins (@imgly/plugin-ai-*) use the same version.
589
- Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function uH(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var cH=uH;function dH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),pH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:nH(e)}))}function pH(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var Y1=dH,gH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",as=gH;function fH(e,t,r){switch(t){case"image":return yH(e,r[t]);case"video":return mH(e,r[t]);case"sticker":return bH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function yH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function mH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:as,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function bH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:as,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var hH=fH;async function vH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return wH(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return kH(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return xH(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return IH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function wH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function kH(e,t,r){let i=t.width,n=t.height,a=await oH(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function xH(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function IH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var Sf=vH;function CH(e){switch(e.userFlow){case"placeholder":return SH(e);case"generation-only":return AH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function AH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Af(),c=await Sf(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function SH(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Me(t,r))return{status:"aborted"};let s=Af(),c=hH(s,a,o);if(i=await iH(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),p=t.engine.block.getPositionY(i),g=t.engine.block.duplicate(i);t.engine.block.setPositionX(g,d),t.engine.block.setPositionY(g,p),t.engine.block.destroy(i),i=g}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await Sf(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(os(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var MH=CH;function ls(e){return`${e}.generating`}function jH(e){return`${e}.abort`}function $H(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:p}}=t,g=c.global(jH(d),()=>{}),y=c.global(ls(d),!1),f,m=y.value&&p,v=()=>{m&&(g.value(),y.setValue(!1),g.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),g.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await MH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){Y1(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;EH(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(os(b))return;Y1(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),g.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function EH(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Mf=$H;async function _H({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ls(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:p}=s(c,{cesdk:a,isGenerating:u});return Mf(c,t,n,d,p,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var LH=_H;function jf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function Xi(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=jf(e,t.$ref),n={...Xi(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=Xi(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>Xi(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=Xi(e,t[n],r));return i}return t}function TH(e){return Xi(e,{...e})}function OH(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function NH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return DH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function DH(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=PH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function PH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var $f=NH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Ef(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function _f(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?zH(e,c,r,i,n,a,o,s):Lf(e,c,r,i,n,a,o,s);case"boolean":return Tf(e,c,r,i,n,a,o,s);case"number":case"integer":return Of(e,c,r,i,n,a,o,s);case"object":return Kl(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return UH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function Kl(e,t,r,i,n,a,o,s){let c=$f(t.schema??{},i).reduce((l,u)=>{let d=_f(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Lf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=je(t,r,o,"placeholder"),f=dn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=pn(d,m,f,t.schema.default,""),k=l(p,v),w=RH(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](p,{inputLabel:g,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function zH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),{labels:y,icons:f}=Ef(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:je(t,r,o,I),icon:f[I]})),v=dn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=pn(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(p,x);return c.Select(p,{inputLabel:g,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function Tf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=dn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!pn(d,f,y,t.schema.default,!1),v=l(p,m);return c.Checkbox(p,{inputLabel:g,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Of(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=dn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=pn(d,v,m,k,k),x=l(p,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(p,{inputLabel:g,min:y,max:f,step:b,...x})}else c.NumberInput(p,{inputLabel:g,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function UH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,p=`${r.id}.${d}`,g=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Ef(t.schema),x=dn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Lf,boolean:Tf,integer:Of,object:Kl},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:je(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>Kl(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=pn(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(p,j);if(c.Select(p,{inputLabel:g,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function RH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var FH=_f,VH={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function H1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function Z1(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(p=>{let g=String(p),y=d[g]||H1(g);n[a(u,g)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let p=d;if(p.enum&&Array.isArray(p.enum))s(p.enum,l.id,u);else if(p.$ref){let g=p.$ref.split("/").pop();g&&u[g]&&(n[a(l.id,g)]=u[g])}else if(p.title){let g=p.title,y=u[g]||H1(g);n[a(l.id,g)]=y}})}});let c={...VH,...n};Object.keys(c).length>0&&ns(r.cesdk,{en:c})}function Q1(e){return typeof e.document=="function"?e.document():e.document}function W1(e,t,r){let i=TH(e),n=jf(i,t.inputReference);if(!OH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=$f(a,t);return{inputSchema:a,properties:o}}function K1(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=FH(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let p=d.map(f=>f()),g=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=g(k),m),{}):f.value,y=p.reduce((f,m)=>(f[m.id]=g(m),f),{});Mf(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function BH(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=Q1(s);if(!(c instanceof Promise)){let{inputSchema:g,properties:y}=W1(c,s,a.debug);return Z1(y,i,r,i.kind),K1(g,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function p(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(Q1(s)).then(g=>{let{inputSchema:y,properties:f}=W1(g,s,a.debug);Z1(f,i,r,i.kind),u=K1(y,f,s,e,t)}).catch(g=>{l=g instanceof Error?g:new Error(String(g))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return p(),g=>{let{builder:y}=g;if(u!=null){u(g);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.text`,{content:`Failed to load schema: ${l.message}`}),y.Button(`${o}.schema.error.retry`,{label:"Retry",onClick:()=>{p()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"Loading...",isLoading:!0,isDisabled:!0})}})}}var qH=BH;async function GH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return LH(e,t);case"schema":return qH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var YH=GH;function HH(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new KB(o,r)),o}return i}var ZH=HH;function QH(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var WH=QH,Vl="@imgly/plugin-ai-generation",KH=`
589
+ Consider updating all AI plugins to the same version for optimal compatibility.`),e.ui.experimental.setGlobalStateValue(n,!0))):e.ui.experimental.setGlobalStateValue(i,r)}catch(a){console.debug("[IMG.LY AI Plugins] Could not check plugin version consistency:",a)}}function fH(e){let{cesdk:t,panelId:r}=e;r.startsWith("ly.img.ai.")||console.warn(`Dock components for AI generation should open a panel with an id starting with "ly.img.ai." \u2013 "${r}" was provided.`);let i=`${r}.dock`;t.ui.registerComponent(i,({builder:n})=>{let a=t.ui.isPanelOpen(r);n.Button(`${r}.dock.button`,{label:`${r}.dock.label`,isSelected:a,icon:"@imgly/Sparkle",onClick:()=>{t.ui.findAllPanels().forEach(o=>{o.startsWith("ly.img.ai.")&&t.ui.closePanel(o),!a&&o==="//ly.img.panel/assetLibrary"&&t.ui.closePanel(o)}),a?t.ui.closePanel(r):t.ui.openPanel(r)}})})}var yH=fH;function mH(e,t){let{cesdk:r,provider:i,getInput:n,middlewareOptions:a}=t;a?.defaultPrevented()||(console.error("Generation failed:",e),bH(r,i.output.notification,()=>({input:n?.().input,error:e}))||r.ui.showNotification({type:"error",message:uH(e)}))}function bH(e,t,r){let i=t?.error;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.failed",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"error",message:n,action:a}),!0}var K1=mH,hH="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIzIiBoZWlnaHQ9IjMyMyIgdmlld0JveD0iMCAwIDMyMyAzMjMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjMiIGhlaWdodD0iMzIzIiBmaWxsPSIjRTlFQkVEIi8+CjxnIG9wYWNpdHk9IjAuMyI+CjxwYXRoIGQ9Ik0xMTYgMTg0VjE5MS41QzExNiAxOTkuNzg0IDEyMi43MTYgMjA2LjUgMTMxIDIwNi41SDE5MUMxOTkuMjg0IDIwNi41IDIwNiAxOTkuNzg0IDIwNiAxOTEuNVYxMzEuNUMyMDYgMTIzLjIxNiAxOTkuMjg0IDExNi41IDE5MSAxMTYuNUwxOTAuOTk1IDEyNi41QzE5My43NTcgMTI2LjUgMTk2IDEyOC43MzkgMTk2IDEzMS41VjE5MS41QzE5NiAxOTQuMjYxIDE5My43NjEgMTk2LjUgMTkxIDE5Ni41SDEzMUMxMjguMjM5IDE5Ni41IDEyNiAxOTQuMjYxIDEyNiAxOTEuNVYxODRIMTE2WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTY2LjQ5NCAxMDUuOTI0QzE2NS44NjkgMTA0LjM0MiAxNjMuNjI5IDEwNC4zNDIgMTYzLjAwNSAxMDUuOTI0TDE1OS43NDUgMTE0LjE5MUMxNTkuNTU0IDExNC42NzQgMTU5LjE3MiAxMTUuMDU3IDE1OC42ODggMTE1LjI0N0wxNTAuNDIyIDExOC41MDhDMTQ4LjgzOSAxMTkuMTMyIDE0OC44MzkgMTIxLjM3MiAxNTAuNDIyIDEyMS45OTZMMTU4LjY4OCAxMjUuMjU2QzE1OS4xNzIgMTI1LjQ0NyAxNTkuNTU0IDEyNS44MjkgMTU5Ljc0NSAxMjYuMzEzTDE2My4wMDUgMTM0LjU3OUMxNjMuNjI5IDEzNi4xNjIgMTY1Ljg2OSAxMzYuMTYyIDE2Ni40OTQgMTM0LjU3OUwxNjkuNzU0IDEyNi4zMTNDMTY5Ljk0NCAxMjUuODI5IDE3MC4zMjcgMTI1LjQ0NyAxNzAuODEgMTI1LjI1NkwxNzkuMDc3IDEyMS45OTZDMTgwLjY2IDEyMS4zNzIgMTgwLjY2IDExOS4xMzIgMTc5LjA3NyAxMTguNTA4TDE3MC44MSAxMTUuMjQ3QzE3MC4zMjcgMTE1LjA1NyAxNjkuOTQ0IDExNC42NzQgMTY5Ljc1NCAxMTQuMTkxTDE2Ni40OTQgMTA1LjkyNFoiIGZpbGw9IiM4RjhGOEYiLz4KPHBhdGggZD0iTTEzMy4wMDUgMTI4LjQyNEMxMzMuNjI5IDEyNi44NDIgMTM1Ljg2OSAxMjYuODQyIDEzNi40OTQgMTI4LjQyNEwxNDEuODc1IDE0Mi4wN0MxNDIuMDY2IDE0Mi41NTMgMTQyLjQ0OCAxNDIuOTM1IDE0Mi45MzIgMTQzLjEyNkwxNTYuNTc3IDE0OC41MDhDMTU4LjE2IDE0OS4xMzIgMTU4LjE2IDE1MS4zNzIgMTU2LjU3NyAxNTEuOTk2TDE0Mi45MzIgMTU3LjM3OEMxNDIuNDQ4IDE1Ny41NjggMTQyLjA2NiAxNTcuOTUxIDE0MS44NzUgMTU4LjQzNEwxMzYuNDk0IDE3Mi4wNzlDMTM1Ljg2OSAxNzMuNjYyIDEzMy42MjkgMTczLjY2MiAxMzMuMDA1IDE3Mi4wNzlMMTI3LjYyMyAxNTguNDM0QzEyNy40MzMgMTU3Ljk1MSAxMjcuMDUgMTU3LjU2OCAxMjYuNTY3IDE1Ny4zNzhMMTEyLjkyMiAxNTEuOTk2QzExMS4zMzkgMTUxLjM3MiAxMTEuMzM5IDE0OS4xMzIgMTEyLjkyMiAxNDguNTA4TDEyNi41NjcgMTQzLjEyNkMxMjcuMDUgMTQyLjkzNSAxMjcuNDMzIDE0Mi41NTMgMTI3LjYyMyAxNDIuMDdMMTMzLjAwNSAxMjguNDI0WiIgZmlsbD0iIzhGOEY4RiIvPgo8cGF0aCBkPSJNMTk1Ljk5OSAxODQuMDA0VjE5MS41MDJDMTk1Ljk5OSAxOTQuMjYzIDE5My43NjEgMTk2LjUwMiAxOTAuOTk5IDE5Ni41MDJIMTQ3LjY2OEwxNzIuODc5IDE1OC42ODRDMTc0LjM2MyAxNTYuNDU4IDE3Ny42MzUgMTU2LjQ1OCAxNzkuMTIgMTU4LjY4NEwxOTUuOTk5IDE4NC4wMDRaIiBmaWxsPSIjOEY4RjhGIi8+CjwvZz4KPC9zdmc+Cg==",ds=hH;function vH(e,t,r){switch(t){case"image":return wH(e,r[t]);case"video":return kH(e,r[t]);case"sticker":return xH(e,r[t]);default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function wH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ds,fillType:"//ly.img.ubq/fill/image",kind:"image",width:r,height:i}}}function kH(e,t){let r=t.width,i=t.height;return{id:e,label:t.label,meta:{previewUri:ds,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:r,height:i}}}function xH(e,t){let r=t.width,i=t.height;return{id:e,meta:{previewUri:ds,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:r,height:i}}}var IH=vH;async function CH(e,t,r,i){switch(t){case"image":{if(i.kind!=="image")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: image)`);return AH(e,r[t],i)}case"video":{if(i.kind!=="video")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: video)`);return SH(e,r[t],i)}case"audio":{if(i.kind!=="audio")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: audio)`);return MH(e,r[t],i)}case"sticker":{if(i.kind!=="sticker")throw new Error(`Output kind does not match the expected type: ${i.kind} (expected: sticker)`);return jH(e,r[t],i)}default:throw new Error(`Unsupported output kind for creating placeholder block: ${t}`)}}function AH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"image",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}async function SH(e,t,r){let i=t.width,n=t.height,a=await cH(r.url,0);return{id:e,label:t.label,meta:{uri:r.url,thumbUri:a,mimeType:"video/mp4",kind:"video",fillType:"//ly.img.ubq/fill/video",duration:t.duration.toString(),width:i,height:n}}}function MH(e,t,r){return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.thumbnailUrl,blockType:"//ly.img.ubq/audio",mimeType:"audio/x-m4a",duration:r.duration.toString()}}}function jH(e,t,r){let i=t.width,n=t.height;return{id:e,label:t.label,meta:{uri:r.url,thumbUri:r.url,fillType:"//ly.img.ubq/fill/image",kind:"sticker",width:i,height:n},payload:{sourceSet:[{uri:r.url,width:i,height:n}]}}}var _f=CH;function $H(e){switch(e.userFlow){case"placeholder":return _H(e);case"generation-only":return EH(e);default:throw new Error(`Unknown user flow: ${e.userFlow}. Expected 'placeholder' or 'generation-only'.`)}}function EH(e){let{cesdk:t,abortSignal:r}=e;return async i=>{try{let n=e.kind,a=await e.getBlockInput(i);if(Me(t,r))return{status:"aborted"};let o=await e.generate(i,{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r))return{status:"aborted"};if(o.status!=="success")return o;if(o.type==="async")throw new Error("Async generation is not supported in this context yet.");if(Me(t,r))return{status:"aborted"};if(e.historyAssetSourceId!=null){let s=Ef(),c=await _f(s,n,a,o.output),l={...c,id:`${Date.now()}-${c.id}`,label:c.label!=null?{en:c.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,l)}else e.debug&&console.log("No asset source ID found in history and generation only was requested. Doing nothing. If no middleware is adding functionality this could be a bug.");return o}catch(n){return{status:"error",message:n instanceof Error?n.message:String(n)}}}}function _H(e){let{cesdk:t,abortSignal:r}=e,i;return async n=>{try{let a=e.kind,o=await e.getBlockInput(n);if(Me(t,r))return{status:"aborted"};let s=Ef(),c=IH(s,a,o);if(i=await sH(t,c),Me(t,r,i))return{status:"aborted"};if(i!=null&&e.kind==="video"){let d=t.engine.block.getPositionX(i),g=t.engine.block.getPositionY(i),p=t.engine.block.duplicate(i);t.engine.block.setPositionX(p,d),t.engine.block.setPositionY(p,g),t.engine.block.destroy(i),i=p}if(i==null)throw new Error("Could not create placeholder block");t.engine.block.setState(i,{type:"Pending",progress:0});let l=await e.generate(n,{blockIds:[i],middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:r});if(Me(t,r,i))return{status:"aborted"};if(l.status!=="success")return l.middlewareOptions?.defaultPrevented()||i!=null&&t.engine.block.isValid(i)&&(l.status==="aborted"?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),l;if(l.type==="async")throw new Error("Async generation is not supported in this context yet.");if(!t.engine.block.isValid(i))return{status:"aborted",message:"Placeholder block was destroyed before generation completed."};let u=await _f(s,a,o,l.output);if(Me(t,r,i))return{status:"aborted"};if(e.debug&&console.log("Updating placeholder in scene:",JSON.stringify(u,void 0,2)),await t.engine.asset.defaultApplyAssetToBlock(u,i),Me(t,r,i))return{status:"aborted"};if(e.historyAssetSourceId!=null){let d={...u,id:`${Date.now()}-${u.id}`,label:u.label!=null?{en:u.label}:{},tags:{}};t.engine.asset.addAssetToSource(e.historyAssetSourceId,d)}return t.engine.block.isValid(i)&&t.engine.block.setState(i,{type:"Ready"}),l}catch(a){return i!=null&&t.engine.block.isValid(i)&&(cs(a)?t.engine.block.destroy(i):t.engine.block.setState(i,{type:"Error",error:"Unknown"})),{status:"error",message:a instanceof Error?a.message:String(a)}}}}function Me(e,t,r){return t.aborted?(r!=null&&e.engine.block.isValid(r)&&e.engine.block.destroy(r),!0):!1}var LH=$H;function ps(e){return`${e}.generating`}function TH(e){return`${e}.abort`}function OH(e,t,r,i,n,a,o){let{builder:s,experimental:c}=e,{cesdk:l,includeHistoryLibrary:u=!0}=a,{id:d,output:{abortable:g}}=t,p=c.global(TH(d),()=>{}),y=c.global(ps(d),!1),f,m=y.value&&g,v=()=>{m&&(p.value(),y.setValue(!1),p.setValue(()=>{}))},k;if(a.requiredInputs!=null&&a.requiredInputs.length>0){let x=i();k=a.requiredInputs.every(b=>!x.input[b])}let w=c.global(`${d}.confirmationDialogId`,void 0);s.Section(`${d}.generate.section`,{children:()=>{s.Button(`${d}.generate`,{label:["ly.img.plugin-ai-generation-web.generate","common.generate",`panel.${d}.generate`],isLoading:y.value,color:"accent",isDisabled:k,suffix:m?{icon:"@imgly/Cross",color:"danger",tooltip:[`panel.${d}.abort`,"common.cancel"],onClick:()=>{let x=l.ui.showDialog({type:"warning",content:"panel.ly.img.ai.generation.confirmCancel.content",cancel:{label:"common.close",onClick:({id:b})=>{l.ui.closeDialog(b),w.setValue(void 0)}},actions:{label:"panel.ly.img.ai.generation.confirmCancel.confirm",color:"danger",onClick:({id:b})=>{v(),l.ui.closeDialog(b),w.setValue(void 0)}}});w.setValue(x)}}:void 0,onClick:async()=>{f=new AbortController;let x=f.signal;await(async()=>{try{y.setValue(!0),p.setValue(()=>{o.debug&&console.log("Aborting generation"),f?.abort()});let b=await LH({kind:t.kind,generate:r,historyAssetSourceId:a.historyAssetSourceId,userFlow:a.createPlaceholderBlock?"placeholder":"generation-only",getBlockInput:n,abortSignal:x,cesdk:l,debug:o.debug,dryRun:o.dryRun})(i().input);if(b.status==="aborted")return;if(b.status==="error"){K1(b.message,{cesdk:l,provider:t,getInput:i,middlewareOptions:b.middlewareOptions});return}if(b.status==="success"&&b.type==="sync"&&!b.middlewareOptions?.defaultPrevented()){let I=t.output.notification;NH(l,I,()=>({input:i().input,output:b.output}))}}catch(b){if(cs(b))return;K1(b,{cesdk:l,provider:t,getInput:i})}finally{f=void 0,y.setValue(!1),p.setValue(()=>{}),w.value!=null&&(l.ui.closeDialog(w.value),w.setValue(void 0))}})()}}),t.output.generationHintText!=null&&s.Text(`${d}.generation-hint`,{align:"center",content:t.output.generationHintText})}}),u&&a.historyAssetLibraryEntryId!=null&&s.Library(`${d}.history.library`,{entries:[a.historyAssetLibraryEntryId]})}function NH(e,t,r){let i=t?.success;if(i==null||!(typeof i.show=="function"?i.show(r()):i.show))return!1;let n=typeof i.message=="function"?i.message(r()):i.message??"common.ai-generation.success",a=i.action!=null?{label:typeof i.action.label=="function"?i.action.label(r()):i.action.label,onClick:()=>{i?.action?.onClick(r())}}:void 0;return e.ui.showNotification({type:"success",message:n,action:a,duration:i.duration}),!0}var Lf=OH;function ts(e){let{name:t}=e;return(typeof t=="function"?t():t)??e.id}async function DH({options:e,provider:t,panelInput:r,config:i},n){if(r==null)return;let{cesdk:a}=e,{id:o}=t;i.debug&&console.log(`Provider: ${o} (custom)`);let s=r.render;return c=>{let{state:l}=c,u=l(ps(o),{isGenerating:!1,abort:()=>{}}).value.isGenerating,{getInput:d,getBlockInput:g}=s(c,{cesdk:a,isGenerating:u});return Lf(c,t,n,d,g,{...e,includeHistoryLibrary:r.includeHistoryLibrary??!0,createPlaceholderBlock:r.userFlow==="placeholder"},i),d}}var PH=DH;function Tf(e,t){if(!t.startsWith("#/"))throw new Error(`External references are not supported: ${t}`);let r=t.substring(2).split("/"),i=e;for(let n of r){if(i==null)throw new Error(`Invalid reference path: ${t}`);i=i[n]}if(i===void 0)throw new Error(`Reference not found: ${t}`);return i}function tn(e,t,r=new Set){if(t==null||r.has(t))return t;if(r.add(t),t.$ref&&typeof t.$ref=="string"){let i=Tf(e,t.$ref),n={...tn(e,i,r)};for(let a in t)Object.prototype.hasOwnProperty.call(t,a)&&a!=="$ref"&&(n[a]=tn(e,t[a],r));return n}if(Array.isArray(t))return t.map(i=>tn(e,i,r));if(typeof t=="object"){let i={};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=tn(e,t[n],r));return i}return t}function zH(e){return tn(e,{...e})}function UH(e,t=!1){let r=o=>(t&&console.log(`OpenAPI Schema validation failed: ${o}`),!1);if(typeof e!="object"||e===null)return r(`Input is ${e===null?"null":typeof e}, not an object`);let i=e;if(!(typeof i.type=="string"||Array.isArray(i.enum)||typeof i.properties=="object"||typeof i.items=="object"||typeof i.allOf=="object"||typeof i.anyOf=="object"||typeof i.oneOf=="object"||typeof i.not=="object"))return r("Missing required schema-defining properties (type, enum, properties, items, allOf, anyOf, oneOf, not)");if(i.type!==void 0){let o=["string","number","integer","boolean","array","object","null"];if(typeof i.type=="string"){if(!o.includes(i.type))return r(`Invalid type: ${i.type}. Must be one of ${o.join(", ")}`)}else if(Array.isArray(i.type)){for(let s of i.type)if(typeof s!="string"||!o.includes(s))return r(`Array of types contains invalid value: ${s}. Must be one of ${o.join(", ")}`)}else return r(`Type must be a string or array of strings, got ${typeof i.type}`)}if(i.items!==void 0&&(typeof i.items!="object"||i.items===null))return r(`Items must be an object, got ${i.items===null?"null":typeof i.items}`);if(i.properties!==void 0&&(typeof i.properties!="object"||i.properties===null))return r(`Properties must be an object, got ${i.properties===null?"null":typeof i.properties}`);let n=["allOf","anyOf","oneOf"];for(let o of n)if(i[o]!==void 0){if(!Array.isArray(i[o]))return r(`${o} must be an array, got ${typeof i[o]}`);for(let s=0;s<i[o].length;s++){let c=i[o][s];if(typeof c!="object"||c===null)return r(`Item ${s} in ${o} must be an object, got ${c===null?"null":typeof c}`)}}if(i.not!==void 0&&(typeof i.not!="object"||i.not===null))return r(`'not' must be an object, got ${i.not===null?"null":typeof i.not}`);if(i.additionalProperties!==void 0&&typeof i.additionalProperties!="boolean"&&(typeof i.additionalProperties!="object"||i.additionalProperties===null))return r(`additionalProperties must be a boolean or an object, got ${i.additionalProperties===null?"null":typeof i.additionalProperties}`);if(i.format!==void 0&&typeof i.format!="string")return r(`format must be a string, got ${typeof i.format}`);let a=["minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf"];for(let o of a)if(i[o]!==void 0&&typeof i[o]!="number")return r(`${o} must be a number, got ${typeof i[o]}`);if(i.minLength!==void 0&&(typeof i.minLength!="number"||i.minLength<0))return r(`minLength must be a non-negative number, got ${typeof i.minLength=="number"?i.minLength:typeof i.minLength}`);if(i.maxLength!==void 0&&(typeof i.maxLength!="number"||i.maxLength<0))return r(`maxLength must be a non-negative number, got ${typeof i.maxLength=="number"?i.maxLength:typeof i.maxLength}`);if(i.pattern!==void 0&&typeof i.pattern!="string")return r(`pattern must be a string, got ${typeof i.pattern}`);if(i.minItems!==void 0&&(typeof i.minItems!="number"||i.minItems<0))return r(`minItems must be a non-negative number, got ${typeof i.minItems=="number"?i.minItems:typeof i.minItems}`);if(i.maxItems!==void 0&&(typeof i.maxItems!="number"||i.maxItems<0))return r(`maxItems must be a non-negative number, got ${typeof i.maxItems=="number"?i.maxItems:typeof i.maxItems}`);if(i.uniqueItems!==void 0&&typeof i.uniqueItems!="boolean")return r(`uniqueItems must be a boolean, got ${typeof i.uniqueItems}`);if(i.minProperties!==void 0&&(typeof i.minProperties!="number"||i.minProperties<0))return r(`minProperties must be a non-negative number, got ${typeof i.minProperties=="number"?i.minProperties:typeof i.minProperties}`);if(i.maxProperties!==void 0&&(typeof i.maxProperties!="number"||i.maxProperties<0))return r(`maxProperties must be a non-negative number, got ${typeof i.maxProperties=="number"?i.maxProperties:typeof i.maxProperties}`);if(i.required!==void 0){if(!Array.isArray(i.required))return r(`required must be an array, got ${typeof i.required}`);for(let o=0;o<i.required.length;o++){let s=i.required[o];if(typeof s!="string")return r(`Item ${o} in required array must be a string, got ${typeof s}`)}}return!0}function RH(e,t){if(e.properties==null)throw new Error("Input schema must have properties");let r=e.properties,i=[];return FH(e,t).forEach(n=>{let a=n,o=r[n]??void 0;i.push({id:a,schema:o})}),i}function FH(e,t){let r=t.order;if(r!=null&&Array.isArray(r))return r;if(e.properties==null)throw new Error("Input schema must have properties");let i=e.properties,n=Object.keys(i),a=VH(e,t)??n;return r!=null&&typeof r=="function"&&(a=r(a)),[...new Set(a)]}function VH(e,t){if(t.orderExtensionKeyword==null)return;if(typeof t.orderExtensionKeyword!="string"&&!Array.isArray(t.orderExtensionKeyword))throw new Error("orderExtensionKeyword must be a string or an array of strings");let r=(typeof t.orderExtensionKeyword=="string"?[t.orderExtensionKeyword]:t.orderExtensionKeyword).find(i=>i in e);return r==null?void 0:e[r]}var Of=RH;function je(e,t,r,i){let n=`property.${e.id}${i?`.${i}`:""}`,a=[`ly.img.plugin-ai-${r}-generation-web.${t.id}.${n}`,`ly.img.plugin-ai-generation-web.${n}`,`ly.img.plugin-ai-${r}-generation-web.${t.id}.defaults.${n}`,`ly.img.plugin-ai-generation-web.defaults.${n}`];return i==="placeholder"&&a.push("ly.img.plugin-ai-generation-web.fallback.property.placeholder"),a}function Nf(e){let t="x-imgly-enum-labels"in e&&typeof e["x-imgly-enum-labels"]=="object"?e["x-imgly-enum-labels"]:{},r="x-imgly-enum-icons"in e&&typeof e["x-imgly-enum-icons"]=="object"?e["x-imgly-enum-icons"]:{};return{labels:t,icons:r}}function Df(e,t,r,i,n,a,o,s){if(t.schema==null)if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}else return;let c=t,l=t.schema.type;if(i.renderCustomProperty!=null&&i.renderCustomProperty[t.id]!=null){let u={...e,providerConfig:s,config:a};return i.renderCustomProperty[t.id](u,t)}switch(l){case"string":return t.schema.enum!=null?BH(e,c,r,i,n,a,o,s):Pf(e,c,r,i,n,a,o,s);case"boolean":return zf(e,c,r,i,n,a,o,s);case"number":case"integer":return Uf(e,c,r,i,n,a,o,s);case"object":return rs(e,c,r,i,n,a,o,s);case"array":break;case void 0:{if(t.schema.anyOf!=null&&Array.isArray(t.schema.anyOf))return qH(e,c,r,i,n,a,o,s);break}default:console.error(`Unsupported property type: ${l}`)}}function rs(e,t,r,i,n,a,o,s){let c=Of(t.schema??{},i).reduce((l,u)=>{let d=Df(e,u,r,i,n,a,o,s);return d!=null&&(l[u.id]=d()),l},{});return()=>({id:t.id,type:"object",value:c})}function Pf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=je(t,r,o,"placeholder"),f=gn(u,n.cesdk),m=s?.properties?.[d]??a.properties?.[d],v=fn(d,m,f,t.schema.default,""),k=l(g,v),w=GH(t.schema),x=w?.component!=null&&w?.component==="TextArea"?"TextArea":"TextInput",b=y.length>0?y:void 0;return c[x](g,{inputLabel:p,...b&&{placeholder:b},...k}),()=>({id:t.id,type:"string",value:k.value})}function BH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),{labels:y,icons:f}=Nf(t.schema),m=(t.schema.enum??[]).map(I=>({id:I,label:je(t,r,o,I),icon:f[I]})),v=gn(u,n.cesdk),k=s?.properties?.[d]??a.properties?.[d],w=fn(d,k,v,t.schema.default,m[0]?.id),x=w!=null?m.find(I=>I.id===w)??m[0]:m[0],b=l(g,x);return c.Select(g,{inputLabel:p,values:m,...b}),()=>({id:t.id,type:"string",value:b.value.id})}function zf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=gn(u,n.cesdk),f=s?.properties?.[d]??a.properties?.[d],m=!!fn(d,f,y,t.schema.default,!1),v=l(g,m);return c.Checkbox(g,{inputLabel:p,...v}),()=>({id:t.id,type:"boolean",value:v.value})}function Uf(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=t.schema.minimum,f=t.schema.maximum,m=gn(u,n.cesdk),v=s?.properties?.[d]??a.properties?.[d],k=t.schema.default;k==null&&(y!=null?k=y:f!=null?k=f:k=0);let w=fn(d,v,m,k,k),x=l(g,w);if(y!=null&&f!=null){let b=t.schema.type==="number"?.1:1;"x-imgly-step"in t.schema&&typeof t.schema["x-imgly-step"]=="number"&&(b=t.schema["x-imgly-step"]),c.Slider(g,{inputLabel:p,min:y,max:f,step:b,...x})}else c.NumberInput(g,{inputLabel:p,min:y,max:f,...x});return()=>({id:t.id,type:"integer",value:x.value})}function qH(e,t,r,i,n,a,o,s){let{builder:c,experimental:{global:l},engine:u}=e,{id:d}=t,g=`${r.id}.${d}`,p=je(t,r,o),y=t.schema.anyOf??[],f=[],m={},v={},{labels:k,icons:w}=Nf(t.schema),x=gn(u,n.cesdk),b=s?.properties?.[d]??a.properties?.[d],I={string:Pf,boolean:zf,integer:Uf,object:rs},S=(h,$)=>h.$ref?h.$ref.split("/").pop():$.split(".").pop()??$,A=(h,$)=>({id:h,label:je(t,r,o,$),icon:w[$]??w[h]});y.forEach((h,$)=>{let C=`${r.id}.${d}.anyOf[${$}]`;if(h.$ref||h.title){let M=h.$ref?h.$ref.split("/").pop():h.title;m[C]=()=>rs(e,{id:C,schema:{...h,title:k[M]||M}},r,i,n,a,o,s),f.push(A(C,M))}else if(h.type==="string"&&h.enum)h.enum.forEach(M=>{f.push(A(M,M))});else if(h.type&&I[h.type]){let M=I[h.type];m[C]=()=>M(e,{id:C,schema:{...h,title:h.title}},r,i,n,a,o,s);let q=S(h,C);f.push(h.type==="string"&&!h.enum?{id:C,label:h.title||q,icon:h.title&&w[h.title]||w[q]}:A(C,q))}});let _=fn(d,b,x,t.schema.default,null),j=_!=null?f.find(h=>h.id===_)??f[0]:f[0],E=l(g,j);if(c.Select(g,{inputLabel:p,values:f,...E}),E.value.id in m){let h=m[E.value.id]();v[E.value.id]=h}return()=>{let h=v[E.value.id];return h!=null?{...h(),id:t.id}:{id:t.id,type:"string",value:E.value.id}}}function GH(e){if("x-imgly-builder"in e)return e["x-imgly-builder"]}var YH=Df,HH={"ly.img.plugin-ai-generation-web.fallback.property.placeholder":"","ly.img.plugin-ai-generation-web.defaults.property.prompt":"Prompt","ly.img.plugin-ai-generation-web.defaults.property.style":"Style","ly.img.plugin-ai-generation-web.defaults.property.image_size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.size":"Image Size","ly.img.plugin-ai-generation-web.defaults.property.colors":"Colors","ly.img.plugin-ai-generation-web.defaults.property.background":"Background","ly.img.plugin-ai-generation-web.defaults.property.width":"Width","ly.img.plugin-ai-generation-web.defaults.property.height":"Height","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio":"Aspect Ratio","ly.img.plugin-ai-generation-web.defaults.property.duration":"Duration","ly.img.plugin-ai-generation-web.defaults.property.resolution":"Resolution","ly.img.plugin-ai-generation-web.defaults.property.generate_audio":"Generate Audio","ly.img.plugin-ai-generation-web.defaults.property.voice_id":"Voice","ly.img.plugin-ai-generation-web.defaults.property.speed":"Speed","ly.img.plugin-ai-generation-web.defaults.property.text":"Text","ly.img.plugin-ai-generation-web.defaults.property.duration_seconds":"Duration (seconds)","ly.img.plugin-ai-generation-web.defaults.property.style.type":"Type","ly.img.plugin-ai-generation-web.defaults.property.style.type.image":"Image","ly.img.plugin-ai-generation-web.defaults.property.style.type.vector":"Vector","ly.img.plugin-ai-generation-web.defaults.property.style.type.icon":"Icon","ly.img.plugin-ai-generation-web.defaults.property.image_size.square":"Square","ly.img.plugin-ai-generation-web.defaults.property.image_size.portrait":"Portrait","ly.img.plugin-ai-generation-web.defaults.property.image_size.landscape":"Landscape","ly.img.plugin-ai-generation-web.defaults.property.background.auto":"Auto","ly.img.plugin-ai-generation-web.defaults.property.background.transparent":"Transparent","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.1:1":"1:1 (Square)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.16:9":"16:9 (Widescreen)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.9:16":"9:16 (Vertical)","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.4:3":"4:3","ly.img.plugin-ai-generation-web.defaults.property.aspect_ratio.3:4":"3:4","ly.img.plugin-ai-generation-web.defaults.property.resolution.720p":"720p HD","ly.img.plugin-ai-generation-web.defaults.property.resolution.1080p":"1080p Full HD"};function J1(e){return e.replace(/_/g," ").replace(/\b3d\b/gi,"3D").replace(/\b2d\b/gi,"2D").replace(/\b\w/g,t=>t.toUpperCase())}function X1(e,t,r,i){let n={},a=(l,u)=>`ly.img.plugin-ai-${i}-generation-web.${t.id}.defaults.property.${l}${u?`.${u}`:""}`,o=l=>"x-imgly-enum-labels"in l&&typeof l["x-imgly-enum-labels"]=="object"?l["x-imgly-enum-labels"]:{},s=(l,u,d)=>{l.forEach(g=>{let p=String(g),y=d[p]||J1(p);n[a(u,p)]=y})};e.forEach(l=>{if(l.schema?.title&&(n[a(l.id)]=l.schema.title),l.schema?.enum){let u=o(l.schema);s(l.schema.enum,l.id,u)}if(l.schema?.anyOf&&Array.isArray(l.schema.anyOf)){let u=o(l.schema);l.schema.anyOf.forEach(d=>{let g=d;if(g.enum&&Array.isArray(g.enum))s(g.enum,l.id,u);else if(g.$ref){let p=g.$ref.split("/").pop();p&&u[p]&&(n[a(l.id,p)]=u[p])}else if(g.title){let p=g.title,y=u[p]||J1(p);n[a(l.id,p)]=y}})}});let c={...HH,...n};Object.keys(c).length>0&&us(r.cesdk,{en:c})}function ef(e){return typeof e.document=="function"?e.document():e.document}function tf(e,t,r){let i=zH(e),n=Tf(i,t.inputReference);if(!UH(n,r))throw new Error(`Input reference '${t.inputReference}' does not resolve to a valid OpenAPI schema`);let a=n,o=Of(a,t);return{inputSchema:a,properties:o}}function rf(e,t,r,{options:i,provider:n,config:a,providerConfig:o},s){let{id:c}=n;return l=>{let{builder:u}=l,d=[];u.Section(`${c}.schema.section`,{children:()=>{t.forEach(f=>{let m=YH(l,f,n,r,i,a,n.kind,o);m!=null&&(Array.isArray(m)?d.push(...m):d.push(m))})}});let g=d.map(f=>f()),p=f=>f.type==="object"?Object.entries(f.value).reduce((m,[v,k])=>(m[v]=p(k),m),{}):f.value,y=g.reduce((f,m)=>(f[m.id]=p(m),f),{});Lf(l,n,s,()=>({input:y}),()=>r.getBlockInput(y),{...i,requiredInputs:e.required,createPlaceholderBlock:r.userFlow==="placeholder"},a)}}async function ZH(e,t){let{options:r,provider:i,panelInput:n,config:a}=e,{id:o}=i;if(n==null)return;let s=n;a.debug&&console.log(`Provider: ${o} (schema-based)`);let c=ef(s);if(!(c instanceof Promise)){let{inputSchema:p,properties:y}=tf(c,s,a.debug);return X1(y,i,r,i.kind),rf(p,y,s,e,t)}let l=null,u=null,d=`${o}.schema.loading`;function g(){l=null,u=null,r.cesdk.ui.experimental.setGlobalStateValue(d,!0),Promise.resolve(ef(s)).then(p=>{let{inputSchema:y,properties:f}=tf(p,s,a.debug);X1(f,i,r,i.kind),u=rf(y,f,s,e,t)}).catch(p=>{l=p instanceof Error?p:new Error(String(p))}).finally(()=>{r.cesdk.ui.experimental.setGlobalStateValue(d,!1)})}return g(),p=>{let{builder:y}=p;if(u!=null){u(p);return}if(l!=null){y.Section(`${o}.schema.error`,{children:()=>{y.Text(`${o}.schema.error.title`,{content:"ly.img.plugin-ai-generation-web.schema.error.title"}),y.Text(`${o}.schema.error.details`,{content:l.message}),y.Button(`${o}.schema.error.retry`,{label:"ly.img.plugin-ai-generation-web.schema.error.retry",onClick:()=>{g()}})}});return}y.Section(`${o}.schema.loading`,{children:()=>{y.Button(`${o}.schema.loading.indicator`,{label:"ly.img.plugin-ai-generation-web.schema.loading.label",isLoading:!0,isDisabled:!0})}})}}var QH=ZH;async function WH(e,t){if(e.panelInput!=null)switch(e.panelInput.type){case"custom":return PH(e,t);case"schema":return QH(e,t);default:e.config.debug&&console.warn(`Invalid panel input type '${panelInput.type}' - skipping`)}}var KH=WH;function JH(e){let{provider:t,options:{engine:r}}=e,i=t.output.history??"@imgly/local";if(i==null||i===!1)return;let n=r.asset.findAllSources();function a(){let o=`${t.id}.history`;for(;n.includes(o);)o+=`-${Math.random().toString(36).substring(2,6)}`;return o}if(i==="@imgly/local"){let o=a();return r.asset.addLocalSource(o),o}if(i==="@imgly/indexedDB"){let o=a();return r.asset.addSource(new rq(o,r)),o}return i}var XH=JH;function eZ(e,t){if(t==null||!t)return;let r=`${e.provider.id}.history`;return e.options.cesdk.ui.addAssetLibraryEntry({id:r,sourceIds:[t],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"}),r}var tZ=eZ,Yl="@imgly/plugin-ai-generation",rZ=`
590
590
  <svg>
591
591
  <symbol
592
592
  fill="none"
@@ -604,7 +604,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
604
604
  fill="none"
605
605
  xmlns="http://www.w3.org/2000/svg"
606
606
  viewBox="0 0 24 24"
607
- id="${Vl}/image"
607
+ id="${Yl}/image"
608
608
  >
609
609
  <path d="M3 16.5V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3L17.999 5C18.5513 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V16.5H3Z" fill="currentColor"/>
610
610
  <path d="M13.0982 0.884877C12.9734 0.568323 12.5254 0.568322 12.4005 0.884876L11.7485 2.53819C11.7104 2.63483 11.6339 2.71134 11.5372 2.74945L9.8839 3.40151C9.56735 3.52636 9.56734 3.97436 9.8839 4.09921L11.5372 4.75126C11.6339 4.78938 11.7104 4.86588 11.7485 4.96253L12.4005 6.61584C12.5254 6.93239 12.9734 6.9324 13.0982 6.61584L13.7503 4.96253C13.7884 4.86588 13.8649 4.78938 13.9616 4.75126L15.6149 4.09921C15.9314 3.97436 15.9314 3.52636 15.6149 3.40151L13.9616 2.74945C13.8649 2.71134 13.7884 2.63483 13.7503 2.53819L13.0982 0.884877Z" fill="currentColor"/>
@@ -616,7 +616,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
616
616
  fill="none"
617
617
  xmlns="http://www.w3.org/2000/svg"
618
618
  viewBox="0 0 24 24"
619
- id="${Vl}/video"
619
+ id="${Yl}/video"
620
620
  >
621
621
  <path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V16.5H19V18C19 18.5523 18.5523 19 18 19H6C5.44772 19 5 18.5523 5 18V6C5 5.44772 5.44772 5 6 5V3Z" fill="currentColor"/>
622
622
  <path d="M10.9025 0.8839C11.0273 0.567345 11.4753 0.567346 11.6002 0.883901L12.2522 2.53721C12.2904 2.63386 12.3669 2.71036 12.4635 2.74848L14.1168 3.40053C14.4334 3.52538 14.4334 3.97338 14.1168 4.09823L12.4635 4.75029C12.3669 4.7884 12.2904 4.86491 12.2522 4.96155L11.6002 6.61486C11.4753 6.93142 11.0273 6.93142 10.9025 6.61486L10.2504 4.96155C10.2123 4.86491 10.1358 4.7884 10.0392 4.75029L8.38585 4.09823C8.0693 3.97338 8.0693 3.52538 8.38585 3.40053L10.0392 2.74848C10.1358 2.71036 10.2123 2.63386 10.2504 2.53721L10.9025 0.8839Z" fill="currentColor"/>
@@ -627,7 +627,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
627
627
  fill="none"
628
628
  xmlns="http://www.w3.org/2000/svg"
629
629
  viewBox="0 0 24 24"
630
- id="${Vl}/audio"
630
+ id="${Yl}/audio"
631
631
  >
632
632
  <path d="M6 3.80273C4.2066 4.84016 3 6.77919 3 9.00004V12.8153C3 15.931 5.39501 18.4873 8.44444 18.7436V20.9645C8.44444 22.2198 9.89427 22.9198 10.8773 22.1392L15.1265 18.7647H15.5C17.8285 18.7647 19.8472 17.4384 20.8417 15.5H18.4187C17.6889 16.2784 16.6512 16.7647 15.5 16.7647H14.9522C14.6134 16.7647 14.2846 16.8794 14.0193 17.0901L10.4444 19.929V18.2597C10.4444 17.4341 9.77513 16.7647 8.9495 16.7647C7.80494 16.7647 6.77409 16.2779 6.05276 15.5H6V15.4419C5.37798 14.7439 5 13.8237 5 12.8153V9.00004C5 7.98559 5.37764 7.05935 6 6.35422V3.80273Z" fill="currentColor"/>
633
633
  <path d="M11.6002 1.8839C11.4753 1.56735 11.0273 1.56735 10.9025 1.8839L10.2504 3.53721C10.2123 3.63386 10.1358 3.71036 10.0392 3.74848L8.38585 4.40053C8.0693 4.52538 8.0693 4.97338 8.38585 5.09823L10.0392 5.75029C10.1358 5.7884 10.2123 5.86491 10.2504 5.96155L10.9025 7.61486C11.0273 7.93142 11.4753 7.93142 11.6002 7.61486L12.2522 5.96155C12.2904 5.86491 12.3669 5.7884 12.4635 5.75029L14.1168 5.09823C14.4334 4.97338 14.4334 4.52538 14.1168 4.40053L12.4635 3.74848C12.3669 3.71036 12.2904 3.63386 12.2522 3.53721L11.6002 1.8839Z" fill="currentColor"/>
@@ -647,8 +647,8 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
647
647
 
648
648
  </symbol>
649
649
  </svg>
650
- `,JH=KH;function XH(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Nf(2e3),await eZ(t,e,r)):i(t,r)}async function eZ(e,t,r){switch(t.kind){case"image":return tZ(e,t,r);case"video":return rZ(e,t,r);case"text":return iZ(e,t,r);case"audio":return oZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function tZ(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await WY(s,r),l=await QY(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
651
- `,"+")}`}}async function rZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function iZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Ki(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Ki(n,o)}else"customPrompt"in e?a=Ki(n,"custom"):a=Ki(n,"improved");else a=Ki(n,"generated");return nZ(a,r.abortSignal)}async function*nZ(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Nf(100)}return{kind:"text",text:e}}function Ki(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function oZ(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:aZ(220,i),duration:i,thumbnailUrl:void 0}}function aZ(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return lZ(i,44100)}function lZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let p=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(p,v,!0),p+=2}let g=new Uint8Array(l),y="";for(let f=0;f<g.length;f++)y+=String.fromCharCode(g[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Nf(e){return new Promise(t=>{setTimeout(t,e)})}var sZ=XH,uZ="USER_CANCEL";function cZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=eH([...e.provider.output.middleware??[],...r?.middlewares??[],rH({enable:r?.debug}),sZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:aH(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return os(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===uZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var dZ=cZ;async function pZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,p=xf.get();Object.keys(t.input.quickActions.supported).forEach(g=>{if(!p.getBy({id:g,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${g}`;r.cesdk.feature.enable(y,!0)}})}let o=ZH(a),s=WH(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=dZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await YH(a,c);lH(r.cesdk,"@imgly/plugin-ai-generation",JH);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return XY.get().register(u),u}var Bl=pZ;function gZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new JB(n,r,i);return r.engine.asset.addSource(a),a.id}var fZ=gZ;function en(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function yZ(e,t,r,i){let{cesdk:n}=r;ns(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Bl(e,u,r,i)));o.push(...l),a=bZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Bl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Bl(e,d,r,i)));o.push(...u),a=mZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=fZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(JY)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function mZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),p=`ly.img.plugin-ai-${e}-generation-web.fromImage`,g=n.feature.isEnabled(p,{engine:l}),y;d&&r.length>0&&(!g||i.length===0)?y="fromText":g&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&g&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:C.name??C.id,builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!g){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&g&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:en(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:en(e,"fromText.label"),icon:f.value!=="fromText"&&J1(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),g&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:en(e,"fromImage.label"),icon:f.value!=="fromImage"&&J1(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function bZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:p,panel:g})=>({id:p.id,label:p.name??p.id,builderRenderFunction:g?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(p=>p.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:en(e,"providerSelect.label"),values:l,value:d,setValue:p=>{u.setValue(p.id)}})}}),d?.builderRenderFunction?.(n)}}function J1(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ls(r.id),!1).value)}var hZ=yZ,vZ="@imgly/plugin-ai-sticker-generation",wZ=`
650
+ `,iZ=rZ;function nZ(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Rf(2e3),await oZ(t,e,r)):i(t,r)}async function oZ(e,t,r){switch(t.kind){case"image":return aZ(e,t,r);case"video":return lZ(e,t,r);case"text":return sZ(e,t,r);case"audio":return cZ(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function aZ(e,t,{engine:r}){let i,n,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[s]=t.blockIds,c=await tH(s,r),l=await eH(c,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
651
+ `,"+")}`}}async function lZ(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function sZ(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=Xi(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=Xi(n,o)}else"customPrompt"in e?a=Xi(n,"custom"):a=Xi(n,"improved");else a=Xi(n,"generated");return uZ(a,r.abortSignal)}async function*uZ(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Rf(100)}return{kind:"text",text:e}}function Xi(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let u=c[l%c.length];if(s.length+u.length<=n)s+=u;else{s+=u.substring(0,n-s.length);break}l++}}return r+s}async function cZ(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:dZ(220,i),duration:i,thumbnailUrl:void 0}}function dZ(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return pZ(i,44100)}function pZ(e,t){let r=e.length,i=2,n=1,a=n*i,o=t*a,s=r*i,c=44+s,l=new ArrayBuffer(c),u=new DataView(l),d=(f,m)=>{for(let v=0;v<m.length;v++)u.setUint8(f+v,m.charCodeAt(v))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,o,!0),u.setUint16(32,a,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,s,!0);let g=44;for(let f=0;f<r;f++){let m=Math.max(-1,Math.min(1,e[f])),v=Math.round(m*32767);u.setInt16(g,v,!0),g+=2}let p=new Uint8Array(l),y="";for(let f=0;f<p.length;f++)y+=String.fromCharCode(p[f]);return`data:audio/wav;base64,${btoa(y)}`}async function Rf(e){return new Promise(t=>{setTimeout(t,e)})}var gZ=nZ,fZ="USER_CANCEL";function yZ(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=oH([...e.provider.output.middleware??[],...r?.middlewares??[],lH({enable:r?.debug}),gZ({enable:r?.dryRun,kind:e.provider.kind})]),n={prevented:!1},a={blockIds:r?.blockIds,abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk,preventDefault:()=>{n.prevented=!0},defaultPrevented:()=>n.prevented};try{let{result:o}=await i(e.provider.output.generate)(t,a);return r?.abortSignal?.aborted?{status:"aborted",middlewareOptions:a}:o instanceof Error?{status:"error",message:o.message,middlewareOptions:a}:o==null?{status:"error",message:"No output generated",middlewareOptions:a}:dH(o)?{status:"success",type:"async",output:o,middlewareOptions:a}:{status:"success",type:"sync",output:o,middlewareOptions:a}}catch(o){return cs(o)?{status:"aborted",message:o.message,middlewareOptions:a}:o===fZ?{status:"aborted",message:o,middlewareOptions:a}:{status:"error",message:o instanceof Error?o.message:String(o),middlewareOptions:a}}}}var mZ=yZ;async function bZ(e,t,r,i){let n={...i,provider:t},a={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n,providerConfig:t.configuration};if(await t.initialize?.({...r,engine:r.cesdk.engine}),t.input?.quickActions?.supported){let d=t.kind,g=Mf.get();Object.keys(t.input.quickActions.supported).forEach(p=>{if(!g.getBy({id:p,type:"quick"})[0]){let y=`ly.img.plugin-ai-${d}-generation-web.quickAction.${p}`;r.cesdk.feature.enable(y,!0)}})}let o=XH(a),s=tZ(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let c=mZ({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await KH(a,c);pH(r.cesdk,"@imgly/plugin-ai-generation",iZ);let u={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:c};return nH.get().register(u),u}var Hl=bZ;function hZ(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let a=new iq(n,r,i);return r.engine.asset.addSource(a),a.id}var vZ=hZ;function rn(e,t){return[`ly.img.plugin-ai-${e}-generation-web.${t}`,`ly.img.plugin-ai-generation-web.${t}`,`ly.img.plugin-ai-generation-web.defaults.${t}`]}async function wZ(e,t,r,i){let{cesdk:n}=r;us(n,{en:{"ly.img.plugin-ai-generation-web.generate":"Generate","ly.img.plugin-ai-generation-web.defaults.fromType.label":"Input","ly.img.plugin-ai-generation-web.defaults.providerSelect.label":"Provider","ly.img.plugin-ai-generation-web.defaults.fromText.label":"Text","ly.img.plugin-ai-generation-web.defaults.fromImage.label":"Image","ly.img.plugin-ai-generation-web.schema.loading.label":"Loading\u2026","ly.img.plugin-ai-generation-web.schema.error.title":"Failed to load schema","ly.img.plugin-ai-generation-web.schema.error.retry":"Retry"}});let a,o=[];if(i.debug&&console.groupCollapsed(`Initializing ${e} generation providers`),Array.isArray(t)){let l=await Promise.all(t.map(u=>Hl(e,u,r,i)));o.push(...l),a=xZ({kind:e,prefix:e,providerInitializationResults:o,cesdk:n})}else{let l=await Promise.all(t.fromText.map(d=>Hl(e,d,r,i)));o.push(...l);let u=await Promise.all(t.fromImage.map(d=>Hl(e,d,r,i)));o.push(...u),a=kZ({kind:e,prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:u,cesdk:n})}i.debug&&console.groupEnd();let s=vZ({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter(iH)}),c;return s!=null&&(c=s,r.cesdk.ui.addAssetLibraryEntry({id:c,sourceIds:[s],sortBy:{sortKey:"insertedAt",sortingOrder:"Descending"},canRemove:!0,gridItemHeight:"square",gridBackgroundType:"cover"})),{panel:{builderRenderFunction:a},history:{assetSourceId:s,assetLibraryEntryId:c},providerInitializationResults:o}}function kZ({kind:e,prefix:t,initializedFromTextProviders:r,initializedFromImageProviders:i,cesdk:n}){let a=r.length>0&&i.length>0;return o=>{let{builder:s,experimental:c,engine:l}=o,u=`ly.img.plugin-ai-${e}-generation-web.fromText`,d=n.feature.isEnabled(u,{engine:l}),g=`ly.img.plugin-ai-${e}-generation-web.fromImage`,p=n.feature.isEnabled(g,{engine:l}),y;d&&r.length>0&&(!p||i.length===0)?y="fromText":p&&i.length>0&&(!d||r.length===0)?y="fromImage":d&&p&&a&&(y="fromText");let f=c.global(`${t}.fromType`,y),m=[];f.value==="fromText"?m.push(...r):f.value==="fromImage"?m.push(...i):m.push(...r,...i);let v=r.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),k=i.map(({provider:C,panel:M})=>({id:C.id,label:ts(C),builderRenderFunction:M?.builderRenderFunction})),w=o.experimental.global(`${t}.selectedProvider.fromText`,v[0]?.id),x=o.experimental.global(`${t}.selectedProvider.fromImage`,k[0]?.id),b=v.find(C=>C.id===w.value)??v[0],I=k.find(C=>C.id===x.value)??k[0],S=f.value==="fromText"?w:f.value==="fromImage"?x:void 0,A=f.value==="fromText"?b:f.value==="fromImage"?I:void 0,_=`ly.img.plugin-ai-${e}-generation-web.providerSelect`,j=n.feature.isEnabled(_,{engine:l});if(!d&&!p){s.Section(`${t}.noInputWarning.section`,{children:()=>{s.Text(`${t}.noInputWarning.text`,{content:"No input types are enabled. Please enable at least one input type (text or image) via the Feature API."})}});return}let E=d&&p&&r.length>0&&i.length>0,h=a&&E,$=m.length>1&&j;if((h||$)&&s.Section(`${t}.providerSelection.section`,{children:()=>{if(h&&s.ButtonGroup(`${t}.fromType.buttonGroup`,{inputLabel:rn(e,"fromType.label"),children:()=>{d&&r.length>0&&s.Button(`${t}.fromType.buttonGroup.fromText`,{label:rn(e,"fromText.label"),icon:f.value!=="fromText"&&nf(r,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromText",onClick:()=>{f.setValue("fromText")}}),p&&i.length>0&&s.Button(`${t}.fromType.buttonGroup.fromImage`,{label:rn(e,"fromImage.label"),icon:f.value!=="fromImage"&&nf(i,o)?"@imgly/LoadingSpinner":void 0,isActive:f.value==="fromImage",onClick:()=>{f.setValue("fromImage")}})}}),$){let C=f.value==="fromText"?v:f.value==="fromImage"?k:[...v,...k];S!=null&&A!=null&&s.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:C,value:A,setValue:M=>{S.setValue(M.id)}})}}}),m.length>1)A?.builderRenderFunction?.(o);else{let C=m[0];C&&C.panel?.builderRenderFunction?.(o)}}}function xZ({kind:e,prefix:t,providerInitializationResults:r,cesdk:i}){return n=>{let{builder:a,engine:o}=n;if(r.length===0)return;let s=`ly.img.plugin-ai-${e}-generation-web.providerSelect`;e==="audio"&&t&&(t.includes("speech")?s="ly.img.plugin-ai-audio-generation-web.speech.providerSelect":t.includes("sound")&&(s="ly.img.plugin-ai-audio-generation-web.sound.providerSelect"));let c=i.feature.isEnabled(s,{engine:o}),l=r.map(({provider:g,panel:p})=>({id:g.id,label:ts(g),builderRenderFunction:p?.builderRenderFunction})),u=n.state(`${t}.selectedProvider`,l[0]?.id),d=l.find(g=>g.id===u.value)??l[0];r.length>1&&c&&u!=null&&d!=null&&a.Section(`${t}.providerSelection.section`,{children:()=>{a.Select(`${t}.providerSelect.select`,{inputLabel:rn(e,"providerSelect.label"),values:l,value:d,setValue:g=>{u.setValue(g.id)}})}}),d?.builderRenderFunction?.(n)}}function nf(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(ps(r.id),!1).value)}var IZ=wZ,CZ="@imgly/plugin-ai-sticker-generation",AZ=`
652
652
  <svg>
653
653
  <symbol
654
654
  fill="none"
@@ -662,7 +662,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
662
662
 
663
663
  </symbol>
664
664
  </svg>
665
- `,kZ=wZ,xZ=typeof global=="object"&&global&&global.Object===Object&&global,Df=xZ,IZ=typeof self=="object"&&self&&self.Object===Object&&self,CZ=Df||IZ||Function("return this")(),se=CZ,AZ=se.Symbol,lr=AZ,Pf=Object.prototype,SZ=Pf.hasOwnProperty,MZ=Pf.toString,Ji=lr?lr.toStringTag:void 0;function jZ(e){var t=SZ.call(e,Ji),r=e[Ji];try{e[Ji]=void 0;var i=!0}catch{}var n=MZ.call(e);return i&&(t?e[Ji]=r:delete e[Ji]),n}var $Z=jZ,EZ=Object.prototype,_Z=EZ.toString;function LZ(e){return _Z.call(e)}var TZ=LZ,OZ="[object Null]",NZ="[object Undefined]",X1=lr?lr.toStringTag:void 0;function DZ(e){return e==null?e===void 0?NZ:OZ:X1&&X1 in Object(e)?$Z(e):TZ(e)}var gn=DZ;function PZ(e){return e!=null&&typeof e=="object"}var ss=PZ,gte=Array.isArray;function zZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var zf=zZ,UZ="[object AsyncFunction]",RZ="[object Function]",FZ="[object GeneratorFunction]",VZ="[object Proxy]";function BZ(e){if(!zf(e))return!1;var t=gn(e);return t==RZ||t==FZ||t==UZ||t==VZ}var qZ=BZ,GZ=se["__core-js_shared__"],ql=GZ,ef=function(){var e=/[^.]+$/.exec(ql&&ql.keys&&ql.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function YZ(e){return!!ef&&ef in e}var HZ=YZ,ZZ=Function.prototype,QZ=ZZ.toString;function WZ(e){if(e!=null){try{return QZ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=WZ,KZ=/[\\^$.*+?()[\]{}|]/g,JZ=/^\[object .+?Constructor\]$/,XZ=Function.prototype,eQ=Object.prototype,tQ=XZ.toString,rQ=eQ.hasOwnProperty,iQ=RegExp("^"+tQ.call(rQ).replace(KZ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function nQ(e){if(!zf(e)||HZ(e))return!1;var t=qZ(e)?iQ:JZ;return t.test(Ge(e))}var oQ=nQ;function aQ(e,t){return e?.[t]}var lQ=aQ;function sQ(e,t){var r=lQ(e,t);return oQ(r)?r:void 0}var pr=sQ,uQ=pr(se,"WeakMap"),Jl=uQ;function cQ(e,t){return e===t||e!==e&&t!==t}var dQ=cQ,pQ=9007199254740991;function gQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=pQ}var fQ=gQ,fte=Object.prototype,yQ="[object Arguments]";function mQ(e){return ss(e)&&gn(e)==yQ}var tf=mQ,Uf=Object.prototype,bQ=Uf.hasOwnProperty,hQ=Uf.propertyIsEnumerable,yte=tf(function(){return arguments}())?tf:function(e){return ss(e)&&bQ.call(e,"callee")&&!hQ.call(e,"callee")},Rf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rf=Rf&&typeof module=="object"&&module&&!module.nodeType&&module,vQ=rf&&rf.exports===Rf,nf=vQ?se.Buffer:void 0,mte=nf?nf.isBuffer:void 0,wQ="[object Arguments]",kQ="[object Array]",xQ="[object Boolean]",IQ="[object Date]",CQ="[object Error]",AQ="[object Function]",SQ="[object Map]",MQ="[object Number]",jQ="[object Object]",$Q="[object RegExp]",EQ="[object Set]",_Q="[object String]",LQ="[object WeakMap]",TQ="[object ArrayBuffer]",OQ="[object DataView]",NQ="[object Float32Array]",DQ="[object Float64Array]",PQ="[object Int8Array]",zQ="[object Int16Array]",UQ="[object Int32Array]",RQ="[object Uint8Array]",FQ="[object Uint8ClampedArray]",VQ="[object Uint16Array]",BQ="[object Uint32Array]",B={};B[NQ]=B[DQ]=B[PQ]=B[zQ]=B[UQ]=B[RQ]=B[FQ]=B[VQ]=B[BQ]=!0;B[wQ]=B[kQ]=B[TQ]=B[xQ]=B[OQ]=B[IQ]=B[CQ]=B[AQ]=B[SQ]=B[MQ]=B[jQ]=B[$Q]=B[EQ]=B[_Q]=B[LQ]=!1;function qQ(e){return ss(e)&&fQ(e.length)&&!!B[gn(e)]}var GQ=qQ;function YQ(e){return function(t){return e(t)}}var HQ=YQ,Ff=typeof exports=="object"&&exports&&!exports.nodeType&&exports,nn=Ff&&typeof module=="object"&&module&&!module.nodeType&&module,ZQ=nn&&nn.exports===Ff,Gl=ZQ&&Df.process,QQ=function(){try{var e=nn&&nn.require&&nn.require("util").types;return e||Gl&&Gl.binding&&Gl.binding("util")}catch{}}(),of=QQ,af=of&&of.isTypedArray,bte=af?HQ(af):GQ,WQ=Object.prototype,hte=WQ.hasOwnProperty;function KQ(e,t){return function(r){return e(t(r))}}var JQ=KQ,vte=JQ(Object.keys,Object),XQ=Object.prototype,wte=XQ.hasOwnProperty,eW=pr(Object,"create"),ln=eW;function tW(){this.__data__=ln?ln(null):{},this.size=0}var rW=tW;function iW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var nW=iW,oW="__lodash_hash_undefined__",aW=Object.prototype,lW=aW.hasOwnProperty;function sW(e){var t=this.__data__;if(ln){var r=t[e];return r===oW?void 0:r}return lW.call(t,e)?t[e]:void 0}var uW=sW,cW=Object.prototype,dW=cW.hasOwnProperty;function pW(e){var t=this.__data__;return ln?t[e]!==void 0:dW.call(t,e)}var gW=pW,fW="__lodash_hash_undefined__";function yW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ln&&t===void 0?fW:t,this}var mW=yW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=rW;gr.prototype.delete=nW;gr.prototype.get=uW;gr.prototype.has=gW;gr.prototype.set=mW;var lf=gr;function bW(){this.__data__=[],this.size=0}var hW=bW;function vW(e,t){for(var r=e.length;r--;)if(dQ(e[r][0],t))return r;return-1}var Mo=vW,wW=Array.prototype,kW=wW.splice;function xW(e){var t=this.__data__,r=Mo(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():kW.call(t,r,1),--this.size,!0}var IW=xW;function CW(e){var t=this.__data__,r=Mo(t,e);return r<0?void 0:t[r][1]}var AW=CW;function SW(e){return Mo(this.__data__,e)>-1}var MW=SW;function jW(e,t){var r=this.__data__,i=Mo(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var $W=jW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=hW;fr.prototype.delete=IW;fr.prototype.get=AW;fr.prototype.has=MW;fr.prototype.set=$W;var jo=fr,EW=pr(se,"Map"),sn=EW;function _W(){this.size=0,this.__data__={hash:new lf,map:new(sn||jo),string:new lf}}var LW=_W;function TW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var OW=TW;function NW(e,t){var r=e.__data__;return OW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var $o=NW;function DW(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t}var PW=DW;function zW(e){return $o(this,e).get(e)}var UW=zW;function RW(e){return $o(this,e).has(e)}var FW=RW;function VW(e,t){var r=$o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var BW=VW;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=LW;yr.prototype.delete=PW;yr.prototype.get=UW;yr.prototype.has=FW;yr.prototype.set=BW;var Vf=yr;function qW(){this.__data__=new jo,this.size=0}var GW=qW;function YW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var HW=YW;function ZW(e){return this.__data__.get(e)}var QW=ZW;function WW(e){return this.__data__.has(e)}var KW=WW,JW=200;function XW(e,t){var r=this.__data__;if(r instanceof jo){var i=r.__data__;if(!sn||i.length<JW-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Vf(i)}return r.set(e,t),this.size=r.size,this}var eK=XW;function fn(e){var t=this.__data__=new jo(e);this.size=t.size}fn.prototype.clear=GW;fn.prototype.delete=HW;fn.prototype.get=QW;fn.prototype.has=KW;fn.prototype.set=eK;var tK=Object.prototype,kte=tK.propertyIsEnumerable,rK=pr(se,"DataView"),Xl=rK,iK=pr(se,"Promise"),es=iK,nK=pr(se,"Set"),ts=nK,sf="[object Map]",oK="[object Object]",uf="[object Promise]",cf="[object Set]",df="[object WeakMap]",pf="[object DataView]",aK=Ge(Xl),lK=Ge(sn),sK=Ge(es),uK=Ge(ts),cK=Ge(Jl),nr=gn;(Xl&&nr(new Xl(new ArrayBuffer(1)))!=pf||sn&&nr(new sn)!=sf||es&&nr(es.resolve())!=uf||ts&&nr(new ts)!=cf||Jl&&nr(new Jl)!=df)&&(nr=function(e){var t=gn(e),r=t==oK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case aK:return pf;case lK:return sf;case sK:return uf;case uK:return cf;case cK:return df}return t});var xte=se.Uint8Array,dK="__lodash_hash_undefined__";function pK(e){return this.__data__.set(e,dK),this}var gK=pK;function fK(e){return this.__data__.has(e)}var yK=fK;function rs(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Vf;++t<r;)this.add(e[t])}rs.prototype.add=rs.prototype.push=gK;rs.prototype.has=yK;var gf=lr?lr.prototype:void 0,Ite=gf?gf.valueOf:void 0,mK=Object.prototype,Cte=mK.hasOwnProperty,bK=Object.prototype,Ate=bK.hasOwnProperty,Ste=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Mte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),jte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function hK(e){return e==null?[]:Array.isArray(e)?e:[e]}var vK=hK;function wK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function kK(e){return typeof e?.translate=="function"}function xK(e,t,r){return e&&wK(e)&&kK(e.i18n)?e.i18n.translate(t):r}var tn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function IK(e){return{async initialize({cesdk:t}){if(t==null)return;sH(t,tn,"1.73.0-rc.1"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=xf.get(),i=`${tn}.action.label`;t.ui.addIconSet(vZ,kZ),ns(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:tn,pluginId:tn,label:xK(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(vK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await hZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),cH({cesdk:t,panelId:Se})):n()}}}var CK=IK,AK=e=>({name:tn,version:"1.73.0-rc.1",...CK(e)}),Bf=AK;var us=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,p=[...this.getCurrentAssets()];if(c&&c.length>0&&(p=p.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(p=p.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();p=p.filter(x=>{let b=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return b&&b.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];p=p.filter(x=>{let b=x.tags?.[n]||[];return w.some(I=>b.includes(I))})}a&&p.sort((w,x)=>{let b=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return b&&!I?-1:!b&&I?1:0}),d&&d!=="id"?p.sort((w,x)=>{let b=w.meta?.[d],I=x.meta?.[d];return b===void 0?1:I===void 0?-1:typeof b=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(b):b.localeCompare(I):typeof b=="number"&&typeof I=="number"?u==="Descending"?I-b:b-I:0}):d==="id"&&p.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let g=p.length,y=r*i,f=y+i,v=p.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<g?r+1:void 0;return{assets:v,currentPage:r,nextPage:k,total:g}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=SK(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function qf(e,t,r=[]){return new us(e,t,r)}function SK(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var yn="ly.img.ai.apps";var Y=tu("apps"),MK=512,jK=128,Gf=e=>({async initialize({cesdk:t}){if(t==null)return;ru(t,yn,"1.73.0-rc.1");let{providers:r}=e;await t.addPlugin(_1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(jc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(qd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(og({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Bf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),TK(t),$K(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function $K(e,t){LK(e);let r=EK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{xn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?xn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(p=>{p.startsWith("ly.img.ai.")&&p!==l&&e.ui.closePanel(p),!u&&p==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(p)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function EK(e,t){let r=xn.get(),i=qf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?_K(t.baseURL,o):void 0,width:MK,height:jK}}).filter(_s)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function _K(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function LK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let v=e.ui.getAssetLibraryEntry(m);if(v==null)return!1;if(u==null)return!0;let k=v.sceneMode;return typeof k=="string"?v.sceneMode===u||v.sceneMode==="All":typeof k=="function"?(typeof v.sourceIds=="function"?v.sourceIds({cesdk:e,engine:r}):v.sourceIds).some(x=>{let b=k(e.version.startsWith("1.51.")?x:{sourceId:x});return b===u||b==="All"}):!0});if(d.length===0)return;let p=s;p==null&&(p=`libraries.${a}.label`);let g=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:p,icon:f,isDisabled:y,isSelected:g,onClick:()=>{g?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:p}}))}})})}function TK(e){Xs(e,iu)}var OK=e=>({name:yn,version:"1.73.0-rc.1",...Gf(e)}),Hte=OK;export{Hte as default};
665
+ `,SZ=AZ,MZ=typeof global=="object"&&global&&global.Object===Object&&global,Ff=MZ,jZ=typeof self=="object"&&self&&self.Object===Object&&self,$Z=Ff||jZ||Function("return this")(),se=$Z,EZ=se.Symbol,lr=EZ,Vf=Object.prototype,_Z=Vf.hasOwnProperty,LZ=Vf.toString,en=lr?lr.toStringTag:void 0;function TZ(e){var t=_Z.call(e,en),r=e[en];try{e[en]=void 0;var i=!0}catch{}var n=LZ.call(e);return i&&(t?e[en]=r:delete e[en]),n}var OZ=TZ,NZ=Object.prototype,DZ=NZ.toString;function PZ(e){return DZ.call(e)}var zZ=PZ,UZ="[object Null]",RZ="[object Undefined]",of=lr?lr.toStringTag:void 0;function FZ(e){return e==null?e===void 0?RZ:UZ:of&&of in Object(e)?OZ(e):zZ(e)}var yn=FZ;function VZ(e){return e!=null&&typeof e=="object"}var gs=VZ,hte=Array.isArray;function BZ(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Bf=BZ,qZ="[object AsyncFunction]",GZ="[object Function]",YZ="[object GeneratorFunction]",HZ="[object Proxy]";function ZZ(e){if(!Bf(e))return!1;var t=yn(e);return t==GZ||t==YZ||t==qZ||t==HZ}var QZ=ZZ,WZ=se["__core-js_shared__"],Zl=WZ,af=function(){var e=/[^.]+$/.exec(Zl&&Zl.keys&&Zl.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function KZ(e){return!!af&&af in e}var JZ=KZ,XZ=Function.prototype,eQ=XZ.toString;function tQ(e){if(e!=null){try{return eQ.call(e)}catch{}try{return e+""}catch{}}return""}var Ge=tQ,rQ=/[\\^$.*+?()[\]{}|]/g,iQ=/^\[object .+?Constructor\]$/,nQ=Function.prototype,oQ=Object.prototype,aQ=nQ.toString,lQ=oQ.hasOwnProperty,sQ=RegExp("^"+aQ.call(lQ).replace(rQ,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function uQ(e){if(!Bf(e)||JZ(e))return!1;var t=QZ(e)?sQ:iQ;return t.test(Ge(e))}var cQ=uQ;function dQ(e,t){return e?.[t]}var pQ=dQ;function gQ(e,t){var r=pQ(e,t);return cQ(r)?r:void 0}var pr=gQ,fQ=pr(se,"WeakMap"),is=fQ;function yQ(e,t){return e===t||e!==e&&t!==t}var mQ=yQ,bQ=9007199254740991;function hQ(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=bQ}var vQ=hQ,vte=Object.prototype,wQ="[object Arguments]";function kQ(e){return gs(e)&&yn(e)==wQ}var lf=kQ,qf=Object.prototype,xQ=qf.hasOwnProperty,IQ=qf.propertyIsEnumerable,wte=lf(function(){return arguments}())?lf:function(e){return gs(e)&&xQ.call(e,"callee")&&!IQ.call(e,"callee")},Gf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sf=Gf&&typeof module=="object"&&module&&!module.nodeType&&module,CQ=sf&&sf.exports===Gf,uf=CQ?se.Buffer:void 0,kte=uf?uf.isBuffer:void 0,AQ="[object Arguments]",SQ="[object Array]",MQ="[object Boolean]",jQ="[object Date]",$Q="[object Error]",EQ="[object Function]",_Q="[object Map]",LQ="[object Number]",TQ="[object Object]",OQ="[object RegExp]",NQ="[object Set]",DQ="[object String]",PQ="[object WeakMap]",zQ="[object ArrayBuffer]",UQ="[object DataView]",RQ="[object Float32Array]",FQ="[object Float64Array]",VQ="[object Int8Array]",BQ="[object Int16Array]",qQ="[object Int32Array]",GQ="[object Uint8Array]",YQ="[object Uint8ClampedArray]",HQ="[object Uint16Array]",ZQ="[object Uint32Array]",B={};B[RQ]=B[FQ]=B[VQ]=B[BQ]=B[qQ]=B[GQ]=B[YQ]=B[HQ]=B[ZQ]=!0;B[AQ]=B[SQ]=B[zQ]=B[MQ]=B[UQ]=B[jQ]=B[$Q]=B[EQ]=B[_Q]=B[LQ]=B[TQ]=B[OQ]=B[NQ]=B[DQ]=B[PQ]=!1;function QQ(e){return gs(e)&&vQ(e.length)&&!!B[yn(e)]}var WQ=QQ;function KQ(e){return function(t){return e(t)}}var JQ=KQ,Yf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,an=Yf&&typeof module=="object"&&module&&!module.nodeType&&module,XQ=an&&an.exports===Yf,Ql=XQ&&Ff.process,eW=function(){try{var e=an&&an.require&&an.require("util").types;return e||Ql&&Ql.binding&&Ql.binding("util")}catch{}}(),cf=eW,df=cf&&cf.isTypedArray,xte=df?JQ(df):WQ,tW=Object.prototype,Ite=tW.hasOwnProperty;function rW(e,t){return function(r){return e(t(r))}}var iW=rW,Cte=iW(Object.keys,Object),nW=Object.prototype,Ate=nW.hasOwnProperty,oW=pr(Object,"create"),un=oW;function aW(){this.__data__=un?un(null):{},this.size=0}var lW=aW;function sW(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var uW=sW,cW="__lodash_hash_undefined__",dW=Object.prototype,pW=dW.hasOwnProperty;function gW(e){var t=this.__data__;if(un){var r=t[e];return r===cW?void 0:r}return pW.call(t,e)?t[e]:void 0}var fW=gW,yW=Object.prototype,mW=yW.hasOwnProperty;function bW(e){var t=this.__data__;return un?t[e]!==void 0:mW.call(t,e)}var hW=bW,vW="__lodash_hash_undefined__";function wW(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=un&&t===void 0?vW:t,this}var kW=wW;function gr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}gr.prototype.clear=lW;gr.prototype.delete=uW;gr.prototype.get=fW;gr.prototype.has=hW;gr.prototype.set=kW;var pf=gr;function xW(){this.__data__=[],this.size=0}var IW=xW;function CW(e,t){for(var r=e.length;r--;)if(mQ(e[r][0],t))return r;return-1}var $o=CW,AW=Array.prototype,SW=AW.splice;function MW(e){var t=this.__data__,r=$o(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():SW.call(t,r,1),--this.size,!0}var jW=MW;function $W(e){var t=this.__data__,r=$o(t,e);return r<0?void 0:t[r][1]}var EW=$W;function _W(e){return $o(this.__data__,e)>-1}var LW=_W;function TW(e,t){var r=this.__data__,i=$o(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var OW=TW;function fr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}fr.prototype.clear=IW;fr.prototype.delete=jW;fr.prototype.get=EW;fr.prototype.has=LW;fr.prototype.set=OW;var Eo=fr,NW=pr(se,"Map"),cn=NW;function DW(){this.size=0,this.__data__={hash:new pf,map:new(cn||Eo),string:new pf}}var PW=DW;function zW(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var UW=zW;function RW(e,t){var r=e.__data__;return UW(t)?r[typeof t=="string"?"string":"hash"]:r.map}var _o=RW;function FW(e){var t=_o(this,e).delete(e);return this.size-=t?1:0,t}var VW=FW;function BW(e){return _o(this,e).get(e)}var qW=BW;function GW(e){return _o(this,e).has(e)}var YW=GW;function HW(e,t){var r=_o(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var ZW=HW;function yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}yr.prototype.clear=PW;yr.prototype.delete=VW;yr.prototype.get=qW;yr.prototype.has=YW;yr.prototype.set=ZW;var Hf=yr;function QW(){this.__data__=new Eo,this.size=0}var WW=QW;function KW(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var JW=KW;function XW(e){return this.__data__.get(e)}var eK=XW;function tK(e){return this.__data__.has(e)}var rK=tK,iK=200;function nK(e,t){var r=this.__data__;if(r instanceof Eo){var i=r.__data__;if(!cn||i.length<iK-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Hf(i)}return r.set(e,t),this.size=r.size,this}var oK=nK;function mn(e){var t=this.__data__=new Eo(e);this.size=t.size}mn.prototype.clear=WW;mn.prototype.delete=JW;mn.prototype.get=eK;mn.prototype.has=rK;mn.prototype.set=oK;var aK=Object.prototype,Ste=aK.propertyIsEnumerable,lK=pr(se,"DataView"),ns=lK,sK=pr(se,"Promise"),os=sK,uK=pr(se,"Set"),as=uK,gf="[object Map]",cK="[object Object]",ff="[object Promise]",yf="[object Set]",mf="[object WeakMap]",bf="[object DataView]",dK=Ge(ns),pK=Ge(cn),gK=Ge(os),fK=Ge(as),yK=Ge(is),nr=yn;(ns&&nr(new ns(new ArrayBuffer(1)))!=bf||cn&&nr(new cn)!=gf||os&&nr(os.resolve())!=ff||as&&nr(new as)!=yf||is&&nr(new is)!=mf)&&(nr=function(e){var t=yn(e),r=t==cK?e.constructor:void 0,i=r?Ge(r):"";if(i)switch(i){case dK:return bf;case pK:return gf;case gK:return ff;case fK:return yf;case yK:return mf}return t});var Mte=se.Uint8Array,mK="__lodash_hash_undefined__";function bK(e){return this.__data__.set(e,mK),this}var hK=bK;function vK(e){return this.__data__.has(e)}var wK=vK;function ls(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Hf;++t<r;)this.add(e[t])}ls.prototype.add=ls.prototype.push=hK;ls.prototype.has=wK;var hf=lr?lr.prototype:void 0,jte=hf?hf.valueOf:void 0,kK=Object.prototype,$te=kK.hasOwnProperty,xK=Object.prototype,Ete=xK.hasOwnProperty,_te=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Lte=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Tte=new RegExp(/[A-Fa-f0-9]{2}/,"g");function IK(e){return e==null?[]:Array.isArray(e)?e:[e]}var CK=IK;function AK(e){return e?.version?e.version.localeCompare("1.59.0",void 0,{numeric:!0,sensitivity:"base"})>=0&&typeof e.i18n?.translate=="function":!1}function SK(e){return typeof e?.translate=="function"}function MK(e,t,r){return e&&AK(e)&&SK(e.i18n)?e.i18n.translate(t):r}var nn="@imgly/plugin-ai-sticker-generation-web",Se="ly.img.ai.sticker-generation";function jK(e){return{async initialize({cesdk:t}){if(t==null)return;gH(t,nn,"1.73.0-rc.3"),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.providerSelect",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromText",!0),t.feature.enable("ly.img.plugin-ai-sticker-generation-web.fromImage",!0);let r=Mf.get(),i=`${nn}.action.label`;t.ui.addIconSet(CZ,SZ),us(t,{en:{[`panel.${Se}`]:"Sticker Generation",[`${Se}.dock.label`]:"AI Sticker",[i]:"Generate Sticker"}});let n=r.register({type:"plugin",sceneMode:"Design",id:nn,pluginId:nn,label:MK(t,i,"Generate Sticker"),labelKey:i,meta:{panelId:Se},execute:()=>{t.ui.isPanelOpen(Se)?t.ui.closePanel(Se):t.ui.openPanel(Se)}}),a=e.providers?.text2sticker,o=await Promise.all(CK(a).map(c=>c({cesdk:t})));if(!(o.length>0)){n();return}let s=await IZ("sticker",{fromText:o,fromImage:[]},{cesdk:t},e);s.history?.assetSourceId!=null,s.panel.builderRenderFunction!=null?(t.ui.registerPanel(Se,s.panel.builderRenderFunction),yH({cesdk:t,panelId:Se})):n()}}}var $K=jK,EK=e=>({name:nn,version:"1.73.0-rc.3",...$K(e)}),Zf=EK;var fs=class{constructor(t,r,i=[]){this.id=t,this.assetsOrProvider=i,this.activeAssetIds=new Set,this.loaderDisposer={},this.cesdk=r}getCurrentAssets(){return typeof this.assetsOrProvider=="function"?this.assetsOrProvider():this.assetsOrProvider}async findAssets(t){let{page:r,perPage:i,locale:n="en",sortActiveFirst:a,query:o,tags:s,groups:c,excludeGroups:l,sortingOrder:u,sortKey:d}=t,g=[...this.getCurrentAssets()];if(c&&c.length>0&&(g=g.filter(w=>w.groups&&c.some(x=>w.groups?.includes(x)))),l&&l.length>0&&(g=g.filter(w=>!w.groups||!l.some(x=>w.groups?.includes(x)))),o){let w=o.toLowerCase();g=g.filter(x=>{let b=x.label?.[n]?.toLowerCase(),I=x.tags?.[n]||[];return b&&b.includes(w)||I.some(S=>S.toLowerCase().includes(w))})}if(s&&s.length>0){let w=Array.isArray(s)?s:[s];g=g.filter(x=>{let b=x.tags?.[n]||[];return w.some(I=>b.includes(I))})}a&&g.sort((w,x)=>{let b=this.activeAssetIds.has(w.id),I=this.activeAssetIds.has(x.id);return b&&!I?-1:!b&&I?1:0}),d&&d!=="id"?g.sort((w,x)=>{let b=w.meta?.[d],I=x.meta?.[d];return b===void 0?1:I===void 0?-1:typeof b=="string"&&typeof I=="string"?u==="Descending"?I.localeCompare(b):b.localeCompare(I):typeof b=="number"&&typeof I=="number"?u==="Descending"?I-b:b-I:0}):d==="id"&&g.sort((w,x)=>u==="Descending"?x.id.localeCompare(w.id):w.id.localeCompare(x.id));let p=g.length,y=r*i,f=y+i,v=g.slice(y,f).map(w=>({id:w.id,groups:w.groups,meta:w.meta,payload:w.payload,locale:n,label:w.label?.[n],tags:w.tags?.[n],active:this.activeAssetIds.has(w.id)})),k=f<p?r+1:void 0;return{assets:v,currentPage:r,nextPage:k,total:p}}updateLabel(t,r,i){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot update label on dynamic asset provider");return}this.assetsOrProvider.forEach(n=>{n.id===t&&(n.label=n.label||{},n.label[i]=r(n.label[i]))})}getLabel(t,r){let i=this.getCurrentAssets().find(n=>n.id===t);if(i!=null)return i.label?.[r]}setAssetActive(t){this.activeAssetIds.add(t)}setAssetLoading(t,r){if(r){let i=this.getLabel(t,"en")??"",n=_K(a=>this.cesdk.engine.asset===null?!1:(this.updateLabel(t,()=>`${a} ${i}`,"en"),this.cesdk.engine.asset.assetSourceContentsChanged(this.id),!0));this.loaderDisposer[t]=()=>{this.updateLabel(t,()=>i,"en"),n()}}else this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}setAssetInactive(t){this.activeAssetIds.delete(t),this.loaderDisposer[t]?.(),this.loaderDisposer[t]=void 0}clearActiveAssets(){this.activeAssetIds.clear(),Object.values(this.loaderDisposer).forEach(t=>{t?.()}),this.loaderDisposer={}}isAssetActive(t){return this.activeAssetIds.has(t)}addAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot add asset to dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t.id);r>=0?this.assetsOrProvider[r]=t:this.assetsOrProvider.push(t)}removeAsset(t){if(typeof this.assetsOrProvider=="function"){console.warn("Cannot remove asset from dynamic asset provider");return}let r=this.assetsOrProvider.findIndex(i=>i.id===t);r!==-1&&(this.assetsOrProvider.splice(r,1),this.activeAssetIds.delete(t))}async getGroups(){let t=new Set;return this.getCurrentAssets().forEach(r=>{r.groups&&r.groups.forEach(i=>t.add(i))}),Array.from(t)}getSupportedMimeTypes(){return["image/jpeg","image/png","image/svg+xml","image/webp","video/mp4","audio/mpeg"]}};function Qf(e,t,r=[]){return new fs(e,t,r)}function _K(e,t=200){let r=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],i=0,n=setInterval(()=>{let a=r[i];i=(i+1)%r.length,e(a)||clearInterval(n)},t);return()=>{clearInterval(n)}}var bn="ly.img.ai.apps";var Y=au("apps"),LK=512,TK=128,Wf=e=>({async initialize({cesdk:t}){if(t==null)return;lu(t,bn,"1.73.0-rc.3");let{providers:r}=e;await t.addPlugin(D1({providers:{text2text:r.text2text},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Tc({providers:{text2image:r.text2image,image2image:r.image2image},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Qd({providers:{text2video:r.text2video,image2video:r.image2video},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(cg({providers:{text2speech:r.text2speech,text2sound:r.text2sound},debug:e.debug,dryRun:e.dryRun})),await t.addPlugin(Zf({providers:{text2sticker:r.text2sticker},debug:e.debug,dryRun:e.dryRun})),zK(t),OK(t,{...e,baseURL:e.baseURL??"https://cdn.img.ly/assets/plugins/plugin-ai-apps-web/v1/"})}});function OK(e,t){PK(e);let r=NK(e,t);e.engine.asset.addSource(r),e.ui.registerPanel(Y,({builder:a})=>{a.Library(Y,{entries:[Y],onSelect:async o=>{Cn.get().getBy({id:o.id,type:"plugin"}).forEach(s=>{s.execute()})}})}),e.ui.addAssetLibraryEntry({id:Y,sourceIds:[Y],gridColumns:1,gridItemHeight:"auto",gridBackgroundType:"cover",cardLabel:a=>{let{label:o,meta:s}=a,c=s?.labelKey;return c&&typeof e.i18n?.translate=="function"?e.i18n.translate(c):o},cardLabelPosition:()=>"inside"});let i=`${Y}.dock`;e.ui.registerComponent([i,"ly.img.ai/apps.dock"],({builder:a,experimental:o})=>{let s=r.getCurrentAssets();if(s.length===0)return;let c=s.length===1?Cn.get().getBy({id:s[0].id,type:"plugin"})[0]:void 0,l=c?.meta?.panelId??Y,u=e.ui.isPanelOpen(l),d=o.global(`${Y}.isGenerating`,!1);a.Button(`${Y}.dock.button`,{label:"ly.img.ai.apps.dock.label",isSelected:u,icon:d.value?"@imgly/LoadingSpinner":"@imgly/Sparkle",onClick:()=>{e.ui.findAllPanels().forEach(g=>{g.startsWith("ly.img.ai.")&&g!==l&&e.ui.closePanel(g),!u&&g==="//ly.img.panel/assetLibrary"&&e.ui.closePanel(g)}),c!=null?c.execute():u?e.ui.closePanel(Y):e.ui.openPanel(Y)}})})}function NK(e,t){let r=Cn.get(),i=Qf(Y,e,()=>{let a=e.engine.scene.getMode();return r.getBy({type:"plugin"}).map(({id:o,label:s,labelKey:c,sceneMode:l})=>a==="Design"&&l==="Video"?void 0:{id:o,label:{en:s??o},meta:{sceneMode:l,labelKey:c,thumbUri:t.baseURL!=null?DK(t.baseURL,o):void 0,width:LK,height:TK}}).filter(Ds)}),n=r.subscribeBy({type:"plugin"},()=>{if(e?.engine?.asset?.assetSourceContentsChanged==null){n();return}e.engine.asset.assetSourceContentsChanged(Y)});return i}function DK(e,t){switch(t){case"@imgly/plugin-ai-image-generation-web":return`${e}GenerateImage.png`;case"@imgly/plugin-ai-video-generation-web":return`${e}GenerateVideo.png`;case"@imgly/plugin-ai-audio-generation-web/sound":return`${e}GenerateSound.png`;case"@imgly/plugin-ai-audio-generation-web/speech":return`${e}AIVoice.png`;case"@imgly/plugin-ai-sticker-generation-web":return`${e}GenerateSticker.png`;default:return`${e}GenerateImage.png`}}function PK(e){e.ui.registerComponent("ly.img.assetLibrary.dock",({builder:{Button:t},engine:r,payload:i})=>{let n="\n\nPlease provide a payload with entries, e.g. \n```\n{ id: 'ly.img.assetLibrary.dock', entries: ['ly.img.image', 'ly.img.video'] }\n```";if(!i||i.id!=="ly.img.assetLibrary.dock"){console.warn(`No payload found for 'ly.img.assetLibrary.dock'${n}`);return}let{id:a,key:o,label:s,icon:c,entries:l}=i;if(l==null||!Array.isArray(l)){console.warn(`No valid entries value found for 'ly.img.assetLibrary.dock'${n}`);return}if(l.some(m=>typeof m!="string")){console.warn(`Entries value for 'ly.img.assetLibrary.dock' need to be all strings referring to asset library entries${n}`);return}s!=null&&typeof s!="string"&&console.warn("Label for 'ly.img.assetLibrary.dock' must be a string if provided");let u=r.scene.getMode(),d=l.filter(m=>{let v=e.ui.getAssetLibraryEntry(m);if(v==null)return!1;if(u==null)return!0;let k=v.sceneMode;return typeof k=="string"?v.sceneMode===u||v.sceneMode==="All":typeof k=="function"?(typeof v.sourceIds=="function"?v.sourceIds({cesdk:e,engine:r}):v.sourceIds).some(x=>{let b=k(e.version.startsWith("1.51.")?x:{sourceId:x});return b===u||b==="All"}):!0});if(d.length===0)return;let g=s;g==null&&(g=`libraries.${a}.label`);let p=e.ui.isPanelOpen("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}),y=e.ui.isPanelOpen("//ly.img.panel/assetLibrary.replace"),f=c;f==null&&d.length===1&&(f=e.ui.getAssetLibraryEntry(d[0])?.icon),t(o??a,{label:g,icon:f,isDisabled:y,isSelected:p,onClick:()=>{p?e.ui.closePanel("//ly.img.panel/assetLibrary"):(e.ui.findAllPanels().forEach(m=>{(m===Y||m.startsWith("ly.img.ai."))&&e.ui.closePanel(m)}),e.ui.openPanel("//ly.img.panel/assetLibrary",{payload:{entries:d,title:g}}))}})})}function zK(e){nu(e,su)}var UK=e=>({name:bn,version:"1.73.0-rc.3",...Wf(e)}),Jte=UK;export{Jte as default};
666
666
  /*! Bundled license information:
667
667
 
668
668
  lodash-es/lodash.js: